Create a lightweight specification for changes that do not require the full spec workflow. This command combines research, planning, and task creation into a streamlined process.
Smolspec is about decision density, not size. A change qualifies when the codebase already settles how it should be done — even if it spans many files. It does not qualify when the work turns on a decision only the user can make, creates something expensive to reverse, or picks between defensible architectures.
Scope Assessment
Smolspec is the default path. The full spec workflow exists to resolve decisions the model cannot make on its own — it is not a response to size. A large but mechanical change with no contested decisions belongs in a smolspec with a longer task list.
Initial Research:
The model MUST explore the codebase to identify affected areas
Identify existing patterns that can be leveraged
Document dependencies and integration points
Check for related features or ongoing work
The model MUST check whether an existing smolspec or full spec already covers the requested functionality
The model MUST capture a concise summary of affected files, dependencies, and unknowns before moving forward
Escalation Triggers:
The model MUST recommend the full spec workflow if ANY of the following applies. These are the only escalation criteria. Size — lines of code, file count, number of tasks — is NOT an escalation trigger.
User-owned ambiguity. After reading the code, more than one materially different user-facing behaviour would satisfy the request, and nothing in the codebase settles which one is wanted. Ambiguity the model can resolve by reading the code is research, not escalation.
Expensive to reverse. The change creates or alters something other parties depend on: a public API, CLI surface, or wire format; a persisted data schema or a migration; a security or authorization boundary; a cross-repo or cross-team contract. The test is whether it can be undone with a revert, not how large it is.
Contested approach. Two or more defensible architectures exist, and choosing wrong means redoing the whole change rather than performing a local refactor. Heuristic: if the central choice warrants a full ADR entry rather than a Quick Decisions row, it warrants a design document.
A user explicitly asking for a full spec is always sufficient on its own.
If uncertain, the model SHOULD proceed with smolspec. This default is safe only because the triggers are re-checked continuously rather than once — see "Continuous Escalation" under Additional Constraints.
Assessment Questions:
The model MUST answer these before proceeding:
Which of the three escalation triggers, if any, does this change fire?
Can this be implemented incrementally without breaking existing functionality?
Does the codebase have established patterns for this type of change?
Is the work reversible with a single revert?
If escalation is needed, the model MUST:
Name which trigger fired and what specifically fires it
Highlight the complexity factors discovered during research
Recommend starting with /starwave:requirements skill instead
STOP execution of smolspec workflow
Feature Naming
The model MUST propose a {feature_name} based on: (1) user's explicit preference, (2) current branch name if not a default branch, (3) derived from the prompt
The model MUST allow the user to override the proposal
Feature names should be concise and descriptive (e.g., "add-logging", "fix-validation")
The model MUST sanitize feature names into filesystem-safe kebab-case slugs and ensure they do not collide with existing specs
The model MUST wait for user approval of the feature name
Lightweight Documentation
For changes that are appropriate for smolspec, the model MUST create documentation in two files:
File Structure:
Create specs/{feature_name}/smolspec.md for requirements and design
Create specs/{feature_name}/tasks.md for implementation tasks (compatible with next-task skill)
Create specs/{feature_name}/decision_log.md if any decisions need to be documented (for smolspec-sized changes, most decisions belong in the Quick Decisions table rather than full ADR entries)
Document Formats:
The smolspec.md file MUST contain these sections:
# {Feature Name}
## Overview
Brief description of what this change does and why it's needed (2-4 sentences).
## Requirements
Simple list of what needs to be accomplished using specification language:
- The system MUST {core requirement 1}
- The system SHOULD {recommended approach}
- The system MAY {optional enhancement}
Note: Use MUST for non-negotiable requirements, SHOULD for strong recommendations, MAY for optional features.
## Implementation Approach
Brief description of how this will be implemented:
- Key files to modify (with paths)
- Approach or pattern to use (reference existing similar implementations if available)
- Any important technical considerations
- Dependencies (existing code/libraries this relies on)
- Out of Scope (what will NOT be changed)
## Risks and Assumptions
Brief list of technical risks and key assumptions:
- Risk: {potential problem} | Mitigation: {how to address}
- Assumption: {what we're assuming is true}
- Prerequisite: {what must exist/work before this can be implemented}
## Escalation Note
This change was scoped as a smolspec. If implementation reveals ambiguity only the user can resolve, an irreversible boundary (public API, persisted schema, auth path), or a contested architectural choice, stop and escalate to the full spec workflow rather than deciding it inline.
The Escalation Note MUST be included verbatim. It is what carries the escalation rule to the session that implements the tasks, which does not read this skill.
The tasks.md file MUST follow the standard task format to be compatible with the next-task skill:
Numbered checkbox list with maximum two levels of hierarchy
May group tasks into phases if helpful for organization
Task count follows from the work, not from a cap. A mechanical change spanning many files may legitimately need many tasks; a contested change needing few tasks should have escalated instead.
Each task must reference the smolspec.md file
Tasks build incrementally on previous steps
Task Description Guidelines:
Tasks MUST describe WHAT outcome is needed, not HOW to implement
Tasks SHOULD be verifiable with clear success criteria
Tasks MUST avoid prescriptive implementation details
Bad example: "Add validateEmail() function to utils.go"
Good example: "Email validation prevents invalid addresses from being submitted"
Each task SHOULD include verification steps (testing distributed throughout, not consolidated at end)
Tasks MUST represent meaningful units of work. Do NOT fragment a single coherent change into separate tasks for setup, implementation, and wiring (e.g., "create file", "add import", "implement function", "connect it up"). Combine trivial substeps into one task.
Tasks MUST NOT implement or prepare for anything listed in the smolspec's Out of Scope section.
Documentation Constraints:
Keep smolspec.md concise (typically under 100 lines total)
Requirements MUST use specification language (MUST/SHOULD/MAY)
Implementation approach MUST reference specific file paths and existing patterns
Risks and Assumptions section MUST identify at least one risk or assumption
Tasks MUST be outcome-focused and verifiable
Testing MUST be distributed across tasks, not consolidated into final task
All tasks MUST involve writing, modifying, or testing code (no deployment, user acceptance testing, etc.)
smolspec.md MUST state the settled plan, not the discussion that produced it. No references to earlier drafts, superseded approaches, or critique feedback ("previously", "originally", "revised to", "as the critic noted") — write the current plan as plain fact.
smolspec.md MUST NOT contain a standalone objection. Where the approach departs from a requirement's implied path, an existing codebase pattern, or a suggestion from critique, the document MUST state what to do instead. The reasoning — alternatives weighed and why they were rejected — goes in specs/{feature_name}/decision_log.md, referenced by ID if needed.
Workflow Process
1. Research Phase:
Conduct initial research to understand the codebase and change scope
Identify affected files and components
Check for existing patterns to follow
Assess complexity and determine if full spec is needed
Share the research summary (scope, risks, references) with the user before planning
2. Planning Phase (if not escalated):
Propose feature name and get approval
Create initial smolspec.md with all required sections (Overview, Requirements, Implementation Approach, Risks and Assumptions, Escalation Note)
Ask clarifying questions if needed (use AskUserQuestion tool)
Keep documentation minimal but complete
Ensure smolspec is self-contained (assume fresh AI session will execute without conversation history)
3. Explanation Validation Phase:
Before critique, the model MUST validate the smolspec by having it explained back from a clean context.
The model MUST use the Task tool with subagent_type="general-purpose" to run the explain-like skill (invoke the Skill tool with skill="explain-like") against specs/{feature_name}/smolspec.md
The subagent MUST be given only the path to smolspec.md and access to the codebase. The model MUST NOT summarize the feature, restate decisions made in this conversation, or otherwise supply context the document does not contain. Anything the subagent cannot account for is a self-containment defect in the document — surfacing those is the point of the exercise.
All three explanation levels (beginner, intermediate, expert) MUST be produced. The span is the mechanism: the beginner level exposes assumed knowledge, the expert level exposes edge cases and integration concerns.
The explanations are a validation device, not a deliverable. The model MUST NOT save explanation.md for a smolspec.
Classifying the findings:
Most findings are edits to smolspec.md. Some are escalation signals. The model MUST classify every item in the Validation Findings section:
Finding
Action
Gap in wording, undefined term, missing file path, unclear success criterion
Edit smolspec.md
Question only the user can answer about intended behaviour
Escalation signal — trigger 1
Gap in behaviour rather than in wording: an unspecified case the codebase cannot settle
Escalation signal — trigger 1
Recommendation proposing a defensible alternative approach
Escalation signal — trigger 3
Potential issue touching a persisted format, public surface, or auth path
Escalation signal — trigger 2
If any escalation signal is found, the model MUST stop, present the finding to the user, and recommend the full spec workflow. The model MUST NOT quietly absorb an escalation signal as a document edit.
If every finding is a document edit, the model MUST apply them in place — rewriting affected text rather than appending change notes — and proceed to critique.
4. Critique Phase:
Use the design-critic skill to review the smolspec.md document
Incorporate the design-critic's feedback and recommendations into the smolspec.md
Update the document based on valid critiques before presenting to user, rewriting the affected text in place — do not append change notes or leave the superseded wording alongside the new
Re-check the escalation triggers against the critique: a critic finding that names a defensible alternative architecture or an irreversible boundary is an escalation signal, handled as in Phase 3
Capture any noteworthy decisions or trade-offs identified during critique inside specs/{feature_name}/decision_log.md (Quick Decisions table row unless it is a genuine trade-off worth a full ADR entry)
Explanation validation and critique catch different failures and neither replaces the other. Explanation validation is run by a subagent working only from the document, so it catches omissions and self-containment defects. design-critic is adversarial, so it catches approaches that are wrong on their own terms.
5. Self-Review Phase:
Before presenting to user, the model MUST verify:
Requirements use specification language (MUST/SHOULD/MAY) and are testable
Requirements describe observable behavior, not implementation mechanism (no "MUST use library X", "MUST be implemented as a service")
Implementation approach references specific files with paths
Implementation approach references existing patterns or similar code
At least one risk or assumption is documented with mitigation/validation plan
Dependencies and prerequisites are clearly stated
Out of scope items are explicitly listed
No vague language (e.g., "robust", "user-friendly" without specifics)
No hyperbolic or marketing language ("comprehensive", "seamless", "powerful")
All sections are complete and self-contained
No references to earlier drafts, superseded approaches, or critique feedback — the document reads as the plan, not its revision history
Every objection to a requirement, existing pattern, or critique suggestion is paired with the approach to take instead; the reasoning lives in decision_log.md
Document is concise (<100 lines) but complete
The Escalation Note is present verbatim
Explanation validation ran from a clean context, every finding was classified, and no escalation signal was absorbed as a document edit
None of the three escalation triggers fires on the smolspec as it now stands
Red flags checked: scope creep, wrong technology, missing prerequisites
6. Review Phase:
Present the smolspec document to the user (after explanation validation, design-critic review, incorporation, and self-review)
Ask "Does this smolspec look good?"
Make modifications based on user feedback
Repeat until explicit approval is received
7. Task Creation:
Once smolspec.md is approved, create the tasks.md file
The model MUST use the rune skill to:
Create the task file at specs/{feature_name}/tasks.md with a reference to smolspec.md
Add tasks using batch operations, including blocked_by dependencies where tasks build on previous steps
Task structure should follow the standard format compatible with next-task skill
Let the task count follow the work; group into phases when that aids ordering
Each task MUST be outcome-focused (WHAT needs to be achieved, not HOW)
Each task MUST be verifiable with clear success criteria
Testing MUST be distributed throughout tasks (e.g., Task 2 implements, Task 3 verifies)
After creating tasks.md, perform self-review:
Tasks describe outcomes, not implementation steps
Each task has verification/success criteria
Testing is distributed, not consolidated at end
All tasks involve code changes (no deployment/UAT tasks)
Tasks build incrementally without gaps
No orphaned or hanging code
No coherent change is fragmented across trivial substeps (setup/implement/wire)
No task implements or prepares for anything listed in the smolspec's Out of Scope section
Ask "Do these tasks look good?"
Make modifications if needed and repeat until explicit approval
Additional Constraints
Workflow Execution:
The model SHOULD complete the entire workflow in a single conversation flow (don't split into separate skills)
The model MUST NOT implement the feature as part of this workflow - only create the specification
The model MAY ask targeted questions but should minimize back-and-forth compared to full spec workflow
Continuous Escalation:
The escalation triggers in Scope Assessment are not a one-time gate. Because smolspec is now the default for uncertain cases, the triggers MUST be re-checked whenever new information arrives: during research, during planning, when classifying explanation-validation findings, when incorporating design-critic feedback, and while implementing the resulting tasks. If a trigger fires after the smolspec has been approved, the model MUST stop, name the trigger that fired, and recommend converting to the full spec workflow rather than deciding the question inline. Growth in size alone is not a reason to escalate.
Documentation Quality:
All documents MUST be self-contained (assume fresh AI session without conversation history)
The model SHOULD leverage existing patterns and conventions found in the codebase
The model SHOULD link to relevant files, specs, or commits referenced during research to minimize rework
The model MUST include specific file paths, not generic references
The model SHOULD document any assumptions or uncertainties in the Risks and Assumptions section
If decision_log.md exists for this feature, follow the decisions documented there
Task Quality:
The model MUST ensure all tasks are coding-focused (no deployment, UAT, or non-code tasks)
Tasks MUST be outcome-focused (describe WHAT, not HOW)
Testing MUST be distributed throughout task phases
Each task MUST be verifiable with clear success criteria
Tasks MUST build incrementally without gaps or orphaned code
Self-Containment Requirements:
The smolspec MUST be executable by a fresh AI session with only:
The smolspec.md document
The tasks.md document
Access to the existing codebase
No conversation history or external context
Success Criteria
The smolspec workflow is complete when:
A clear, concise smolspec.md file exists with all required sections:
Implementation Approach (with specific file paths and existing pattern references)
Risks and Assumptions (at least one documented)
Escalation Note (verbatim)
None of the three escalation triggers fires on the approved scope
Explanation validation has run from a clean context and its findings are resolved
A tasks.md file exists with:
Outcome-focused tasks, however many the work needs
Grouped into phases where that aids ordering
Distributed testing (not consolidated at end)
All tasks are code-focused and verifiable
User has explicitly approved both the smolspec and tasks
Tasks have been created in the rune system and are compatible with next-task skill
All documentation is self-contained and executable by fresh AI session
Self-review checklists have been completed for both smolspec and tasks
Documentation is minimal but complete (smolspec typically <100 lines)
1---2name: starwave-smolspec3description: Small Spec (Smolspec) - Lightweight specification for changes that carry no contested decisions, whatever their size4---56# Small Spec (Smolspec) - Lightweight Specification
78Create a lightweight specification for changes that do not require the full spec workflow. This command combines research, planning, and task creation into a streamlined process.
910Smolspec is about decision density, not size. A change qualifies when the codebase already settles how it should be done — even if it spans many files. It does not qualify when the work turns on a decision only the user can make, creates something expensive to reverse, or picks between defensible architectures.
1112## Scope Assessment
1314Smolspec is the default path. The full spec workflow exists to resolve decisions the model cannot make on its own — it is not a response to size. A large but mechanical change with no contested decisions belongs in a smolspec with a longer task list.
1516**Initial Research:**
17- The model MUST explore the codebase to identify affected areas
18- Identify existing patterns that can be leveraged
19- Document dependencies and integration points
20- Check for related features or ongoing work
21- The model MUST check whether an existing smolspec or full spec already covers the requested functionality
22- The model MUST capture a concise summary of affected files, dependencies, and unknowns before moving forward
2324**Escalation Triggers:**
2526The model MUST recommend the full spec workflow if ANY of the following applies. These are the only escalation criteria. Size — lines of code, file count, number of tasks — is NOT an escalation trigger.
27281. **User-owned ambiguity.** After reading the code, more than one materially different user-facing behaviour would satisfy the request, and nothing in the codebase settles which one is wanted. Ambiguity the model can resolve by reading the code is research, not escalation.
29302. **Expensive to reverse.** The change creates or alters something other parties depend on: a public API, CLI surface, or wire format; a persisted data schema or a migration; a security or authorization boundary; a cross-repo or cross-team contract. The test is whether it can be undone with a revert, not how large it is.
31323. **Contested approach.** Two or more defensible architectures exist, and choosing wrong means redoing the whole change rather than performing a local refactor. Heuristic: if the *central* choice warrants a full ADR entry rather than a Quick Decisions row, it warrants a design document.
3334A user explicitly asking for a full spec is always sufficient on its own.
3536**If uncertain, the model SHOULD proceed with smolspec.** This default is safe only because the triggers are re-checked continuously rather than once — see "Continuous Escalation" under Additional Constraints.
3738**Assessment Questions:**
39The model MUST answer these before proceeding:
40- Which of the three escalation triggers, if any, does this change fire?
41- Can this be implemented incrementally without breaking existing functionality?
42- Does the codebase have established patterns for this type of change?
43- Is the work reversible with a single revert?
4445If escalation is needed, the model MUST:
461. Name which trigger fired and what specifically fires it
472. Highlight the complexity factors discovered during research
483. Recommend starting with `/starwave:requirements` skill instead
494. STOP execution of smolspec workflow
5051## Feature Naming
5253- The model MUST propose a {feature_name} based on: (1) user's explicit preference, (2) current branch name if not a default branch, (3) derived from the prompt
54- The model MUST allow the user to override the proposal
55- Feature names should be concise and descriptive (e.g., "add-logging", "fix-validation")
56- The model MUST sanitize feature names into filesystem-safe kebab-case slugs and ensure they do not collide with existing specs
57- The model MUST wait for user approval of the feature name
5859## Lightweight Documentation
6061For changes that are appropriate for smolspec, the model MUST create documentation in two files:
6263**File Structure:**
64- Create `specs/{feature_name}/smolspec.md` for requirements and design
65- Create `specs/{feature_name}/tasks.md` for implementation tasks (compatible with next-task skill)
66- Create `specs/{feature_name}/decision_log.md` if any decisions need to be documented (for smolspec-sized changes, most decisions belong in the Quick Decisions table rather than full ADR entries)
6768**Document Formats:**
6970The smolspec.md file MUST contain these sections:
7172```markdown
73# {Feature Name}
7475## Overview
76Brief description of what this change does and why it's needed (2-4 sentences).
7778## Requirements
79Simple list of what needs to be accomplished using specification language:
80- The system MUST {core requirement 1}
81- The system SHOULD {recommended approach}
82- The system MAY {optional enhancement}
8384Note: Use MUST for non-negotiable requirements, SHOULD for strong recommendations, MAY for optional features.
8586## Implementation Approach
87Brief description of how this will be implemented:
88- Key files to modify (with paths)
89- Approach or pattern to use (reference existing similar implementations if available)
90- Any important technical considerations
91- Dependencies (existing code/libraries this relies on)
92- Out of Scope (what will NOT be changed)
9394## Risks and Assumptions
95Brief list of technical risks and key assumptions:
96- Risk: {potential problem} | Mitigation: {how to address}
97- Assumption: {what we're assuming is true}
98- Prerequisite: {what must exist/work before this can be implemented}
99100## Escalation Note
101This change was scoped as a smolspec. If implementation reveals ambiguity only the user can resolve, an irreversible boundary (public API, persisted schema, auth path), or a contested architectural choice, stop and escalate to the full spec workflow rather than deciding it inline.
102```
103104The Escalation Note MUST be included verbatim. It is what carries the escalation rule to the session that implements the tasks, which does not read this skill.
105106The tasks.md file MUST follow the standard task format to be compatible with the next-task skill:
107- Numbered checkbox list with maximum two levels of hierarchy
108- May group tasks into phases if helpful for organization
109- Task count follows from the work, not from a cap. A mechanical change spanning many files may legitimately need many tasks; a contested change needing few tasks should have escalated instead.
110- Each task must reference the smolspec.md file
111- Tasks build incrementally on previous steps
112113**Task Description Guidelines:**
114- Tasks MUST describe WHAT outcome is needed, not HOW to implement
115- Tasks SHOULD be verifiable with clear success criteria
116- Tasks MUST avoid prescriptive implementation details
117- Bad example: "Add validateEmail() function to utils.go"
118- Good example: "Email validation prevents invalid addresses from being submitted"
119- Each task SHOULD include verification steps (testing distributed throughout, not consolidated at end)
120- Tasks MUST represent meaningful units of work. Do NOT fragment a single coherent change into separate tasks for setup, implementation, and wiring (e.g., "create file", "add import", "implement function", "connect it up"). Combine trivial substeps into one task.
121- Tasks MUST NOT implement or prepare for anything listed in the smolspec's Out of Scope section.
122123**Documentation Constraints:**
124- Keep smolspec.md concise (typically under 100 lines total)
125- Requirements MUST use specification language (MUST/SHOULD/MAY)
126- Implementation approach MUST reference specific file paths and existing patterns
127- Risks and Assumptions section MUST identify at least one risk or assumption
128- Tasks MUST be outcome-focused and verifiable
129- Testing MUST be distributed across tasks, not consolidated into final task
130- All tasks MUST involve writing, modifying, or testing code (no deployment, user acceptance testing, etc.)
131- smolspec.md MUST state the settled plan, not the discussion that produced it. No references to earlier drafts, superseded approaches, or critique feedback ("previously", "originally", "revised to", "as the critic noted") — write the current plan as plain fact.
132- smolspec.md MUST NOT contain a standalone objection. Where the approach departs from a requirement's implied path, an existing codebase pattern, or a suggestion from critique, the document MUST state what to do instead. The reasoning — alternatives weighed and why they were rejected — goes in `specs/{feature_name}/decision_log.md`, referenced by ID if needed.
133134## Workflow Process
135136**1. Research Phase:**
137- Conduct initial research to understand the codebase and change scope
138- Identify affected files and components
139- Check for existing patterns to follow
140- Assess complexity and determine if full spec is needed
141- Share the research summary (scope, risks, references) with the user before planning
142143**2. Planning Phase (if not escalated):**
144- Propose feature name and get approval
145- Create initial smolspec.md with all required sections (Overview, Requirements, Implementation Approach, Risks and Assumptions, Escalation Note)
146- Ask clarifying questions if needed (use AskUserQuestion tool)
147- Keep documentation minimal but complete
148- Ensure smolspec is self-contained (assume fresh AI session will execute without conversation history)
149150**3. Explanation Validation Phase:**
151152Before critique, the model MUST validate the smolspec by having it explained back from a clean context.
153154- The model MUST use the Task tool with subagent_type="general-purpose" to run the explain-like skill (invoke the Skill tool with skill="explain-like") against `specs/{feature_name}/smolspec.md`
155- The subagent MUST be given only the path to smolspec.md and access to the codebase. The model MUST NOT summarize the feature, restate decisions made in this conversation, or otherwise supply context the document does not contain. Anything the subagent cannot account for is a self-containment defect in the document — surfacing those is the point of the exercise.
156- All three explanation levels (beginner, intermediate, expert) MUST be produced. The span is the mechanism: the beginner level exposes assumed knowledge, the expert level exposes edge cases and integration concerns.
157- The explanations are a validation device, not a deliverable. The model MUST NOT save `explanation.md` for a smolspec.
158159**Classifying the findings:**
160161Most findings are edits to smolspec.md. Some are escalation signals. The model MUST classify every item in the Validation Findings section:
162163| Finding | Action |
164|---------|--------|
165| Gap in wording, undefined term, missing file path, unclear success criterion | Edit smolspec.md |
166| Question only the user can answer about intended behaviour | Escalation signal — trigger 1 |
167| Gap in behaviour rather than in wording: an unspecified case the codebase cannot settle | Escalation signal — trigger 1 |
168| Recommendation proposing a defensible alternative approach | Escalation signal — trigger 3 |
169| Potential issue touching a persisted format, public surface, or auth path | Escalation signal — trigger 2 |
170171- If any escalation signal is found, the model MUST stop, present the finding to the user, and recommend the full spec workflow. The model MUST NOT quietly absorb an escalation signal as a document edit.
172- If every finding is a document edit, the model MUST apply them in place — rewriting affected text rather than appending change notes — and proceed to critique.
173174**4. Critique Phase:**
175- Use the design-critic skill to review the smolspec.md document
176- Incorporate the design-critic's feedback and recommendations into the smolspec.md
177- Update the document based on valid critiques before presenting to user, rewriting the affected text in place — do not append change notes or leave the superseded wording alongside the new
178- Re-check the escalation triggers against the critique: a critic finding that names a defensible alternative architecture or an irreversible boundary is an escalation signal, handled as in Phase 3
179- Capture any noteworthy decisions or trade-offs identified during critique inside `specs/{feature_name}/decision_log.md` (Quick Decisions table row unless it is a genuine trade-off worth a full ADR entry)
180181Explanation validation and critique catch different failures and neither replaces the other. Explanation validation is run by a subagent working only from the document, so it catches omissions and self-containment defects. design-critic is adversarial, so it catches approaches that are wrong on their own terms.
182183**5. Self-Review Phase:**
184Before presenting to user, the model MUST verify:
185- [ ] Requirements use specification language (MUST/SHOULD/MAY) and are testable
186- [ ] Requirements describe observable behavior, not implementation mechanism (no "MUST use library X", "MUST be implemented as a service")
187- [ ] Implementation approach references specific files with paths
188- [ ] Implementation approach references existing patterns or similar code
189- [ ] At least one risk or assumption is documented with mitigation/validation plan
190- [ ] Dependencies and prerequisites are clearly stated
191- [ ] Out of scope items are explicitly listed
192- [ ] No vague language (e.g., "robust", "user-friendly" without specifics)
193- [ ] No hyperbolic or marketing language ("comprehensive", "seamless", "powerful")
194- [ ] All sections are complete and self-contained
195- [ ] No references to earlier drafts, superseded approaches, or critique feedback — the document reads as the plan, not its revision history
196- [ ] Every objection to a requirement, existing pattern, or critique suggestion is paired with the approach to take instead; the reasoning lives in decision_log.md
197- [ ] Document is concise (<100 lines) but complete
198- [ ] The Escalation Note is present verbatim
199- [ ] Explanation validation ran from a clean context, every finding was classified, and no escalation signal was absorbed as a document edit
200- [ ] None of the three escalation triggers fires on the smolspec as it now stands
201- [ ] Red flags checked: scope creep, wrong technology, missing prerequisites
202203**6. Review Phase:**
204- Present the smolspec document to the user (after explanation validation, design-critic review, incorporation, and self-review)
205- Ask "Does this smolspec look good?"
206- Make modifications based on user feedback
207- Repeat until explicit approval is received
208209**7. Task Creation:**
210- Once smolspec.md is approved, create the tasks.md file
211- The model MUST use the rune skill to:
212 - Create the task file at specs/{feature_name}/tasks.md with a reference to smolspec.md
213 - Add tasks using batch operations, including `blocked_by` dependencies where tasks build on previous steps
214- Task structure should follow the standard format compatible with next-task skill
215- Let the task count follow the work; group into phases when that aids ordering
216- Each task MUST be outcome-focused (WHAT needs to be achieved, not HOW)
217- Each task MUST be verifiable with clear success criteria
218- Testing MUST be distributed throughout tasks (e.g., Task 2 implements, Task 3 verifies)
219- After creating tasks.md, perform self-review:
220 - [ ] Tasks describe outcomes, not implementation steps
221 - [ ] Each task has verification/success criteria
222 - [ ] Testing is distributed, not consolidated at end
223 - [ ] All tasks involve code changes (no deployment/UAT tasks)
224 - [ ] Tasks build incrementally without gaps
225 - [ ] No orphaned or hanging code
226 - [ ] No coherent change is fragmented across trivial substeps (setup/implement/wire)
227 - [ ] No task implements or prepares for anything listed in the smolspec's Out of Scope section
228- Ask "Do these tasks look good?"
229- Make modifications if needed and repeat until explicit approval
230231## Additional Constraints
232233**Workflow Execution:**
234- The model SHOULD complete the entire workflow in a single conversation flow (don't split into separate skills)
235- The model MUST NOT implement the feature as part of this workflow - only create the specification
236- The model MAY ask targeted questions but should minimize back-and-forth compared to full spec workflow
237238**Continuous Escalation:**
239The escalation triggers in Scope Assessment are not a one-time gate. Because smolspec is now the default for uncertain cases, the triggers MUST be re-checked whenever new information arrives: during research, during planning, when classifying explanation-validation findings, when incorporating design-critic feedback, and while implementing the resulting tasks. If a trigger fires after the smolspec has been approved, the model MUST stop, name the trigger that fired, and recommend converting to the full spec workflow rather than deciding the question inline. Growth in size alone is not a reason to escalate.
240241**Documentation Quality:**
242- All documents MUST be self-contained (assume fresh AI session without conversation history)
243- The model SHOULD leverage existing patterns and conventions found in the codebase
244- The model SHOULD link to relevant files, specs, or commits referenced during research to minimize rework
245- The model MUST include specific file paths, not generic references
246- The model SHOULD document any assumptions or uncertainties in the Risks and Assumptions section
247- If decision_log.md exists for this feature, follow the decisions documented there
248249**Task Quality:**
250- The model MUST ensure all tasks are coding-focused (no deployment, UAT, or non-code tasks)
251- Tasks MUST be outcome-focused (describe WHAT, not HOW)
252- Testing MUST be distributed throughout task phases
253- Each task MUST be verifiable with clear success criteria
254- Tasks MUST build incrementally without gaps or orphaned code
255256**Self-Containment Requirements:**
257The smolspec MUST be executable by a fresh AI session with only:
258- The smolspec.md document
259- The tasks.md document
260- Access to the existing codebase
261- No conversation history or external context
262263## Success Criteria
264265The smolspec workflow is complete when:
266- A clear, concise smolspec.md file exists with all required sections:
267 - Overview (2-4 sentences)
268 - Requirements (using MUST/SHOULD/MAY specification language)
269 - Implementation Approach (with specific file paths and existing pattern references)
270 - Risks and Assumptions (at least one documented)
271 - Escalation Note (verbatim)
272- None of the three escalation triggers fires on the approved scope
273- Explanation validation has run from a clean context and its findings are resolved
274- A tasks.md file exists with:
275 - Outcome-focused tasks, however many the work needs
276 - Grouped into phases where that aids ordering
277 - Distributed testing (not consolidated at end)
278 - All tasks are code-focused and verifiable
279- User has explicitly approved both the smolspec and tasks
280- Tasks have been created in the rune system and are compatible with next-task skill
281- All documentation is self-contained and executable by fresh AI session
282- Self-review checklists have been completed for both smolspec and tasks
283- Documentation is minimal but complete (smolspec typically <100 lines)
Run npx skillmds@latest add arjenschwarz/starwave-smolspec in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Small Spec (Smolspec) - Lightweight specification for changes that carry no contested decisions, whatever their size It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Capability flags: docs only. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
arjenschwarz (@arjenschwarz) published this skill. Their other Agent Skills are listed on their SkillMD profile.