From raven
3-phase browser testing skill. Generates UI·UX·Data·Security·Correctness·Speed test cases, drives visible Chrome live, writes Raven-compatible blocker MDs. Human watches and guides throughout. Andie packed inside — no external skill calls.
How this skill is triggered — by the user, by Claude, or both
Slash command
/raven:andie-framesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
AI browser testing you watch live. Like UiPath — but Claude drives it.
AI browser testing you watch live. Like UiPath — but Claude drives it.
/andie-frames https://your-app.com
One-time setup — pick one:
npm i -g playwright && npx playwright install chromiumDuring the run — just talk:
| Say | Result |
|---|---|
GO | Start testing |
focus on security | Filter cases, then start |
skip login tests | Remove auth cases |
scroll down first | Executes immediately, resumes |
stop | Pauses — awaits instruction |
abort | Stops, writes partial report |
| Category | Checks |
|---|---|
| UI | Broken images · layout · labels · error states · responsive |
| UX | Time-to-interactive · click latency · form feedback |
| Data | Network payloads · validation copy · API field completeness |
| Security | HTTPS · CSP · data exposure · auth lockout · logout |
| Correctness | Login flow · error states · redirects · HTTP status |
| Speed | Page load · TTFB · API response · blocking resources |
tests/andie-frames/
cases.csv ← generated test index
yaml/TC001-*.yaml ← one file per case
docs/andie-frames/{run_id}/
FRAMES-REPORT.md ← final verdict
raven-queue.json ← Raven auto-fix queue
blockers/*.md ← one per failure (Raven reads these)
screenshots/ ← before + after every step
Reference by key name only. Resolution order (first match wins):
.env in project → ~/.env → Lockey MCP → AWS SSM → GCP Secret Manager → Vault → human prompt (masked)Andie-Frames accepts scope input in any format. The richer the context, the smarter the generated test cases.
1. Raven (checked automatically — no flag needed) At startup, query Raven for everything it knows about this project:
/raven-search "scope requirements test plan acceptance criteria known issues"
/raven-search "architecture decisions bugs blockers {url domain}"
Raven holds: PRDs · architecture docs · prior test runs · known bugs · ADRs · blocker history · acceptance criteria · security requirements. If Raven has it — use it. No need to ask the human.
Announce what was found:
[andie-frames] Raven scope loaded:
✓ requirements.md — acceptance criteria extracted
✓ architecture.md — critical flows identified
✓ prior run blockers — 3 known issues pre-loaded as P1 cases
✓ security-spec.md — SOX controls mapped to security cases
2. Scope documents — pass one or many:
/andie-frames https://app.com --scope scope.md
/andie-frames https://app.com --scope requirements.pdf testplan.xlsx
/andie-frames https://app.com --scope *.md docs/scope.docx
Supported: .md · .txt · .pdf · .docx · .pptx · .ppt · .xlsx · .xls · .csv
3. Inline at invocation:
/andie-frames https://app.com "fintech, B2B, SOX compliance, payment flows critical"
4. Interactive — only if nothing found above:
[andie-frames] No scope found in Raven or files. Answer or skip:
- What does this app do?
- Who are the users?
- What's critical to test?
- Any known issues or recent changes?
| Scope signal | Effect on test generation |
|---|---|
| "SOX compliance" | Adds audit trail, access control, data integrity cases |
| "payment flow" | Stricter data + security + correctness cases on checkout |
| "public landing page" | Skips auth cases entirely |
| "mobile users" | Adds responsive layout cases at 375px |
| "API-heavy" | Expands network payload and data category cases |
| "known issue: slow checkout" | Adds targeted speed cases on that flow |
| CSV/XLS with test cases | Imports existing cases + supplements with generated ones |
| PRD/spec doc | Extracts acceptance criteria → maps to correctness cases |
anthropic-skills:pdf, anthropic-skills:docx, anthropic-skills:pptxScope is stored in run state and printed in FRAMES-REPORT.md under Scope Used.
/andie-frames <url> ← full run, all categories
/andie-frames <url> --categories X,Y ← specific categories only
/andie-frames <url> --runtime playwright ← bypass Chrome extension
/andie-frames frames <run-dir> ← Andie review on existing run
PHASE 0 — INIT
1. Detect runtime (Chrome MCP → Playwright → hard stop)
2. Print clickable URL → human opens it → human says GO
3. Ask for business context (see below)
4. Resolve paths · parse input · resolve credentials
5. URL reachability check (hard stop if blocked — shows fix options)
PHASE 1 — ANDIE GENERATES CASES (embedded — no external skill)
Triad: Functional (QA) · Technical (DevTools) · Data (Coverage)
Generates 20+ cases → writes cases.csv + yaml/ → HITL: confirm list
PHASE 2 — BROWSER EXECUTION (human watches live)
Per step: screenshot before → action → screenshot after → dev tools capture
Retry 3x on minor failures. CHECKPOINT on real blockers.
Blocker → writes MD immediately with console + network + perf dump.
Human can speak at any point. Reacts immediately.
PHASE 3 — ANDIE-FRAMES REVIEW (embedded)
Reads all blocker MDs → cross-category pattern analysis
Writes FRAMES-REPORT.md + raven-queue.json → HITL: confirm before writing
--headed always. Never silent.---
run_id: · test_id: · status: BLOCKER · timestamp: · url: · step: ·
category: · raven_fixable: true|false · raven_tags: []
---
## Console at failure ## Network at failure ## Performance ## Screenshots
raven_fixable: true → element_not_found · css · broken_link · js_error · csp · mixed_content raven_fixable: false → auth_failure · 5xx · external_dependency · mfa
Returns JSON when called from another skill:
{
"run_id": "…", "status": "complete|failed|awaiting_hitl",
"pass_rate": 0.8, "failures": […],
"report_path": "docs/andie-frames/{run_id}/FRAMES-REPORT.md",
"raven_queue": "docs/andie-frames/{run_id}/raven-queue.json",
"hitl_pending": { "question": "…", "options": ["…"] }
}
If navigate(url) fails with permission error — full diagnosis printed:
ssh -N -L <port>:localhost:<port> user@host → use localhost:<port>/etc/hosts: 127.0.0.1 myapp.local → use myapp.local:<port>--runtime playwright — no URL restrictionsHard stop until URL passes navigate().
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub giggsoinc/raven --plugin raven