Agent-Browser PRD Playbooks
Use this skill to draft ready-to-run agent-browser command blocks for every Daedalus PRD user story in prd.json (US-001..US-007). It does not run the browser; it outputs scripts to execute manually.
Prerequisites
- •
agent-browser --versionsucceeds; if missing:npm install -g agent-browser - •Chromium downloaded:
agent-browser install(Linux:agent-browser install --with-deps) - •App base URL known (e.g.,
http://localhost:3000or deployed URL) - •Auth: choose one
- •Header-based:
--headers '{"Authorization":"Bearer <token>"}' - •Saved state: log in once then
agent-browser state save auth.json; reuse withstate load auth.json
- •Header-based:
- •Keep refs-first flow: always run
snapshot -ibefore interacting; re-snapshot after navigation.
Inputs
- •
prdPath: path to PRD JSON (defaultprd.jsonat repo root) - •
baseUrl: app URL - •
authHeadersorauthStatePath: for authenticated areas - •Optional: feature flags or tenant identifiers per story
Steps
- •Read
prdPathand listuserStoriesids/titles. - •For each story, set a dedicated session
--session <id>to isolate cookies. - •Login (if needed) once per session; then
state savefor reuse. - •Build a refs-first command block:
open → snapshot -i → interactions → wait → verify (url/title/text) → screenshot --full. - •Prefer semantics (
find role/text/label) when refs are unstable; avoid destructive actions (billing changes) unless explicitly approved. - •Capture evidence: final URL, title, key text via
get text @eN, andscreenshot --full <id>.png.
Command Playbooks per PRD Story
Replace
<BASE_URL>with your target, provide real selectors/refs from the latestsnapshot -i, and fill any placeholders like<CSV_PATH>.
US-001 – Enrich a CSV of leads (enrich batch)
bash
agent-browser --session US-001 open <BASE_URL>/enrich/batch agent-browser snapshot -i # TODO: click upload control agent-browser find role button click --name "Upload" || agent-browser click @e? agent-browser snapshot -i agent-browser fill @e? "<CSV_PATH>" # if file picker not allowed, attach via UI flow manually agent-browser snapshot -i agent-browser click @e? # Submit/process agent-browser wait --text "Enrichment complete" || agent-browser wait --text "Processing" agent-browser get url agent-browser get title agent-browser get text @e? # Verify row count or success message agent-browser screenshot --full US-001.png
US-002 – Enrich a single lead (enrich single)
bash
agent-browser --session US-002 open <BASE_URL>/enrich agent-browser snapshot -i agent-browser find label "Email" fill "demo@example.com" || agent-browser fill @e? "demo@example.com" agent-browser find label "Name" fill "Demo User" || true agent-browser find role button click --name "Enrich" || agent-browser click @e? agent-browser wait --text "Enrichment complete" || agent-browser wait --text "Profile" agent-browser get url agent-browser get title agent-browser get text @e? # Verify role/company output agent-browser screenshot --full US-002.png
US-003 – Extract brand identity from a URL (extract)
bash
agent-browser --session US-003 open <BASE_URL>/extract agent-browser snapshot -i agent-browser find label "Website" fill "https://example.com" || agent-browser fill @e? "https://example.com" agent-browser find role button click --name "Extract" || agent-browser click @e? agent-browser wait --text "Colors" || agent-browser wait --text "Fonts" agent-browser get url agent-browser get title agent-browser get text @e? # Verify brand attributes present agent-browser screenshot --full US-003.png
US-004 – Monitor critical pages for changes (observe)
bash
agent-browser --session US-004 open <BASE_URL>/observe agent-browser snapshot -i agent-browser find label "URL" fill "https://example.com/pricing" || agent-browser fill @e? "https://example.com/pricing" agent-browser find label "Frequency" fill "daily" || agent-browser select @e? "Daily" agent-browser find role button click --name "Create monitor" || agent-browser click @e? agent-browser wait --text "Monitor created" || agent-browser wait --text "Next run" agent-browser get url agent-browser get title agent-browser get text @e? # Verify monitor row appears agent-browser screenshot --full US-004.png
US-005 – Run scouts to discover new signals (scout)
bash
agent-browser --session US-005 open <BASE_URL>/scout agent-browser snapshot -i agent-browser find label "Query" fill "site:news.ycombinator.com fintech" || agent-browser fill @e? "site:news.ycombinator.com fintech" agent-browser find role button click --name "Run scout" || agent-browser click @e? agent-browser wait --text "Results" || agent-browser wait --text "New findings" agent-browser get url agent-browser get title agent-browser get text @e? # Verify deduped results listed agent-browser screenshot --full US-005.png
US-006 – Run research sessions with agents (agent)
bash
agent-browser --session US-006 open <BASE_URL>/agent agent-browser snapshot -i agent-browser find label "Prompt" fill "Summarize competitor positioning for Acme" || agent-browser fill @e? "Summarize competitor positioning for Acme" agent-browser find role button click --name "Run" || agent-browser click @e? agent-browser wait --text "Thinking" || agent-browser wait --text "Sources" agent-browser get url agent-browser get title agent-browser get text @e? # Verify answer section populated agent-browser screenshot --full US-006.png
US-007 – Manage plans, usage, and billing (platform/billing)
bash
agent-browser --session US-007 open <BASE_URL>/billing agent-browser snapshot -i # Read-only unless explicitly approved; avoid purchasing/upgrading without consent agent-browser get text @e? # Current plan/limits agent-browser screenshot --full US-007.png
Session & Resilience
- •Use
--session <id>per story to keep cookies separate. - •After login in a session:
agent-browser state save auth-<id>.json; preload withstate load auth-<id>.json. - •On failure/timeouts: rerun
snapshot -i, usewait --textorwait --url, then retry the action. - •If MFA/CAPTCHA blocks progress, stop and request human input.
Outputs
- •Per-story command block (above) tailored with real refs/selectors.
- •Evidence per story: final URL, title, key text assertion, and screenshot path
<id>.png.
Verification
- •Validate command syntax (no missing args; refs exist from latest snapshot).
- •Confirm non-destructive intent (especially billing); abort upgrades/changes unless explicitly approved.
- •Ensure auth method is scoped (headers per origin or session state file).
- •Re-snapshot after each navigation before using
@e?refs.