specsmd 0.1.63 → 0.1.65

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.
Files changed (41) hide show
  1. package/flows/fire/agents/builder/agent.md +6 -0
  2. package/flows/fire/agents/builder/skills/run-execute/SKILL.md +75 -21
  3. package/flows/fire/agents/builder/skills/run-execute/scripts/complete-run.cjs +37 -4
  4. package/flows/fire/agents/builder/skills/run-plan/SKILL.md +12 -0
  5. package/flows/fire/agents/builder/skills/walkthrough-generate/SKILL.md +108 -22
  6. package/flows/fire/agents/builder/skills/walkthrough-generate/templates/walkthrough.md.hbs +68 -0
  7. package/flows/ideation/README.md +35 -0
  8. package/flows/ideation/agents/orchestrator/agent.md +103 -0
  9. package/flows/ideation/agents/orchestrator/skills/flame/SKILL.md +132 -0
  10. package/flows/ideation/agents/orchestrator/skills/flame/references/evaluation-criteria.md +81 -0
  11. package/flows/ideation/agents/orchestrator/skills/flame/references/six-hats-method.md +87 -0
  12. package/flows/ideation/agents/orchestrator/skills/flame/templates/flame-report.md.hbs +81 -0
  13. package/flows/ideation/agents/orchestrator/skills/forge/SKILL.md +153 -0
  14. package/flows/ideation/agents/orchestrator/skills/forge/references/disney-method.md +94 -0
  15. package/flows/ideation/agents/orchestrator/skills/forge/references/pitch-framework.md +87 -0
  16. package/flows/ideation/agents/orchestrator/skills/forge/templates/concept-brief.md.hbs +83 -0
  17. package/flows/ideation/agents/orchestrator/skills/spark/SKILL.md +152 -0
  18. package/flows/ideation/agents/orchestrator/skills/spark/references/anti-bias.md +43 -0
  19. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/analogy.md +60 -0
  20. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/first-principles.md +56 -0
  21. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/index.yaml +76 -0
  22. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/inversion.md +52 -0
  23. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/questorming.md +57 -0
  24. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/random-word.md +35 -0
  25. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/scamper.md +67 -0
  26. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/what-if.md +55 -0
  27. package/flows/ideation/agents/orchestrator/skills/spark/templates/spark-bank.md.hbs +72 -0
  28. package/flows/ideation/commands/flame.md +43 -0
  29. package/flows/ideation/commands/forge.md +43 -0
  30. package/flows/ideation/commands/ideation.md +51 -0
  31. package/flows/ideation/commands/spark.md +43 -0
  32. package/flows/ideation/memory-bank.yaml +177 -0
  33. package/flows/ideation/quick-start.md +84 -0
  34. package/flows/ideation/shared/protocols/anti-bias.md +79 -0
  35. package/flows/ideation/shared/protocols/deep-thinking.md +92 -0
  36. package/flows/ideation/shared/protocols/diverge-converge.md +72 -0
  37. package/flows/ideation/shared/protocols/interaction-adaptation.md +88 -0
  38. package/lib/constants.js +5 -0
  39. package/lib/dashboard/fire/parser.js +0 -1
  40. package/lib/dashboard/tui/file-entries.js +5 -4
  41. package/package.json +1 -1
@@ -44,6 +44,12 @@ You are the **Builder Agent** for FIRE (Fast Intent-Run Engineering).
44
44
 
45
45
  <step n="4" title="Route by State">
46
46
  <check if="active run exists">
47
+ <action>Read runs.active[0] from state.yaml</action>
48
+ <action>Read scope (single/batch/wide) and work_items array</action>
49
+ <action>Count items by status: completed, in_progress, pending</action>
50
+ <output>Active run {id} ({scope}) — {completed_count} done, {remaining_count} remaining</output>
51
+ <mandate>DO NOT treat completed items as needing re-execution</mandate>
52
+ <mandate>ONLY work on the current_item from state.yaml</mandate>
47
53
  <action>Resume execution — invoke run-execute skill</action>
48
54
  </check>
49
55
  <check if="pending work items exist">
@@ -9,6 +9,24 @@ Execute work items based on their assigned mode (autopilot, confirm, validate).
9
9
  Supports both single-item and multi-item (batch/wide) runs.
10
10
  </objective>
11
11
 
12
+ <progress_display>
13
+ Show current position in workflow:
14
+
15
+ ```text
16
+ ### Run Progress
17
+ - [ ] Run initialized (init-run.cjs)
18
+ - [ ] Context loaded
19
+ - [ ] Plan generated ← {current_step}
20
+ - [ ] Implementation
21
+ - [ ] Tests passing
22
+ - [ ] Code review
23
+ - [ ] Run completed (complete-run.cjs)
24
+ - [ ] Walkthrough generated
25
+ ```
26
+
27
+ Update markers as you progress: [x] = done, ← current = active step
28
+ </progress_display>
29
+
12
30
  <prerequisites>
13
31
  Before executing scripts, ensure required dependencies are installed:
14
32
 
@@ -43,28 +61,48 @@ Supports both single-item and multi-item (batch/wide) runs.
43
61
  </check>
44
62
 
45
63
  <check if="runs.active has entries">
46
- <action>Load run state from .specs-fire/runs/{runs.active[0].id}/run.md</action>
47
- <action>Get current_item and its status from state.yaml</action>
48
- <action>Check for existing artifacts and LOAD if present:</action>
49
-
50
- <substep>design.md if exists, LOAD from .specs-fire/intents/{intent}/work-items/{id}-design.md</substep>
51
- <substep>plan.md if exists, LOAD from .specs-fire/runs/{run-id}/plan.md (skip plan generation)</substep>
52
- <substep>test-report.md → if exists, tests already passed (skip to Step 6b)</substep>
53
- <substep>review-report.md if exists, review done (skip to Step 7)</substep>
54
-
55
- <determine_resume_point>
56
- | Artifacts Present | Resume At |
57
- |-------------------|-----------|
58
- | None | Step 3 (Generate Plan) |
59
- | plan.md only | Step 5 (Implementation) |
60
- | plan.md + test-report.md | Step 6b (Code Review) |
61
- | plan.md + test-report.md + review-report.md | Step 7 (Complete Item) |
62
- </determine_resume_point>
64
+ <action>Load active run from state.yaml runs.active[0]</action>
65
+ <action>Read scope (single/batch/wide) and work_items array</action>
66
+
67
+ <substep n="0a" title="Enumerate Work Item Status">
68
+ <action>For EACH work item in runs.active[0].work_items, classify by status:</action>
69
+ <action>Build status summary from state.yaml (NOT from artifact files):</action>
70
+ <format>
71
+ [DONE] {item-id} completed
72
+ [WORKING] {item-id} (phase: {current_phase}) — in_progress
73
+ [PENDING] {item-id} — pending
74
+ </format>
75
+ <action>Count: completed={X}, in_progress={Y}, pending={Z}</action>
76
+ </substep>
77
+
78
+ <substep n="0b" title="Determine Resume Point for Current Item">
79
+ <action>Get current_item from state.yaml</action>
80
+ <action>Read current_phase from the current item's entry in work_items</action>
81
+
82
+ <determine_resume_point>
83
+ Use current_phase from state.yaml to determine resume point:
84
+
85
+ | current_phase | Resume At |
86
+ |---------------|-----------|
87
+ | plan (or unset) | Step 3 (Generate Plan) |
88
+ | execute | Step 5 (Implementation) |
89
+ | test | Step 6 (Run Tests) |
90
+ | review | Step 6b (Code Review) |
91
+ </determine_resume_point>
92
+ </substep>
93
+
94
+ <llm critical="true">
95
+ <mandate>NEVER call --complete-item for items with status "completed" — they are already done</mandate>
96
+ <mandate>NEVER re-execute steps (plan, implement, test) for completed items</mandate>
97
+ <mandate>ONLY work on the current_item identified in state.yaml</mandate>
98
+ <mandate>Use current_phase from state.yaml — do NOT infer phase from artifact file existence</mandate>
99
+ </llm>
63
100
 
