specsmd 0.0.0-dev.6 → 0.0.0-dev.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/flows/aidlc/commands/construction-agent.md +5 -1
- package/flows/aidlc/commands/inception-agent.md +4 -0
- package/flows/aidlc/commands/master-agent.md +4 -0
- package/flows/aidlc/commands/operations-agent.md +4 -0
- package/flows/aidlc/memory-bank.yaml +2 -1
- package/{scripts → flows/aidlc/scripts}/artifact-validator.js +3 -3
- package/{scripts → flows/aidlc/scripts}/bolt-complete.js +35 -4
- package/{scripts → flows/aidlc/scripts}/status-integrity.js +4 -4
- package/flows/aidlc/skills/construction/bolt-list.md +1 -1
- package/flows/aidlc/skills/construction/bolt-start.md +2 -2
- package/flows/aidlc/skills/construction/bolt-status.md +1 -1
- package/flows/aidlc/skills/construction/prototype-apply.md +305 -0
- package/flows/aidlc/skills/inception/bolt-plan.md +15 -2
- package/flows/aidlc/skills/inception/vibe-to-spec.md +406 -0
- package/flows/aidlc/skills/master/analyze-context.md +1 -1
- package/flows/aidlc/templates/construction/bolt-template.md +22 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +73 -11
- package/flows/aidlc/templates/construction/bolt-types/simple-construction-bolt.md +5 -0
- package/flows/aidlc/templates/standards/decision-index-template.md +32 -0
- package/flows/fire/README.md +19 -0
- package/flows/fire/agents/builder/agent.md +275 -0
- package/flows/fire/agents/builder/skills/code-review/SKILL.md +266 -0
- package/flows/fire/agents/builder/skills/code-review/references/auto-fix-rules.md +212 -0
- package/flows/fire/agents/builder/skills/code-review/references/review-categories.md +154 -0
- package/flows/fire/agents/builder/skills/code-review/templates/review-report.md.hbs +120 -0
- package/flows/fire/agents/builder/skills/run-execute/SKILL.md +503 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/complete-run.js +549 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/init-run.js +454 -0
- package/flows/fire/agents/builder/skills/run-execute/templates/plan.md.hbs +61 -0
- package/flows/fire/agents/builder/skills/run-execute/templates/test-report.md.hbs +81 -0
- package/flows/fire/agents/builder/skills/run-plan/SKILL.md +376 -0
- package/flows/fire/agents/builder/skills/run-status/SKILL.md +94 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/SKILL.md +140 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/scripts/render-walkthrough.ts +755 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/templates/walkthrough.md.hbs +77 -0
- package/flows/fire/agents/orchestrator/agent.md +113 -0
- package/flows/fire/agents/orchestrator/skills/project-init/SKILL.md +150 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/coding-standards.md.hbs +149 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/system-architecture.md.hbs +101 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/tech-stack.md.hbs +136 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/testing-standards.md.hbs +94 -0
- package/flows/fire/agents/orchestrator/skills/route/SKILL.md +123 -0
- package/flows/fire/agents/orchestrator/skills/status/SKILL.md +99 -0
- package/flows/fire/agents/planner/agent.md +122 -0
- package/flows/fire/agents/planner/skills/design-doc-generate/SKILL.md +213 -0
- package/flows/fire/agents/planner/skills/design-doc-generate/templates/design.md.hbs +76 -0
- package/flows/fire/agents/planner/skills/intent-capture/SKILL.md +155 -0
- package/flows/fire/agents/planner/skills/intent-capture/templates/brief.md.hbs +40 -0
- package/flows/fire/agents/planner/skills/work-item-decompose/SKILL.md +194 -0
- package/flows/fire/agents/planner/skills/work-item-decompose/templates/work-item.md.hbs +40 -0
- package/flows/fire/commands/fire-builder.md +56 -0
- package/flows/fire/commands/fire-planner.md +48 -0
- package/flows/fire/commands/fire.md +46 -0
- package/flows/fire/memory-bank.yaml +164 -0
- package/flows/fire/quick-start.md +130 -0
- package/flows/simple/README.md +190 -0
- package/flows/simple/agents/agent.md +404 -0
- package/flows/simple/commands/agent.md +60 -0
- package/flows/simple/context-config.yaml +34 -0
- package/flows/simple/memory-bank.yaml +66 -0
- package/flows/simple/quick-start.md +231 -0
- package/flows/simple/skills/design.md +96 -0
- package/flows/simple/skills/execute.md +190 -0
- package/flows/simple/skills/requirements.md +94 -0
- package/flows/simple/skills/tasks.md +136 -0
- package/flows/simple/templates/design-template.md +138 -0
- package/flows/simple/templates/requirements-template.md +85 -0
- package/flows/simple/templates/tasks-template.md +104 -0
- package/lib/analytics/tracker.js +6 -2
- package/lib/constants.js +17 -8
- package/lib/installer.js +5 -15
- package/lib/installers/KiroInstaller.js +55 -0
- package/lib/installers/OpenCodeInstaller.js +9 -1
- package/lib/installers/ToolInstaller.js +4 -1
- package/lib/installers/WindsurfInstaller.js +0 -54
- package/package.json +3 -52
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Testing Standards
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
{{overview}}
|
|
6
|
+
|
|
7
|
+
## Testing Framework
|
|
8
|
+
|
|
9
|
+
**Framework**: {{framework}}
|
|
10
|
+
**Runner**: {{runner}}
|
|
11
|
+
|
|
12
|
+
## Test Types
|
|
13
|
+
|
|
14
|
+
| Type | Tool | Location | When to Use |
|
|
15
|
+
|------|------|----------|-------------|
|
|
16
|
+
{{#each test_types}}
|
|
17
|
+
| {{this.type}} | {{this.tool}} | `{{this.location}}` | {{this.when}} |
|
|
18
|
+
{{/each}}
|
|
19
|
+
|
|
20
|
+
## Coverage Requirements
|
|
21
|
+
|
|
22
|
+
**Target**: {{coverage_target}}%
|
|
23
|
+
**Enforcement**: {{coverage_enforcement}}
|
|
24
|
+
|
|
25
|
+
**Critical paths that MUST have coverage:**
|
|
26
|
+
{{#each critical_paths}}
|
|
27
|
+
- {{this}}
|
|
28
|
+
{{/each}}
|
|
29
|
+
|
|
30
|
+
## Test Naming
|
|
31
|
+
|
|
32
|
+
**Pattern**: `{{naming_pattern}}`
|
|
33
|
+
|
|
34
|
+
**Examples**:
|
|
35
|
+
{{#each naming_examples}}
|
|
36
|
+
- `{{this.name}}` — {{this.description}}
|
|
37
|
+
{{/each}}
|
|
38
|
+
|
|
39
|
+
## Test Structure
|
|
40
|
+
|
|
41
|
+
```{{language}}
|
|
42
|
+
{{test_structure}}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Mock Strategy
|
|
46
|
+
|
|
47
|
+
**Approach**: {{mock_approach}}
|
|
48
|
+
|
|
49
|
+
**Guidelines**:
|
|
50
|
+
{{#each mock_guidelines}}
|
|
51
|
+
- {{this}}
|
|
52
|
+
{{/each}}
|
|
53
|
+
|
|
54
|
+
## Test Data
|
|
55
|
+
|
|
56
|
+
**Strategy**: {{test_data_strategy}}
|
|
57
|
+
|
|
58
|
+
**Guidelines**:
|
|
59
|
+
{{#each test_data_guidelines}}
|
|
60
|
+
- {{this}}
|
|
61
|
+
{{/each}}
|
|
62
|
+
|
|
63
|
+
## Running Tests
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Run all tests
|
|
67
|
+
{{run_all_command}}
|
|
68
|
+
|
|
69
|
+
# Run with coverage
|
|
70
|
+
{{run_coverage_command}}
|
|
71
|
+
|
|
72
|
+
# Run specific test file
|
|
73
|
+
{{run_single_command}}
|
|
74
|
+
|
|
75
|
+
# Run in watch mode
|
|
76
|
+
{{run_watch_command}}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## CI/CD Integration
|
|
80
|
+
|
|
81
|
+
{{#if ci_enabled}}
|
|
82
|
+
**Pipeline**: {{ci_pipeline}}
|
|
83
|
+
**Trigger**: {{ci_trigger}}
|
|
84
|
+
|
|
85
|
+
**Required gates**:
|
|
86
|
+
{{#each ci_gates}}
|
|
87
|
+
- {{this}}
|
|
88
|
+
{{/each}}
|
|
89
|
+
{{else}}
|
|
90
|
+
CI/CD integration not configured.
|
|
91
|
+
{{/if}}
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
*Generated by FIRE project-init*
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Skill: Route
|
|
2
|
+
|
|
3
|
+
Analyze project state and route user to the appropriate agent.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Trigger
|
|
8
|
+
|
|
9
|
+
- User runs `/fire` on initialized project
|
|
10
|
+
- After any agent completes its task
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
```xml
|
|
17
|
+
<skill name="route">
|
|
18
|
+
|
|
19
|
+
<step n="1" title="Discover and Read State">
|
|
20
|
+
<action>Read .specs-fire/state.yaml</action>
|
|
21
|
+
<action>Scan .specs-fire/intents/ for briefs not in state</action>
|
|
22
|
+
<action>Scan .specs-fire/intents/*/work-items/ for items not in state</action>
|
|
23
|
+
<action>Reconcile: add discovered items to state as pending</action>
|
|
24
|
+
<action>Parse current project state</action>
|
|
25
|
+
</step>
|
|
26
|
+
|
|
27
|
+
<step n="2" title="Check Active Run">
|
|
28
|
+
<check if="active_run exists and status == in_progress">
|
|
29
|
+
<output>
|
|
30
|
+
Resuming active run: {active_run.id}
|
|
31
|
+
Scope: {active_run.scope}
|
|
32
|
+
Current item: {active_run.current_item}
|
|
33
|
+
Progress: {completed_count}/{total_count} items
|
|
34
|
+
</output>
|
|
35
|
+
<route-to>builder-agent (run-execute)</route-to>
|
|
36
|
+
<stop/>
|
|
37
|
+
</check>
|
|
38
|
+
</step>
|
|
39
|
+
|
|
40
|
+
<step n="3" title="Check Pending Work Items">
|
|
41
|
+
<action>Find work items with status == pending across all intents</action>
|
|
42
|
+
<check if="pending work items exist">
|
|
43
|
+
<output>
|
|
44
|
+
**{pending_count} pending work items** found across {intent_count} intent(s).
|
|
45
|
+
|
|
46
|
+
Plan run scope and start execution? [Y/n]
|
|
47
|
+
</output>
|
|
48
|
+
<check if="response == y">
|
|
49
|
+
<route-to>builder-agent (run-plan)</route-to>
|
|
50
|
+
</check>
|
|
51
|
+
<stop/>
|
|
52
|
+
</check>
|
|
53
|
+
</step>
|
|
54
|
+
|
|
55
|
+
<step n="4" title="Check Active Intent">
|
|
56
|
+
<action>Find intents with status == in_progress</action>
|
|
57
|
+
<check if="active intent has no work items">
|
|
58
|
+
<output>
|
|
59
|
+
Intent "{intent.title}" needs decomposition.
|
|
60
|
+
Routing to Planner to create work items.
|
|
61
|
+
</output>
|
|
62
|
+
<route-to>planner-agent (work-item-decompose)</route-to>
|
|
63
|
+
<stop/>
|
|
64
|
+
</check>
|
|
65
|
+
<check if="all work items completed">
|
|
66
|
+
<action>Mark intent as completed</action>
|
|
67
|
+
<output>
|
|
68
|
+
Intent "{intent.title}" completed!
|
|
69
|
+
|
|
70
|
+
Work items delivered:
|
|
71
|
+
{list completed work items}
|
|
72
|
+
|
|
73
|
+
Ready for next intent? [Y/n]
|
|
74
|
+
</output>
|
|
75
|
+
</check>
|
|
76
|
+
</step>
|
|
77
|
+
|
|
78
|
+
<step n="5" title="No Active Work">
|
|
79
|
+
<output>
|
|
80
|
+
No active work. Ready for a new intent.
|
|
81
|
+
|
|
82
|
+
What do you want to build?
|
|
83
|
+
</output>
|
|
84
|
+
<route-to>planner-agent (intent-capture)</route-to>
|
|
85
|
+
</step>
|
|
86
|
+
|
|
87
|
+
</skill>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Routing Decision Tree
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
state.yaml + file system scan
|
|
96
|
+
│
|
|
97
|
+
├── active_run? ──────────────> Builder (run-execute, resume)
|
|
98
|
+
│
|
|
99
|
+
├── pending work items? ──────> Builder (run-plan, then execute)
|
|
100
|
+
│
|
|
101
|
+
├── intent without work items? > Planner (work-item-decompose)
|
|
102
|
+
│
|
|
103
|
+
└── no active intents ────────> Planner (intent-capture)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Context Passed to Agents
|
|
109
|
+
|
|
110
|
+
**To Planner:**
|
|
111
|
+
```yaml
|
|
112
|
+
context:
|
|
113
|
+
action: intent-capture | work-item-decompose
|
|
114
|
+
intent_id: {if decomposing}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**To Builder:**
|
|
118
|
+
```yaml
|
|
119
|
+
context:
|
|
120
|
+
action: run-plan | run-execute | resume
|
|
121
|
+
pending_items: [{list of pending work items}] # for run-plan
|
|
122
|
+
run_id: {if resuming}
|
|
123
|
+
```
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Skill: Status
|
|
2
|
+
|
|
3
|
+
Display current FIRE project status.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Trigger
|
|
8
|
+
|
|
9
|
+
- User runs `/fire status`
|
|
10
|
+
- User asks "what's the status?"
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
```xml
|
|
17
|
+
<skill name="status">
|
|
18
|
+
|
|
19
|
+
<step n="1" title="Read State">
|
|
20
|
+
<action>Read .specs-fire/state.yaml</action>
|
|
21
|
+
</step>
|
|
22
|
+
|
|
23
|
+
<step n="2" title="Display Status">
|
|
24
|
+
<output>
|
|
25
|
+
# FIRE Status
|
|
26
|
+
|
|
27
|
+
**Project**: {project.name}
|
|
28
|
+
**Workspace**: {workspace.type} / {workspace.structure}
|
|
29
|
+
**Autonomy**: {workspace.autonomy_bias}
|
|
30
|
+
|
|
31
|
+
## Intents
|
|
32
|
+
|
|
33
|
+
{for each intent}
|
|
34
|
+
### {intent.title} [{intent.status}]
|
|
35
|
+
|
|
36
|
+
| Work Item | Status | Complexity | Mode |
|
|
37
|
+
|-----------|--------|------------|------|
|
|
38
|
+
{for each work_item}
|
|
39
|
+
| {title} | {status} | {complexity} | {mode} |
|
|
40
|
+
{/for}
|
|
41
|
+
|
|
42
|
+
{/for}
|
|
43
|
+
|
|
44
|
+
## Active Run
|
|
45
|
+
|
|
46
|
+
{if active_run}
|
|
47
|
+
- **Run**: {active_run.id}
|
|
48
|
+
- **Work Item**: {active_run.work_item}
|
|
49
|
+
- **Started**: {active_run.started}
|
|
50
|
+
- **Mode**: {active_run.mode}
|
|
51
|
+
{else}
|
|
52
|
+
No active run.
|
|
53
|
+
{/if}
|
|
54
|
+
|
|
55
|
+
## Quick Stats
|
|
56
|
+
|
|
57
|
+
- Intents: {total_intents} ({completed_intents} completed)
|
|
58
|
+
- Work Items: {total_work_items} ({completed_work_items} completed)
|
|
59
|
+
- Runs: {total_runs}
|
|
60
|
+
</output>
|
|
61
|
+
</step>
|
|
62
|
+
|
|
63
|
+
</skill>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Example Output
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
# FIRE Status
|
|
72
|
+
|
|
73
|
+
**Project**: my-saas-app
|
|
74
|
+
**Workspace**: brownfield / monolith
|
|
75
|
+
**Autonomy**: balanced
|
|
76
|
+
|
|
77
|
+
## Intents
|
|
78
|
+
|
|
79
|
+
### User Authentication [in_progress]
|
|
80
|
+
|
|
81
|
+
| Work Item | Status | Complexity | Mode |
|
|
82
|
+
|-----------|--------|------------|------|
|
|
83
|
+
| login-endpoint | completed | medium | confirm |
|
|
84
|
+
| session-management | in_progress | medium | confirm |
|
|
85
|
+
| password-reset | pending | high | validate |
|
|
86
|
+
|
|
87
|
+
## Active Run
|
|
88
|
+
|
|
89
|
+
- **Run**: run-002
|
|
90
|
+
- **Work Item**: session-management
|
|
91
|
+
- **Started**: 2026-01-19T10:30:00Z
|
|
92
|
+
- **Mode**: confirm
|
|
93
|
+
|
|
94
|
+
## Quick Stats
|
|
95
|
+
|
|
96
|
+
- Intents: 1 (0 completed)
|
|
97
|
+
- Work Items: 3 (1 completed)
|
|
98
|
+
- Runs: 2
|
|
99
|
+
```
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# FIRE Planner Agent
|
|
2
|
+
|
|
3
|
+
You are the **Planner Agent** for FIRE (Fast Intent-Run Engineering).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Persona
|
|
8
|
+
|
|
9
|
+
- **Role**: Intent Architect & Work Item Designer
|
|
10
|
+
- **Communication**: Conversational during capture, structured during output.
|
|
11
|
+
- **Principle**: Capture the "what" and "why" through dialogue. Never assume requirements.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## On Activation
|
|
16
|
+
|
|
17
|
+
When routed from Orchestrator or user invokes this agent:
|
|
18
|
+
|
|
19
|
+
1. Read `.specs-fire/state.yaml` for current state
|
|
20
|
+
2. Determine mode:
|
|
21
|
+
- **No active intent** → Execute `intent-capture` skill
|
|
22
|
+
- **Intent without work items** → Execute `work-item-decompose` skill
|
|
23
|
+
- **High-complexity work item** → Execute `design-doc-generate` skill
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Skills
|
|
28
|
+
|
|
29
|
+
| Command | Skill | Description |
|
|
30
|
+
|---------|-------|-------------|
|
|
31
|
+
| `capture`, `intent` | `skills/intent-capture/SKILL.md` | Capture new intent through conversation |
|
|
32
|
+
| `decompose`, `plan` | `skills/work-item-decompose/SKILL.md` | Break intent into work items |
|
|
33
|
+
| `design` | `skills/design-doc-generate/SKILL.md` | Generate design doc (Validate mode) |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Intent Capture Flow
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
[1] Ask: "What do you want to build?"
|
|
41
|
+
[2] Elicit context through follow-up questions:
|
|
42
|
+
- Who is this for?
|
|
43
|
+
- What problem does it solve?
|
|
44
|
+
- Any constraints or preferences?
|
|
45
|
+
[3] Summarize understanding
|
|
46
|
+
[4] Generate intent brief
|
|
47
|
+
[5] Save to .specs-fire/intents/{id}/brief.md
|
|
48
|
+
[6] Update state.yaml
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**CRITICAL**: Use HIGH degrees of freedom. Explore openly, don't constrain prematurely.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Work Item Decomposition Flow
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
[1] Read intent brief
|
|
59
|
+
[2] Identify discrete deliverables
|
|
60
|
+
[3] For each work item:
|
|
61
|
+
- Assign complexity (low/medium/high)
|
|
62
|
+
- Suggest execution mode (autopilot/confirm/validate)
|
|
63
|
+
- Define acceptance criteria
|
|
64
|
+
[4] Validate dependencies
|
|
65
|
+
[5] Save work items to .specs-fire/intents/{id}/work-items/
|
|
66
|
+
[6] Update state.yaml with work items list
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**CRITICAL**: Use MEDIUM degrees of freedom. Follow patterns but adapt to context.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Design Document Flow (Validate Mode Only)
|
|
74
|
+
|
|
75
|
+
For high-complexity work items requiring Validate mode:
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
[1] Analyze work item requirements
|
|
79
|
+
[2] Identify key decisions needed
|
|
80
|
+
[3] Draft:
|
|
81
|
+
- Key decisions table (decision, choice, rationale)
|
|
82
|
+
- Domain model (if applicable)
|
|
83
|
+
- Technical approach (component diagram, API contracts)
|
|
84
|
+
- Risks and mitigations
|
|
85
|
+
- Implementation checklist
|
|
86
|
+
[4] Present to user for review (Checkpoint 1)
|
|
87
|
+
[5] Incorporate feedback
|
|
88
|
+
[6] Save design doc
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Output Artifacts
|
|
94
|
+
|
|
95
|
+
| Artifact | Location | Template |
|
|
96
|
+
|----------|----------|----------|
|
|
97
|
+
| Intent Brief | `.specs-fire/intents/{id}/brief.md` | `templates/intents/brief.md.hbs` |
|
|
98
|
+
| Work Item | `.specs-fire/intents/{id}/work-items/{id}.md` | `templates/intents/work-item.md.hbs` |
|
|
99
|
+
| Design Doc | `.specs-fire/intents/{id}/work-items/{id}-design.md` | `templates/intents/design-doc.md.hbs` |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Handoff to Builder
|
|
104
|
+
|
|
105
|
+
When planning is complete:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
Planning complete for intent "{intent-title}".
|
|
109
|
+
|
|
110
|
+
Work items ready for execution:
|
|
111
|
+
1. {work-item-1} (low, autopilot)
|
|
112
|
+
2. {work-item-2} (medium, confirm)
|
|
113
|
+
3. {work-item-3} (high, validate)
|
|
114
|
+
|
|
115
|
+
Route to Builder Agent to begin execution? [Y/n]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Begin
|
|
121
|
+
|
|
122
|
+
Read `.specs-fire/state.yaml` and determine which planning skill to execute based on current state.
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# Skill: Design Doc Generate
|
|
2
|
+
|
|
3
|
+
Generate design documents for Validate mode work items (Checkpoint 1).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Trigger
|
|
8
|
+
|
|
9
|
+
- Work item has complexity: high
|
|
10
|
+
- Work item has mode: validate
|
|
11
|
+
- Design review required before implementation
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Degrees of Freedom
|
|
16
|
+
|
|
17
|
+
**LOW** — Follow the design doc structure precisely. Decisions must have rationale.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Workflow
|
|
22
|
+
|
|
23
|
+
```xml
|
|
24
|
+
<skill name="design-doc-generate">
|
|
25
|
+
|
|
26
|
+
<mandate>
|
|
27
|
+
Design doc MUST be approved before implementation.
|
|
28
|
+
Document DECISIONS with RATIONALE, not just choices.
|
|
29
|
+
Keep concise - enough detail to implement, no more.
|
|
30
|
+
Include risks upfront - don't hide complexity.
|
|
31
|
+
</mandate>
|
|
32
|
+
|
|
33
|
+
<step n="1" title="Analyze Work Item">
|
|
34
|
+
<action>Read work item from .specs-fire/intents/{intent-id}/work-items/{id}.md</action>
|
|
35
|
+
<action>Identify key design decisions needed</action>
|
|
36
|
+
<action>Assess domain modeling needs</action>
|
|
37
|
+
<action>Identify integration points</action>
|
|
38
|
+
</step>
|
|
39
|
+
|
|
40
|
+
<step n="2" title="Gather Context">
|
|
41
|
+
<action>Review project standards (.specs-fire/standards/)</action>
|
|
42
|
+
<action>Check existing codebase patterns</action>
|
|
43
|
+
<action>Identify similar implementations to reference</action>
|
|
44
|
+
</step>
|
|
45
|
+
|
|
46
|
+
<step n="3" title="Draft Key Decisions">
|
|
47
|
+
<action>For each decision point:</action>
|
|
48
|
+
<substep>Identify options considered</substep>
|
|
49
|
+
<substep>Evaluate trade-offs</substep>
|
|
50
|
+
<substep>Select recommended choice</substep>
|
|
51
|
+
<substep>Document rationale</substep>
|
|
52
|
+
|
|
53
|
+
<output-format>
|
|
54
|
+
| Decision | Choice | Rationale |
|
|
55
|
+
|----------|--------|-----------|
|
|
56
|
+
| ... | ... | ... |
|
|
57
|
+
</output-format>
|
|
58
|
+
</step>
|
|
59
|
+
|
|
60
|
+
<step n="4" title="Define Domain Model" if="has_domain_complexity">
|
|
61
|
+
<action>Identify entities (things with identity)</action>
|
|
62
|
+
<action>Identify value objects (immutable values)</action>
|
|
63
|
+
<action>Identify domain events (if event-driven)</action>
|
|
64
|
+
<action>Map relationships</action>
|
|
65
|
+
</step>
|
|
66
|
+
|
|
67
|
+
<step n="5" title="Design Technical Approach">
|
|
68
|
+
<action>Create component diagram (ASCII)</action>
|
|
69
|
+
<action>Define API contracts (if applicable)</action>
|
|
70
|
+
<action>Specify database changes (if applicable)</action>
|
|
71
|
+
<action>Document data flow</action>
|
|
72
|
+
</step>
|
|
73
|
+
|
|
74
|
+
<step n="6" title="Identify Risks">
|
|
75
|
+
<action>List potential risks</action>
|
|
76
|
+
<action>Assess impact (high/medium/low)</action>
|
|
77
|
+
<action>Propose mitigations</action>
|
|
78
|
+
|
|
79
|
+
<output-format>
|
|
80
|
+
| Risk | Impact | Mitigation |
|
|
81
|
+
|------|--------|------------|
|
|
82
|
+
| ... | ... | ... |
|
|
83
|
+
</output-format>
|
|
84
|
+
</step>
|
|
85
|
+
|
|
86
|
+
<step n="7" title="Create Implementation Checklist">
|
|
87
|
+
<action>Break down into implementation steps</action>
|
|
88
|
+
<action>Order by dependency</action>
|
|
89
|
+
<action>Keep granular but not excessive</action>
|
|
90
|
+
</step>
|
|
91
|
+
|
|
92
|
+
<step n="8" title="Present Design Doc">
|
|
93
|
+
<checkpoint message="Design document ready for review">
|
|
94
|
+
<output>
|
|
95
|
+
# Design: {work-item-title}
|
|
96
|
+
|
|
97
|
+
## Summary
|
|
98
|
+
{brief description}
|
|
99
|
+
|
|
100
|
+
## Key Decisions
|
|
101
|
+
{decisions table}
|
|
102
|
+
|
|
103
|
+
## Technical Approach
|
|
104
|
+
{component diagram, API contracts}
|
|
105
|
+
|
|
106
|
+
## Risks
|
|
107
|
+
{risks table}
|
|
108
|
+
|
|
109
|
+
## Implementation Checklist
|
|
110
|
+
{ordered steps}
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
This is Checkpoint 1 of Validate mode.
|
|
114
|
+
|
|
115
|
+
Approve design? [Y/n/edit]
|
|
116
|
+
</output>
|
|
117
|
+
</checkpoint>
|
|
118
|
+
</step>
|
|
119
|
+
|
|
120
|
+
<step n="9" title="Handle Response">
|
|
121
|
+
<check if="response == y">
|
|
122
|
+
<action>Generate design doc using template: templates/design.md.hbs</action>
|
|
123
|
+
<action>Save to: .specs-fire/intents/{intent-id}/work-items/{id}-design.md</action>
|
|
124
|
+
<action>Mark checkpoint 1 as passed</action>
|
|
125
|
+
<output>
|
|
126
|
+
Design approved. Ready for implementation planning.
|
|
127
|
+
|
|
128
|
+
Route to Builder for Checkpoint 2 (implementation plan)? [Y/n]
|
|
129
|
+
</output>
|
|
130
|
+
</check>
|
|
131
|
+
<check if="response == edit">
|
|
132
|
+
<ask>What changes are needed?</ask>
|
|
133
|
+
<action>Incorporate feedback</action>
|
|
134
|
+
<goto step="8"/>
|
|
135
|
+
</check>
|
|
136
|
+
<check if="response == n">
|
|
137
|
+
<output>Design rejected. What concerns need to be addressed?</output>
|
|
138
|
+
<action>Gather feedback, revise approach</action>
|
|
139
|
+
<goto step="3"/>
|
|
140
|
+
</check>
|
|
141
|
+
</step>
|
|
142
|
+
|
|
143
|
+
</skill>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Output
|
|
149
|
+
|
|
150
|
+
**Design Doc** (`.specs-fire/intents/{intent-id}/work-items/{id}-design.md`):
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
---
|
|
154
|
+
work_item: {work-item-id}
|
|
155
|
+
intent: {intent-id}
|
|
156
|
+
created: {timestamp}
|
|
157
|
+
mode: validate
|
|
158
|
+
checkpoint_1: approved
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
# Design: {title}
|
|
162
|
+
|
|
163
|
+
## Summary
|
|
164
|
+
|
|
165
|
+
{Brief description of what will be built and why}
|
|
166
|
+
|
|
167
|
+
## Key Decisions
|
|
168
|
+
|
|
169
|
+
| Decision | Choice | Rationale |
|
|
170
|
+
|----------|--------|-----------|
|
|
171
|
+
| {decision} | {choice} | {why} |
|
|
172
|
+
|
|
173
|
+
## Domain Model
|
|
174
|
+
|
|
175
|
+
### Entities
|
|
176
|
+
- **{Name}**: {description}
|
|
177
|
+
|
|
178
|
+
### Value Objects
|
|
179
|
+
- **{Name}**: {description}
|
|
180
|
+
|
|
181
|
+
## Technical Approach
|
|
182
|
+
|
|
183
|
+
### Component Diagram
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
[ASCII diagram]
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### API Endpoints
|
|
190
|
+
|
|
191
|
+
- `POST /api/...` - {description}
|
|
192
|
+
|
|
193
|
+
### Database Changes
|
|
194
|
+
|
|
195
|
+
```sql
|
|
196
|
+
CREATE TABLE ...
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Risks & Mitigations
|
|
200
|
+
|
|
201
|
+
| Risk | Impact | Mitigation |
|
|
202
|
+
|------|--------|------------|
|
|
203
|
+
| {risk} | {impact} | {mitigation} |
|
|
204
|
+
|
|
205
|
+
## Implementation Checklist
|
|
206
|
+
|
|
207
|
+
- [ ] {step 1}
|
|
208
|
+
- [ ] {step 2}
|
|
209
|
+
- [ ] {step 3}
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
*Checkpoint 1 approved: {timestamp}*
|
|
213
|
+
```
|