specsmd 0.0.0-dev.85 → 0.0.0-dev.87

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 (62) hide show
  1. package/README.md +15 -0
  2. package/bin/cli.js +15 -1
  3. package/flows/fire/agents/builder/agent.md +2 -2
  4. package/flows/fire/agents/builder/skills/code-review/SKILL.md +1 -1
  5. package/flows/fire/agents/builder/skills/run-execute/SKILL.md +16 -7
  6. package/flows/fire/agents/builder/skills/run-execute/scripts/complete-run.cjs +22 -3
  7. package/flows/fire/agents/builder/skills/run-execute/scripts/init-run.cjs +63 -20
  8. package/flows/fire/agents/builder/skills/run-execute/scripts/update-checkpoint.cjs +254 -0
  9. package/flows/fire/agents/builder/skills/run-execute/scripts/update-phase.cjs +17 -6
  10. package/flows/fire/agents/builder/skills/run-status/SKILL.md +1 -1
  11. package/flows/fire/agents/builder/skills/walkthrough-generate/SKILL.md +30 -27
  12. package/flows/fire/agents/orchestrator/agent.md +1 -1
  13. package/flows/fire/agents/orchestrator/skills/status/SKILL.md +2 -2
  14. package/flows/fire/memory-bank.yaml +4 -4
  15. package/flows/ideation/agents/orchestrator/agent.md +8 -7
  16. package/flows/ideation/agents/orchestrator/skills/flame/SKILL.md +1 -0
  17. package/flows/ideation/agents/orchestrator/skills/flame/references/evaluation-criteria.md +4 -0
  18. package/flows/ideation/agents/orchestrator/skills/flame/references/six-hats-method.md +12 -0
  19. package/flows/ideation/agents/orchestrator/skills/forge/SKILL.md +1 -0
  20. package/flows/ideation/agents/orchestrator/skills/forge/references/disney-method.md +8 -0
  21. package/flows/ideation/agents/orchestrator/skills/forge/references/pitch-framework.md +15 -0
  22. package/flows/ideation/agents/orchestrator/skills/spark/SKILL.md +1 -0
  23. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/analogy.md +7 -0
  24. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/first-principles.md +5 -0
  25. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/inversion.md +6 -0
  26. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/questorming.md +6 -0
  27. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/random-word.md +1 -0
  28. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/scamper.md +15 -0
  29. package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/what-if.md +6 -0
  30. package/flows/ideation/shared/protocols/anti-bias.md +7 -4
  31. package/flows/ideation/shared/protocols/deep-thinking.md +7 -0
  32. package/flows/ideation/shared/protocols/diverge-converge.md +2 -0
  33. package/flows/ideation/shared/protocols/interaction-adaptation.md +7 -0
  34. package/lib/dashboard/aidlc/parser.js +581 -0
  35. package/lib/dashboard/fire/model.js +382 -0
  36. package/lib/dashboard/fire/parser.js +470 -0
  37. package/lib/dashboard/flow-detect.js +86 -0
  38. package/lib/dashboard/git/changes.js +362 -0
  39. package/lib/dashboard/git/worktrees.js +248 -0
  40. package/lib/dashboard/index.js +709 -0
  41. package/lib/dashboard/runtime/watch-runtime.js +122 -0
  42. package/lib/dashboard/simple/parser.js +293 -0
  43. package/lib/dashboard/tui/app.js +1675 -0
  44. package/lib/dashboard/tui/components/error-banner.js +35 -0
  45. package/lib/dashboard/tui/components/header.js +60 -0
  46. package/lib/dashboard/tui/components/help-footer.js +15 -0
  47. package/lib/dashboard/tui/components/stats-strip.js +35 -0
  48. package/lib/dashboard/tui/file-entries.js +383 -0
  49. package/lib/dashboard/tui/flow-builders.js +991 -0
  50. package/lib/dashboard/tui/git-builders.js +218 -0
  51. package/lib/dashboard/tui/helpers.js +236 -0
  52. package/lib/dashboard/tui/overlays.js +242 -0
  53. package/lib/dashboard/tui/preview.js +220 -0
  54. package/lib/dashboard/tui/renderer.js +76 -0
  55. package/lib/dashboard/tui/row-builders.js +797 -0
  56. package/lib/dashboard/tui/sections.js +45 -0
  57. package/lib/dashboard/tui/store.js +44 -0
  58. package/lib/dashboard/tui/views/overview-view.js +61 -0
  59. package/lib/dashboard/tui/views/runs-view.js +93 -0
  60. package/lib/dashboard/tui/worktree-builders.js +229 -0
  61. package/lib/installers/CodexInstaller.js +72 -1
  62. package/package.json +7 -3
