Designing Tests
CloudAI-X/opencode-workflow
Guides test strategy, TDD/BDD approaches, test coverage planning, and testing best practices.
Build a single sprint or release test plan. An agent skill from petrkindlmann/qa-skills.
$ npx skills add petrkindlmann/qa-skills --skill test-planning -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install petrkindlmann/qa-skills test-planning --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/test-planning .claude/skills/test-planning && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "test-planning" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-planning into .claude/skills/test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-planning", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-planningType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add petrkindlmann/qa-skills --skill test-planning -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install petrkindlmann/qa-skills test-planning --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/test-planning .agents/skills/test-planning && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "test-planning" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-planning into .agents/skills/test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-planning", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petrkindlmann/qa-skills --skill test-planning -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install petrkindlmann/qa-skills test-planning --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/test-planning .cursor/skills/test-planning && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "test-planning" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-planning into .cursor/skills/test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-planning", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/petrkindlmann/qa-skills.git --path skills/test-planning--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add petrkindlmann/qa-skills --skill test-planning -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install petrkindlmann/qa-skills test-planning --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/test-planning .gemini/skills/test-planning && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "test-planning" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-planning into .gemini/skills/test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-planning", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install petrkindlmann/qa-skills test-planningInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add petrkindlmann/qa-skills --skill test-planning -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/test-planning .github/skills/test-planning && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "test-planning" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-planning into .github/skills/test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-planning", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petrkindlmann/qa-skills --skill test-planning -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install petrkindlmann/qa-skills test-planning --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/test-planning .opencode/skills/test-planning && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "test-planning" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/test-planning into .opencode/skills/test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-planning", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
test-planningBuild a single sprint or release test plan. An agent skill from petrkindlmann/qa-skills.
Test Planning is an agent skill from petrkindlmann/qa-skills. Build a single sprint or release test plan. Covers feature decomposition into testable scenarios, requirements-to-test coverage mapping, effort estimation by test type, prioritization matrices (risk × effort), resource allocation, and scheduling with buffers. Use when: "sprint test plan," "release test plan," "what to test this sprint," "test estimation," "coverage mapping." Not for: multi-quarter strategy — use test-strategy. Not for: ranking areas by risk — use risk-based-testing. Not for: the go/no-go decision…
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/plan-documents.md`, `references/tracking-formats.md` and `references/workflow-templates.md`).
It sits in Testing & QA, covering Test strategy, Feature launches and release readiness and Test generation. The repository describes itself as: 50 QA and test-automation skills for Claude Code, Codex, Cursor, and any Agent Skills Standard runtime. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b3bb61b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Test Planning loads about 4.2k tokens when it runs, and up to ~7.3k if it reads all its reference files. Until then it costs about 158 tokens; SKILL.md has 2,281 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from petrkindlmann/qa-skills at commit b3bb61b, republished under its MIT licence (© petrkindlmann). 2,281 words, ~4,217 tokens.
.claude/skills/test-planning/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.<objective>
Create actionable test plans for sprints and releases. A test plan answers four questions: what to test, how deeply, who does it, and when it must be done. The output is a living document that tracks progress, not a bureaucratic artifact filed and forgotten. A plan that schedules 100% of available time fails the moment the first bug is found — buffer and prioritization are what make it survive contact with reality.
</objective>
| Situation | Go to |
|---|---|
| Plan a single sprint | Steps 1-6 below, then the 1-page sprint template in references/plan-documents.md |
| Plan a release | Release template in references/plan-documents.md; the go/no-go decision itself belongs to release-readiness |
| Track an in-flight plan / feed results back | references/tracking-formats.md (daily status + retrospective) |
| Decide what to cut when over capacity | Step 4 prioritization matrix |
Before writing a test plan, gather context. Check .agents/qa-project-context.md first -- if it exists, use it as the foundation and skip questions already answered there.
risk-based-testing.A test plan without traceability to requirements is a guess. Every user story, acceptance criterion, or requirement must map to at least one test case. Gaps in this mapping are untested requirements -- the most dangerous kind of risk.
Testing expands to fill available time if unbounded. Set a time box for each activity and stick to it. When the window is too short, the prioritization matrix determines what gets cut -- not gut feeling.
A payment flow change and a tooltip fix do not deserve equal effort. Use the risk x effort matrix to allocate depth: some features get full regression, others a smoke test, some nothing if low-risk and unchanged.
Plans that schedule 100% of available time fail when bugs are found. Allocate only 70-80% of the testing window to planned work and explicitly reserve the remaining 20-30% for bug verification, re-testing, and unplanned investigation. If buffer is not a named line in the plan, you do not have one.
Developers need to know what gets tested to write testable code. Product managers need coverage visibility to make release decisions. Publish the plan where the team can see it.
The most-reused part of any plan is its gate. Make it explicit, not buried: entry = code-complete on staging + existing suite green + test data seeded; exit = every HIGH-risk area covered + no open P0/P1 + zero unexplained GAP rows in the coverage matrix. Everything else is detail around these two checkpoints.
The six workflow steps each have a fill-in-the-blank scaffold. The decision prose stays here; the copy-paste templates (decomposition, coverage matrix, estimation worksheet, prioritization matrix, allocation table, schedule) live in references/workflow-templates.md.
Break each in-scope feature into testable units. A "testable unit" is a specific behavior that can be verified with a clear pass/fail outcome. Walk every feature against these scenario categories so none gets skipped:
See references/workflow-templates.md for the decomposition template and a worked "User Profile Edit" example that exercises all six categories.
AI decomposition cross-check. When an agent decomposes features, have it immediately map its own scenarios back against the Step 2 coverage matrix. Any requirement with no scenario, or any scenario category above with no entry, is a decomposition gap the agent must surface before estimation — this is how you catch the agent's blind spots, not after CI does.
Create a traceability matrix that maps every requirement to its test cases. See references/workflow-templates.md for the coverage matrix template.
Rules for the coverage matrix:
Estimate effort for each test type using historical data. If no historical data exists, use the reference estimates below and calibrate after the first sprint.
Estimation reference (per test case):
| Test Type | Write Time | Execute Time | Maintenance (per quarter) |
|---|---|---|---|
| Unit test | 0.5 hr | < 1 sec | 5 min |
| Integration test | 1 hr | 5-30 sec | 15 min |
| E2E test (Playwright/Cypress) | 2-3 hours | 30s-2 min | 30 min |
| Manual test case (write) | 0.25 hr | 5-15 min per execution | 10 min |
| Exploratory session (charter) | 15 min | 1.5 hrs per session | N/A |
| Accessibility review (manual) | 0.5-1 hr per area | included in write | 15 min |
| Visual regression test | 30-60 min | 10-30 sec | 20 min (baseline updates) |
| Performance test (k6 script) | 2-4 hours | 5-30 min per run | 30 min |
| Prompt regression / LLM eval | 30-60 min per case | 30 sec - 2 min (with API cost) | 20 min |
| Setup & test data (per feature) | 0.5-2 hrs | one-time | re-seed per env |
Write Time is authoring only. The "Setup & test data" row is the line planners most often omit — environment, fixtures, and mock configuration routinely run 20-40% of total effort, so budget it as a real line rather than discovering it mid-sprint.
AI authoring trade-off. Using an agent to author tests cuts Write Time by roughly 40-60%, but add a Review Time line of similar size per case — Bolton's "AI productivity paradox" (2026) is that the speed-up evaporates when an agent ships plausible-but-broken tests that pass a casual review and fail in CI. See
ai-test-generationStep 7 for the review checklist andai-qa-reviewfor the smell taxonomy.
Test-smells review. ISTQB's CTAL-AT v2.0 (May 2026) names test smells as a planning concern. Budget a recurring 30-min "test-smells review" per sprint against the taxonomy in
ai-qa-review— cheap, and it finds maintenance debt before it compounds.
Use the sprint estimation worksheet in references/workflow-templates.md to roll per-case estimates up to a capacity-utilization figure (target: 70-80%, leaving 20-30% buffer).
When the estimated effort exceeds available capacity (it usually does), use the risk x effort matrix to decide what to cut. See references/workflow-templates.md for the full matrix grid.
For each test case, plot it on the matrix using the risk score from risk-based-testing and the effort estimate from Step 3, then consume capacity in priority order: DO FIRST → DO SECOND → DO THIRD → DEFER → SKIP.
Tie-break rule: within HIGH risk, low-effort beats high-effort — a HIGH-risk / low-effort test (DO FIRST) outranks a HIGH-risk / high-effort test (DO THIRD), because it buys the most risk reduction per hour. Medium-risk items defer before you cut any HIGH-risk coverage; low-risk items defer or skip entirely. Never cut buffer to fit more planned work.
Assign testing work based on skill match and availability.
Allocation principles:
See references/workflow-templates.md for the allocation table format.
Map testing activities to the sprint timeline. Testing should not be back-loaded to the last two days. See references/workflow-templates.md for the 2-week sprint schedule template.
Key scheduling rules:
Full copy-paste plan documents live in references/plan-documents.md:
release-readiness.A test plan is useless if nobody checks it after Day 1. Track progress daily, and feed the results back into future planning at sprint end.
references/tracking-formats.md.references/tracking-formats.md; feed these data points into the next sprint's estimates.Treating every feature with equal depth wastes effort on low-risk areas and under-tests critical paths. Always run the prioritization matrix (Step 4) before allocating effort. For the full risk methodology, see risk-based-testing.
Scheduling 100% of available hours for planned activities leaves no time for verification when bugs are found. Reserve 20-30% as buffer and track consumption daily.
Leaving all testing for the last two days rushes coverage and surfaces bugs too late to fix. Start testing as features become available; continuous testing beats batch testing at sprint end.
A 30-page plan filed and forgotten helps nobody. The plan should be one page for a sprint, actively tracked, and updated daily. If the plan is not changing, nobody is using it.
Effort estimates pulled from thin air are unreliable. Track actual time spent — broken out by test type — and use that data for future estimates. After 2-3 sprints, estimates become reliable.
Environment setup, test data creation, and mock configuration can consume 20-40% of testing effort. Include the "Setup & test data" row from Step 3 in the estimate or the plan will always run over.
A single tester covering all critical-path work is a failure point. Ensure at least two people can cover critical-path testing.
Open the produced plan and confirm: every in-scope ticket ID from the sprint board appears in the Scope table; the coverage matrix has zero unexplained GAP rows (each GAP carries an accept/defer note); allocated capacity sums to 70-80% with a named buffer line; and the entry/exit criteria checklists are filled, not placeholder. If any of these fails, the plan is not done.
references/)© petrkindlmann, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in skills/test-planning of petrkindlmann/qa-skills.
Open the folder on GitHubat commit b3bb61b
Test Planning next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Test Planning this skillpetrkindlmann/qa-skills | 168 | — | ~4.2k | Automated safety check: Pass | MIT | |
| Designing TestsCloudAI-X/opencode-workflow | 275 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Automated Test Planningtestdouble/han | 279 | — | ~6.7k | Automated safety check: Pass | MIT | |
| Prd V07 Test Planningmattgierhart/PRD-driven-context-engineering | 180 | — | ~3.5k | Automated safety check: Notes | MIT | |
| Manual Test Planningtestdouble/han | 279 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Test Experteinverne/dotfiles | 121 | — | ~2.3k | Automated safety check: Pass | GPL-3.0 |
CloudAI-X/opencode-workflow
Guides test strategy, TDD/BDD approaches, test coverage planning, and testing best practices.
testdouble/han
Produce a standalone test plan by analyzing code for test coverage gaps and edge cases.
mattgierhart/PRD-driven-context-engineering
Define test cases BEFORE implementation, ensuring every API, business rule, and user journey has verifiable acceptance criteria during PRD v0.7 Build Execution.
testdouble/han
Produce a plain-language manual test plan from the context supplied to it — an executive summary, a high-level list of named tests, and a detail section per test with the steps a person follows by…
einverne/dotfiles
Testing methodologies, test-driven development (TDD), unit and integration testing, and testing best practices across multiple frameworks.
HoangNguyen0403/agent-skills-standard
Audit test coverage health, gaps, and QE debt for Jira stories or epics.
petrkindlmann/qa-skills
Test for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508).
petrkindlmann/qa-skills
Goal-driven E2E testing where a browser agent (Playwright MCP / computer-use) reads a natural-language goal and explores the app via the accessibility tree to assert outcomes — no pre-written script.
petrkindlmann/qa-skills
Use AI to write NEW test code from specs, PRDs, user stories, code diffs, bug reports, or OpenAPI specs.
petrkindlmann/qa-skills
Test REST and GraphQL APIs with Playwright APIRequestContext, Supertest, or standalone HTTP clients.
petrkindlmann/qa-skills
Design CI/CD pipelines that run test suites. An agent skill from petrkindlmann/qa-skills.
petrkindlmann/qa-skills
Test for regulatory compliance: GDPR/CMP consent verification, Google Consent Mode v2, Global Privacy Control (GPC), CCPA/US state opt-out, EU AI Act Article 50 transparency, Better Ads Standards…
Categories
Build a single sprint or release test plan. An agent skill from petrkindlmann/qa-skills. Test Planning is an agent skill from petrkindlmann/qa-skills. Build a single sprint or release test plan.
Test Planning fits situations like: : sprint test plan; release test plan; what to test this sprint; test estimation.
Run `npx skills add petrkindlmann/qa-skills --skill test-planning -a claude-code`. Or copy the skill folder (skills/test-planning in petrkindlmann/qa-skills) into .claude/skills/test-planning in your project. Claude Code loads it when a task matches its description.
Run `npx skills add petrkindlmann/qa-skills --skill test-planning -a codex`. Or copy the skill folder (skills/test-planning in petrkindlmann/qa-skills) into .agents/skills/test-planning in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add petrkindlmann/qa-skills --skill test-planning -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-planning, .gemini/skills/test-planning, .github/skills/test-planning and .opencode/skills/test-planning in your project.
SKILL.md names no scripts, command-line tools or credentials: Test Planning is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Test Planning is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Test Planning: Designing Tests (CloudAI-X/opencode-workflow, 275 stars), Automated Test Planning (testdouble/han, 279 stars), Prd V07 Test Planning (mattgierhart/PRD-driven-context-engineering, 180 stars) and Manual Test Planning (testdouble/han, 279 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
petrkindlmann (a GitHub user) maintains it in petrkindlmann/qa-skills, which has 168 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on June 10, 2026.
Source: petrkindlmann/qa-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.