with one click
kn-spec
Use when creating a specification document for a feature (SDD workflow)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Use when creating a specification document for a feature (SDD workflow)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Use when orchestrating a full Knowns spec or task wave through planning, implementation, review, integration, and verification, optionally using sub-agents when scopes are parallel-safe.
Use when you need to understand existing code, find patterns, search project knowledge, use web research for external/current facts, or explore a large codebase before implementation
Use when committing code changes with proper conventional commit format and verification
Use when working with Knowns documentation - viewing, searching, creating, or updating docs
Use when extracting reusable patterns, decisions, failures, or knowledge into documentation
Use only when the user explicitly wants the legacy no-review-gates pipeline for an approved spec; prefer kn-flow for normal spec orchestration
| name | kn-spec |
| description | Use when creating a specification document for a feature (SDD workflow) |
Create a specification document for a feature using SDD (Spec-Driven Development).
Announce: "Using kn-spec to create spec for [name]."
Core principle: EXPLORE DECISIONS -> SPEC -> REVIEW -> APPROVE -> THEN KN-FLOW OR TASK PLANNING.
--skip-explore to jump straight to spec writing (for trivial features)specs/<yyyy-mm-dd>/<slug> using today's date and a stable slug.specs/2026-06-17/lsp-runtime-wrapper.requirements.md, design.md, and tasks.md. Keep one spec doc with sections; detailed execution belongs in Knowns Tasks.specs/<slug>, keep using its existing path instead of moving it during normal spec work.Task Links section after tasks are createdDo not create a spec just because the user invoked kn-spec.
If the request is tiny, low ambiguity, and low risk, rule out a spec and recommend direct task creation:
/kn-plan --new "<short work summary>"
Use this bypass for narrow copy/docs/config tweaks, small bug fixes, and low-risk maintenance that does not change product contracts, architecture, data, auth, external integrations, or cross-module behavior.
If the tiny work reveals reusable knowledge, create or update a supporting doc/memory first, then recommend /kn-plan --new .... If the user explicitly insists on a spec after the bypass recommendation, create a compact spec.
Extract decisions from the user BEFORE writing the spec. This prevents the agent from guessing wrong and writing a spec the user didn't want.
Assess from the request + a quick project scan:
/kn-plan --new "<summary>".--skip-explore).Classify what is being built — this determines which gray areas to probe:
| Type | What it is | Example |
|---|---|---|
| SEE | Something users look at | UI, dashboard, layout |
| CALL | Something callers invoke | API, CLI command, webhook |
| RUN | Something that executes | Background job, script, service |
| READ | Something users read | Docs, emails, reports |
| ORGANIZE | Something being structured | Data model, file layout, taxonomy |
One feature can span types (e.g., SEE + CALL).
Generate 2–4 gray areas for this feature. A gray area is a decision that:
Quick codebase scout (grep only — no deep analysis):
mcp_knowns_search({ "action": "search", "query": "<feature keywords>", "type": "memory" })
Filter OUT:
Rules:
"More questions about [area], or move on? (Remaining: [unvisited areas])"
Scope creep response — when user suggests something outside scope:
"[Feature X] is a new capability — will be a separate work item. Noted. Back to [current area]: [question]"
Decision locking — after each gray area is resolved:
"Lock decision D[N]: [summary]. Confirmed?"
Assign stable IDs: D1, D2, D3... These IDs will be referenced in the spec.
After all gray areas resolved, summarize locked decisions:
Decisions locked:
- D1: [summary]
- D2: [summary]
- D3: [summary]
Writing spec based on these locked decisions...
If $ARGUMENTS provided, use it as spec name.
If no arguments, ask user:
What feature are you speccing? (e.g., "user-auth", "payment-flow")
Ask user to describe the feature:
Please describe the feature requirements. What should it do?
Listen for:
If requirements depend on large domain or architecture context:
@doc/<path> instead of dumping background material inlineDerive:
<slug> from the feature name, using lowercase kebab-case<spec-path> as specs/<yyyy-mm-dd>/<slug><spec-folder> as specs/<yyyy-mm-dd>mcp_knowns_docs({ "action": "create", "title": "<Feature Name>",
"description": "Specification for <feature>",
"folder": "specs/<yyyy-mm-dd>",
"tags": ["spec", "draft"],
"content": "<spec content>"
})
Spec Template:
## Overview
Brief description of the feature and its purpose.
## Locked Decisions
Decisions extracted during exploring phase:
- D1: [Decision summary]
- D2: [Decision summary]
## Requirements
### Functional Requirements
- FR-1: [Requirement description]
- FR-2: [Requirement description]
### Non-Functional Requirements
- NFR-1: [Performance, security, etc.]
## Acceptance Criteria
- [ ] AC-1: [Testable criterion]
- [ ] AC-2: [Testable criterion]
- [ ] AC-3: [Testable criterion]
## Scenarios
### Scenario 1: [Happy Path]
**Given** [context]
**When** [action]
**Then** [expected result]
### Scenario 2: [Edge Case]
**Given** [context]
**When** [action]
**Then** [expected result]
## Technical Notes
Optional implementation hints or constraints.
## Task Links
Generated tasks will be linked here after `/kn-plan --from @doc/<spec-path>` runs.
Keep this section short: task ID, prefixed title, and status only.
## Open Questions
- [ ] Question 1?
- [ ] Question 2?
CRITICAL: After creating spec, validate to catch issues:
mcp_knowns_validate({ "entity": "<spec-path>" })
Present the spec and ask:
Please review this spec:
- Approve if requirements are complete
- Edit if you want to modify something
- Add more if requirements are missing
If approved:
mcp_knowns_docs({ "action": "update", "path": "<spec-path>",
"tags": ["spec", "approved"]
})
After approval:
/kn-flow @doc/<spec-path>./kn-plan --from @doc/<spec-path>./kn-go <spec-path> only when the user explicitly wants the older no-review-gates pipeline.If edit requested: Update the spec based on feedback and return to Step 4.
If add more: Gather additional requirements and update spec.
All built-in skills in scope must end with the same user-facing information order: kn-init, kn-spec, kn-flow, 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-spec, the key details should cover:
If the spec uncovers cross-cutting or general knowledge work:
You MUST suggest the next action when a natural follow-up exists. User won't know what to do next.
After spec is approved:
✓ Spec approved: @doc/<spec-path>
Next step — choose one:
1. Recommended full flow (plan -> implement -> review -> verify):
/kn-flow @doc/<spec-path>
2. Generate tasks only / manual task-by-task path:
/kn-plan --from @doc/<spec-path>
3. Legacy auto pipeline, no review gates:
/kn-go <spec-path>
Option 1 (kn-flow):
Option 2 (kn-plan --from):
/kn-plan <id> + /kn-implement <id> for each taskOption 3 (kn-go):
/kn-flow @doc/<spec-path> - Orchestrate an approved spec through plan, implement, review, and verify/kn-plan --from @doc/<spec-path> - Generate tasks from this spec (manual flow)/kn-go <spec-path> - Legacy no-review-gates auto pipeline/kn-plan <id> - Plan individual task/kn-verify - Verify implementation against spec/kn-plan --new when a spec would be overheadspecs/<yyyy-mm-dd>/<slug>/kn-flow or task creation after approval