@@ -7,38 +7,52 @@
7
7
  ## The Seven Operators
8
8
 
9
9
  ### S — Substitute
10
+
10
11
  What can be substituted? Different materials, people, processes, components, approaches?
12
+
11
13
  - Replace one element with something unexpected
12
14
  - Swap the medium, channel, or context
13
15
 
14
16
  ### C — Combine
17
+
15
18
  What can be combined? Blend two ideas, merge functions, mix purposes?
19
+
16
20
  - Combine features from different domains
17
21
  - Merge two user needs into one solution
18
22
 
19
23
  ### A — Adapt
24
+
20
25
  What can be adapted from elsewhere? What analogies apply? What else is like this?
26
+
21
27
  - Borrow solutions from other industries
22
28
  - Adapt natural processes to the problem
23
29
 
24
30
  ### M — Modify (also: Magnify / Minimize)
31
+
25
32
  What can be changed? Size, shape, color, meaning, frequency, intensity?
33
+
26
34
  - Make it 10x bigger or smaller
27
35
  - Change the speed, frequency, or intensity
28
36
  - Alter the form factor entirely
29
37
 
30
38
  ### P — Put to Other Use
39
+
31
40
  Can this serve a different purpose? New contexts? New users? New markets?
41
+
32
42
  - Repurpose for a completely different audience
33
43
  - Use the byproduct as the main product
34
44
 
35
45
  ### E — Eliminate
46
+
36
47
  What can be removed? Simplify? What's non-essential?
48
+
37
49
  - Remove the most complex component — what happens?
38
50
  - Strip to the absolute minimum viable version
39
51
 
40
52
  ### R — Reverse (also: Rearrange)
53
+
41
54
  What if the order were reversed? What if roles swapped? What if inside-out?
55
+
42
56
  - Reverse the workflow
43
57
  - Let the user become the provider
44
58
  - Flip the value proposition
@@ -46,6 +60,7 @@ What if the order were reversed? What if roles swapped? What if inside-out?
46
60
  ## AI Application Notes
47
61
 
48
62
  When using SCAMPER internally:
63
+
49
64
  1. Pick 2-3 operators per batch (not all 7 — that produces too-similar ideas)
50
65
  2. Apply each operator to a **different domain** from the domain wheel
51
66
  3. Make the result vivid and specific, not abstract
@@ -14,27 +14,32 @@
14
14
  ## Types of What-If
15
15
 
16
16
  ### Constraint Removal
17
+
17
18
  - What if money were no object?
18
19
  - What if there were no technical limitations?
19
20
  - What if you had unlimited time?
20
21
  - What if there were no regulations?
21
22
 
22
23
  ### Constraint Inversion
24
+
23
25
  - What if the user had to pay NOT to use it?
24
26
  - What if it only worked for 5 minutes per day?
25
27
  - What if it required 100 people to operate?
26
28
 
27
29
  ### Context Shift
30
+
28
31
  - What if this existed in 1920? In 2120?
29
32
  - What if this were designed for children? For astronauts? For animals?
30
33
  - What if this operated underwater? In zero gravity? In complete darkness?
31
34
 
32
35
  ### Scale Shift
36
+
33
37
  - What if 1 billion people used this simultaneously?
