From 779cfc132b4fad3db926f0f7a473fe1aedbf7dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Miko=C5=82ajczak?= Date: Fri, 23 Oct 2026 18:40:35 +0200 Subject: [PATCH 1/4] Wait for each onboarding screen before acting on it --- .../skills/agent-device/flows/macros/web/complete-onboarding.ad | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad index 227bcd65cabd..dd18d49a5012 100644 --- a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad +++ b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad @@ -7,7 +7,9 @@ context platform=web # @param LAST_NAME Last name to enter on onboarding profile step. press "role=\"button\" label=\"Skip\" || label=\"Skip\"" +wait "role=\"button\" label=\"Something else\"" 15000 press "role=\"button\" label=\"Something else\" || label=\"Something else\"" +wait "role=\"textbox\" label=\"First name\"" 15000 fill "role=\"textbox\" label=\"First name\" || label=\"First name\"" "${FIRST_NAME}" fill "role=\"textbox\" label=\"Last name\" || label=\"Last name\"" "${LAST_NAME}" press "role=\"button\" label=\"Continue\" || label=\"Continue\"" From 978e3c2b696e923b0eb06ef9a3227d5c41fb34c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Miko=C5=82ajczak?= Date: Sun, 25 Oct 2026 13:33:43 +0100 Subject: [PATCH 2/4] Stabilize the purpose chooser before pressing Something else --- .../skills/agent-device/flows/macros/web/complete-onboarding.ad | 1 + 1 file changed, 1 insertion(+) diff --git a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad index dd18d49a5012..791fa99134bc 100644 --- a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad +++ b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad @@ -8,6 +8,7 @@ context platform=web press "role=\"button\" label=\"Skip\" || label=\"Skip\"" wait "role=\"button\" label=\"Something else\"" 15000 +wait stable 1000 10000 press "role=\"button\" label=\"Something else\" || label=\"Something else\"" wait "role=\"textbox\" label=\"First name\"" 15000 fill "role=\"textbox\" label=\"First name\" || label=\"First name\"" "${FIRST_NAME}" From 980807f9fab18df686c7bc74f843b2462b76493a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Miko=C5=82ajczak?= Date: Sun, 25 Oct 2026 14:17:53 +0100 Subject: [PATCH 3/4] Set a 900px viewport before pressing Something else in the web onboarding macro The purpose chooser sizes its max height to the window, so at the default browser viewport the last option sits below the fold and the press is dispatched off-screen. Also drop the wait stable line, which did not change the outcome. --- .../agent-device/flows/macros/web/complete-onboarding.ad | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad index 791fa99134bc..3e97e7bbde43 100644 --- a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad +++ b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad @@ -1,5 +1,5 @@ context platform=web -# @desc Complete onboarding with minimal choices (skip work email, pick "Something else" purpose, enter generic name). Lands on Home. +# @desc Complete onboarding with minimal choices (skip work email, pick "Something else" purpose, enter generic name). Lands on Home. Sets a 900px-tall viewport: the purpose chooser sizes to the window, and shorter viewports push "Something else" below the fold. # @pre text="What’s your work email?" # @post role="heading" label="Home" # @post role="button" label="Search" @@ -7,8 +7,8 @@ context platform=web # @param LAST_NAME Last name to enter on onboarding profile step. press "role=\"button\" label=\"Skip\" || label=\"Skip\"" +viewport 1280 900 wait "role=\"button\" label=\"Something else\"" 15000 -wait stable 1000 10000 press "role=\"button\" label=\"Something else\" || label=\"Something else\"" wait "role=\"textbox\" label=\"First name\"" 15000 fill "role=\"textbox\" label=\"First name\" || label=\"First name\"" "${FIRST_NAME}" From 2fbbbaae31768a14cad684b81d4caa9fa6990ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kacper=20Miko=C5=82ajczak?= Date: Tue, 27 Oct 2026 18:50:36 +0100 Subject: [PATCH 4/4] Parameterize the viewport in the web onboarding macro Add viewport width and height as optional macro parameters and set the viewport from them before the purpose chooser is pressed. Both default to 1920x1080. --- .../agent-device/flows/macros/web/complete-onboarding.ad | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad index 3e97e7bbde43..f21ea5989b2a 100644 --- a/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad +++ b/.claude/skills/agent-device/flows/macros/web/complete-onboarding.ad @@ -1,13 +1,15 @@ context platform=web -# @desc Complete onboarding with minimal choices (skip work email, pick "Something else" purpose, enter generic name). Lands on Home. Sets a 900px-tall viewport: the purpose chooser sizes to the window, and shorter viewports push "Something else" below the fold. +# @desc Complete onboarding with minimal choices (skip work email, pick "Something else" purpose, enter generic name). Lands on Home. # @pre text="What’s your work email?" # @post role="heading" label="Home" # @post role="button" label="Search" # @param FIRST_NAME First name to enter on onboarding profile step. # @param LAST_NAME Last name to enter on onboarding profile step. +# @param VIEWPORT_WIDTH Web viewport width in pixels. Optional. +# @param VIEWPORT_HEIGHT Web viewport height in pixels. Optional. press "role=\"button\" label=\"Skip\" || label=\"Skip\"" -viewport 1280 900 +viewport ${VIEWPORT_WIDTH:-1920} ${VIEWPORT_HEIGHT:-1080} wait "role=\"button\" label=\"Something else\"" 15000 press "role=\"button\" label=\"Something else\" || label=\"Something else\"" wait "role=\"textbox\" label=\"First name\"" 15000