internal/instructions/skills/kn-plan/SKILL.md
Use when creating an implementation plan for a task
npx skillsauth add knowns-dev/knowns kn-planInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Announce: "Using kn-plan for task [ID]."
Core principle: GATHER CONTEXT → PLAN → VALIDATE → WAIT FOR APPROVAL.
--from @doc/specs/<name> for SDD task generation@task-, @doc/, and @template/ ref before finalizing the planCheck if $ARGUMENTS contains --from:
mcp_knowns_tasks({ "action": "get", "taskId": "$ARGUMENTS" })
mcp_knowns_tasks({ "action": "update", "taskId": "$ARGUMENTS",
"status": "in-progress",
"assignee": "@me"
})
mcp_knowns_time({ "action": "start", "taskId": "$ARGUMENTS" })
Follow refs in task:
mcp_knowns_docs({ "action": "get", "path": "<path>", "smart": true })
mcp_knowns_tasks({ "action": "get", "taskId": "<id>" })
If the task links to a spec, use structural resolve to find related tasks and dependencies:
mcp_knowns_search({ "action": "resolve", "ref": "@doc/specs/<name>{implements}", "direction": "inbound", "entityTypes": "task" })
Search related (unified search includes docs and memories):
mcp_knowns_search({ "action": "search", "query": "<keywords>", "type": "doc" })
mcp_knowns_search({ "action": "search", "query": "<keywords>", "type": "memory" })
mcp_knowns_templates({ "action": "list" })
If relevant memories appear, factor them into the plan (past patterns, decisions, conventions).
If the plan needs assembled execution context rather than raw search hits, use retrieval after discovery:
mcp_knowns_search({ "action": "retrieve", "query": "<keywords>" })
If MCP is unavailable, fall back to CLI: knowns retrieve "<keywords>" --json
Use search for discovery. Use retrieve when you need ranked candidates plus a context pack with citations.
## Implementation Plan
1. [Step] (see @doc/relevant-doc)
2. [Step] (use @template/xxx)
3. Add tests
4. Update docs
Tip: Use mermaid for complex flows:
```mermaid
graph LR
A[Input] --> B[Process] --> C[Output]
```
Plan quality rules:
mcp_knowns_tasks({ "action": "update", "taskId": "$ARGUMENTS",
"plan": "1. Step one\n2. Step two\n3. Tests"
})
CRITICAL: After saving plan with refs, validate to catch broken refs:
mcp_knowns_validate({ "entity": "$ARGUMENTS" })
If errors found (broken @doc/... or @task-...), fix before asking approval.
Before presenting the plan for approval, verify plan quality:
Report any issues found inline with the plan:
Plan for task-<id>:
1. Step one
2. Step two
⚠️ Plan check: AC-3 not covered by any step
⚠️ Plan check: Step 4 touches 7 files — consider splitting
Fix issues before presenting for approval. If unfixable, surface them explicitly so the user can decide.
Present plan and WAIT for explicit approval.
All built-in skills in scope must end with the same user-facing information order: kn-init, kn-spec, kn-plan, kn-research, kn-implement, kn-verify, kn-doc, kn-template, kn-extract, and kn-commit.
Required order for the final user-facing response:
Keep this concise for CLI use. Skill-specific content may extend the key-details section, but must not replace or reorder the shared structure.
Out of scope: explaining, syncing, or generating .claude/skills/*. Runtime auto-sync already handles platform copies, so this skill source only defines the built-in output contract.
For kn-plan, the key details should cover:
You MUST suggest the next action when a natural follow-up exists. User won't know what to do next.
After user approves the plan:
Plan approved! Ready to implement.
Run: /kn-implement $ARGUMENTS
If user wants to review first:
Take your time to review. When ready:
Run: /kn-implement $ARGUMENTS
/kn-research - Research before planning/kn-implement <id> - Implement after plan approved/kn-spec - Create spec for complex featuresWhen $ARGUMENTS contains --from @doc/specs/<name>:
Announce: "Using kn-plan to generate tasks from spec [name]."
Extract spec path from arguments (e.g., --from @doc/specs/user-auth → specs/user-auth).
mcp_knowns_docs({ "action": "get", "path": "specs/<name>", "smart": true })
Scan spec for:
Group related items into logical tasks.
For each requirement/group, create task structure:
## Generated Tasks from specs/<name>
### Task 1: [Requirement Title]
- **Description:** [From spec]
- **ACs:**
- [ ] AC from spec
- [ ] AC from spec
- **Spec:** specs/<name>
- **Fulfills:** AC-1, AC-2 (maps to Spec ACs this task completes)
- **Priority:** medium
### Task 2: [Requirement Title]
- **Description:** [From spec]
- **ACs:**
- [ ] AC from spec
- **Spec:** specs/<name>
- **Fulfills:** AC-3
- **Priority:** medium
---
Total: X tasks to create
CRITICAL: The
fulfillsfield maps Task → Spec ACs. When the task is marked done, the matching Spec ACs will be auto-checked in the spec document.
I've generated X tasks from the spec. Please review:
- Approve to create all tasks
- Edit to modify before creating
- Cancel to abort
WAIT for explicit approval.
When approved, create tasks with fulfills to link Task → Spec ACs:
mcp_knowns_tasks({ "action": "create", "title": "<requirement title>",
"description": "<from spec>",
"spec": "specs/<name>",
"fulfills": ["AC-1", "AC-2"],
"priority": "medium",
"labels": ["from-spec"]
})
Then add implementation ACs (task-level criteria, different from spec ACs):
mcp_knowns_tasks({ "action": "update", "taskId": "<new-id>",
"addAc": ["Implementation step 1", "Implementation step 2", "Tests added"]
})
Key Concept:
fulfills: Which Spec ACs (AC-1, AC-2, etc.) this task satisfiesaddAc: Implementation ACs - specific steps to complete the taskWhen task status → "done", the
fulfillsACs are auto-checked in the spec document.
Repeat for each task.
Creation rules:
fulfills stays mapped to spec AC IDsGoal/result: created X tasks linked to `specs/<name>`.
Key details:
- task-xxx: Requirement 1 (3 ACs)
- task-yyy: Requirement 2 (2 ACs)
- validation/approval status, if relevant
Next action:
- `/kn-plan <first-task-id>`
fulfills mapping to Spec ACstesting
Use when running SDD verification and coverage reporting
development
Use when generating code from templates - list, run, or create templates
testing
Use when creating a specification document for a feature (SDD workflow)
development
Use when reviewing implemented code before committing — multi-perspective review with severity-based findings