specsmd 0.0.0-dev.51 → 0.0.0-dev.53

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.
@@ -153,14 +153,21 @@ Each run creates a folder with its artifacts:
153
153
 
154
154
  ```
155
155
  .specs-fire/runs/{run-id}/
156
+ ├── plan.md # Approved implementation plan (confirm/validate modes)
156
157
  ├── run.md # Run log (metadata, files changed, decisions)
157
158
  └── walkthrough.md # Implementation walkthrough (for human review)
158
159
  ```
159
160
 
161
+ **The trio**:
162
+ - **plan.md** — What we intended to do (approved at checkpoint)
163
+ - **run.md** — What happened during execution
164
+ - **walkthrough.md** — Human-readable summary after completion
165
+
160
166
  | Artifact | Location | Template |
161
167
  |----------|----------|----------|
162
- | Run Log | `.specs-fire/runs/{run-id}/run.md` | `templates/runs/run.md.hbs` |
163
- | Walkthrough | `.specs-fire/runs/{run-id}/walkthrough.md` | `templates/runs/walkthrough.md.hbs` |
168
+ | Plan | `.specs-fire/runs/{run-id}/plan.md` | `skills/run-execute/templates/plan.md.hbs` |
169
+ | Run Log | `.specs-fire/runs/{run-id}/run.md` | (generated by script) |
170
+ | Walkthrough | `.specs-fire/runs/{run-id}/walkthrough.md` | `skills/walkthrough-generate/templates/walkthrough.md.hbs` |
164
171
 
165
172
  ---
166
173
 
@@ -105,6 +105,10 @@ Before executing scripts, ensure required dependencies are installed:
105
105
  <action>Adjust plan</action>
106
106
  <goto step="3b"/>
107
107
  </check>
108
+ <check if="response == y">
109
+ <action>Save approved plan using template: templates/plan.md.hbs</action>
110
+ <action>Write to: .specs-fire/runs/{run-id}/plan.md</action>
111
+ </check>
108
112
  <goto step="5"/>
109
113
  </step>
110
114
 
@@ -136,6 +140,11 @@ Before executing scripts, ensure required dependencies are installed:
136
140
  <action>Adjust plan</action>
137
141
  <goto step="3c"/>
138
142
  </check>
143
+ <check if="response == y">
144
+ <action>Save approved plan using template: templates/plan.md.hbs</action>
145
+ <action>Write to: .specs-fire/runs/{run-id}/plan.md</action>
146
+ <action>Include reference to design doc in plan</action>
147
+ </check>
139
148
  <goto step="5"/>
140
149
  </step>
141
150
 
