implementation-planning-guide
Skill3 starsChanged 5 months agoApache-2.0View on GitHub
Used when planning implementation in Plan mode. Include the test design and implementation steps in the plan file.
In this repository2 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- code-writing-guideSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. About 0 are common, 13 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Read the current plan and identify testable specifications.
- Distinctive: line 15
If the specifications are unclear, use the AskUserQuestionTool to request clarification before proceeding.
- Distinctive: line 16
If the test target has low testability, modify the design.
- Very specific: line 35
Use the naming convention: MethodName_Condition_ExpectedResult
- Distinctive: line 36
Do NOT create sequential IDs in test case names
- Distinctive: line 38
Verify one condition per test
- Very specific: line 40
If a test case requires a test double, state it in the Description column: e.g., (uses spy: <TargetDependency>).
- Very specific: line 45
Instead, list them as E2E test items in the ### E2E Tests section of the plan file
- Distinctive: line 74
Create only the types and public method signatures for the product code that can be compiled.
- Distinctive: line 79
Run the added tests, and confirm that they fail
- Distinctive: line 80
Commit test code to git (skeleton is not committed yet — do not include it) — if test code is modified in Step 3 or later, the integrity of …
- Distinctive: line 85
If the test cases require test doubles, create them as separate files.
- Distinctive: line 86
Run the tests, and confirm that they all pass
- Distinctive: line 87
Commit product code to git (includes skeleton from Step 1, and any unavoidable test code changes)
- Very specific: line 93
Run the Claude Code built-in /simplify skill (Skill({skill: "simplify"}) — not a plugin skill) to apply quality improvements to the …
- Distinctive: line 95
Commit all remaining changes to git
- Very specific: line 99
Add new E2E test cases directly to docs/e2e-tests.md under the relevant tool section.
- Distinctive: line 100
Follow the existing format and numbering in that file.
- Very specific: line 101
Exception: If a test case requires a disruptive user operation that is impractical to run every regression cycle (e.g., stopping Unity …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Guide for plan mode. This skill provides the test design guidelines and the development workflow steps to include in plan files.
Test Design Guidelines
In plan mode, design your tests according to the following guidelines and include test cases in the plan file:
1. Analyze specifications
Read the current plan and identify testable specifications. If the specifications are unclear, use the AskUserQuestionTool to request clarification before proceeding. If the test target has low testability, modify the design.
2. Identify Test Targets
Choose public classes and methods under test in order of the least integrated level (unit tests first).
3. Select Testing Techniques
For each test target, select appropriate techniques:
- Equivalence partitioning — group inputs into valid/invalid classes; one representative per class
- Boundary value analysis — test at the edges of each equivalence class.
- State transition testing — if the target has a finite-state-machine (FSM); one test case covers only 0-switch coverage
- Decision table testing — if multiple conditions combine to produce different outcomes
4. Create Test Cases
For each technique, derive coverage-aware test cases:
- Use the naming convention:
MethodName_Condition_ExpectedResult - Do NOT create sequential IDs in test case names
- Describe the verification content clearly
- Verify one condition per test
- Test concerns separately
- If a test case requires a test double, state it in the Description column: e.g.,
(uses spy: <TargetDependency>). Choose the type based on xUnit Test Patterns (xUTP) definitions:- Stub — returns canned responses to isolate the SUT from a dependency
- Spy — records interactions (calls, arguments) for later verification
- Fake — a simplified but working implementation of a dependency
- Drop test cases that cannot be verified by test code
- Instead, list them as E2E test items in the
### E2E Testssection of the plan file
- Instead, list them as E2E test items in the
5. Test Case Format
Append test cases to the plan file using this format:
### Test Cases of {dotnet|kotlin} tests
#### <ClassName>
| Test Method | Description |
|-----------------------------|--------------------------------------------|
| `Method_Condition_Expected` | Brief description of what is verified |
| `Method_Condition_Expected` | Brief description (uses stub: IDependency) |
### E2E Tests
| # | Item | Verification Method |
|---|-------------------------------|-----------------------------------|
| 1 | Brief description of the item | How to verify (e.g., visual check)|Development Workflow
Include the following implementation steps in the plan file:
Step 1: Skeleton (Compilable)
- Create only the types and public method signatures for the product code that can be compiled. It's okay even if it does not work
Step 2: Test First
- Implement test code based on the test cases in the plan file
- Run the added tests, and confirm that they fail
- Commit test code to git (skeleton is not committed yet — do not include it) — if test code is modified in Step 3 or later, the integrity of Test First is compromised; commit here without fail so the diff remains verifiable
Step 3: Implementation
- Implement the product code
- If the test cases require test doubles, create them as separate files. Do NOT define test doubles in the test class file.
- Run the tests, and confirm that they all pass
- Commit product code to git (includes skeleton from Step 1, and any unavoidable test code changes)
Step 4: Refactoring
- Resolve diagnostics at warning or higher for each modified file (
mcp__jetbrains__open_file_in_editor→mcp__ide__getDiagnostics→ fix, one file at a time; usemcp__ide__getDiagnosticsbecause the Unity editor compiler does not reflect.editorconfigseverity settings) - Run the tests, and confirm that they all pass
- Run the Claude Code built-in
/simplifyskill (Skill({skill: "simplify"})— not a plugin skill) to apply quality improvements to the modified code - Run the tests, and confirm that they all pass
- Commit all remaining changes to git
Step 5: E2E Tests
- Add new E2E test cases directly to
docs/e2e-tests.mdunder the relevant tool section.- Follow the existing format and numbering in that file.
- Exception: If a test case requires a disruptive user operation that is impractical to run every regression cycle (e.g., stopping Unity Editor, disconnecting the network), create a separate file at
docs/plans/{plan-file-name}-e2e-tests.mdinstead.{plan-file-name}is the plan file name copied todocs/plans/(e.g.,2026-01-18-plan-name).
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.