34
38
  - What if it were the size of a building? A molecule?
35
39
  - What if it lasted 100 years? 100 milliseconds?
36
40
 
37
41
  ### Role Reversal
42
+
38
43
  - What if the customer built it and the company used it?
39
44
  - What if the problem were actually the solution?
40
45
  - What if success and failure metrics were swapped?
@@ -42,6 +47,7 @@
42
47
  ## AI Application Notes
43
48
 
44
49
  When using what-if internally:
50
+
45
51
  1. Identify 2-3 non-obvious assumptions about the topic
46
52
  2. Pick the most interesting what-if type for each assumption
47
53
  3. Briefly explore the scenario (2-3 sentences), then extract a concrete idea
@@ -24,16 +24,18 @@ The domain wheel has 12 sectors. Every idea must be tagged with its primary doma
24
24
  ## Enforcement Rules
25
25
 
26
26
  ### Per-Batch (5 ideas)
27
+
27
28
  1. **Minimum 3 different domains** per batch — HARD REQUIREMENT
28
29
  2. **Never 2 consecutive ideas from the same domain**
29
30
  3. **Track domain usage** across the entire session
30
31
  4. **Prioritize underused domains** — if a domain has 0 ideas, it should appear in the next 2 batches
31
32
 
32
33
  ### Per-Session
33
- 5. **After every 15 ideas**: inject 1 provocative idea (see Provocation Types below)
34
- 6. **After every 20 ideas**: shift perspective entirely (different user persona, different era, different culture)
35
- 7. **If user favorites cluster in 1-2 domains**: deliberately diversify the next batch into 4+ domains
36
- 8. **By session end**: aim for 8+ domains covered
34
+
35
+ 1. **After every 15 ideas**: inject 1 provocative idea (see Provocation Types below)
36
+ 2. **After every 20 ideas**: shift perspective entirely (different user persona, different era, different culture)
37
+ 3. **If user favorites cluster in 1-2 domains**: deliberately diversify the next batch into 4+ domains
38
+ 4. **By session end**: aim for 8+ domains covered
37
39
 
38
40
  ### Domain Tracking Format
39
41
 
@@ -58,6 +60,7 @@ Provocations are deliberately absurd or extreme ideas that break fixation patter
58
60
  | **Stakeholder swap** | Different user entirely | "Design this for a 5-year-old. Now for a 90-year-old." |
59
61
 
60
62
  ### Provocation Rules
63
+
61
64
  - Label provocations internally but present them naturally among other ideas
62
65
  - If a provocation resonates with the user, develop it into a real idea
63
66
  - Provocations should be surprising but contain a kernel of insight
@@ -29,35 +29,41 @@ Execute the same reasoning chain as an internal process. Think through each step
29
29
  ## The 6-Step Reasoning Chain
30
30
 
31
31
  ### Think 1 — Domain Check
32
+
32
33
  - Review domain usage tracking from session state
33
34
  - Which domains are underexplored?
34
35
  - Select 3+ target domains for this batch
35
36
  - If user expressed preferences, balance between preferred and underexplored
36
37
 
37
38
  ### Think 2 — Raw Concepts
39
+
38
40
  - Generate 1-2 raw ideas per selected domain
39
41
  - Use a technique internally: SCAMPER, analogy, inversion, random-word, what-if, first-principles, or questorming
40
42
  - Select technique based on: what hasn't been used recently, what fits the user's energy, what the topic needs
41
43
  - Aim for 6-8 raw concepts to select 5 from
42
44
 
43
45
  ### Think 3 — Novelty Filter
46
+
44
47
  - For each raw concept, ask: "Is this genuinely new or a repackaged version of an obvious idea?"
45
48
  - Check against ideas already generated in this session
46
49
  - Replace any that feel generic, incremental, or too similar to existing ideas
47
50
  - The bar: would this make someone say "huh, I never thought of that"?
48
51
 
49
52
  ### Think 4 — Cross-pollinate
53
+
50
54
  - If user has stated favorites, can any new ideas combine with them?