@@ -0,0 +1,61 @@
1
+ ---
2
+ run: {{run_id}}
3
+ work_item: {{work_item_id}}
4
+ intent: {{intent_id}}
5
+ mode: {{mode}}
6
+ checkpoint: {{checkpoint_type}}
7
+ approved_at: {{approved_at}}
8
+ ---
9
+
10
+ # Implementation Plan: {{title}}
11
+
12
+ ## Approach
13
+
14
+ {{approach}}
15
+
16
+ ## Files to Create
17
+
18
+ | File | Purpose |
19
+ |------|---------|
20
+ {{#each files_to_create}}
21
+ | `{{this.path}}` | {{this.purpose}} |
22
+ {{/each}}
23
+ {{#unless files_to_create}}
24
+ | (none) | |
25
+ {{/unless}}
26
+
27
+ ## Files to Modify
28
+
29
+ | File | Changes |
30
+ |------|---------|
31
+ {{#each files_to_modify}}
32
+ | `{{this.path}}` | {{this.changes}} |
33
+ {{/each}}
34
+ {{#unless files_to_modify}}
35
+ | (none) | |
36
+ {{/unless}}
37
+
38
+ {{#if tests}}
39
+ ## Tests
40
+
41
+ | Test File | Coverage |
42
+ |-----------|----------|
43
+ {{#each tests}}
44
+ | `{{this.path}}` | {{this.coverage}} |
45
+ {{/each}}
46
+ {{/if}}
47
+
48
+ {{#if technical_details}}
49
+ ## Technical Details
50
+
51
+ {{technical_details}}
52
+ {{/if}}
53
+
54
+ {{#if design_doc}}
55
+ ## Based on Design Doc
56
+
57
+ Reference: `{{design_doc}}`
58
+ {{/if}}
59
+
60
+ ---
61
+ *Plan approved at checkpoint. Execution follows.*
@@ -61,7 +61,7 @@ Generate implementation walkthrough for human review after run completion.
61
61
  </step>
62
62
 
63
63
  <step n="5" title="Generate Walkthrough">
64
- <action script="scripts/render-walkthrough.ts">Render walkthrough from template</action>
64
+ <action>Generate walkthrough using template: templates/walkthrough.md.hbs</action>
65
65
  <action>Save to: .specs-fire/runs/{run-id}/walkthrough.md</action>
66
66
  <output>
67
67
  Walkthrough generated: .specs-fire/runs/{run-id}/walkthrough.md
@@ -0,0 +1,77 @@
1
+ ---
2
+ run: {{run_id}}
3
+ work_item: {{work_item_id}}
4
+ intent: {{intent_id}}
5
+ generated: {{generated}}
6
+ mode: {{mode}}
7
+ ---
8
+
9
+ # Implementation Walkthrough: {{title}}
10
+
11
+ ## Summary
12
+
13
+ {{summary}}
14
+
15
+ ## Files Changed
16
+
17
+ ### Created
18
+
19
+ | File | Purpose |
20
+ |------|---------|
21
+ {{#each files_created}}
22
+ | `{{this.path}}` | {{this.purpose}} |
23
+ {{/each}}
24
+ {{#unless files_created}}
25
+ | (none) | |
26
+ {{/unless}}
27
+
28
+ ### Modified
29
+
30
+ | File | Changes |
31
+ |------|---------|
32
+ {{#each files_modified}}
33
+ | `{{this.path}}` | {{this.changes}} |
34
+ {{/each}}
35
+ {{#unless files_modified}}
36
+ | (none) | |
37
+ {{/unless}}
38
+
39
+ ## Key Implementation Details
40
+
41
+ {{#each implementation_details}}
42
+ ### {{@index}}. {{this.title}}
43
+
44
+ {{this.description}}
45
+
46
+ {{/each}}
47
+
48
+ ## Decisions Made
49
+
50
+ | Decision | Choice | Rationale |
51
+ |----------|--------|-----------|
52
+ {{#each decisions}}
53
+ | {{this.decision}} | {{this.choice}} | {{this.rationale}} |
54
+ {{/each}}
55
+ {{#unless decisions}}
56
+ | (none) | | |
57
+ {{/unless}}
58
+
59
+ ## How to Verify
60
+
61
+ {{#each verification_steps}}
62
+ {{@index}}. **{{this.title}}**
63
+ ```bash
64
+ {{this.command}}
65
+ ```
66
+ Expected: {{this.expected}}
67
+
68
+ {{/each}}
69
+
70
+ ## Test Coverage
71
+
72
+ - Tests added: {{tests_added}}
73
+ - Coverage: {{coverage}}%
74
+ - Status: {{test_status}}
75
+
76
+ ---
77
+ *Generated by FIRE Run {{run_id}}*
@@ -119,7 +119,8 @@ Generate design documents for Validate mode work items (Checkpoint 1).
119
119
 
120
120
  <step n="9" title="Handle Response">
121
121
  <check if="response == y">
122
- <action>Save design doc to .specs-fire/intents/{intent-id}/work-items/{id}-design.md</action>
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>
123
124
  <action>Mark checkpoint 1 as passed</action>
124
125
  <output>
125
126
  Design approved. Ready for implementation planning.
@@ -0,0 +1,76 @@
1
+ ---
2
+ work_item: {{work_item_id}}
3
+ intent: {{intent_id}}
4
+ created: {{created}}
5
+ mode: validate
6
+ checkpoint_1: {{checkpoint_status}}
7
+ ---
8
+
9
+ # Design: {{title}}
10
+
11
+ ## Summary
12
+
13
+ {{summary}}
14
+
15
+ ## Key Decisions
16
+
17
+ | Decision | Choice | Rationale |
18
+ |----------|--------|-----------|
19
+ {{#each decisions}}
20
+ | {{this.decision}} | {{this.choice}} | {{this.rationale}} |
21
+ {{/each}}
22
+
23
+ {{#if domain_model}}
24
+ ## Domain Model
25
+
26
+ ### Entities
27
+ {{#each domain_model.entities}}
28
+ - **{{this.name}}**: {{this.description}}
29
+ {{/each}}
30
+
31
+ ### Value Objects
32
+ {{#each domain_model.value_objects}}
33
+ - **{{this.name}}**: {{this.description}}
34
+ {{/each}}
35
+ {{/if}}
36
+
37
+ ## Technical Approach
38
+
39
+ ### Component Diagram
40
+
41
+ ```
42
+ {{component_diagram}}
43
+ ```
44
+
45
+ {{#if api_endpoints}}
46
+ ### API Endpoints
47
+
48
+ {{#each api_endpoints}}
49
+ - `{{this.method}} {{this.path}}` - {{this.description}}
50
+ {{/each}}
51
+ {{/if}}
52
+
53
+ {{#if database_changes}}
54
+ ### Database Changes
55
+
56
+ ```sql
57
+ {{database_changes}}
58
+ ```
59
+ {{/if}}
60
+
61
+ ## Risks & Mitigations
62
+
63
+ | Risk | Impact | Mitigation |
64
+ |------|--------|------------|
65
+ {{#each risks}}
66
+ | {{this.risk}} | {{this.impact}} | {{this.mitigation}} |
67
+ {{/each}}
68
+
69
+ ## Implementation Checklist
70
+
71
+ {{#each checklist}}
72
+ - [ ] {{this}}
73
+ {{/each}}
74
+
75
+ ---
76
+ *Checkpoint 1 approved: {{approved_at}}*
@@ -85,7 +85,7 @@ Capture user intent through guided conversation.
85
85
 
86
86
  <step n="4" title="Generate Intent Brief">
87
87
  <action>Create intent ID from title (kebab-case)</action>
88
- <action>Generate intent brief using template</action>
88
+ <action>Generate intent brief using template: templates/brief.md.hbs</action>
89
89
  <action>Create directory: .specs-fire/intents/{intent-id}/</action>
90
90
  <action>Save: .specs-fire/intents/{intent-id}/brief.md</action>
91
91
  </step>
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: {{id}}
3
+ title: {{title}}
4
+ status: {{status}}
5
+ created: {{created}}
6
+ ---
7
+
8
+ # Intent: {{title}}
9
+
10
+ ## Goal
11
+
12
+ {{goal}}
13
+
14
+ ## Users
15
+
16
+ {{users}}
17
+
18
+ ## Problem
19
+
20
+ {{problem}}
21
+
22
+ ## Success Criteria
23
+
24
+ {{#each success_criteria}}
25
+ - {{this}}
26
+ {{/each}}
27
+
28
+ ## Constraints
29
+
30
+ {{#each constraints}}
31
+ - {{this}}
32
+ {{/each}}
33
+
34
+ ## Notes
35
+
36
+ {{#if notes}}
37
+ {{notes}}
38
+ {{else}}
39
+ (none)
40
+ {{/if}}
@@ -132,7 +132,8 @@ Break an intent into discrete, executable work items.
132
132
  <step n="7" title="Save Work Items">
133
133
  <check if="approved">
134
134
  <action>Create .specs-fire/intents/{intent-id}/work-items/</action>
135
- <action>For each work item, save to {work-item-id}.md</action>
135
+ <action>For each work item, generate using template: templates/work-item.md.hbs</action>
136
+ <action>Save each to: .specs-fire/intents/{intent-id}/work-items/{work-item-id}.md</action>
136
137
  <action>Update state.yaml with work items list</action>
137
138
  </check>
138
139
  </step>
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: {{id}}
3
+ title: {{title}}
4
+ intent: {{intent}}
5
+ complexity: {{complexity}}
6
+ mode: {{mode}}
7
+ status: {{status}}
8
+ depends_on: [{{#each depends_on}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}]
9
+ created: {{created}}
10
+ ---
11
+
12
+ # Work Item: {{title}}
13
+
14
+ ## Description
15
+
16
+ {{description}}
17
+
18
+ ## Acceptance Criteria
19
+
20
+ {{#each acceptance_criteria}}
21
+ - [ ] {{this}}
22
+ {{/each}}
23
+
24
+ ## Technical Notes
25
+
26
+ {{#if technical_notes}}
27
+ {{technical_notes}}
28
+ {{else}}
29
+ (none)
30
+ {{/if}}
31
+
32
+ ## Dependencies
33
+
34
+ {{#if depends_on}}
35
+ {{#each depends_on}}
36
+ - {{this}}
37
+ {{/each}}
38
+ {{else}}
39
+ (none)
40
+ {{/if}}
@@ -79,6 +79,7 @@ schema:
79
79
  work-item: ".specs-fire/intents/{intent-id}/work-items/{work-item-id}.md"
80
80
  runs: ".specs-fire/runs/"
81
81
  run-folder: ".specs-fire/runs/{run-id}/"
82
+ plan: ".specs-fire/runs/{run-id}/plan.md"
82
83
  run-log: ".specs-fire/runs/{run-id}/run.md"
83
84
  walkthrough: ".specs-fire/runs/{run-id}/walkthrough.md"
84
85
  standards: ".specs-fire/standards/"
package/lib/constants.js CHANGED
@@ -14,7 +14,7 @@ const THEME_COLORS = {
14
14
  const FLOWS = {
15
15
  fire: {
16
16
  name: 'FIRE',
17
- description: 'Rapid execution - Solo devs or small teams, brownfield, 0-2 adaptive checkpoints',
17
+ description: 'Rapid execution - Solo devs or small teams, brownfield/monorepo, 0-2 adaptive checkpoints',
18
18
  path: 'fire'
19
19
  },
20
20
  aidlc: {
@@ -29,7 +29,13 @@ const FLOWS = {
29
29
  }
30
30
  };
31
31
 
32
+ const LINKS = {
33
+ website: 'https://specs.md',
34
+ flows: 'https://specs.md/flows'
35
+ };
36
+
32
37
  module.exports = {
33
38
  THEME_COLORS,
34
- FLOWS
39
+ FLOWS,
40
+ LINKS
35
41
  };
package/lib/installer.js CHANGED
@@ -4,7 +4,7 @@ const prompts = require('prompts');
4
4
  const yaml = require('js-yaml');
5
5
  const CLIUtils = require('./cli-utils');
6
6
  const InstallerFactory = require('./InstallerFactory');
7
- const { FLOWS } = require('./constants');
7
+ const { FLOWS, LINKS } = require('./constants');
8
8
  const analytics = require('./analytics');
9
9
 
10
10
  // Use theme from CLIUtils for consistent styling
@@ -125,6 +125,7 @@ async function install() {
125
125
  // Step 3: Select Flow
126
126
  console.log('');
127
127
  CLIUtils.displayStep(3, 4, 'Select SDLC flow');
128
+ console.log(theme.dim(` Learn more about flows: ${LINKS.flows}\n`));
128
129
  const flowChoices = Object.entries(FLOWS).map(([key, flow]) => ({
129
130
  title: `${flow.name} - ${flow.description}${flow.message || ''}`,
130
131
  value: key,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specsmd",
3
- "version": "0.0.0-dev.51",
3
+ "version": "0.0.0-dev.53",
4
4
  "description": "Multi-agent orchestration system for AI-native software development. Delivers AI-DLC, Agile, and custom SDLC flows as markdown-based agent systems.",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {