SKILL.md
<objective> Break an intent into discrete, executable work items. </objective>
<triggers> - Intent exists without work items - User wants to plan execution </triggers>
<degreesoffreedom> MEDIUM — Follow decomposition patterns but adapt to the specific intent. </degreesoffreedom>
<llm critical="true"> <mandate>Each work item MUST be completable in a single run</mandate> <mandate>Each work item MUST have clear acceptance criteria</mandate> <mandate>Dependencies MUST be explicit and validated</mandate> </llm>
<flow> <step n="1" title="Load Intent"> <action>Read intent brief from .specs-fire/intents/{intent-id}/brief.md</action> <action>Understand goal, users, success criteria</action> </step>
<step n="2" title="Identify Deliverables"> <action>Break intent into discrete deliverables</action> <action>Each deliverable should be independently valuable</action>
<guidelines> - Prefer vertical slices over horizontal layers - Start with foundation pieces (models, schemas) - End with integration pieces (API, UI) - Keep each item focused on ONE concern </guidelines> </step>
<step n="3" title="Assess Complexity"> <action>For each work item, assess RAW complexity:</action>
<complexity level="low"> - Single file or few files - Well-understood pattern - No external dependencies - Examples: bug fix, config change, simple utility </complexity>
<complexity level="medium"> - Multiple files - Standard patterns with some decisions - May touch existing code - Examples: new endpoint, new component, feature addition </complexity>
<complexity level="high"> - Architectural decisions required - Security or data implications - Core system changes - Examples: auth system, payment flow, database migration </complexity> </step>
<step n="3b" title="Apply Autonomy Bias"> <action>Read workspace.autonomy_bias from state.yaml</action> <action>Apply bias to determine final execution mode:</action>
<bias_table>
| Raw Complexity | autonomous | balanced | controlled |
|---|---|---|---|
| low | autopilot | autopilot | confirm |
| medium | autopilot | confirm | validate |
| high | confirm | validate | validate |
</bias_table>
<note> This allows user preference to shift thresholds: - autonomous: trusts AI more, fewer checkpoints - balanced: standard behavior (default) - controlled: more human oversight </note> </step>
<step n="4" title="Define Acceptance Criteria"> <action>For each work item, define:</action> <substep>What must be true when complete</substep> <substep>How to verify it works</substep> <substep>Any edge cases to handle</substep> </step>
<step n="5" title="Validate Dependencies"> <action>Check for circular dependencies</action> <action>Ensure dependencies exist or will be created first</action> <action>Order work items by dependency</action>
<check if="circular dependency detected"> <output> Warning: Circular dependency detected between {item-a} and {item-b}. Suggest splitting into smaller items or reordering. </output> </check> </step>
<step n="6" title="Present Plan"> <output> ## Work Items for "{intent-title}"
Total: {count} work items Estimated: {low} autopilot, {medium} confirm, {high} validate
Work Item Details:
{for each item} {n}. {title} ({mode}) — {description} {/for}
Approve this plan? [Y/n/edit] </output> </step>
<step n="7" title="Save Work Items"> <check if="approved"> <action>Create .specs-fire/intents/{intent-id}/work-items/</action> <action>For each work item, generate using template: templates/work-item.md.hbs</action> <action>Save each to: .specs-fire/intents/{intent-id}/work-items/{work-item-id}.md</action> <action>Update state.yaml with work items list</action> </check> </step>
<step n="8" title="Transition"> <output> {count} work items created for "{intent-title}".
Ready to plan execution scope? [Y/n] </output> <check if="response == y"> <routeto>builder-agent (run-plan)</routeto> </check> </step> </flow>
<output_artifacts>
| Artifact | Location | Template |
|---|---|---|
| Work Item | .specs-fire/intents/{intent-id}/work-items/{id}.md |
./templates/work-item.md.hbs |
</output_artifacts>
<successcriteria> <criterion>Intent decomposed into discrete work items</criterion> <criterion>Each work item has clear acceptance criteria</criterion> <criterion>Complexity assessed for each item</criterion> <criterion>Autonomy bias applied to determine modes</criterion> <criterion>Dependencies validated (no circular dependencies)</criterion> <criterion>Work items saved to correct locations</criterion> <criterion>State.yaml updated with work items list</criterion> </successcriteria>