By andreykuzin
Persona-driven E2E testing methodology with API-first / browser-second layering, fixed-email persona catalog, and append-only Run #N walkthrough journal. Bundles the qa-persona skill + slash commands for init, persona CRUD, feature-iteration, browser walkthrough, and bug-to-issue promotion.
Promote a row from bugs.md to a GitHub issue via gh CLI; back-link the issue number into the bug tracker.
Bootstrap qa-persona on this codebase — runs Phases 1–4 (study → personas → catalog → Layer 1 scaffold) with stop-and-confirm gates.
Map a shipped feature into qa-persona coverage — propose new scenarios across A–G, scaffold runners, stage the next Run
Add, remove, or edit a persona — keeps personas.md and seed-personas.sh in lockstep, refuses to silently drop emails referenced by scenarios.
Drive Layer 2 (browser walkthrough) for one or more scenarios — capture screenshots, fill in the Run
Use when promoting a row from docs/qa-persona/bugs.md to a GitHub issue via gh CLI; back-links the issue number into the bug tracker row. Refuses if the bug was already promoted.
Use when bootstrapping persona-driven E2E testing on a fresh codebase — runs Phases 1–4 (codebase study → personas → scenario catalog → Layer 1 bash scaffold) with stop-and-confirm gates.
Use after every feature ship to map the new feature into qa-persona coverage — proposes new scenarios across A–G, scaffolds runners, stages the next Run
Use when adding, removing, or editing a persona in the qa-persona catalog — keeps personas.md and seed-personas.sh in lockstep, refuses to silently drop emails referenced by scenarios.
Use when driving Layer 2 (browser walkthrough) for one or more catalog scenarios — captures screenshots into evidence/, fills in the Run
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
/qa-persona:init running against listmonk — value-loop summary and persona table from the 2026-05-12 dogfood run. Run vhs scripts/demo.tape to regenerate.
End-to-end testing for multi-user SaaS apps, driven by AI-generated personas with goals, scope, and a point of view. Catches the bugs unit tests can't.
You ship a feature. Pytest passes. CI is green. You demo it internally and everything looks fine.
A real customer opens it the next morning and gets stuck on step three.
This happens because unit tests answer "does this function return the right value." They don't answer "did the right person see the right thing at the right time, and could they actually do something useful with it." That second question is where SaaS apps with more than one type of user — buyers and sellers, admins and managers and contributors, requesters and approvers — go wrong.
The gap is bigger than people think. On the B2B connectivity marketplace this methodology was extracted from, three persona walkthroughs surfaced six bugs that 200+ pytest tests had missed: a 500 in the accept-proposal path, two status-machine bugs that only triggered on the second idempotent call, three UX bugs that were technically "working" but unusable in practice.
If your tests live in tests/test_*.py and your bugs live in customer support tickets, the gap between them is what qa-persona is for.
qa-persona tests your app the way real users would use it.
You don't write test_create_request_returns_201. You write a persona — Sarah, the network engineer at Acme Networks, who has $8k/month to spend and needs network capacity provisioned to a new site — and an AI agent drives Sarah through your system end to end. First through the API (fast, deterministic, proves the business loop closes). Then through the browser (catches the "works but unusable" UX gaps the API tests can't see).
Each persona is a real character, not a credential:
[email protected] is the same Sarah in every test run. The product evolves; she stays — so coverage compounds across releases instead of starting over.Three to five personas usually cover the value loop. The catalog grows with the product: every new feature ship triggers an iterative re-run that revisits affected personas, appends a new run to the walkthrough log, and updates the bug tracker. The catalog never shrinks.
Tests run in two layers, in this order:
API automation first. Fast bash scenarios, ~10–30 seconds each, that prove the business loop actually closes. Curl the API, query the DB, assert the lifecycle truth table. If a Layer 1 fails, it's a backend bug — full stop.
Browser walkthrough second. Once Layer 1 is green, drive the same scenario through the real UI in a headless browser. Anything that fails here is a UX bug — the data is right, the human can't get to it.
Mixing the two layers conflates failure modes. API-first separates correctness from usability so each layer's feedback is pure.
qa-persona is shipped as a Claude Code plugin. Three install paths, in order of how often they're the right answer:
User-level (recommended — works across every project):
git clone https://github.com/andreykuzin/qa-persona.git \
~/.claude/plugins/cache/local/qa-persona
Then add ~/.claude/plugins/cache/local/qa-persona to pluginPaths in ~/.claude/settings.json.
Per-project:
git clone https://github.com/andreykuzin/qa-persona.git .claude/plugins/qa-persona
Marketplace (self-hosted, today):
In an active Claude Code session, run these two slash commands:
/plugin marketplace add andreykuzin/qa-persona
/plugin install qa-persona@qa-persona-marketplace
The repo is registered as its own single-plugin marketplace via .claude-plugin/marketplace.json — works today, before any Anthropic Plugin Directory listing.
npx claudepluginhub andreykuzin/qa-persona --plugin qa-personaComprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Tools to maintain and improve CLAUDE.md files - audit quality, capture session learnings, and keep project memory current.
Unity Development Toolkit - Expert agents for scripting/refactoring/optimization, script templates, and Agent Skills for Unity C# development
Complete creative writing suite with 10 specialized agents covering the full writing process: research gathering, character development, story architecture, world-building, dialogue coaching, editing/review, outlining, content strategy, believability auditing, and prose style/voice analysis. Includes genre-specific guides, templates, and quality checklists.
Comprehensive .NET development skills for modern C#, ASP.NET, MAUI, Blazor, Aspire, EF Core, Native AOT, testing, security, performance optimization, CI/CD, and cloud-native applications
Complete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use