51
55
  - Look for unexpected connections between the raw concepts themselves
52
56
  - Create at least one idea that bridges two different domains
53
57
 
54
58
  ### Think 5 — Provocation
59
+
55
60
  - Check: is a provocation due? (every 15 ideas)
56
61
  - If yes: select a provocation type and generate one deliberately absurd idea
57
62
  - If no: ensure at least one idea in the batch challenges a core assumption
58
63
  - The provocation should be surprising but contain a genuine insight
59
64
 
60
65
  ### Think 6 — Polish
66
+
61
67
  - For each of the 5 selected ideas:
62
68
  - Make it vivid: use concrete details, not abstractions
63
69
  - Make it specific: "a quest system where..." not "gamification"
@@ -65,6 +71,7 @@ Execute the same reasoning chain as an internal process. Think through each step
65
71
  - Final anti-bias check: do the 5 ideas span 3+ domains? No 2 consecutive from same domain?
66
72
 
67
73
  ### Think 7 — Meta-check (Optional)
74
+
68
75
  - Only if something feels off about the batch
69
76
  - Is this batch genuinely diverse or are the ideas structurally similar?
70
77
  - Does this batch feel different from the previous batch?
@@ -50,12 +50,14 @@ Mixing them kills creativity. Judging during generation produces safe, increment
50
50
  ## The "Deferred Judgment" Contract
51
51
 
52
52
  During divergent phases, the AI MUST:
53
+
53
54
  - Record every idea, even seemingly bad ones
54
55
  - Never add qualifiers like "while this might not be practical..."
55
56
  - Never rank or compare ideas within a divergent phase
56
57
  - Treat every idea as equally valid until convergence
57
58
 
58
59
  During convergent phases, the AI MUST:
60
+
59
61
  - Apply consistent evaluation criteria
60
62
  - Not generate new ideas (unless explicitly extending)
61
63
  - Acknowledge trade-offs rather than seeking a single "best"
@@ -23,6 +23,7 @@ Generation-heavy at start (Spark), increasingly collaborative as ideas become co
23
23
  ## Hard Rules
24
24
 
25
25
  ### The 2-Question Limit
26
+
26
27
  **NEVER more than 2 questions in a row before generating something creative.**
27
28
 
28
29
  If the AI has asked 2 questions, it MUST generate output next — even if it doesn't have complete information. Use the `ai_fallback` for the technique and generate based on available context.
@@ -39,6 +40,7 @@ If the AI has asked 2 questions, it MUST generate output next — even if it doe
39
40
  | (detailed responses, high engagement) | More co-build to leverage engagement |
40
41
 
41
42
  ### Ratio Tracking
43
+
42
44
  Track the question-to-generation ratio. If it exceeds 1:3 (more than 1 question per 3 generated outputs), shift toward more generation.
43
45
 
44
46
  ## Technique-Interaction Mapping
@@ -62,19 +64,24 @@ Each technique declares its natural interaction type:
62
64
  The AI reads engagement signals and adapts:
63
65
 
64
66
  ### High Energy Signals
67
+
65
68
  - Long responses, exclamation marks, building on ideas
66
69
  - **Response**: Match energy, increase pace, go bolder
67
70
 
68
71
  ### Medium Energy Signals
72
+
69
73
  - Moderate responses, picking favorites, giving direction
70
74
  - **Response**: Steady pace, follow their direction
71
75
 
72
76
  ### Low Energy Signals
77
+
73
78
  - Short responses ("ok", "sure", "next"), slow replies
74
79
  - **Response**: Generate more (don't ask), try a different angle, offer to pause or switch skills
75
80
 
76
81
  ### Re-energizing Tactics
82
+
77
83
  When energy drops:
84
+
78
85
  1. Switch technique (if SCAMPER isn't landing, try inversion or random-word)
79
86
  2. Switch domain (if tech ideas aren't exciting, try nature or games)
80
87
  3. Inject a provocation (absurd idea can re-spark interest)