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.
- package/README.md +15 -0
- package/bin/cli.js +15 -1
- package/flows/fire/agents/builder/agent.md +2 -2
- package/flows/fire/agents/builder/skills/code-review/SKILL.md +1 -1
- package/flows/fire/agents/builder/skills/run-execute/SKILL.md +16 -7
- package/flows/fire/agents/builder/skills/run-execute/scripts/complete-run.cjs +22 -3
- package/flows/fire/agents/builder/skills/run-execute/scripts/init-run.cjs +63 -20
- package/flows/fire/agents/builder/skills/run-execute/scripts/update-checkpoint.cjs +254 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/update-phase.cjs +17 -6
- package/flows/fire/agents/builder/skills/run-status/SKILL.md +1 -1
- package/flows/fire/agents/builder/skills/walkthrough-generate/SKILL.md +30 -27
- package/flows/fire/agents/orchestrator/agent.md +1 -1
- package/flows/fire/agents/orchestrator/skills/status/SKILL.md +2 -2
- package/flows/fire/memory-bank.yaml +4 -4
- package/flows/ideation/agents/orchestrator/agent.md +8 -7
- package/flows/ideation/agents/orchestrator/skills/flame/SKILL.md +1 -0
- package/flows/ideation/agents/orchestrator/skills/flame/references/evaluation-criteria.md +4 -0
- package/flows/ideation/agents/orchestrator/skills/flame/references/six-hats-method.md +12 -0
- package/flows/ideation/agents/orchestrator/skills/forge/SKILL.md +1 -0
- package/flows/ideation/agents/orchestrator/skills/forge/references/disney-method.md +8 -0
- package/flows/ideation/agents/orchestrator/skills/forge/references/pitch-framework.md +15 -0
- package/flows/ideation/agents/orchestrator/skills/spark/SKILL.md +1 -0
- package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/analogy.md +7 -0
- package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/first-principles.md +5 -0
- package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/inversion.md +6 -0
- package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/questorming.md +6 -0
- package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/random-word.md +1 -0
- package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/scamper.md +15 -0
- package/flows/ideation/agents/orchestrator/skills/spark/references/techniques/what-if.md +6 -0
- package/flows/ideation/shared/protocols/anti-bias.md +7 -4
- package/flows/ideation/shared/protocols/deep-thinking.md +7 -0
- package/flows/ideation/shared/protocols/diverge-converge.md +2 -0
- package/flows/ideation/shared/protocols/interaction-adaptation.md +7 -0
- package/lib/dashboard/aidlc/parser.js +581 -0
- package/lib/dashboard/fire/model.js +382 -0
- package/lib/dashboard/fire/parser.js +470 -0
- package/lib/dashboard/flow-detect.js +86 -0
- package/lib/dashboard/git/changes.js +362 -0
- package/lib/dashboard/git/worktrees.js +248 -0
- package/lib/dashboard/index.js +709 -0
- package/lib/dashboard/runtime/watch-runtime.js +122 -0
- package/lib/dashboard/simple/parser.js +293 -0
- package/lib/dashboard/tui/app.js +1675 -0
- package/lib/dashboard/tui/components/error-banner.js +35 -0
- package/lib/dashboard/tui/components/header.js +60 -0
- package/lib/dashboard/tui/components/help-footer.js +15 -0
- package/lib/dashboard/tui/components/stats-strip.js +35 -0
- package/lib/dashboard/tui/file-entries.js +383 -0
- package/lib/dashboard/tui/flow-builders.js +991 -0
- package/lib/dashboard/tui/git-builders.js +218 -0
- package/lib/dashboard/tui/helpers.js +236 -0
- package/lib/dashboard/tui/overlays.js +242 -0
- package/lib/dashboard/tui/preview.js +220 -0
- package/lib/dashboard/tui/renderer.js +76 -0
- package/lib/dashboard/tui/row-builders.js +797 -0
- package/lib/dashboard/tui/sections.js +45 -0
- package/lib/dashboard/tui/store.js +44 -0
- package/lib/dashboard/tui/views/overview-view.js +61 -0
- package/lib/dashboard/tui/views/runs-view.js +93 -0
- package/lib/dashboard/tui/worktree-builders.js +229 -0
- package/lib/installers/CodexInstaller.js +72 -1
- 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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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)
|