Install in Claude Code
Copygit clone --depth 1 https://github.com/testdouble/han /tmp/manual-test-planning && cp -r /tmp/manual-test-planning/han-coding/skills/manual-test-planning ~/.claude/skills/manual-test-planningThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
## Project Context
- personal config directory: !`bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh" 2>/dev/null || echo "$HOME/.claude"`
- project .han/config.md: !`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](../../references/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.
## Operating Principles
- **Group outcomes only when the steps are identical.** A test verifies a single outcome, or a group of related
outcomes only when the exact same steps produce every outcome in the group. If any outcome needs a different or
additional step, it gets its own test, BECAUSE a person following one step list can only check the outcomes those
steps actually produce.
- **Every test states its expected outcomes.** A step list without an expected outcome is not a test. Each test's
detail section ends with the outcome or outcomes the person should observe, so they can tell pass from fail on the
spot.
- **No manual tests means no document.** When the supplied context contains nothing a person can test by hand, say so
clearly and ask for more context instead of writing a file. Never invent or pad testable outcomes, BECAUSE a plan
built on guesses sends the tester chasing outcomes the work never promised.
- **Plain language only.** The plan is written for the person who runs the tests by hand, who may not be technical.
Short, concise sentences. No file paths, function names, code, or framework jargon anywhere in the document.
Describe what the person does and sees through the product's own surfaces (screens, commands, pages, messages), not
how the code works, BECAUSE the reader follows the plan without ever reading the code.
## Step 1: Gather the Context
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.
## Step 2: Identify What Can Be Manually Tested
From the context, list every candidate outcome a person can verify by hand. An outcome qualifies only when all three
hold:
1. A person can reach it through the product's own surfaces: a screen, a page, a command they can run, a request they
can send, a document or message they can read.
2. The steps to reach it can be written without asking the person to read or change code.
3. The result is something the person can directly observe and compare against an expectation.
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.
## Step 3: Group Outcomes into Named Tests
Turn the outcomes into a list of named tests:
1. Default to one test per outcome.
2. Merge outcomes into one test only when the exact same steps produce every outcome in the group. When in doubt,
keep them separate.
3. Give each test a short, unique, plain-language name that says what it verifies (for example, "Signing in with a
wrong password"), not how.
4. Order the tests in the sequence a person would sensibly run them: tests that set up state other tests rely on come
first, then the most important behaviors, then the rest.
5. Count the tests. When there are more than 5, look for natural plain-language categories among them — by the area
of the product they exercise, the kind of person who runs them, or the feature they verify. When at least two
natural categories emerge, categorize: assign each test to exactly one category, name each category with the same
short plain-language rule as test names, and put every test that fits no natural category under a final category
named "Other tests". Keep the run order: categories in the order their first test would run, "Other tests" last,
and tests in run order within each category. When only one natural category emerges, or none do, keep the flat
list, BECAUSE a single category or a forced grouping adds structure without helping the tester see how the tests
relate. With 5 tests or fewer, always keep the flat list.
## Step 4: Draft the Plan
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](./references/template.md):
- **Summary** — the executive summary: 2-4 short sentences on what the plan covers, who can run it, how many tests it
contains, and where to start.
- **Tests at a Glance** — the high-level list: every test name with one sentence on what it verifies.
- **Test Details** — one section per named test: one sentence on what it verifies, a numbered list of steps to follow,
and the expected outcome or outcomes.
When Step 3 produced categories, organize both Tests at a Glance and Test Details under the category namMore from this repository
han-releaseSkill
>
han-update-documentationSkill
>
markdown-to-confluenceSkill
>
plan-a-feature-to-confluenceSkill
>
project-documentation-to-confluenceSkill
>
work-items-to-jiraSkill
>
architectural-analysisSkill
Performs deep architectural analysis of a specified module, directory, or feature area by examining structural
code-reviewSkill
Run a comprehensive code review on local source files. Use this skill when the user asks to review, audit, inspect,