kb-plan
Decomposes features into independently executable vertical slices with dependency mapping and verification flags.
Install
mkdir -p .claude/skills/kb-plan && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/19328" && unzip -o skill.zip -d .claude/skills/kb-plan && rm skill.zipInstalls to .claude/skills/kb-plan
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Break a brainstorm or feature into vertical-slice task plans with dependency DAG, verification strategy, and HITL flags. Default planning workflow for end-to-end vertical slices instead of horizontal phases. Use when the user says 'kb plan', 'plan', 'create a plan', 'plan this', 'slice this', 'break into vertical slices', or wants independently-grabbable tasks.Key capabilities
- →Decompose features into vertical slices
- →Generate task manifests and plan files
- →Define dependency DAGs for tasks
- →Establish verification strategies for slices
- →Manage HITL flags for manual interventions
How it works
The skill breaks work into independently executable vertical slices that cut through all relevant layers. It generates a manifest and plan files, then either invokes execution or provides the next command.
Inputs & outputs
When to use kb-plan
- →Plan a new software feature
- →Break down a PRD into tasks
- →Create a step-by-step implementation roadmap
About this skill
KB Plan - Vertical Slice Decomposition
Plan thin end-to-end behavior, not horizontal implementation phases.
Input
<input> #$ARGUMENTS </input>
Prefer a requirements source. For a handoff, resolve its requirements or
manifest pointer first. Resume an existing matching manifest instead of
creating a duplicate. A direct description may proceed only when it is
specific, low-risk, and contains no unresolved product or architecture choice;
otherwise invoke kb-brainstorm.
Requirements Assurance
Planning cannot launder brainstorm ambiguity.
Before slicing, perform the main-agent requirements check:
- goals, non-goals, and acceptance criteria are explicit;
- no contradictions or unresolved
ask-noworresearch-firstitems remain; - dependencies are evidenced or labeled assumptions;
- every load-bearing factual premise is cited or marked provisional, per the
kb-gatepremise-verification rule; - failure, recovery, trust, migration, and integration behavior is sufficient;
- verification can detect the stated failure modes;
- the cheapest sufficient outcome was established and the ruled-out cheaper option is named, per Cost Of New Code.
Fix clear document defects.
Write or update the brainstorm-to-plan gate as blocked or needs-human
when the source still requires user input.
Invoke document-review mode:headless <requirements-path> only when one
material uncertainty remains. Do not invoke document-review for a source
whose self-check is complete. The skill selects exactly one best-fit reviewer
for the full source; never run a reviewer per slice. Resolve P0/P1 before
decomposition. Record a matching review receipt or a specific
not_required_reason.
Slice Design
Each slice must:
- Deliver one narrow observable outcome across every relevant layer.
- Be independently executable after its blockers.
- Name acceptance criteria and test scenarios.
- Forecast
expected_fileswithout pretending it is a write allowlist. - Declare
test_level,functional_risk, andexecution_class. - Declare
model_tieras minimum capability, never a provider/model name. - Carry
model_requirements,escalation_triggers, andtoken_budgetat the precision the declared tier requires. - Carry
proof_checkor a narrowno_check_reason. - Mark HITL only for authority, private input, irreversible risk, or subjective judgment.
- Declare
cost_tierand the cheaper option ruled out. - Name the
owning_componentit changes, taken from the repository's declared component table.
Choose the lowest tier that satisfies reasoning, context, tools, trust, and risk:
| Tier | Planning classifier |
|---|---|
small | Narrow mechanical change, explicit acceptance, local proof, no cross-boundary or security decision |
medium | Ordinary vertical slice, focused integration, or bounded UI/API workflow |
large | Architecture, auth/security/data migration, multi-subsystem work, unresolved product intent, or broad debugging |
The tier classifies minimum execution capability. kb-work resolves the actual
callable route from live evidence; planning never hard-codes a model.
Cost Of New Code
A slice that adds code must clear the cheapest tier that could deliver its outcome:
| Tier | Source of the behavior |
|---|---|
| 1 | Nothing - the outcome is not needed; cut the slice |
| 2 | Prior art already in this repo, or in a sibling repo the user operates |
| 3 | The standard library |
| 4 | The runtime, browser, or OS |
| 5 | A dependency already in the manifest |
| 6 | New code, smallest version that passes |
A new dependency is not a tier. Planning never approves one; it is an ask-now
decision returned to the user.
Each slice records cost_tier and the specific cheaper option ruled out.
Naming the cheaper option is what makes this checkable - "nothing cheaper
exists" with nothing named is neither a finding nor a justification. Read what
the slice would touch before assigning a tier; this judges the solution, never
the effort of understanding the problem.
A plan whose slices all land at tier 6 is a signal to re-check tier 2 before
plan-to-work, not evidence of an ambitious feature. Disproportion is easiest
to see at plan time and hardest to unwind after execution.
Trust-boundary validation, data-loss handling, security controls, and accessibility affordances are funded at every tier and are never cut by this rule.
Cost Of New Structure
cost_tier judges whether new code is needed. It does not judge where that code
lands, so a slice can rule out new code correctly and still create a new
component. Structure is the more expensive decision: code inside an existing
component is deleted by deleting it, while a new component becomes a routing
target, a doc obligation, and a place future work accretes into.
Each slice names one owning_component from
config/architecture-components.json. If the repository has no declared table,
name the directory the slice changes and say the table is absent; do not treat a
missing declaration as permission.
A slice may not create a component that is not already declared. When a slice
appears to need one, stop and return an ask-now decision naming the existing
component that would otherwise own the work and why it cannot. Planning never
approves a new component, exactly as it never approves a new dependency.
Adding the component to the declared table is the user's decision and a separate
edit. That edit is what architecture-drift enforces afterward; this rule is
what keeps the edit from being invented mid-plan.
A plan that touches more components than it has slices is a signal to re-check
decomposition before plan-to-work.
Execution Contract Precision
A slice must be executable unaided by the tier it names: that tier reaches the acceptance criteria without asking a question, inventing an unstated decision, or being rescued by a stronger model. A plan that only a stronger model could execute is misclassified, not merely terse.
Precision scales inversely with tier. The lower the tier, the more the plan must say:
| Tier | The slice must hand the executor |
|---|---|
large | Objective, constraints, acceptance criteria, proof command. Approach is the executor's to choose. |
medium | The above, plus ordered steps and the pass criterion for each step, plus the files and boundaries in play. Implementation detail stays open. |
small | The above, plus the exact edit sites, the precise expected observable output, and one unambiguous proof command. No judgment call may remain. |
Assigning a lower tier is not a saving; it is a promise to do more specification work. If a slice cannot be specified to that level, the tier is wrong - raise it rather than thinning the contract.
Every slice therefore records, in the slice itself:
model_requirements- capabilities the tier must have (tool use, context size, structured output, long-horizon reasoning), never a model name;escalation_triggers- the observable conditions under which the executor must stop and escalate instead of guessing;token_budget- the output budget the executor is expected to work within.
State the budget to the executor. Scoring work against a budget, criterion, or step it was never shown is not a measurement; it measures the plan.
Enabling slices are allowed only when they are the smallest prerequisite for a named downstream slice. Prefer behavior-first slices over schema/service/UI phases.
Qualification Evidence Plans (Opt-In)
Ordinary KB plans do not need semantic-plan grading. Opt in only when a plan will be admitted as evidence for a model-tier qualification decision:
qualification_plan_contract: true
qualification_plan:
record_path: docs/plans/<name>-qualification-plan.json
record_sha256: <sha256 of the strict JSON record>
The sidecar binds the exact plan and requirements-wide review by repo-relative path and SHA-256. The bound Markdown plan must declare the exact reviewed invariant IDs before any prose that follows:
qualification_invariants:
- stable-invariant-id
The strict JSON record must contain that exact invariant set. Each nontrivial invariant must choose exactly one checkable path:
- repository-specific guidance with a contained source path and hash, stable anchor, mechanism or hazard, concrete executor action, and proof target; or
- an uncertainty-driven raise from the target tier to a higher supported tier with a specific reason.
Acceptance-criterion restatements, generic warnings, worker selection, and
stronger model names are not mechanism guidance. document-review owns
plan-sufficiency judgment; kbcheck manifest-contract validates paths, hashes,
structure, and review bindings. Do not create a DDR-specific planner.
Verification
| Need | Verification |
|---|---|
| Behavior or logic | TDD with protected oracle when practical |
| Cross-boundary wiring | Integration |
| User/API/CLI/browser journey | Functional |
| Config/scaffolding | Verification-only |
| Subjective design approval | HITL |
Use kb-functional-test when a unit test could pass while the real workflow is
broken. UI-reachable behavior requires rendered UI proof. Deterministic proof,
not reviewer confidence, marks a slice done.
Dependency DAG
- Every blocker ID must exist.
- The graph must be acyclic.
- Independent slices may share a ready set only when write/resource claims are disjoint and execution isolation exists.
- Serialize migration, destructive, shared UI/browser, and overlapping path work.
- Keep the manifest/workstream as the worktree unit; do not create a worktree per slice.
Output
Write one manifest and one file per slice:
docs/plans/YYYY-MM-DD-NNN-kb-<topic>-manifest.md
docs/plans/YYYY-MM-DD-NNN-<type>-<slice>-plan.md
New manifests use:
manifest_schema: 3
pre_slice_review_contract: true
objective_contract: true
model_tier_contract: true
workspace_i
---
*Content truncated.*
When not to use it
- →When the brainstorm contains unresolved research-first items
- →When material assumptions affecting scope are unlabeled
- →When the input is ambiguous and requires prior brainstorming
Prerequisites
Limitations
- →Cannot automatically invoke kb-work without explicit execution intent
- →Cannot launder brainstorm ambiguity
- →Requires manual resolution of unresolved research-first items
How it compares
Unlike horizontal phase planning, this workflow ensures each slice is a complete, demoable, and verifiable path through the system.
Compared to similar skills
kb-plan side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| kb-plan (this skill) | 0 | 2mo | Review | Intermediate |
| github-project-management | 4 | 7mo | Review | Advanced |
| create-plans | 1 | 9mo | Review | Intermediate |
| phasing | 1 | 8mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by Irtechie
View all by Irtechie →You might also like
github-project-management
ruvnet
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning
create-plans
glittercowboy
Create hierarchical project plans optimized for solo agentic development. Use when planning projects, phases, or tasks that Claude will execute. Produces Claude-executable plans with verification criteria, not enterprise documentation. Handles briefs, roadmaps, phase plans, and context handoffs.
phasing
WellApp-ai
Group slices into risk-optimized phases with timeline generation
code-task-generator
mikeyobrien
Generates structured .code-task.md files from descriptions or PDD implementation plans. Auto-detects input type, creates properly formatted tasks with Given-When-Then acceptance criteria.
flow-next
gmickel
Manage .flow/ tasks and epics. Triggers: 'show me my tasks', 'list epics', 'what tasks are there', 'add a task', 'create task', 'what's ready', 'task status', 'show fn-1-add-oauth'. NOT for /flow-next:plan or /flow-next:work.
wg
graphwork
Use this skill for task coordination with WG. Triggers include "wg", task graphs, multi-step projects, tracking dependencies, coordinating agents, or when you see a .wg directory.