specsmd 0.1.13 → 0.1.14
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/flows/fire/agents/builder/agent.md +17 -17
- package/flows/fire/agents/builder/skills/run-execute/SKILL.md +23 -23
- package/flows/fire/agents/builder/skills/run-execute/scripts/{complete-run.js → complete-run.cjs} +8 -8
- package/flows/fire/agents/builder/skills/run-execute/scripts/{init-run.js → init-run.cjs} +8 -8
- package/flows/fire/memory-bank.yaml +1 -1
- package/package.json +1 -1
|
@@ -20,8 +20,8 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
|
|
|
20
20
|
<constraint>ALWAYS create plan.md BEFORE implementation</constraint>
|
|
21
21
|
<constraint>ALWAYS create test-report.md AFTER tests pass</constraint>
|
|
22
22
|
<constraint>ALWAYS run code-review after tests complete</constraint>
|
|
23
|
-
<constraint>MUST use init-run.
|
|
24
|
-
<constraint>MUST use complete-run.
|
|
23
|
+
<constraint>MUST use init-run.cjs to create runs — no mkdir</constraint>
|
|
24
|
+
<constraint>MUST use complete-run.cjs to finalize — no manual edits</constraint>
|
|
25
25
|
</constraints>
|
|
26
26
|
|
|
27
27
|
<on_activation>
|
|
@@ -73,7 +73,7 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
|
|
|
73
73
|
<mode name="autopilot" checkpoints="0">
|
|
74
74
|
<description>For bug fixes, minor updates, low-complexity tasks</description>
|
|
75
75
|
<flow>
|
|
76
|
-
<step n="1">Call init-run.
|
|
76
|
+
<step n="1">Call init-run.cjs to initialize run (creates run folder + run.md)</step>
|
|
77
77
|
<step n="2">Load work item and context</step>
|
|
78
78
|
<step n="3">Create plan.md (no checkpoint pause)</step>
|
|
79
79
|
<step n="4">Execute implementation directly</step>
|
|
@@ -81,14 +81,14 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
|
|
|
81
81
|
<step n="6">Create test-report.md</step>
|
|
82
82
|
<step n="7">Run code-review skill</step>
|
|
83
83
|
<step n="8">Generate walkthrough</step>
|
|
84
|
-
<step n="9">Call complete-run.
|
|
84
|
+
<step n="9">Call complete-run.cjs to finalize</step>
|
|
85
85
|
</flow>
|
|
86
86
|
</mode>
|
|
87
87
|
|
|
88
88
|
<mode name="confirm" checkpoints="1">
|
|
89
89
|
<description>For standard features, medium-complexity tasks</description>
|
|
90
90
|
<flow>
|
|
91
|
-
<step n="1">Call init-run.
|
|
91
|
+
<step n="1">Call init-run.cjs to initialize run</step>
|
|
92
92
|
<step n="2">Load work item and context</step>
|
|
93
93
|
<step n="3">Generate implementation plan → save to plan.md</step>
|
|
94
94
|
<step n="4"><checkpoint>Present plan to user for approval</checkpoint></step>
|
|
@@ -97,14 +97,14 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
|
|
|
97
97
|
<step n="7">Create test-report.md</step>
|
|
98
98
|
<step n="8">Run code-review skill</step>
|
|
99
99
|
<step n="9">Generate walkthrough</step>
|
|
100
|
-
<step n="10">Call complete-run.
|
|
100
|
+
<step n="10">Call complete-run.cjs to finalize</step>
|
|
101
101
|
</flow>
|
|
102
102
|
</mode>
|
|
103
103
|
|
|
104
104
|
<mode name="validate" checkpoints="2">
|
|
105
105
|
<description>For security features, payments, core architecture</description>
|
|
106
106
|
<flow>
|
|
107
|
-
<step n="1">Call init-run.
|
|
107
|
+
<step n="1">Call init-run.cjs to initialize run</step>
|
|
108
108
|
<step n="2">Load work item and design doc</step>
|
|
109
109
|
<step n="3"><checkpoint>Design doc review (done by Planner)</checkpoint></step>
|
|
110
110
|
<step n="4">Generate implementation plan → save to plan.md</step>
|
|
@@ -114,7 +114,7 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
|
|
|
114
114
|
<step n="8">Create test-report.md</step>
|
|
115
115
|
<step n="9">Run code-review skill</step>
|
|
116
116
|
<step n="10">Generate walkthrough</step>
|
|
117
|
-
<step n="11">Call complete-run.
|
|
117
|
+
<step n="11">Call complete-run.cjs to finalize</step>
|
|
118
118
|
</flow>
|
|
119
119
|
</mode>
|
|
120
120
|
</execution_modes>
|
|
@@ -152,21 +152,21 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
|
|
|
152
152
|
|
|
153
153
|
| Action | Script | Direct Editing |
|
|
154
154
|
|--------|--------|----------------|
|
|
155
|
-
| Initialize run | `node scripts/init-run.
|
|
156
|
-
| Complete work item | `node scripts/complete-run.
|
|
157
|
-
| Complete run | `node scripts/complete-run.
|
|
158
|
-
| Create run folder | (handled by init-run.
|
|
159
|
-
| Create run.md | (handled by init-run.
|
|
155
|
+
| Initialize run | `node scripts/init-run.cjs ...` | ❌ FORBIDDEN |
|
|
156
|
+
| Complete work item | `node scripts/complete-run.cjs ... --complete-item` | ❌ FORBIDDEN |
|
|
157
|
+
| Complete run | `node scripts/complete-run.cjs ... --complete-run` | ❌ FORBIDDEN |
|
|
158
|
+
| Create run folder | (handled by init-run.cjs) | ❌ NO mkdir |
|
|
159
|
+
| Create run.md | (handled by init-run.cjs) | ❌ NO direct write |
|
|
160
160
|
| Update state.yaml | (handled by scripts) | ❌ NO direct edit |
|
|
161
161
|
|
|
162
162
|
<check if="about to mkdir .specs-fire/runs/run-XXX">
|
|
163
|
-
<action>STOP — use init-run.
|
|
163
|
+
<action>STOP — use init-run.cjs instead</action>
|
|
164
164
|
</check>
|
|
165
165
|
<check if="about to edit state.yaml directly">
|
|
166
|
-
<action>STOP — use complete-run.
|
|
166
|
+
<action>STOP — use complete-run.cjs instead</action>
|
|
167
167
|
</check>
|
|
168
168
|
<check if="about to write run.md directly">
|
|
169
|
-
<action>STOP — use init-run.
|
|
169
|
+
<action>STOP — use init-run.cjs instead</action>
|
|
170
170
|
</check>
|
|
171
171
|
</script_usage>
|
|
172
172
|
|
|
@@ -192,7 +192,7 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
|
|
|
192
192
|
<artifact_timing critical="true">
|
|
193
193
|
| Artifact | Created By | When |
|
|
194
194
|
|----------|------------|------|
|
|
195
|
-
| run.md | init-run.
|
|
195
|
+
| run.md | init-run.cjs script | At run START |
|
|
196
196
|
| plan.md | Agent (template) | BEFORE implementation |
|
|
197
197
|
| test-report.md | Agent (template) | AFTER tests pass |
|
|
198
198
|
| review-report.md | code-review skill | AFTER test report |
|
|
@@ -80,7 +80,7 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
80
80
|
</degrees_of_freedom>
|
|
81
81
|
|
|
82
82
|
<llm critical="true">
|
|
83
|
-
<mandate>USE SCRIPTS — NEVER bypass init-run.
|
|
83
|
+
<mandate>USE SCRIPTS — NEVER bypass init-run.cjs or complete-run.cjs</mandate>
|
|
84
84
|
<mandate>ALWAYS CREATE plan.md — Create plan BEFORE implementation starts (ALL modes)</mandate>
|
|
85
85
|
<mandate>ALWAYS CREATE test-report.md — Create test report AFTER tests complete</mandate>
|
|
86
86
|
<mandate>ALWAYS RUN code-review — Invoke code-review skill after tests pass</mandate>
|
|
@@ -94,7 +94,7 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
94
94
|
|
|
95
95
|
| Artifact | When Created | Created By |
|
|
96
96
|
|----------|--------------|------------|
|
|
97
|
-
| run.md | Start of run | init-run.
|
|
97
|
+
| run.md | Start of run | init-run.cjs script |
|
|
98
98
|
| plan.md | BEFORE implementation (Step 4) | Agent using template |
|
|
99
99
|
| test-report.md | AFTER tests pass (Step 6) | Agent using template |
|
|
100
100
|
| review-report.md | AFTER test report (Step 6b) | code-review skill |
|
|
@@ -105,16 +105,16 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
105
105
|
|
|
106
106
|
<flow>
|
|
107
107
|
<step n="1" title="Initialize Run">
|
|
108
|
-
<critical>MUST call init-run.
|
|
108
|
+
<critical>MUST call init-run.cjs script. DO NOT use mkdir directly.</critical>
|
|
109
109
|
<note>The script creates BOTH the folder AND run.md file.</note>
|
|
110
110
|
|
|
111
111
|
<action>Prepare work items JSON array:</action>
|
|
112
112
|
<code>
|
|
113
113
|
# For single item:
|
|
114
|
-
node scripts/init-run.
|
|
114
|
+
node scripts/init-run.cjs {rootPath} {workItemId} {intentId} {mode}
|
|
115
115
|
|
|
116
116
|
# For batch/wide (multiple items):
|
|
117
|
-
node scripts/init-run.
|
|
117
|
+
node scripts/init-run.cjs {rootPath} --batch '[
|
|
118
118
|
{"id": "item-1", "intent": "intent-1", "mode": "autopilot"},
|
|
119
119
|
{"id": "item-2", "intent": "intent-1", "mode": "confirm"}
|
|
120
120
|
]' --scope=batch
|
|
@@ -124,7 +124,7 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
124
124
|
<action>Verify run.md was created in .specs-fire/runs/{run-id}/</action>
|
|
125
125
|
|
|
126
126
|
<check if="run.md not found">
|
|
127
|
-
<error>init-run.
|
|
127
|
+
<error>init-run.cjs failed to create run.md. Check script output.</error>
|
|
128
128
|
</check>
|
|
129
129
|
</step>
|
|
130
130
|
|
|
@@ -457,9 +457,9 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
457
457
|
<substep n="7b" title="Route Based on Batch Status">
|
|
458
458
|
<check if="scope in [batch, wide] AND pending_count > 0">
|
|
459
459
|
<critical>DO NOT call --complete-run yet - more items remain!</critical>
|
|
460
|
-
<action>Call complete-run.
|
|
460
|
+
<action>Call complete-run.cjs with --complete-item flag:</action>
|
|
461
461
|
<code>
|
|
462
|
-
node scripts/complete-run.
|
|
462
|
+
node scripts/complete-run.cjs {rootPath} {runId} --complete-item
|
|
463
463
|
</code>
|
|
464
464
|
<action>Parse output JSON for nextItem and remainingItems</action>
|
|
465
465
|
<output>
|
|
@@ -472,9 +472,9 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
472
472
|
|
|
473
473
|
<check if="scope == single OR pending_count == 0">
|
|
474
474
|
<action>All items complete - finalize the run</action>
|
|
475
|
-
<action>Call complete-run.
|
|
475
|
+
<action>Call complete-run.cjs with --complete-run flag:</action>
|
|
476
476
|
<code>
|
|
477
|
-
node scripts/complete-run.
|
|
477
|
+
node scripts/complete-run.cjs {rootPath} {runId} --complete-run \
|
|
478
478
|
--files-created='[{"path":"...","purpose":"..."}]' \
|
|
479
479
|
--files-modified='[{"path":"...","changes":"..."}]' \
|
|
480
480
|
--tests=5 --coverage=85
|
|
@@ -510,16 +510,16 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
510
510
|
<scripts>
|
|
511
511
|
| Script | Purpose | Usage |
|
|
512
512
|
|--------|---------|-------|
|
|
513
|
-
| `scripts/init-run.
|
|
514
|
-
| `scripts/complete-run.
|
|
513
|
+
| `scripts/init-run.cjs` | Initialize run record and folder | Creates run.md with all work items |
|
|
514
|
+
| `scripts/complete-run.cjs` | Finalize run and update state | `--complete-item` or `--complete-run` |
|
|
515
515
|
|
|
516
|
-
<script name="init-run.
|
|
516
|
+
<script name="init-run.cjs">
|
|
517
517
|
```bash
|
|
518
518
|
# Single work item
|
|
519
|
-
node scripts/init-run.
|
|
519
|
+
node scripts/init-run.cjs /project work-item-id intent-id autopilot
|
|
520
520
|
|
|
521
521
|
# Batch/wide (multiple items)
|
|
522
|
-
node scripts/init-run.
|
|
522
|
+
node scripts/init-run.cjs /project --batch '[
|
|
523
523
|
{"id": "wi-1", "intent": "int-1", "mode": "autopilot"},
|
|
524
524
|
{"id": "wi-2", "intent": "int-1", "mode": "confirm"}
|
|
525
525
|
]' --scope=batch
|
|
@@ -539,13 +539,13 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
539
539
|
</output_format>
|
|
540
540
|
</script>
|
|
541
541
|
|
|
542
|
-
<script name="complete-run.
|
|
542
|
+
<script name="complete-run.cjs">
|
|
543
543
|
```bash
|
|
544
544
|
# Complete current item (batch runs - moves to next item)
|
|
545
|
-
node scripts/complete-run.
|
|
545
|
+
node scripts/complete-run.cjs /project run-001 --complete-item
|
|
546
546
|
|
|
547
547
|
# Complete entire run (single runs or final item in batch)
|
|
548
|
-
node scripts/complete-run.
|
|
548
|
+
node scripts/complete-run.cjs /project run-001 --complete-run \
|
|
549
549
|
--files-created='[{"path":"src/new.ts","purpose":"New feature"}]' \
|
|
550
550
|
--files-modified='[{"path":"src/old.ts","changes":"Added import"}]' \
|
|
551
551
|
--tests=5 --coverage=85
|
|
@@ -597,11 +597,11 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
597
597
|
</file_tracking_format>
|
|
598
598
|
|
|
599
599
|
<run_folder_structure>
|
|
600
|
-
After init-run.
|
|
600
|
+
After init-run.cjs creates a run:
|
|
601
601
|
|
|
602
602
|
```
|
|
603
603
|
.specs-fire/runs/run-001/
|
|
604
|
-
├── run.md # Created by init-run.
|
|
604
|
+
├── run.md # Created by init-run.cjs, updated by complete-run.cjs
|
|
605
605
|
├── plan.md # Created BEFORE implementation (ALL modes - required)
|
|
606
606
|
├── test-report.md # Created AFTER tests pass (required)
|
|
607
607
|
├── review-report.md # Created by code-review skill (Step 6b)
|
|
@@ -609,7 +609,7 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
609
609
|
```
|
|
610
610
|
|
|
611
611
|
<timeline>
|
|
612
|
-
1. `run.md` — Created at run start by init-run.
|
|
612
|
+
1. `run.md` — Created at run start by init-run.cjs
|
|
613
613
|
2. `plan.md` — Created BEFORE implementation begins (Step 4)
|
|
614
614
|
3. `test-report.md` — Created AFTER tests pass (Step 6)
|
|
615
615
|
4. `review-report.md` — Created by code-review skill (Step 6b)
|
|
@@ -626,7 +626,7 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
626
626
|
</run_folder_structure>
|
|
627
627
|
|
|
628
628
|
<success_criteria>
|
|
629
|
-
<criterion>Run initialized via init-run.
|
|
629
|
+
<criterion>Run initialized via init-run.cjs script</criterion>
|
|
630
630
|
<criterion>Standards loaded with hierarchical resolution</criterion>
|
|
631
631
|
<criterion>Constitution loaded from root (if exists)</criterion>
|
|
632
632
|
<criterion>Module-specific standards applied to module files</criterion>
|
|
@@ -636,6 +636,6 @@ Supports both single-item and multi-item (batch/wide) runs.
|
|
|
636
636
|
<criterion>test-report.md created AFTER tests pass</criterion>
|
|
637
637
|
<criterion>code-review skill invoked and completed</criterion>
|
|
638
638
|
<criterion>review-report.md created</criterion>
|
|
639
|
-
<criterion>Run completed via complete-run.
|
|
639
|
+
<criterion>Run completed via complete-run.cjs script</criterion>
|
|
640
640
|
<criterion>walkthrough.md generated</criterion>
|
|
641
641
|
</success_criteria>
|
package/flows/fire/agents/builder/skills/run-execute/scripts/{complete-run.js → complete-run.cjs}
RENAMED
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
* - --complete-run: Marks all items done and finalizes entire run
|
|
12
12
|
*
|
|
13
13
|
* Usage:
|
|
14
|
-
* Complete current item: node complete-run.
|
|
15
|
-
* Complete entire run: node complete-run.
|
|
16
|
-
* Complete (single/auto): node complete-run.
|
|
14
|
+
* Complete current item: node complete-run.cjs <rootPath> <runId> --complete-item [options]
|
|
15
|
+
* Complete entire run: node complete-run.cjs <rootPath> <runId> --complete-run [options]
|
|
16
|
+
* Complete (single/auto): node complete-run.cjs <rootPath> <runId> [options]
|
|
17
17
|
*
|
|
18
18
|
* Options:
|
|
19
19
|
* --files-created=JSON - JSON array of {path, purpose}
|
|
@@ -678,9 +678,9 @@ function parseArgs(args) {
|
|
|
678
678
|
|
|
679
679
|
function printUsage() {
|
|
680
680
|
console.error('Usage:');
|
|
681
|
-
console.error(' Complete current item: node complete-run.
|
|
682
|
-
console.error(' Complete entire run: node complete-run.
|
|
683
|
-
console.error(' Auto (single runs): node complete-run.
|
|
681
|
+
console.error(' Complete current item: node complete-run.cjs <rootPath> <runId> --complete-item [options]');
|
|
682
|
+
console.error(' Complete entire run: node complete-run.cjs <rootPath> <runId> --complete-run [options]');
|
|
683
|
+
console.error(' Auto (single runs): node complete-run.cjs <rootPath> <runId> [options]');
|
|
684
684
|
console.error('');
|
|
685
685
|
console.error('Arguments:');
|
|
686
686
|
console.error(' rootPath - Project root directory');
|
|
@@ -698,8 +698,8 @@ function printUsage() {
|
|
|
698
698
|
console.error(' --coverage=N - Coverage percentage');
|
|
699
699
|
console.error('');
|
|
700
700
|
console.error('Examples:');
|
|
701
|
-
console.error(' node complete-run.
|
|
702
|
-
console.error(' node complete-run.
|
|
701
|
+
console.error(' node complete-run.cjs /project run-003 --complete-item');
|
|
702
|
+
console.error(' node complete-run.cjs /project run-003 --complete-run --tests=5 --coverage=85');
|
|
703
703
|
}
|
|
704
704
|
|
|
705
705
|
// =============================================================================
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
* - existing run folders in .specs-fire/runs/
|
|
12
12
|
*
|
|
13
13
|
* Usage:
|
|
14
|
-
* Single item: node init-run.
|
|
15
|
-
* Batch/Wide: node init-run.
|
|
14
|
+
* Single item: node init-run.cjs <rootPath> <workItemId> <intentId> <mode>
|
|
15
|
+
* Batch/Wide: node init-run.cjs <rootPath> --batch '<workItemsJson>'
|
|
16
16
|
*
|
|
17
17
|
* Examples:
|
|
18
|
-
* node init-run.
|
|
19
|
-
* node init-run.
|
|
18
|
+
* node init-run.cjs /project login-endpoint user-auth confirm
|
|
19
|
+
* node init-run.cjs /project --batch '[{"id":"wi-1","intent":"int-1","mode":"autopilot"}]'
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
const fs = require('fs');
|
|
@@ -377,8 +377,8 @@ function initRun(rootPath, workItems, scope) {
|
|
|
377
377
|
|
|
378
378
|
function printUsage() {
|
|
379
379
|
console.error('Usage:');
|
|
380
|
-
console.error(' Single item: node init-run.
|
|
381
|
-
console.error(' Batch/Wide: node init-run.
|
|
380
|
+
console.error(' Single item: node init-run.cjs <rootPath> <workItemId> <intentId> <mode>');
|
|
381
|
+
console.error(' Batch/Wide: node init-run.cjs <rootPath> --batch \'<workItemsJson>\' [--scope=<scope>]');
|
|
382
382
|
console.error('');
|
|
383
383
|
console.error('Arguments:');
|
|
384
384
|
console.error(' rootPath - Project root directory');
|
|
@@ -394,8 +394,8 @@ function printUsage() {
|
|
|
394
394
|
console.error(' [{"id": "wi-1", "intent": "int-1", "mode": "autopilot"}, ...]');
|
|
395
395
|
console.error('');
|
|
396
396
|
console.error('Examples:');
|
|
397
|
-
console.error(' node init-run.
|
|
398
|
-
console.error(' node init-run.
|
|
397
|
+
console.error(' node init-run.cjs /project login-endpoint user-auth confirm');
|
|
398
|
+
console.error(' node init-run.cjs /project --batch \'[{"id":"wi-1","intent":"int-1","mode":"autopilot"}]\'');
|
|
399
399
|
}
|
|
400
400
|
|
|
401
401
|
if (require.main === module) {
|
|
@@ -97,7 +97,7 @@ naming:
|
|
|
97
97
|
example: "run-001/"
|
|
98
98
|
note: "Sequential 3-digit number, folder per run"
|
|
99
99
|
contents:
|
|
100
|
-
- "run.md" # Run log (created by init-run.
|
|
100
|
+
- "run.md" # Run log (created by init-run.cjs)
|
|
101
101
|
- "plan.md" # Implementation plan (ALL modes, created BEFORE implementation)
|
|
102
102
|
- "test-report.md" # Test results and coverage (created AFTER tests pass)
|
|
103
103
|
- "review-report.md" # Code review findings (created by code-review skill)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specsmd",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
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": {
|