Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create a committed implementation plan from a feature spec. Explores the codebase, designs the approach, and produces docs/plans/<feature>/plan.md plus individual task files. Use after writing a spec and before implementing.
.claude/skills/kdlbs-plan/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 84% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 95% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 163% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 205% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 93% | 0% |
This is a primary-session artifact skill. The user-started conversation creates the plan and task files, then returns control with a handoff. The user reviews the files, switches that same conversation to an implementation model if desired, and sends the explicit request to execute them.
Translate a feature spec into a concrete, phased implementation plan saved under docs/plans/<feature>/. Plans and task files are committed implementation records for the current buildout; specs remain the durable requirements under docs/specs/.
docs/specs/<slug>/spec.md) — read it firstdocs/plans/<slug>/plan.md — a structured plan that links back to the specand references every task file
docs/plans/<slug>/task-<NN>-<short-slug>.md — one independently executableimplementation task per file
Read docs/specs/<slug>/spec.md in full. Identify:
Search in parallel for all integration points the spec touches:
Use docs/decisions/INDEX.md to check for relevant architectural decisions.
Map dependencies before writing tasks. Implementation order follows the dependency chain: persistence/contracts first, service behavior next, API/client wiring after that, then UI and E2E. Prefer vertical slices that leave the product working over broad horizontal layers that cannot be verified until the end.
If the spec leaves implementation choices open, ask — one question at a time. Do not assume. Examples of things to ask:
Stop asking when you have enough to write the plan.
Save to docs/plans/<slug>/plan.md. Use this structure:
markdown--- spec: docs/specs/<slug>/spec.md created: YYYY-MM-DD status: draft --- # Implementation Plan: <Feature Name> ## Overview 2-4 sentences. What changes, in what order, and why that order. --- ## Backend ### <Area 1 — e.g., Schema Changes> For each change: file path, exact struct/function/SQL, reason. ### <Area 2 — e.g., Service Layer> ... ### <Area N> ... --- ## Frontend > Skip this section if the spec has no user-facing changes. ### <Component / Page> File path, what changes, why. ### API client What new calls are needed and where they go. ### State Store slice / hook changes. --- ## Tests Every plan MUST include this section. For each testable behavior in the spec, list the exact pre-PR validation: - **What:** the behavior under test (maps to a spec scenario) - **File:** where the test goes (`*_test.go` or `*.test.ts`) - **How:** table-driven unit test / integration test with real DB / mock service At minimum, include: - One unit test per new function with non-trivial logic - One integration test that exercises the full path (handler → service → repo) - One test per edge case called out in the spec scenarios Do not add a generic local QA, review, security, simplify, or full-verification step to the plan. The listed task checks are the pre-PR evidence; the two PR AI reviewers perform semantic review after the PR opens. --- ## E2E Tests > Skip this section only if the spec has zero user-visible UI changes. For each user-facing scenario in the spec: - **Scenario:** restate the GIVEN/WHEN/THEN from the spec - **File:** `apps/web/e2e/<area>/<name>.spec.ts` - **What to verify:** the observable outcome (URL change, element visible, toast shown) --- ## Verification Results Pending. On completion, synchronize this section with each task's `## Results`: record exact commands and outcomes/counts, generated artifact paths, and cleanup/teardown evidence. --- ## Implementation Waves And Parallel Candidates Group task files by dependency order. Use waves to expose possible parallelism, but label a task as parallel-safe only when its files are disjoint and it does not touch shared schemas, migrations, generated contracts, lockfiles, or package-wide configuration. E2E follows the backend and frontend changes it covers. The default is sequential execution in the primary conversation. Waves do not authorize subagents: only the user may explicitly ask to use them after selecting the implementation model.
Wave 1 (parallel candidates — user authorization required):
Wave 2:
Wave 3:
For small features (≤3 tasks total), waves are optional — list sequentially.
The plan links to task files; it does not contain full task bodies. Update the
checkbox/status link when a task is completed.
---
## Open Questions
(Delete when empty.)Create one task file beside plan.md per task, named docs/plans/<slug>/task-<NN>-<short-slug>.md. Use this structure:
markdown--- id: "01-backend-contracts" title: "Backend contracts" status: pending wave: 1 depends_on: [] plan: "plan.md" spec: "../../specs/<slug>/spec.md" --- # Task 01: Backend contracts Each task should be small enough for one focused implementation pass: - **Acceptance:** 1-3 concrete conditions. - **Verification:** exact command(s), e.g. `cd apps/backend && go test -run TestName ./internal/path/...` or `cd apps && pnpm --filter @kandev/web test -- path/to/file.test.ts`. Frontend/E2E tasks must include the fresh-worktree bootstrap (`cd apps && pnpm install --frozen-lockfile`) when dependencies may be absent; direct web typechecking uses `cd apps/web && pnpm run typecheck`, while other workspace package commands use the documented `pnpm --filter` form. Backend commands should use the applicable repository `make` target when one exists. If several commands are required, write them as one sequentially runnable block rooted at a single directory (for example, `cd apps && ... && ...`) or make each `cd` explicit; do not rely on the caller's working directory surviving between commands. - **Files likely touched:** specific paths, not broad directories. - **Dependencies:** task numbers that must land first, or `None`. - **Parallelism:** `sequential` by default; set `parallel-safe` only with named disjoint files and no shared-state blocker. - **Inputs:** relevant spec sections, plan sections, patterns, and dependencies. - **Output contract:** summary, files changed, tests run, blockers, risks, and task/plan status update in the same conversation. ## Results Pending. Before marking the task done, replace this with every exact command actually run and its outcome/count, generated artifact paths, and cleanup or teardown evidence (including temporary capture-spec removal and `git diff --check` when used). Record security/trust and external side-effect boundaries when applicable, or explicitly state `None`. Break a task down further if it touches unrelated subsystems, needs more than one focused session, or the title contains "and". When an implementation agent starts the task, it must change `status` to `in_progress`. Before it finishes, reconcile **Files likely touched** with the actual diff, including modified existing tests used as E2E evidence. It may then change `status` to `done`, update its `## Results`, and synchronize the corresponding checkbox/status and `## Verification Results` in `plan.md`.
After plan.md and every task file are written and validated, report their paths, dependency order, exact checks, and open risks as a compact handoff, then end the turn. Do not call ask_user_question_kandev (or an equivalent approval prompt) to ask the user to approve the plan or switch models. The user reviews the artifacts and controls the next implementation request and model choice.
task files and link to them from plan.md.
Other measured skills in the registry, with their headline benchmark lift.