Designing Tests
CloudAI-X/opencode-workflow
Guides test strategy, TDD/BDD approaches, test coverage planning, and testing best practices.
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…
$ npx skills add testdouble/han --skill manual-test-planning -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install testdouble/han manual-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/testdouble/han.git skills-src && mkdir -p .claude/skills && cp -r skills-src/han-coding/skills/manual-test-planning .claude/skills/manual-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 "manual-test-planning" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/manual-test-planning into .claude/skills/manual-test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-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/testdouble/han/tree/main/han-coding/skills/manual-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 testdouble/han --skill manual-test-planning -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install testdouble/han manual-test-planning --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .agents/skills && cp -r skills-src/han-coding/skills/manual-test-planning .agents/skills/manual-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 "manual-test-planning" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/manual-test-planning into .agents/skills/manual-test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-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 testdouble/han --skill manual-test-planning -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install testdouble/han manual-test-planning --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/han-coding/skills/manual-test-planning .cursor/skills/manual-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 "manual-test-planning" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/manual-test-planning into .cursor/skills/manual-test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-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/testdouble/han.git --path han-coding/skills/manual-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 testdouble/han --skill manual-test-planning -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install testdouble/han manual-test-planning --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/han-coding/skills/manual-test-planning .gemini/skills/manual-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 "manual-test-planning" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/manual-test-planning into .gemini/skills/manual-test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-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 testdouble/han manual-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 testdouble/han --skill manual-test-planning -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .github/skills && cp -r skills-src/han-coding/skills/manual-test-planning .github/skills/manual-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 "manual-test-planning" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/manual-test-planning into .github/skills/manual-test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-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 testdouble/han --skill manual-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 testdouble/han manual-test-planning --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/testdouble/han.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/han-coding/skills/manual-test-planning .opencode/skills/manual-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 "manual-test-planning" agent skill from https://github.com/testdouble/han/tree/main/han-coding/skills/manual-test-planning into .opencode/skills/manual-test-planning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "manual-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.
manual-test-planningProduce 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…
Manual Test Planning is an agent skill from 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 hand and the outcomes they should expect. Use when you want to create, draft, generate, or outline a manual test plan, manual QA steps, hands-on verification steps, or an acceptance walkthrough for a feature, change, branch, plan, or PR. When the plan holds more than five tests and at least two natural categories…
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/template.md`).
It sits in Testing & QA, covering Test strategy, Test generation and Code review. The repository describes itself as: Han: AI skills and agents for "Solo" product engineers and small teams. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit abba73a. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(git *)ReadGrepGlobWriteAgentBash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh")From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitbashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Manual Test Planning loads about 2.9k tokens when it runs, and up to ~3.5k if it reads all its reference files. Until then it costs about 250 tokens; SKILL.md has 1,674 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 testdouble/han at commit abba73a, republished under its MIT licence (© testdouble). 1,674 words, ~2,925 tokens.
.claude/skills/manual-test-planning/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude"cat .han/config.md 2>/dev/null || echo ""As your first action, use the Read tool on .han/config.md inside the personal config directory path above. A read
that returns no file is no personal configuration: continue silently. When that file or the project .han/config.md
probe supplies content, apply it per config-rule.md, which governs precedence
between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Collect everything supplied to the skill call: the arguments, the conversation so far, and any files, plans, specs,
diffs, or pull requests referenced. Read referenced files with Read. If a branch, PR, or change set is referenced and
git is available, use git diff, git log, and git status to understand what changed; if git is unavailable or the
directory is not a repository, skip the git commands and work from the rest of the supplied context. The git detail
informs your understanding only — none of it appears in the plan.
If no context was supplied at all, ask the user what they want a manual test plan for, and wait for their answer before continuing.
From the context, list every candidate outcome a person can verify by hand. An outcome qualifies only when all three hold:
Internal refactors, dependency bumps, code style changes, and behavior only observable in test suites or logs the person cannot see do not qualify.
If the list is empty: tell the user clearly that nothing in the provided context can be manually tested, and ask whether there is additional context to consider. If they supply more, return to Step 1 with the combined context. If they say there is none, end the skill with that statement as its only output — do not write a file and do not produce a document.
Turn the outcomes into a list of named tests:
Invoke han-communication:readability-guidance to source the shared readability standard into your context, then
draft the document using the template at references/template.md:
When Step 3 produced categories, organize both Tests at a Glance and Test Details under the category names, following the categorized layout in the template: each category is a heading in both sections, its tests sit beneath it, and the categories and tests appear in the same order in both sections, BECAUSE the reader jumps between the glance list and the details by matching names.
Apply the Operating Principles as you write: short sentences, plain words, no technical detail, expected outcomes in every detail section.
Dispatch the han-core:adversarial-validator agent (one Agent call) against the draft before writing any file,
BECAUSE a plan that reaches the tester with wrong steps or unpromised outcomes wastes their run and hides real
failures. Embed the full draft in the agent's prompt, along with the scope of the context it was derived from (the
file paths, branch, plan, or description from Step 1), and instruct it to try to disprove, for every test:
Apply every confirmed finding to the draft:
If every test is removed, return to the empty-list handling in Step 2: state that nothing in the context can be manually tested and ask for more context. If a finding turns on ambiguity in the context rather than an error in the draft, surface it to the user with a recommended resolution instead of silently choosing.
Write the document to manual-test-plan.md in the current working directory, unless the user supplied a different
path — the user's path wins.
If manual-test-plan.md already exists, do not overwrite it. Pick a new unique filename derived from the current
context: prefix the default name with one or two short plain-language words naming what the plan covers (for example,
sign-in-manual-test-plan.md or checkout-manual-test-plan.md). Keep the name short, and always include
manual-test-plan in it, BECAUSE the tester finds these documents by that name. Check the new name with Glob before
writing; if it also exists, adjust the prefix (or append a number) until the name is unique.
If the user supplied a path and that file already exists, show the user the path and ask before overwriting, BECAUSE overwriting discards a document you did not produce in this run.
Dispatch han-communication:readability-editor (one Agent call) to audit and rewrite the plan's prose against the
readability standard. Pass it the file path and the named audience: the person who will run these tests by hand, who
may not be technical. The editor reads han-communication's own canonical rule, so pass no rule path. It must preserve
every fact — every step, expected outcome, test name, and category name must survive with its meaning intact.
Then run the standardized readability self-check (the shared standard is in your context from
han-communication:readability-guidance) over the document. Confirm each criterion and fix any failure:
Run the readability rule's standardized self-check, which is already in your context from the readability-guidance
invocation above. Correct every failure before presenting. Its fidelity criterion is not optional: the standard governs
how the content is said, and drops a required fact only when the reader asked for less and losing it would not change
what they do next.
Two checks are this skill's own, layered on top:
Finish by presenting a short in-channel summary: the file path, the number of tests, and the test names. Do not repeat the full document in the channel.
© testdouble, 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 1 other file (references) in han-coding/skills/manual-test-planning of testdouble/han.
Open the folder on GitHubat commit abba73a
Manual 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 |
|---|---|---|---|---|---|---|
| Manual Test Planning this skilltestdouble/han | 279 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Designing TestsCloudAI-X/opencode-workflow | 275 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Test Experteinverne/dotfiles | 121 | — | ~2.3k | Automated safety check: Pass | GPL-3.0 | |
| Prd V07 Test Planningmattgierhart/PRD-driven-context-engineering | 180 | — | ~3.5k | Automated safety check: Notes | MIT | |
| Test Reviewsd0xdev/sd0x-harness | 192 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Risk Based Testingpetrkindlmann/qa-skills | 165 | — | ~5.3k | Automated safety check: Pass | MIT |
CloudAI-X/opencode-workflow
Guides test strategy, TDD/BDD approaches, test coverage planning, and testing best practices.
einverne/dotfiles
Testing methodologies, test-driven development (TDD), unit and integration testing, and testing best practices across multiple frameworks.
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.
sd0xdev/sd0x-harness
Test coverage review via Codex exec. An agent skill from sd0xdev/sd0x-harness.
petrkindlmann/qa-skills
Produce a risk matrix or heatmap that quantifies what could break by business impact × probability, runs failure mode analysis on the top items, and maps test coverage to risk zones.
petrkindlmann/qa-skills
Build a single sprint or release test plan. An agent skill from petrkindlmann/qa-skills.
testdouble/han
Convert a stakeholder summary markdown file into a single self-contained HTML executive report — bottom line and decision asks up front, supporting detail later — styled with a Test Double-derived…
testdouble/han
Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate.
testdouble/han
Authoritative guidance for building Claude Code skills, agents, and plugins, plus init and update steps that install and refresh the plugin-building skills in the current repository.
testdouble/han
Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as {plugin-name}--v{version} so a version-constrained dependency can resolve…
testdouble/han
Generate a PR description from the current branch's changes against a GitHub PR, using the gh CLI.
testdouble/han
Builds a feature implementation plan from an existing feature specification (or equivalent context) through a facilitated team conversation.
Categories
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…. Manual Test Planning is an agent skill from 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 hand and the outcomes they should expect.
Manual Test Planning fits situations like: you want to create; outline a manual test plan; manual QA steps; hands-on verification steps.
Run `npx skills add testdouble/han --skill manual-test-planning -a claude-code`. Or copy the skill folder (han-coding/skills/manual-test-planning in testdouble/han) into .claude/skills/manual-test-planning in your project. Claude Code loads it when a task matches its description.
Run `npx skills add testdouble/han --skill manual-test-planning -a codex`. Or copy the skill folder (han-coding/skills/manual-test-planning in testdouble/han) into .agents/skills/manual-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 testdouble/han --skill manual-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/manual-test-planning, .gemini/skills/manual-test-planning, .github/skills/manual-test-planning and .opencode/skills/manual-test-planning in your project.
Going by SKILL.md and its folder, Manual Test Planning needs the command-line tools its instructions call (git and bash). Its frontmatter pre-approves these tools: Bash(git *), Read, Grep, Glob, Write, Agent, Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh").
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Manual Test Planning is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k 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 615 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Manual Test Planning: Designing Tests (CloudAI-X/opencode-workflow, 275 stars), Test Expert (einverne/dotfiles, 121 stars), Prd V07 Test Planning (mattgierhart/PRD-driven-context-engineering, 180 stars) and Test Review (sd0xdev/sd0x-harness, 192 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
testdouble (a GitHub organization) maintains it in testdouble/han, which has 279 GitHub stars. The repository holds 54 skills in this directory. The repository was last updated on October 1, 2026.
Source: testdouble/han on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.