Use when you have an approved spec or requirements for a multi-step task, before touching any code
From mbscodenpx claudepluginhub mbstools/mbscodeThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
Write comprehensive implementation plans assuming the engineer has zero context for the codebase. Document everything: which files to touch, exact code, how to test, expected output. Bite-sized steps. DRY. YAGNI. TDD. Frequent commits.
Assume the implementer has general programming skills but zero context about this project's codebase, domain, or testing patterns. Spell out everything — file paths, function signatures, exact test code, expected outputs.
If the spec covers multiple independent subsystems, it should have been decomposed during brainstorming. If it wasn't, suggest splitting into separate plans — one per subsystem. Each plan must produce working, testable software on its own.
Monorepo note: For monorepos, scope each plan to one package. Cross-package work gets a coordination plan that references per-package plans.
Before defining tasks, map out which files will be created or modified and what each is responsible for:
This structure informs the task decomposition.
Each step is one atomic action (one file read, one file write, one command run, or one test assertion):
Every plan MUST start with this header and follow this structure:
---
status: pending
spec: docs/specs/YYYY-MM-DD-<topic>-design.md
---
# [Feature Name] Implementation Plan
> **For agentic workers:** Use mbscode:subagent-driven-development (recommended) or mbscode:executing-plans to implement this plan task-by-task.
**Goal:** [One sentence — what this builds]
**Architecture:** [2-3 sentences about approach]
## Resume
Last completed: (none — plan not started)
Next step: Task 1, Step 1
Blockers: none
## Milestones
- Milestone 1 (Tasks 1-3): [description] → autonomous review checkpoint
- Milestone 2 (Tasks 4-7): [description] → autonomous review checkpoint
---
### Task 1: [Component Name]
**Files:** Create: `path/to/file`, Test: `tests/path/to/test`
**Dependencies:** none
- [ ] **Step 1:** Write failing test (test name, assertions, exact code if subagent mode)
- [ ] **Step 2:** Run test → verify FAIL (expected error message)
- [ ] **Step 3:** Write minimal implementation (what to build; exact code if subagent mode)
- [ ] **Step 4:** Run test → verify PASS
- [ ] **Step 5:** Commit with descriptive message
> **Mode note:** Step detail depends on execution mode — see **Plan Detail Levels** below. Inline mode describes intent; subagent mode includes exact code. Adapt language, test commands, and file extensions to the project's actual stack per PROJECT.md.
---
### Task 2: [Next Component]
...
| Execution Mode | Detail Level | What Each Step Contains |
|---|---|---|
| Subagent (parallel tasks via subagent-driven-development) | Interface contracts | Function signatures, types, return values, acceptance criteria. Exact code only for tricky APIs, schemas, regexes, migrations. |
| Inline (sequential tasks via executing-plans) | Acceptance criteria | What the step must achieve, target file, verification command. Agent has project context — no implementation code needed. |
Default: Inline (acceptance criteria). Use subagent detail only when tasks will be dispatched to independent subagents without shared context.
Step states: - [ ] = pending, - [x] = done, - [~] = skipped (see executing-plans Plan Modifications section for when/how to skip steps).
After completing each task, update the Resume section at the top:
## Resume
Last completed: Task 2, Step 5 (commit) PASS
Next step: Task 3, Step 1 (write failing test)
Blockers: none
Also update the plan's YAML frontmatter status:
pending → plan written, not startedin_progress → actively being worked ondone → all tasks complete and verifiedblocked → cannot proceed (document why in Resume section)When changing plan status, also update SESSION.md. If status values disagree, SESSION.md is the authority (see mbscode:project-documentation).
Each milestone should contain 3-7 tasks. If a milestone grows past 7 tasks, split it into two milestones. Large milestones lose the benefit of focused review checkpoints.
"No placeholders" means every step must have a clear, actionable description — not that every step needs a full code block. The step must tell the implementer exactly WHAT to build and HOW to verify it. </HARD-GATE>
Good: "Write authenticate(token: string): Promise<User> that validates JWT and returns the user record" — clear target, specific signature.
Bad: "Implement auth" — vague, no actionable detail.
These are plan failures — never write them:
| Placeholder | Write Instead |
|---|---|
| "TBD" / "TODO" / "implement later" | The actual requirement with acceptance criteria |
| "Add appropriate error handling" | Name the specific error types and expected behavior |
| "Write tests for the above" | Name each test case with input/output expectations |
| "Similar to Task N" | Repeat the description — implementer may read tasks out of order |
| "Handle edge cases" | Name each edge case and the expected handling |
Every task ends with a verification step. These are the minimum — all GATES.md post-task gates also apply:
**Acceptance:**
- [ ] Test passes: `<test command per PROJECT.md>` → 0 failures
- [ ] No lint errors: `<lint command per PROJECT.md>` → 0 errors
- [ ] Build passes: `<build command per PROJECT.md>` → exit code 0
- [ ] All GATES.md post-task gates satisfied (no dead code, DRY, simplest solution, etc.)
- [ ] Committed with descriptive message
Group tasks into milestones. Each milestone is an autonomous review checkpoint:
---
### Milestone 1 Complete: Core Data Model
**Verify:** `<test command per PROJECT.md>` → all pass
**Review:** Invoke `mbscode:autonomous-review` before proceeding to Milestone 2
---
After writing the complete plan, review it yourself:
clearLayers() in Task 3 but clearFullLayers() in Task 7 = bug.Fix issues inline. If a spec requirement has no task, add the task.
After saving the plan:
Plan saved to `docs/plans/<filename>.md` (directory created if absent).
SESSION.md updated.
Two execution options:
1. **Subagent-Driven** — best for 3+ independent tasks (fresh context per task, parallel review)
2. **Inline Execution** — best for tightly coupled tasks that share state/files
Which approach?
mbscode:subagent-driven-developmentmbscode:executing-plansCalled by: mbscode:brainstorming (after spec approval); also referenced by GATES.md Planned gate
After plan saved: mbscode:subagent-driven-development or mbscode:executing-plans (user choice, with autonomous default)
| Thought | Reality |
|---|---|
| "The implementer will figure it out" | No. Show paths, commands, and enough detail for the execution mode (exact code for subagent; clear intent for inline). |
| "This step is obvious" | Nothing is obvious to someone with zero context |
| "I'll add details later" | You won't. Write them now. |
| "One big step is fine" | One atomic action per step. Break it down. |
| "Tests can come after" | TDD. Test first. Always. |