Andie frames
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.From its SKILL.md
npx -y skills add giggsoinc/raven --skill andie-framesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.9 KB, as published. Nobody here has run it
Andie-Frames
AI browser testing you watch live. Like UiPath — but Claude drives it.
QUICK START
/andie-frames https://your-app.com
One-time setup — pick one:
- Chrome (recommended): Install Claude-in-Chrome extension → open a regular Chrome window → connect it
- Playwright fallback:
npm i -g playwright && npx playwright install chromium
During 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 |
WHAT IT TESTS (20+ cases auto-generated)
| 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 |
WHAT GETS CREATED
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
CREDENTIALS — NEVER HARDCODED
Reference by key name only. Resolution order (first match wins):
.envin project →~/.env→ Lockey MCP → AWS SSM → GCP Secret Manager → Vault → human prompt (masked)
BUSINESS CONTEXT & SCOPE DOCUMENTS
Andie-Frames accepts scope input in any format. The richer the context, the smarter the generated test cases.
Scope resolution order (first match wins, all merged)
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?
How scope shapes test cases
| 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 |
Document parsing
- PDF / DOCX / PPTX — extracted via
anthropic-skills:pdf,anthropic-skills:docx,anthropic-skills:pptx - XLSX / CSV — parsed directly; existing test case rows imported as-is
- MD / TXT — read directly
- Multiple docs are merged — conflicts resolved by taking the union
Scope is stored in run state and printed in FRAMES-REPORT.md under Scope Used.
INVOCATION OPTIONS
/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
FLOW
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
RUNTIME RULES
- Browser is always visible. Never headless. Human watches every step.
- Playwright fallback =
--headedalways. Never silent. - CHECKPOINT is non-blocking. Human can use Claude for other things while deciding.
- Human input overrides everything. Any message mid-run is acted on immediately.
BLOCKER MD (Raven-readable frontmatter)
---
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
HITL GATES
- After input parse — confirm task block before browser opens
- After case generation — confirm case list before execution
- After full run — confirm FRAMES-REPORT before writing
ANDIE SPECIALIST INTERFACE
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": ["…"] }
}
URL BLOCKED?
If navigate(url) fails with permission error — full diagnosis printed:
- SSH tunnel:
ssh -N -L <port>:localhost:<port> user@host→ uselocalhost:<port> - HTTPS proxy: nginx/caddy with real cert → use the domain
/etc/hosts:127.0.0.1 myapp.local→ usemyapp.local:<port>- Playwright:
--runtime playwright— no URL restrictions
Hard stop until URL passes navigate().