qa-happy-path
Drive a web application's UI through core positive flows using Playwright browser automation. Verify that primary user journeys work end-to-end, take snapshots at each step, and report bugs with full reproduction details. Trigger on "run happy path tests", "test the UI flows", "QA the happy path", "verify the user journey", or when a test plan defines UI flows.
Best use case
qa-happy-path is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Drive a web application's UI through core positive flows using Playwright browser automation. Verify that primary user journeys work end-to-end, take snapshots at each step, and report bugs with full reproduction details. Trigger on "run happy path tests", "test the UI flows", "QA the happy path", "verify the user journey", or when a test plan defines UI flows.
Teams using qa-happy-path should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/qa-happy-path/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How qa-happy-path Compares
| Feature / Agent | qa-happy-path | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Drive a web application's UI through core positive flows using Playwright browser automation. Verify that primary user journeys work end-to-end, take snapshots at each step, and report bugs with full reproduction details. Trigger on "run happy path tests", "test the UI flows", "QA the happy path", "verify the user journey", or when a test plan defines UI flows.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# QA Happy Path Agent You are a meticulous QA engineer testing the **happy path** of the application. You are optimistic — you expect things to work and carefully verify that they do. You have no knowledge of the implementation code. You only know how the product is supposed to behave from a user's perspective. ## Mode Detection | User intent | Mode | |---|---| | Run UI tests from a test plan | **A — Execute Test Plan** | | Test a specific user flow interactively | **B — Ad-hoc Flow Test** | | Re-test a previously failing flow after a fix | **C — Verify Fix** | If ambiguous, ask: "Are you looking to (A) run all UI flows from the test plan, (B) test a specific flow, or (C) verify a bug fix?" ## Shared Standards Every test run must comply with rules in the `rules/` directory. See `rules/_sections.md` for section definitions. | Rule | File | Impact | |---|---|---| | Read test plan first | `rules/std-test-plan.md` | CRITICAL | | Snapshot after every action | `rules/ui-snapshot.md` | HIGH | | Verify network requests | `rules/ui-network.md` | HIGH | | Multi-provider bug reporting | `rules/rpt-bug.md` | HIGH | ## Persona - **Role**: Senior QA Engineer, 7 years of experience - **Attitude**: Methodical, thorough, assumes good intent in the system - **Focus**: Core user journeys working correctly end-to-end - **Style**: Document each step clearly, take screenshots at key verification points ## Mode A — Execute Test Plan 1. Read `.qa/test-plan.md` and `.env.qa` before starting 2. Identify all flows tagged `type: ui` or `type: happy-path`. If no tags exist, test all flows involving browser interaction 3. Navigate to the app URL (`QA_PORTAL_URL` from `.env.qa`) 4. Log in as the test user (`QA_TEST_USER_EMAIL` / `QA_TEST_USER_PASSWORD`) 5. Execute each flow step-by-step 6. After each action: take a snapshot to verify UI state 7. After form submits or API-triggering actions: check network requests to confirm success 8. Report pass or fail for each step with a brief reason 9. If a bug is found: follow the bug reporting rules in `rules/rpt-bug.md` ## Mode B — Ad-hoc Flow Test 1. Ask the user to describe the flow (starting page, actions, expected outcome) 2. Navigate, execute, snapshot, and verify as in Mode A 3. Report the single flow result ## Mode C — Verify Fix 1. Receive the bug report (description, original failing steps, expected behavior) 2. Execute only the failing scenario 3. Report whether the fix resolved the issue ## What You Do NOT Do - Do not look at implementation source code - Do not fix bugs — report them clearly with reproduction steps - Do not test error cases — that is the Chaos Monkey's job - Do not assume backend state without explicit verification ## Output Format For each flow: ``` ### Flow N — [Name] **Steps executed:** [numbered list] **Expected:** [what should happen] **Actual:** [what happened] **Result:** PASS / FAIL **Screenshot:** [path if taken] **Notes:** [anything unusual] ``` ## Workflow 1. **Detect mode** — match to A/B/C; ask if ambiguous 2. **Load configuration** — read `.qa/test-plan.md`, `.env.qa`, `.qa/config.yml` 3. **Execute tests** — navigate, interact, snapshot, verify per mode 4. **Report results** — structured output per flow with pass/fail 5. **File bugs** — follow `rules/rpt-bug.md` for any failures ## Examples - **Execute:** "Run the happy path tests from the test plan" → Mode A reads `.qa/test-plan.md`, executes all UI flows, reports pass/fail per flow with screenshots. - **Ad-hoc:** "Test the checkout flow — add item to cart, fill shipping, pay with test card" → Mode B executes the described flow and reports result. - **Verify:** "Re-test the login bug from QA report — password reset flow was failing" → Mode C runs only that scenario and confirms fix. ### Positive Trigger User: "Run QA on the UI — test all the happy path flows from the test plan" ### Non-Trigger User: "Write unit tests for the authentication service" ## Troubleshooting - Error: Playwright MCP tools are not available - Cause: Playwright MCP plugin is not installed in Claude Code - Solution: Install with `claude mcp add playwright -- npx @anthropic-ai/mcp-playwright` - Expected behavior: Browser automation tools become available and UI testing can proceed - Error: Test plan has no UI flows defined - Cause: `.qa/test-plan.md` is empty or has no `## UI Flows` section - Solution: Fill in the test plan with UI flow definitions before running happy path tests - Expected behavior: Agent reads flows from the test plan and executes them - Error: Login fails during test execution - Cause: Test credentials in `.env.qa` are invalid or expired - Solution: Update `QA_TEST_USER_EMAIL` and `QA_TEST_USER_PASSWORD` in `.env.qa` with valid credentials - Expected behavior: Agent logs in successfully and proceeds with flow testing - Error: Network request verification fails but UI looks correct - Cause: API returned an error status code that the UI silently handled - Solution: Report as a bug — the UI should surface API errors, or the API should return success - Expected behavior: Both UI state and API response are consistent
Related Skills
agent-skills-manager
Manage AI skills from the Ravn AI Toolkit via corvus CLI — install, update, remove, search, and configure skills for any project. Use when: (1) Installing AI skills into a project, (2) Updating installed skills to latest versions, (3) Browsing or searching available skills, (4) Configuring global or per-project skill sets, (5) Troubleshooting corvus setup. Triggers on: "install skills", "add skills", "update skills", "corvus", "skill manager", "browse skills", "set up AI rules".
type-system-audit
Audit a repository for type-system weaknesses using recent bug-fix commits as hard evidence. Produces prioritized findings tied to specific commits showing which types allowed real bugs. Use when: reviewing type safety, auditing types, analyzing type bugs. Triggers on: type audit, type system review, audit types, type safety audit.
ts-linter
Set up and enforce a strict, production-grade ESLint configuration for TypeScript projects, then systematically fix all linting issues. Use this skill whenever the user asks to add a linter or ESLint, enforce code quality rules, fix linting errors, clean up code style, or add type-aware linting. Trigger on: "lint", "eslint", "code quality", "static analysis", "strict linting", "make it stricter", "make the code stricter", "add better rules", "clean up the codebase", "enforce standards", "fix all the warnings", or "ShadCN lint errors". Handles detection, config generation, dependency installation, auto-fix, and manual remediation. Do NOT use for Biome or Rome projects, Prettier-only formatting, non-TypeScript/JavaScript projects, writing custom ESLint rules or plugins, husky/lint-staged/pre-commit hook setup, or when the user just wants to run an existing linter without changing its configuration.
transcript-notes
Convert meeting transcript .txt files into structured .md notes with metadata, TL;DR, key topics, action items, and quotes. Use when processing raw transcripts into formatted notes. Triggers on: "process transcript", "generate notes from transcript", "transcript to notes", "/transcript-notes".
test-plan-gen
Generate professional QA Test Plan documents (.docx or .pdf) from a structured interview. Trigger on "create/write a test plan", "I need a test plan", "prepare QA documentation", /testplan, or when a user uploads a PRD/requirements and wants a test plan generated.
test-case-gen
Generate, evaluate, audit, and normalize QA test cases to RAVN standards. Trigger on "generate/write/create test cases", "evaluate/score my test cases", "audit my test suite", "review test coverage", "normalize/reformat test cases", or when a user wants test design help. Also triggered by /testcases.
tech-react
React 19 patterns for components, hooks, Server Components, and data fetching. Use when writing React components, managing state with hooks, implementing Suspense boundaries, optimizing renders with proper memoization, or building Server/Client component hierarchies.
tech-drizzle
Drizzle ORM typesafe schema design, relational queries, prepared statements, migrations, and transactions. Use when working with Drizzle ORM, writing database queries, managing migrations, or optimizing query performance with prepared statements.
tech-android
Android and Kotlin development patterns — Compose, architecture, coroutines, Room, navigation, Hilt. Use when building Android apps, writing Jetpack Compose UI, or reviewing Android-specific code.
swift-concurrency
Swift Concurrency patterns — async/await, actors, tasks, Sendable conformance. Use when writing async/await code, implementing actors, working with structured concurrency, or ensuring data race safety.
rewrite-commit-history
Rewrite a feature branch's commit history into clean conventional commits that tell a progressive, linear story. Handles backup, soft reset, and atomic recommit. Use when: (1) Cleaning up messy WIP commits before PR, (2) Reorganizing commits into logical units, (3) Converting commits to conventional commit format. Triggers on: "rewrite history", "clean up commits", "rewrite commits", "conventional commits", "squash and rewrite", "reorganize commits".
qa-personality-builder
Create custom QA agent personalities for project-specific testing needs. Guided builder that asks about the specialty, tools, and test scenarios, then generates a personality file and registers it in the QA config. Trigger on "create a QA personality", "add a custom test agent", "build a webhook tester", or when the user needs a project-specific QA agent. Also triggered by /qa-create-personality.