Spec a new feature — recall architecture knowledge, create a spec document, build an implementation plan, and break into tasks.
54
60%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/spec-feature/SKILL.mdYou are speccing a new feature. This command enforces a structured planning process before any code is written.
Diagram complexity — before drawing, rate it:
- 🟢 simple — linear / ≤4 nodes → plain ASCII is fine.
- 🟡 moderate — fork-join, 5–8 nodes, or one crossing → OFFER a rendered Excalidraw (the render-diagram skill).
- 🔴 complex — bidirectional, multi-lane, >8 nodes, or cycles → render with the render-diagram skill AND show it inline via the Read tool.
git branch --show-current (regex [A-Z]+-[0-9]+); if none, use none.mark_chapter with {title: "Spec — <TICKET>", summary: "Writing the spec document"}.
If mark_chapter is unavailable (e.g. running outside Claude Code), skip silently.[ -t 1 ] && printf '\e]2;%s — Spec\007' "<TICKET>" || truemark_chapter (step 2).Parse the feature request from the arguments below. Extract:
Recall architecture knowledge. Use the Hindsight recall tool to retrieve:
Explore the existing codebase. Identify:
Write the spec document. Create a file at docs/specs/<feature-name>.md with this structure:
# Feature: <name>
## Problem Statement
[What problem does this solve?]
## Proposed Solution
[High-level description of the approach]
## Architecture Impact
- **Domain layer**: [changes needed]
- **Application layer**: [changes needed]
- **Infrastructure layer**: [changes needed]
## Technical Design
[Detailed technical approach, including data models, API changes, etc.]
## Constraints & Decisions
- [recalled hard rules that apply]
- [architectural decisions that constrain the approach]
## Acceptance Criteria
- [ ] AC1: [observable behavior]
- [ ] AC2: [observable behavior]
- [ ] AC3: [edge case behavior]
## Non-goals
Explicitly out of scope:
- [thing we are NOT building]
- [thing we are NOT refactoring]
## Edge Cases
- [edge case 1]
- [edge case 2]
## Testing Strategy
[How will this be tested?]
## Implementation Plan
1. [step 1]
2. [step 2]
...Add an architecture diagram (optional but encouraged). Unless the feature is trivial / non-architectural, generate a data-flow / architecture diagram for the feature via /devflow:render-diagram, saving the artefacts next to the spec in docs/specs/ as <feature-name>-architecture.excalidraw + .png + .svg. Then:
## Architecture Impact section of the spec with a relative path:
Skip gracefully (no diagram) if the feature is trivial or the render-diagram skill / its deps are unavailable.
Break into tasks. Convert the implementation plan into discrete, ordered tasks:
Present the spec to the user for review. Ask:
Retain the architectural decisions from this spec using the Hindsight retain tool, so they're available in future sessions.
Hand off to the planning phase. Invoke devflow:phase-handoff with arguments:
--phase spec--next-phase planThe handoff skill writes a frozen-state file at .devflow/state/<branch>/spec.md, gates on a one-click AskUserQuestion, then spawns a new Claude Desktop session via mcp__ccd_session__spawn_task titled [<TICKET>] [MR#<N>] Plan (visible in the sidebar). The spawned session's initial prompt points it at the frozen-state file + spec absolute path and instructs it to invoke /devflow:writing-plans (the devflow plugin exposes that as a slash command).
Do NOT auto-invoke writing-plans from this skill — context cleanup is the explicit boundary.
$ARGUMENTS
8d872bf
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.