64
101
  <output>
65
- Resuming run {run-id} for work item {current_item}.
102
+ Resuming run {run-id} ({scope}) for work item {current_item}.
66
103
  Mode: {mode}
67
- Loaded existing artifacts: {artifact_list}
104
+ Phase: {current_phase}
105
+ Status: {completed_count} done, {in_progress_count} working, {pending_count} pending
68
106
  Resuming at: Step {step_number}
69
107
  </output>
70
108
  </check>
@@ -105,8 +143,14 @@ Supports both single-item and multi-item (batch/wide) runs.
105
143
 
106
144
  <flow>
107
145
  <step n="1" title="Initialize Run">
108
- <critical>MUST call init-run.cjs script. DO NOT use mkdir directly.</critical>
109
- <note>The script creates BOTH the folder AND run.md file.</note>
146
+ <hard_gate>
147
+ HARD GATE - SCRIPT EXECUTION REQUIRED
148
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
149
+ You MUST call init-run.cjs script.
150
+ DO NOT use mkdir or create files directly.
151
+ The script creates BOTH the folder AND run.md file.
152
+ If you skip this, state.yaml will be inconsistent.
153
+ </hard_gate>
110
154
 
111
155
  <action>Prepare work items JSON array:</action>
112
156
  <code>
@@ -458,6 +502,16 @@ Supports both single-item and multi-item (batch/wide) runs.
458
502
  </step>
459
503
 
460
504
  <step n="7" title="Complete Current Work Item">
505
+ <hard_gate>
506
+ ⛔ HARD GATE - SCRIPT EXECUTION REQUIRED
507
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
508
+ You MUST call complete-run.cjs script.
509
+ DO NOT manually update state.yaml or run.md.
510
+ Use --complete-item for batch runs with remaining items.
511
+ Use --complete-run only when ALL items are done.
512
+ If you skip this, state becomes inconsistent.
513
+ </hard_gate>
514
+
461
515
  <llm critical="true">
462
516
  <mandate>BATCH RUNS: You MUST loop until ALL items are done</mandate>
463
517
  <mandate>NEVER call --complete-run until ALL items have artifacts</mandate>
@@ -21,6 +21,7 @@
21
21
  * --decisions=JSON - JSON array of {decision, choice, rationale}
22
22
  * --tests=N - Number of tests added
23
23
  * --coverage=N - Coverage percentage
24
+ * --force - Override phase guard (skip review phase check)
24
25
  */
25
26
 
26
27
  const fs = require('fs');
