qa-plan
Skill2 starsChanged 14 days agoMITView on GitHub
Examines a User Story from a testing perspective and publishes the test plan baseline: conditions with declared techniques, risk levels, testing layers, automation blockers, and questions with assigned recipients.
22 other projects use a version of this.
Adopted by
Most recently taken up by
- striderZA/OpenCodeGameStudiostheir own version, first seen Nov 4, 2026
- Myriambs/argus-qatheir own version, first seen Nov 1, 2026
- matthull/my-skillstheir own version, first seen Oct 20, 2026
- Donchitos/Claude-Code-Game-Studiostheir own version, first seen Oct 19, 2026
- venus2099/codex-game-studiostheir own version, first seen Oct 17, 2026
- lucastosetto/dev-skillstheir own version, first seen Oct 15, 2026
Used with
Projects with it also use create-stories, story-done and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
lilangMaxSkillcreate-stories
Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.
Also in 11 projects that use this
lilangMaxSkillstory-done
End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.
Also in 11 projects that use this
- +10 more from lilangMax
Other versions22 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 22
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- striderZA/OpenCodeGameStudios★ 118same name
- cenconq25/claude-code-app-studio★ 40same name
- dawn840705/codex-code-studios★ 17same name
- lilangMax/ClaudeCodeGameStudios★ 8same name
- hongyuanc/codex-game-studios★ 5same name
- BenjaminG/ai-skills★ 4same name
- gonimar/claude-web-studio★ 4same name
- limoaCatherine/game-studio-harness★ 4same name
- uppadhyayraj/dq-awesomeqa★ 2same name
12 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository65 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- ask-mattSkill
- codebase-designSkill
- code-reviewSkill
- diagnosing-bugsSkill
- domain-modelingSkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- implementSkill
- implement-specSkill
- improve-codebase-architectureSkill
- prototypeSkill
- prSkill
- researchSkill
- retroSkill
- setup-matt-pocock-skillsSkill
- tddSkill
- teachSkill
- to-questionnaireSkill
- to-specSkill
- to-ticketsSkill
- triageSkill
- wait-whatSkill
- wayfinderSkill
- wizardSkill
- writing-for-agentsSkill
- ask-mattSkill
- codebase-designSkill
- code-reviewSkill
- diagnosing-bugsSkill
- domain-modelingSkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- implementSkill
- implement-specSkill
- improve-codebase-architectureSkill
- prototypeSkill
- prSkill
- researchSkill
- retroSkill
- setup-matt-pocock-skillsSkill
- tddSkill
- teachSkill
- to-questionnaireSkill
- to-specSkill
- to-ticketsSkill
- triageSkill
- wait-whatSkill
- wayfinderSkill
- wizardSkill
- writing-for-agentsSkill
- ask-refinementSkill
- bootstrap-contextSkill
- configure-refinementSkill
- meeting-minutesSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.
0
Common
Most of the 20 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 36
Load: Read the US, CONTEXT.md, domain ADRs, TEST-DESIGN.md, and invoke the Skill tool for requirements-rigor.
- Distinctive: line 51
Synthesize: Write the plan following TEMPLATE.md: matrix, risk analysis, P1 scenarios in Gherkin with self-audit, automatability audit, …
“Common” is measured: kept by at least 6 in 10 of the 20 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
QA Plan
Derive the baseline test plan for a User Story through socratic examination: test conditions with declared design techniques, expected results asserted only when specifications support them, and questions directed to whoever can resolve the rest. You do not ask "is this story well-written?", that is /refine-story. You answer: what can break, how do I prove it works, and what must exist for me to execute that proof.
A mid-level QA engineer should be able to implement tests directly from this artifact; a senior QA engineer should agree with its prioritization.
US: $ARGUMENTS
Three-layer boundary
Deriving unwritten conditions is the essence of QA, provided it follows established methods. Therefore, the boundary here operates across three layers; the foundation remains requirements-rigor. Every condition in the plan belongs to exactly one layer:
[SPECIFIED: excerpt](pt-BR:[ESPECIFICADO: trecho]): condition and expected result originate directly from text. Cite the source.[DERIVED: technique](pt-BR:[DERIVADO: técnica]): the condition follows from a test design technique applied to what was specified. Always name the technique; a condition without a declared technique is a guess and must not enter. Expected results may only be asserted if they follow logically from the specification.[UNDEFINED -> Question n](pt-BR:[INDEFINIDO → Pergunta n]): a legitimate condition whose expected result the specification does not define. The condition enters the matrix; the result becomes a numbered question.
The layer qualifies the pair, condition and expected result, and the two halves may sit in different layers: a condition derived from boundary analysis whose outcome the text does state carries [DERIVED: technique] as its origin and [SPECIFIED: excerpt] on the result. What [SPECIFIED] claims on a result is strict: the cited excerpt states that outcome in words. An excerpt merely compatible with the outcome does not specify it, and an outcome nobody wrote is [UNDEFINED -> Question n] however obvious it looks.
A result that an open question asks about is never also asserted. Asking what happens and answering it in the same plan hands the reader two answers with nothing to choose between them, and it is the undefined half that is true: the question exists because the specification is silent. The open questions section is where this becomes checkable rather than a matter of care: each question lists the conditions whose expected result waits on its answer, so the two lists are read against each other, and a condition a question names carries [UNDEFINED -> Question n] in its result. A question that settles a layer, an automation blocker or the regression impact says so instead of listing a condition, because those leave the result alone.
Quick test: "which technique generated this condition, from which excerpt does it stem, and does that excerpt state the outcome I wrote?" If any of the three cannot be answered, the condition stays with its result undefined, or leaves the plan.
Before starting
Read docs/agents/refinement.md in the workspace: it defines the operating mode (with or without code), language (en-US or pt-BR, default en-US), and publishing paths. The mode dictates who answers architectural questions: with code, you resolve them by inspecting the codebase; without code, the engineering team resolves them via questionnaires. Socratic examination and the QA plan are authored in the configured language. If the file is missing, request /configure-refinement and stop.
Steps
- Load. Read the US,
CONTEXT.md, domain ADRs, TEST-DESIGN.md, and invoke the Skill tool forrequirements-rigor. If.scratch/<slug>/spec.mdexists from/refine-story, start from it: decisions from that session already answer many questions. Without this file, treat the US as unrefined, even ifStatus:says READY. Completed when: testability triage is stated in a single line: TESTABLE (every expected outcome has an observation point and no dependencies are pending confirmation), TESTABLE WITH RESERVATIONS (conditions can be derived, but at least one outcome lacks an observation point or depends on unconfirmed dependencies), or NOT TESTABLE. - Triage. NOT TESTABLE (criteria fail to describe observable behavior: exclusively tasks, or subjective terms without metrics across all criteria): explain what is missing, list 3 to 5 minimal questions, and recommend
/refine-story. Stop here; analyzing untestable material produces facade plans. If the US has not undergone refinement, state this and proceed, noting that many questions would be resolved by/refine-story. Completed when: triage is declared. - Derive conditions. For each criterion, apply applicable techniques from TEST-DESIGN.md, avoiding forcing inapplicable techniques, and review silent angles, reporting only applicable ones. Build the matrix: condition, origin, expected result or
[UNDEFINED -> Question n], priority, layer. Undefined conditions remain in the matrix: visible future coverage is far better than hidden gaps. Number questions in a single sequence across PO and DEV combined, so[UNDEFINED -> Question n]resolves unambiguously. Every number the matrix points to is written out as a question with its recipient, DEV questions included, even though those never enter the PO round: a pointer to a question that exists only as a promise of a questionnaire leaves the reader of the matrix with no way to learn what is undefined. Priority rationales (half-line per condition) go in a list within the risk analysis section, not inside the table. Completed when: every condition has a declared origin, every[UNDEFINED]has an assigned question number, every number in the sequence exists as a written question carrying recipient PO or DEV, and the condition numbers the questions list match, one for one, the conditions whose result is undefined. - Search for facts before asking. Separate questions by recipient. PO: undefined expected behavior. DEV: architecture, observability and API error response on outcomes stated in specifications, testing layer, isolation of external dependencies, time control, test data provisioning, persistence after failure, technical idempotency. Search workspace sources (
CONTEXT.md, ADRs, previous stories in.scratch/, attached documents): a written specification settles an expected result with source citation, and architectural documentation settles a defined layer, observation point, automation blocker, or regression impact. In code mode, dispatch a subagent to inspect the codebase for DEV questions (is notification synchronous or asynchronous? is there a lock on approval? does a mock exist for the external system?) and for existing code behavior on open PO questions: code facts settle testing layers, observation points on outcomes stated in specifications, automation blockers, and regression impact, with source citation, while any outcome no specification states in words stays[UNDEFINED -> Question n]for PO with the code behavior cited as context or recommendation base in the question. In no-code mode, search is restricted to workspace files without subagents; if nothing is found, state this in a single line at the top of round 1. Completed when: each question is marked as answered by a source or open with assigned recipient, and every matrix row whose outcome no specification states in words carries[UNDEFINED -> Question n](or[INDEFINIDO → Pergunta n]in pt-BR). - Examine PO. Invoke the Skill tool for
socratic-examination. The question round accompanies the current matrix, as questions reference specific conditions. The frontier consists of PO questions, blocking items first (those that unblock P1 conditions), each with a recommended answer when sources provide grounding; when absent, provide "no recommendation" (or "sem recomendação" in pt-BR) and options. PO answers update the matrix immediately. Challenge terms against the glossary, but record inCONTEXT.mdonly what the PO resolves. Completed when: PO question frontier is empty, or PO requests closing. - Synthesize. Write the plan following TEMPLATE.md: matrix, risk analysis, P1 scenarios in Gherkin with self-audit, automatability audit, regression impact based strictly on existing system documentation (without context, list impact questions for DEV), remaining questions by recipient, coverage verdict.
Completed when: file exists at path defined by
docs/agents/refinement.mdwith final disclaimer present. - Route open items. Open DEV questions in no-code mode and open PO questions that could not be answered: write one questionnaire per recipient following
QUESTIONNAIRE.mdinrequirements-rigor, alongside the plan, and link files from open questions. Completed when: no open question remains without a recipient or questionnaire. - Report. Verdict, where the plan was published, count of executable P1 conditions, and what each questionnaire unblocks.
Final notice
Published artifacts only. A triage that stops the workflow and an examination round publish nothing, so they carry no notice: the notice qualifies an artifact someone may circulate.
⚠️ This output provides the analytical baseline for a test plan, not the final test plan. Decisions on coverage, prioritization, and effort belong to the QA team, with validation from PO (undefined behaviors) and Dev (architecture and layers).
In a pt-BR workspace:
⚠️ Este output é a base analítica do plano de teste, não o plano final. A decisão de cobertura, priorização e esforço é do time de QA, com validação de PO (comportamentos indefinidos) e Dev (arquitetura e camadas).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