@@ -394,7 +395,7 @@ function updateRunLog(runLogPath, activeRun, params, completedTime, isFullComple
394
395
  // Complete Current Item (for batch runs)
395
396
  // =============================================================================
396
397
 
397
- function completeCurrentItem(rootPath, runId, params = {}) {
398
+ function completeCurrentItem(rootPath, runId, params = {}, options = {}) {
398
399
  const completionParams = {
399
400
  filesCreated: params.filesCreated || [],
400
401
  filesModified: params.filesModified || [],
@@ -402,6 +403,7 @@ function completeCurrentItem(rootPath, runId, params = {}) {
402
403
  testsAdded: params.testsAdded || 0,
403
404
  coverage: params.coverage || 0,
404
405
  };
406
+ const force = options.force || false;
405
407
 
406
408
  validateInputs(rootPath, runId);
407
409
  const { statePath, runLogPath } = validateFireProject(rootPath, runId);
@@ -449,6 +451,16 @@ function completeCurrentItem(rootPath, runId, params = {}) {
449
451
  );
450
452
  }
451
453
 
454
+ // Phase guard: item must be at 'review' phase before completion
455
+ const currentPhase = workItems[currentItemIndex].current_phase;
456
+ if (!force && currentPhase !== 'review') {
457
+ throw fireError(
458
+ `Cannot complete item "${currentItemId}" — current phase is "${currentPhase || 'unknown'}", not "review".`,
459
+ 'COMPLETE_051',
460
+ 'The item must reach the review phase before completion. Use --force to override.'
461
+ );
462
+ }
463
+
452
464
  // Find next pending item
453
465
  let nextItem = null;
454
466
  for (let i = currentItemIndex + 1; i < workItems.length; i++) {
@@ -510,7 +522,7 @@ function completeCurrentItem(rootPath, runId, params = {}) {
510
522
  // Complete Entire Run
511
523
  // =============================================================================
512
524
 
513
- function completeRun(rootPath, runId, params = {}) {
525
+ function completeRun(rootPath, runId, params = {}, options = {}) {
514
526
  const completionParams = {
515
527
  filesCreated: params.filesCreated || [],
516
528
  filesModified: params.filesModified || [],
@@ -518,6 +530,7 @@ function completeRun(rootPath, runId, params = {}) {
518
530
  testsAdded: params.testsAdded || 0,
519
531
  coverage: params.coverage || 0,
520
532
  };
533
+ const force = options.force || false;
521
534
 
522
535
  validateInputs(rootPath, runId);
523
536
  const { statePath, runLogPath } = validateFireProject(rootPath, runId);
@@ -550,6 +563,21 @@ function completeRun(rootPath, runId, params = {}) {
550
563
  const workItems = activeRun.work_items || [];
551
564
  const scope = activeRun.scope || 'single';
552
565
 
566
+ // Phase guard: all non-completed items must be at 'review' phase
567
+ if (!force) {
568
+ const notReady = workItems.filter(
569
+ item => item.status !== 'completed' && item.current_phase !== 'review'
570
+ );
571
+ if (notReady.length > 0) {
572
+ const list = notReady.map(i => `${i.id} (phase: ${i.current_phase || 'unknown'})`).join(', ');
573
+ throw fireError(
574
+ `Cannot complete run — ${notReady.length} item(s) have not reached review phase: ${list}.`,
575
+ 'COMPLETE_060',
576
+ 'All items must reach the review phase before run completion. Use --force to override.'
577
+ );
578
+ }
579
+ }
580
+
553
581
  // Mark all items as completed
554
582
  for (const item of workItems) {
555
583
  if (item.status !== 'completed') {
@@ -655,6 +683,7 @@ function parseArgs(args) {
655
683
  runId: args[1],
656
684
  completeItem: false,
657
685
  completeRunFlag: false,
686
+ force: false,
658
687
  filesCreated: [],
659
688
  filesModified: [],
660
689
  decisions: [],
@@ -668,6 +697,8 @@ function parseArgs(args) {
668
697
  result.completeItem = true;
669
698
  } else if (arg === '--complete-run') {
670
699
  result.completeRunFlag = true;
700
+ } else if (arg === '--force') {
701
+ result.force = true;
671
702
  } else if (arg.startsWith('--files-created=')) {
672
703
  try {
673
704
  result.filesCreated = JSON.parse(arg.substring('--files-created='.length));
@@ -709,6 +740,7 @@ function printUsage() {
709
740
  console.error('Flags:');
710
741
  console.error(' --complete-item - Complete only the current work item (batch/wide runs)');
711
742
  console.error(' --complete-run - Complete the entire run');
743
+ console.error(' --force - Override phase guard (skip review phase check)');
712
744
  console.error('');
713
745
  console.error('Options:');
714
746
  console.error(' --files-created=JSON - JSON array of {path, purpose}');
@@ -737,6 +769,7 @@ if (require.main === module) {
737
769
  const params = parseArgs(args);
738
770
 
739
771
  try {
772
+ const cliOptions = { force: params.force };
740
773
  let result;
741
774
  if (params.completeItem) {
742
775
  result = completeCurrentItem(params.rootPath, params.runId, {
@@ -745,7 +778,7 @@ if (require.main === module) {
745
778
  decisions: params.decisions,
746
779
  testsAdded: params.testsAdded,
747
780
  coverage: params.coverage,
748
- });
781
+ }, cliOptions);
749
782
  } else {
750
783
  // Default: complete entire run
751
784
  result = completeRun(params.rootPath, params.runId, {
@@ -754,7 +787,7 @@ if (require.main === module) {
754
787
  decisions: params.decisions,
755
788
  testsAdded: params.testsAdded,
756
789
  coverage: params.coverage,
757
- });
790
+ }, cliOptions);
758
791
  }
759
792
  console.log(JSON.stringify(result, null, 2));
760
793
  process.exit(0);
@@ -113,6 +113,18 @@ Plan the scope of a run by discovering available work items and suggesting group
113
113
  </action>
114
114
  </check>
115
115
 
116
+ <check if="state says completed but item is in runs.active[].work_items with current_phase != review">
117
+ <output>
118
+ **Suspect completion**: {work-item-id}
119
+ - state.yaml status: completed
120
+ - But current_phase: {current_phase} (not "review")
121
+ - Item is still in active run {run-id}
122
+ Resetting to in_progress — item was likely marked complete prematurely.
123
+ </output>
124
+ <action>Reset work item status to in_progress in state.yaml</action>
125
+ <action>Update frontmatter to match</action>
126
+ </check>
127
+
116
128
  <check if="in state.yaml but file missing">
117
129
  <output>Warning: {item} in state but file not found on disk</output>
118
130
  </check>
@@ -49,14 +49,28 @@ Generate implementation walkthrough for human review after run completion.
49
49
  <substep>How the pieces fit together architecturally</substep>
50
50
  <substep>Data flow or component relationships</substep>
51
51
  <substep>Keep high-level, NO CODE</substep>
52
+ <action>Identify architecture pattern (if multi-component):</action>
53
+ <substep>Pattern used (Repository, Service Layer, MVC, Clean Architecture, etc.)</substep>
54
+ <substep>Layer structure diagram (ASCII) if applicable</substep>
55
+ <action>Document domain model (if entities/models created):</action>
56
+ <substep>Entities with properties and business rules</substep>
57
+ <substep>Value objects with constraints</substep>
52
58
  </step>
53
59
 
54
60
  <step n="3" title="Document Key Details">
55
61
  <action>Extract implementation highlights:</action>
56
62
  <substep>Main flow/algorithm implemented</substep>
57
- <substep>Security considerations (if applicable)</substep>
58
- <substep>Performance considerations (if applicable)</substep>
59
63
  <substep>Integration points with existing code</substep>
64
+ <action>Document security considerations (if applicable):</action>
65
+ <substep>Authentication/authorization approach</substep>
66
+ <substep>Input validation strategy</substep>
67
+ <substep>Data protection measures</substep>
68
+ <substep>Format as table: Concern | Approach</substep>
69
+ <action>Document performance considerations (if applicable):</action>
70
+ <substep>Optimization strategies used</substep>
71
+ <substep>Caching, indexing, or query optimization</substep>
72
+ <substep>Scalability approach</substep>
73
+ <substep>Format as table: Requirement | Implementation</substep>
60
74
  <action>Document deviations from plan:</action>
61
75
  <substep>Compare implementation to original work item plan</substep>
62
76
  <substep>Note any changes and explain WHY they were made</substep>
@@ -74,8 +88,23 @@ Generate implementation walkthrough for human review after run completion.
74
88
  <substep>Manual test scenarios</substep>
75
89
  </step>
76
90
 
77
- <step n="5" title="Generate Walkthrough">
91
+ <step n="5" title="Assess Ready for Review">
92
+ <action>Evaluate implementation completeness:</action>
93
+ <substep>All acceptance criteria met?</substep>
94
+ <substep>Tests passing?</substep>
95
+ <substep>No critical issues remaining?</substep>
96
+ <substep>Documentation updated (if applicable)?</substep>
97
+ <substep>Developer notes captured?</substep>
98
+ <action>Generate checklist with [x] for met, [ ] for unmet</action>
99
+ </step>
100
+
101
+ <step n="6" title="Generate Walkthrough">
78
102
  <action>Generate walkthrough using template: templates/walkthrough.md.hbs</action>
103
+ <action>Include all sections (conditional sections only if data exists):</action>
104
+ <substep>Architecture — only if multi-component with clear pattern</substep>
105
+ <substep>Domain Model — only if entities/value objects created</substep>
106
+ <substep>Security Considerations — only if security-relevant changes</substep>
107
+ <substep>Performance Considerations — only if performance-relevant changes</substep>
79
108
  <action>Save to: .specs-fire/runs/{run-id}/walkthrough.md</action>
80
109
  <output>
81
110
  Walkthrough generated: .specs-fire/runs/{run-id}/walkthrough.md
@@ -86,7 +115,7 @@ Generate implementation walkthrough for human review after run completion.
86
115
  <output_template>
87
116
  **Walkthrough** (`.specs-fire/runs/{run-id}/walkthrough.md`):
88
117
 
89
- ```markdown
118
+ ````markdown
90
119
  ---
91
120
  run: {run-id}
92
121
  work_item: {work-item-id}
@@ -105,77 +134,134 @@ Generate implementation walkthrough for human review after run completion.
105
134
 
106
135
  {High-level description of how pieces fit together - NO CODE}
107
136
 
108
- ## Files Changed
137
+ ## Architecture (if multi-component)
138
+
139
+ ### Pattern Used
140
+ {Pattern and rationale - e.g., Repository pattern for data access abstraction}
141
+
142
+ ### Layer Structure
143
+ ```text
144
+ ┌─────────────────────────────┐
145
+ │ Presentation │
146
+ ├─────────────────────────────┤
147
+ │ Application │
148
+ ├─────────────────────────────┤
149
+ │ Domain │
150
+ ├─────────────────────────────┤
151
+ │ Infrastructure │
152
+ └─────────────────────────────┘
153
+ ```
109
154
 
110
- ### Created
155
+ ## Files Changed
156
+
157
+ ### Created
111
158
 
112
159
  | File | Purpose |
113
160
  |------|---------|
114
161
  | `{path}` | {purpose} |
115
162
 
116
- ### Modified
163
+ ### Modified
117
164
 
118
165
  | File | Changes |
119
166
  |------|---------|
120
167
  | `{path}` | {changes} |
121
168
 
122
- ## Key Implementation Details
169
+ ## Domain Model (if entities created)
170
+
171
+ ### Entities
172
+
173
+ | Entity | Properties | Business Rules |
174
+ |--------|------------|----------------|
175
+ | {name} | {props} | {rules} |
176
+
177
+ ### Value Objects
178
+
179
+ | Value Object | Properties | Constraints |
180
+ |--------------|------------|-------------|
181
+ | {name} | {props} | {constraints} |
182
+
183
+ ## Key Implementation Details
123
184
 
124
- ### 1. {Detail Title}
185
+ ### 1. {Detail Title}
125
186
 
126
187
  {description of implementation approach}
127
188
 
128
- ## Decisions Made
189
+ ## Security Considerations (if applicable)
190
+
191
+ | Concern | Approach |
192
+ |---------|----------|
193
+ | {concern} | {approach} |
194
+
195
+ ## Performance Considerations (if applicable)
196
+
197
+ | Requirement | Implementation |
198
+ |-------------|----------------|
199
+ | {requirement} | {implementation} |
200
+
201
+ ## Decisions Made
129
202
 
130
203
  | Decision | Choice | Rationale |
131
204
  |----------|--------|-----------|
132
205
  | {decision} | {choice} | {rationale} |
133
206
 
134
- ## Deviations from Plan
207
+ ## Deviations from Plan
135
208
 
136
209
  {Changes from work item plan and why, or "None"}
137
210
 
138
- ## Dependencies Added
211
+ ## Dependencies Added
139
212
 
140
213
  | Package | Why Needed |
141
214
  |---------|------------|
142
215
  | `{package}` | {reason} |
143
216
 
144
- ## How to Verify
217
+ ## How to Verify
145
218
 
146
219
  1. **{Step Title}**
220
+
147
221
  ```bash
148
222
  {command}
149
223
  ```
224
+
150
225
  Expected: {expected output}
151
226
 
152
- 2. **{Step Title}**
153
- {manual verification steps}
227
+ ## Test Coverage
228
+
229
+ - Tests added: {count}
230
+ - Coverage: {percentage}%
231
+ - Status: {passing/failing}
154
232
 
155
- ## Test Coverage
233
+ ## Ready for Review
156
234
 
157
- - Tests added: {count}
158
- - Coverage: {percentage}%
159
- - Status: {passing/failing}
235
+ - [x] All acceptance criteria met
236
+ - [x] Tests passing
237
+ - [x] No critical issues
238
+ - [ ] Documentation updated (if applicable)
239
+ - [x] Developer notes captured
160
240
 
161
- ## Developer Notes
241
+ ## Developer Notes
162
242
 
163
243
  {Gotchas, tips, or context for future work - keep brief}
164
244
 
165
245
  ---
166
246
  *Generated by specs.md - fabriqa.ai FIRE Flow Run {run-id}*
167
- ```
247
+
248
+ ````
168
249
 
169
250
  </output_template>
170
251
 
171
252
  <success_criteria>
172
- <criterion>Walkthrough generated with all sections</criterion>
253
+ <criterion>Walkthrough generated with all applicable sections</criterion>
173
254
  <criterion>Structure overview explains architecture (NO CODE)</criterion>
255
+ <criterion>Architecture pattern documented (if multi-component)</criterion>
256
+ <criterion>Domain model documented (if entities created)</criterion>
174
257
  <criterion>Files changed documented with purposes</criterion>
258
+ <criterion>Security considerations documented (if security-relevant)</criterion>
259
+ <criterion>Performance considerations documented (if performance-relevant)</criterion>
175
260
  <criterion>Decisions recorded with rationale</criterion>
176
261
  <criterion>Deviations from plan documented (or "None")</criterion>
177
262
  <criterion>Dependencies added listed with reasons</criterion>
178
263
  <criterion>Verification steps included</criterion>
264
+ <criterion>Ready for Review checklist completed</criterion>
179
265
  <criterion>Developer notes capture gotchas and tips</criterion>
180
266
  <criterion>Saved to run folder</criterion>
181
267
  </success_criteria>
@@ -16,6 +16,22 @@ mode: {{mode}}
16
16
 
17
17
  {{structure_overview}}
18
18
 
19
+ {{#if architecture}}
20
+ ## Architecture
21
+
22
+ ### Pattern Used
23
+
24
+ {{architecture.pattern}}
25
+
26
+ {{#if architecture.layer_diagram}}
27
+ ### Layer Structure
28
+
29
+ ```text
30
+ {{architecture.layer_diagram}}
31
+ ```
32
+ {{/if}}
33
+ {{/if}}
34
+
19
35
  ## Files Changed
20
36
 
21
37
  ### Created
@@ -40,6 +56,30 @@ mode: {{mode}}
40
56
  | (none) | |
41
57
  {{/unless}}
42
58
 
59
+ {{#if domain_model}}
60
+ ## Domain Model
61
+
62
+ {{#if domain_model.entities}}
63
+ ### Entities
64
+
65
+ | Entity | Properties | Business Rules |
66
+ |--------|------------|----------------|
67
+ {{#each domain_model.entities}}
68
+ | {{this.name}} | {{this.properties}} | {{this.rules}} |
69
+ {{/each}}
70
+ {{/if}}
71
+
72
+ {{#if domain_model.value_objects}}
73
+ ### Value Objects
74
+
75
+ | Value Object | Properties | Constraints |
76
+ |--------------|------------|-------------|
77
+ {{#each domain_model.value_objects}}
78
+ | {{this.name}} | {{this.properties}} | {{this.constraints}} |
79
+ {{/each}}
80
+ {{/if}}
81
+ {{/if}}
82
+
43
83
  ## Key Implementation Details
44
84
 
45
85
  {{#each implementation_details}}
@@ -49,6 +89,26 @@ mode: {{mode}}
49
89
 
50
90
  {{/each}}
51
91
 
92
+ {{#if security_considerations}}
93
+ ## Security Considerations
94
+
95
+ | Concern | Approach |
96
+ |---------|----------|
97
+ {{#each security_considerations}}
98
+ | {{this.concern}} | {{this.approach}} |
99
+ {{/each}}
100
+ {{/if}}
101
+
102
+ {{#if performance_considerations}}
103
+ ## Performance Considerations
104
+
105
+ | Requirement | Implementation |
106
+ |-------------|----------------|
107
+ {{#each performance_considerations}}
108
+ | {{this.requirement}} | {{this.implementation}} |
109
+ {{/each}}
110
+ {{/if}}
111
+
52
112
  ## Decisions Made
53
113
 
54
114
  | Decision | Choice | Rationale |
@@ -96,6 +156,14 @@ None
96
156
  - Coverage: {{coverage}}%
97
157
  - Status: {{test_status}}
98
158
 
159
+ ## Ready for Review
160
+
161
+ - [{{#if ready.acceptance_met}}x{{else}} {{/if}}] All acceptance criteria met
162
+ - [{{#if ready.tests_passing}}x{{else}} {{/if}}] Tests passing
163
+ - [{{#if ready.no_critical_issues}}x{{else}} {{/if}}] No critical issues
164
+ - [{{#if ready.docs_updated}}x{{else}} {{/if}}] Documentation updated (if applicable)
165
+ - [{{#if ready.notes_captured}}x{{else}} {{/if}}] Developer notes captured
166
+
99
167
  ## Developer Notes
100
168
 
101
169
  {{#if developer_notes}}
@@ -0,0 +1,35 @@
1
+ # Ideation Flow
2
+
3
+ **Spark → Flame → Forge** — Creative ideation for AI-native thinkers.
4
+
5
+ For getting started, see [quick-start.md](./quick-start.md).
6
+
7
+ ## Summary
8
+
9
+ - **Hierarchy**: Topic → Session (Spark Bank → Flame Report → Concept Brief)
10
+ - **Skills**: Spark (generate), Flame (evaluate), Forge (shape)
11
+ - **Agent**: Single orchestrator with 3 skills
12
+
13
+ ## Commands
14
+
15
+ | Command | Purpose |
16
+ |---------|---------|
17
+ | `/specsmd-ideation` | Main entry point (orchestrator) |
18
+ | `/specsmd-spark` | Direct idea generation |
19
+ | `/specsmd-flame` | Direct idea evaluation |
20
+ | `/specsmd-forge` | Direct concept shaping |
21
+
22
+ ## Research Foundation
23
+
24
+ This flow synthesizes insights from established creativity research. Source materials are in `/resources/brainstorming/`:
25
+
26
+ | Source | Key Contribution |
27
+ |--------|-----------------|
28
+ | **Applied Imagination** — Alex Osborn (1953) | Deferred judgment, quantity-first, Osborn-Parnes CPS, idea prompter checklists (became SCAMPER) |
29
+ | **Six Thinking Hats** — Edward de Bono (1985) | Parallel thinking, ego protection via hat roles, hat sequencing methodology |
30
+ | **Enhancing Your Creative Spirit** — Dr. John Kapeleris (2009) | Creativity decline data, Wallas creative process, stimulation methods |
31
+ | **Creative & Group Thinking Techniques** — Skillfluence | 25 practical techniques with phase-based organization |
32
+ | **Brainstorming (Wikipedia)** | 9 variations, 6 research-backed challenges, improvement methods |
33
+ | **Anthropic XML Guide** | State machine execution, semantic tags, skill architecture |
34
+
35
+ See `/resources/brainstorming/analysis.md` for the full cross-resource synthesis.