cfsa-antigravity 2.7.0 → 2.9.0

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 (51) hide show
  1. package/package.json +1 -1
  2. package/template/.agent/kit-sync.md +3 -3
  3. package/template/.agent/skills/idea-extraction/SKILL.md +61 -18
  4. package/template/.agent/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
  5. package/template/.agent/skills/prd-templates/references/be-spec-classification.md +41 -0
  6. package/template/.agent/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
  7. package/template/.agent/skills/prd-templates/references/constraint-exploration.md +41 -0
  8. package/template/.agent/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
  9. package/template/.agent/skills/prd-templates/references/decision-propagation.md +121 -0
  10. package/template/.agent/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
  11. package/template/.agent/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
  12. package/template/.agent/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
  13. package/template/.agent/skills/prd-templates/references/expansion-modes.md +27 -0
  14. package/template/.agent/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
  15. package/template/.agent/skills/prd-templates/references/input-classification.md +23 -0
  16. package/template/.agent/skills/prd-templates/references/map-guard-protocol.md +44 -0
  17. package/template/.agent/skills/prd-templates/references/persona-completeness-gate.md +20 -0
  18. package/template/.agent/skills/prd-templates/references/shard-boundary-analysis.md +76 -0
  19. package/template/.agent/skills/prd-templates/references/write-verification-protocol.md +57 -0
  20. package/template/.agent/workflows/create-prd-architecture.md +17 -23
  21. package/template/.agent/workflows/create-prd-compile.md +31 -22
  22. package/template/.agent/workflows/create-prd-design-system.md +18 -14
  23. package/template/.agent/workflows/create-prd-security.md +22 -24
  24. package/template/.agent/workflows/create-prd-stack.md +20 -11
  25. package/template/.agent/workflows/create-prd.md +27 -99
  26. package/template/.agent/workflows/decompose-architecture-structure.md +14 -4
  27. package/template/.agent/workflows/decompose-architecture-validate.md +29 -80
  28. package/template/.agent/workflows/decompose-architecture.md +27 -60
  29. package/template/.agent/workflows/evolve-contract.md +7 -2
  30. package/template/.agent/workflows/evolve-feature-cascade.md +34 -78
  31. package/template/.agent/workflows/evolve-feature-classify.md +22 -56
  32. package/template/.agent/workflows/ideate-discover.md +89 -100
  33. package/template/.agent/workflows/ideate-extract.md +42 -138
  34. package/template/.agent/workflows/ideate-validate.md +57 -133
  35. package/template/.agent/workflows/ideate.md +32 -19
  36. package/template/.agent/workflows/implement-slice-setup.md +15 -5
  37. package/template/.agent/workflows/implement-slice-tdd.md +21 -5
  38. package/template/.agent/workflows/plan-phase-write.md +30 -1
  39. package/template/.agent/workflows/propagate-decision-apply.md +23 -90
  40. package/template/.agent/workflows/propagate-decision-scan.md +20 -91
  41. package/template/.agent/workflows/remediate-pipeline-execute.md +6 -1
  42. package/template/.agent/workflows/validate-phase-quality.md +14 -3
  43. package/template/.agent/workflows/validate-phase-readiness.md +1 -1
  44. package/template/.agent/workflows/verify-infrastructure.md +2 -0
  45. package/template/.agent/workflows/write-architecture-spec-deepen.md +8 -2
  46. package/template/.agent/workflows/write-architecture-spec-design.md +11 -14
  47. package/template/.agent/workflows/write-be-spec-classify.md +26 -104
  48. package/template/.agent/workflows/write-be-spec-write.md +49 -3
  49. package/template/.agent/workflows/write-be-spec.md +1 -1
  50. package/template/.agent/workflows/write-fe-spec-write.md +62 -3
  51. package/template/.agent/workflows/write-fe-spec.md +1 -1
@@ -17,102 +17,48 @@ pipeline:
17
17
 
18
18
  # Ideate — Discover
19
19
 
20
- Explore domains through recursive breadth-before-depth with the Deep Think protocol. Write to the fractal folder structure — every node gets an index, CX file, and children.
20
+ Explore domains through recursive breadth-before-depth with the Deep Think protocol. Write to the fractal folder structure.
21
21
 
22
- **Prerequisite**: If invoked standalone, verify `docs/plans/ideation/ideation-index.md` exists with the fractal folder structure seeded. If this file does not exist → **STOP**: "Extraction output missing — the fractal folder structure has not been seeded. Run `/ideate-extract` first before proceeding to discovery." Do not proceed without this output.
22
+ **Prerequisite**: If invoked standalone, verify `docs/plans/ideation/ideation-index.md` exists with the fractal folder structure seeded. If missing → **STOP**: "Run `/ideate-extract` first."
23
23
 
24
24
  ---
25
25
 
26
- ## 3. Domain Exploration — Recursive Model
26
+ ## 2.4. Mid-shard resumption check
27
27
 
28
- Read `.agent/skills/idea-extraction/SKILL.md` follow the Recursive Domain Exhaustion Protocol, Deep Think Protocol, Node Classification Gate, and Reactive Depth Protocol.
28
+ Scan `docs/plans/ideation/` for existing domain folders and feature files.
29
29
 
30
- Read `## Expansion Mode` and `## Structural Classification` from `docs/plans/ideation/ideation-index.md`.
30
+ - **If 0 domain folders exist** fresh exploration. Proceed to Step 2.5.
31
+ - **If domain folders exist but ideation-index.md `## Domain Map` is incomplete** (some domains listed but not all have `[DEEP]`/`[EXHAUSTED]`) → this is a resumed session. Log: "Resuming exploration. [N] of [M] domains already explored." Skip already-completed domains and continue from the first incomplete one.
32
+ - **If all domains are marked `[DEEP]` or `[EXHAUSTED]`** → exploration is complete. Skip to Step 4 (problem exploration) if not yet done, otherwise skip to `/ideate-validate`.
31
33
 
32
34
  ## 2.5. Read Engagement Tier
33
35
 
34
- Read `## Engagement Tier` from `docs/plans/ideation/ideation-index.md`. Apply gate behavior rules for this session:
35
-
36
- | Tier | Structural gates (domain maps, classification, sub-domain structure) | Product gates (personas, MoSCoW, feature scope, competitive positioning) |
37
- |------|----------------------------------------------------------------------|-------------------------------------------------------------------------|
38
- | 🤖 **Auto** | Auto-confirm: apply Deep Think, write reasoning to feature files, proceed | Auto-confirm: apply Deep Think, write reasoning to feature files, proceed |
39
- | 🤝 **Hybrid** | Auto-confirm: apply Deep Think, write reasoning to feature files, proceed | **Pause for user**: present findings, wait for explicit confirmation |
40
- | 💬 **Interactive** | **Pause for user**: present findings, wait for explicit confirmation | **Pause for user**: present findings, wait for explicit confirmation |
41
-
42
- > [!IMPORTANT]
43
- > **Auto-confirmed gates must still write.** When a gate is auto-confirmed, the agent writes the Deep Think reasoning and decision to the relevant file immediately — just as if the user had confirmed it. The file trail must be identical regardless of tier. This ensures the Auto tier review checkpoint in `ideate-validate` has full traceability.
44
-
45
- ### Full Mode (recommended for 3+ domains)
46
-
47
- #### Level 0 — Global Domain Map
48
-
49
- 1. Read `ideation-index.md` for currently identified domains and structural classification
50
- 2. Apply Deep Think: "What domains would I expect for this product type?"
51
- 3. For each confirmed domain, run the **Node Classification Gate** (from skill):
52
- - Determine placement (surface folder, hub, shared, or top-level)
53
- - Create domain folder: `{NN}-{slug}/` + `{slug}-index.md` + `{slug}-cx.md`
54
- 4. Note preliminary cross-cuts:
55
- - In the relevant parent's CX file (surface CX or global CX)
56
- - In `ideation-cx.md` if cross-surface
57
- 5. Update `ideation-index.md` structure map with paths
58
- 6. **Gate** *(structural)*: Present domain map. **Interactive/Hybrid**: User confirms before Level 1. **Auto**: Auto-confirm with Deep Think reasoning written to `ideation-index.md`.
59
-
60
- #### Level 1 — Domain Breadth Sweep
36
+ Read `## Engagement Tier` from `docs/plans/ideation/ideation-index.md`.
61
37
 
62
- For each domain (dependency order foundational first):
38
+ - **If the section exists** apply the specified tier.
39
+ - **If the section is missing** → default to **Hybrid** tier. Warn: "Engagement tier not found in ideation-index.md. Defaulting to Hybrid. Override now or continue?"
40
+ - **If the value is not one of Auto/Hybrid/Interactive** → **STOP**: "Invalid engagement tier '[value]' in ideation-index.md. Expected: Auto, Hybrid, or Interactive."
63
41
 
64
- 1. List all sub-areas/capabilities within the domain
65
- 2. **Deep Think**: "What sub-areas would an expert expect?"
66
- 3. Run **Node Classification Gate** for each:
67
- - 2+ interacting capabilities → **sub-domain** (create folder + index + CX)
68
- - Single capability → **feature** (create `.md` file from `fractal-feature-template.md`)
69
- 4. Update domain index (Children table + **Role Matrix**)
70
- 5. Note cross-cuts in the domain's CX file
71
- 6. **NEW DOMAINS DISCOVERED?** → Classify, create, update index, loop to Level 0
72
- 7. Mark domain status as `[BREADTH]`
73
- 8. **Gate** *(structural)*: Pause after EACH domain. **Interactive/Hybrid**: "Here's what I mapped for [Domain]. Missing anything?" After ALL: "All domains at BREADTH. Ready to drill?" **Auto**: Auto-confirm with Deep Think reasoning written to domain index.
42
+ Read `.agent/skills/prd-templates/references/engagement-tier-protocol.md` apply the tier's gate behavior for structural gates and product gates throughout this shard.
74
43
 
75
- #### Level 2+ — Vertical Drilling
76
-
77
- For each domain (dependency order), for each child:
78
-
79
- 1. Apply Exhaustion Questions (entity, feature, user, integration)
80
- 2. **Deep Think** per child — edge cases, interactions, failure modes
81
- 3. For **feature files**: fill all sections (Behavior, Edge Cases, States, **Role Lens**)
82
- 4. For **sub-domains**: drill their child features recursively
83
- 5. Record Deep Think outcomes in each feature file's Deep Think Annotations table
84
- 6. Cross-cuts with evidence → add to parent's CX file with synthesis questions
85
- 7. **Feature reveals 2+ interacting capabilities?** → Run **Promotion Protocol** (convert .md to folder)
86
- 8. **NEW DOMAINS DISCOVERED?** → Loop to Level 0
87
- 9. When Deep Think yields zero hypotheses AND user confirms (or auto-confirms for Auto tier) → mark `[EXHAUSTED]`
88
- 10. Status propagation: all children `[EXHAUSTED]` → node is `[EXHAUSTED]`
89
- 11. **Gate** *(product)*: Pause after each domain is drilled. **Interactive**: Full review. **Hybrid**: Pause for review. **Auto**: Auto-confirm with Deep Think reasoning written to domain index.
90
-
91
- #### Cross-Cut Synthesis (Continuous)
92
-
93
- Cross-cuts are identified continuously, but after all domains reach `[DEEP]`, do a final review:
94
-
95
- 1. Read ALL CX files at every level (global, surface, domain, sub-domain)
96
- 2. For any entries at Medium/Low confidence, ask the five synthesis questions (per `fractal-cx-template.md`)
97
- 3. Document confirmed interactions with role scoping
98
- 4. Record rejected pairs with reasoning
99
- 5. Check second-order cross-cuts: "Do any CONFIRMED pairs cross-cut each other?"
100
-
101
- ### Vertical Mode
102
-
103
- Identify shallowest leaf nodes. Drive to `[DEEP]`/`[EXHAUSTED]` with Deep Think. Fill Role Lens in all feature files. Cross-cut watch active — log to appropriate CX files. Do not introduce new domains unless user requests.
104
-
105
- ### Horizontal Mode
44
+ > [!IMPORTANT]
45
+ > **Auto-confirmed gates must still write.** When a gate is auto-confirmed, the agent writes the Deep Think reasoning and decision to the relevant file immediately. The file trail must be identical regardless of tier.
106
46
 
107
- Audit for missing domains with Deep Think. Create domain folders (with Classification Gate) for confirmed new domains. Level 1 breadth sweep on each. Offer vertical drilling after.
47
+ ## 3. Domain Exploration Recursive Model
108
48
 
109
- ### Cross-cutting Mode (standalone)
49
+ Read `.agent/skills/idea-extraction/SKILL.md` follow the **Recursive Domain Exhaustion Protocol**, **Deep Think Protocol**, **Node Classification Gate**, and **Reactive Depth Protocol**.
110
50
 
111
- Read all CX files + feature files' cross-cut notes. Identify interaction points. Run synthesis questions on unresolved pairs. Document in appropriate CX files.
51
+ Read `## Expansion Mode` and `## Structural Classification` from `docs/plans/ideation/ideation-index.md`.
112
52
 
113
- ### Combination / As-is Mode
53
+ Route to the correct exploration mode based on what was selected in `ideate-extract` Step 1.6.5:
114
54
 
115
- Combination: user specifies sequence. As-is: skip expansion, run exhaustion check, but still scan for obvious CX candidates.
55
+ - **Full exploration** Run Level 0 → Level 1 → Level 2+ as defined in `idea-extraction/SKILL.md` `## Recursive Domain Exhaustion Protocol`. Apply tier-appropriate gate behavior at each level.
56
+ - **Vertical** → Identify shallowest leaf nodes. Drive to `[DEEP]`/`[EXHAUSTED]` with Deep Think. Do not introduce new domains unless user requests.
57
+ - **Horizontal** → Audit for missing domains with Deep Think. Create domain folders (with Classification Gate). Level 1 breadth sweep on each. Offer vertical drilling after.
58
+ - **Cross-cutting** → Read all CX files + feature files. Identify interaction points. Run synthesis questions on unresolved pairs.
59
+ - **Combination** → User specifies sequence.
60
+ - **As-is** → Skip expansion, run exhaustion check, but still scan for obvious CX candidates.
61
+ - **Audit ambiguity first** → Run inline ambiguity check, then select expansion mode based on results.
116
62
 
117
63
  ---
118
64
 
@@ -125,15 +71,7 @@ Read `.agent/skills/brainstorming/SKILL.md` and follow its methodology.
125
71
  3. **How are they solving it today?** → Write to `meta/competitive-landscape.md`
126
72
  4. **Why now?** → Write to `meta/problem-statement.md` under "Why Now"
127
73
 
128
- **Persona completeness gate (Ideation Rubric Dimension 2):** For each persona, verify all 6 fields:
129
- 1. Name + specific role
130
- 2. Specific pain point
131
- 3. Current workaround
132
- 4. Success criteria
133
- 5. Switching trigger
134
- 6. At least one edge case or constraint unique to this persona
135
-
136
- If any field absent → probe before proceeding. Reference: `.agent/skills/pipeline-rubrics/references/ideation-rubric.md` Dimension 2.
74
+ **Persona completeness gate**: Read `.agent/skills/prd-templates/references/persona-completeness-gate.md`. Verify all 6 fields for every persona. If any field absent → probe before proceeding.
137
75
 
138
76
  ---
139
77
 
@@ -141,30 +79,81 @@ If any field absent → probe before proceeding. Reference: `.agent/skills/pipel
141
79
 
142
80
  ### 5a. Feature collection (MoSCoW)
143
81
 
144
- Read `.agent/skills/brainstorming/SKILL.md`.
82
+ Read `.agent/skills/brainstorming/SKILL.md`. For each persona, brainstorm features across all 4 MoSCoW tiers. **Deep Think** for missing Must Haves.
145
83
 
146
- For each persona, brainstorm features across all 4 MoSCoW tiers. **Deep Think** for missing Must Haves.
84
+ Write MoSCoW matrix to `ideation-index.md`. Each feature references its fractal path and links to its feature file.
147
85
 
148
- Write MoSCoW matrix to `ideation-index.md`. Each feature references its **fractal path** (e.g., `web/01.02.03`) and links to its feature file.
86
+ **0 Must Haves guard**: If the MoSCoW matrix contains 0 Must Have features **STOP**: "No Must Have features identified. This indicates the problem statement or personas need refinement. Return to Step 4 and re-examine 'What problem are we solving?' with deeper probing before continuing."
149
87
 
150
- ### 5b. Feature deepening Must Haves
88
+ ### 5a.5. Adjacent Feature Analysis (gap surfacing)
89
+
90
+ After the MoSCoW matrix is populated, reason about what's **conspicuously absent** given everything known about the product:
151
91
 
152
- For each Must Have feature, use the recursive model:
92
+ 1. **Domain reasoning**: Given the product type (e.g., e-commerce, SaaS, marketplace), enumerate the standard feature categories expected in this space. Compare against the MoSCoW matrix. List any standard categories with zero features.
93
+ 2. **Persona reasoning**: For each persona, ask: "What does this persona need to accomplish their goal that isn't covered by any feature?" List unmet persona needs.
94
+ 3. **Workflow reasoning**: Trace each persona's end-to-end workflow. Identify any step where the user would need to leave the product to accomplish something — each gap is a potential missing feature.
95
+ 4. **Competitive reasoning**: Read `meta/competitive-landscape.md`. For each competitor capability listed, verify a corresponding feature exists. List competitive gaps.
153
96
 
154
- 1. **Level 1: Sub-features.** Component parts. Run Classification Gate — sub-domain or feature?
155
- 2. **Level 2: Edge cases and failure modes.** Fill feature file sections: Behavior (happy path, edge cases, states), **Role Lens**.
156
- 3. **Level 3 (complex features): Interactions.** Cross-cuts with evidence → parent CX file.
97
+ **Present findings as suggestions, not mandates**:
157
98
 
158
- **Deep Think at each level.** Write results to feature files using `fractal-feature-template.md`.
99
+ > 🔍 **Features you might not have thought of:**
100
+ >
101
+ > Based on [product type] and your personas:
102
+ > - [Feature A] — [why it fits: persona X needs this for workflow step Y]
103
+ > - [Feature B] — [why it fits: standard in this space, competitors X and Y have it]
104
+ > - [Feature C] — [why it fits: gap in persona Z's end-to-end workflow]
105
+ >
106
+ > Want to add any of these? They'd enter the MoSCoW matrix for prioritization.
107
+
108
+ **STOP** — wait for user response. For each accepted feature:
109
+ 1. Add to the MoSCoW matrix at the user's chosen priority
110
+ 2. Create a feature file in the appropriate domain folder
111
+ 3. Continue to Step 5b with the expanded feature set
112
+
113
+ For rejected features: note in `ideation-index.md` under a `## Considered & Rejected` section with the reason, so future sessions don't re-suggest them.
114
+
115
+ ### 5b. Feature deepening — Must Haves
116
+
117
+ For each Must Have feature, use the recursive model from `idea-extraction/SKILL.md`:
118
+ 1. **Level 1**: Sub-features. Run Classification Gate — sub-domain or feature?
119
+ 2. **Level 2**: Edge cases and failure modes. Fill feature file sections per `fractal-feature-template.md`.
120
+ 3. **Level 3** (complex features): Cross-cuts with evidence → parent CX file.
121
+
122
+ **Deep Think at each level.** Write results to feature files.
159
123
 
160
124
  ### 5c. Feature deepening — Should Haves (lighter touch)
161
125
 
162
126
  Level 1 (sub-features) only with Deep Think. Full treatment deferred to `/create-prd`.
163
127
 
128
+ ### 5d. Cross-Cut Synthesis Sweep (mandatory)
129
+
130
+ After all features are deepened, systematically identify emergent capabilities that arise when features **combine**:
131
+
132
+ 1. **Build a feature interaction matrix**: List all Must Have and Should Have features on both axes. For each pair, ask: "When a user has both of these, does something new become possible that neither feature provides alone?"
133
+ 2. **Identify emergent capabilities**: For each interesting pair (or triplet), describe the emergent capability.
134
+ - Example: Feature "AI diagnostics" + Feature "Supplier catalog" → emergent: "AI-recommended parts ordering" — the diagnostic identifies the failed part AND the catalog knows who sells it, enabling one-click ordering.
135
+ 3. **Classify each emergent capability**:
136
+ - **Already captured** → a feature or sub-feature already covers this. Note the link.
137
+ - **New cross-cut** → write to the parent domain's CX file. Flag for user review.
138
+ - **New feature entirely** → present to user for MoSCoW placement.
139
+ 4. **Present all findings**:
140
+
141
+ > 🔗 **Cross-cutting opportunities discovered:**
142
+ >
143
+ > | Features Combined | Emergent Capability | Status |
144
+ > |---|---|---|
145
+ > | [A] + [B] | [What becomes possible] | New cross-cut / New feature / Already captured |
146
+ >
147
+ > These emerged from how your features interact — they're capabilities you get "for free" if you build them with this interaction in mind.
148
+
149
+ **STOP** — wait for user response. Write accepted cross-cuts to CX files immediately. Add accepted new features to MoSCoW matrix.
150
+
151
+ > **Minimum coverage**: The sweep must evaluate at least every Must Have × Must Have pair and every Must Have × Should Have pair. Should Have × Should Have pairs are optional but recommended for complex products.
152
+
164
153
  ---
165
154
 
166
- ### Propose next step
155
+ ### Next step
167
156
 
168
- Proceed to `/ideate-validate` for exhaustion check, constraint exploration, and vision compilation.
157
+ **STOP** — do NOT proceed to any other workflow. The only valid next step is `/ideate-validate`.
169
158
 
170
- > If standalone, surface via `notify_user`. If from parent `/ideate`, natural handoff.
159
+ > If invoked standalone, surface this via `notify_user` and wait for user confirmation before running `/ideate-validate`.
@@ -19,181 +19,85 @@ pipeline:
19
19
 
20
20
  Classify the user's input, create the fractal `ideation/` folder structure, and load skills.
21
21
 
22
- **Prerequisite**: If standalone, verify user provided input via `@file` or verbal. If none, prompt: \"What would you like to build? Provide a file or describe your idea.\"
22
+ **Prerequisite**: If standalone, verify user provided input via `@file` or verbal. If none, prompt: "What would you like to build? Provide a file or describe your idea."
23
+
24
+ If `@file` was provided:
25
+ - **If file does not exist or is not readable** → **STOP**: "File not found at `[path]`. Provide a valid file path or describe your idea verbally."
26
+ - **If file is empty** (0 bytes) → **STOP**: "File at `[path]` is empty. Provide a file with content or describe your idea verbally."
27
+ - **If file is readable** → proceed to Step 1.
23
28
 
24
29
  ---
25
30
 
26
31
  ## 1. Input assessment
27
32
 
28
- Classify what the user has provided. This determines which mode the `idea-extraction` skill uses.
29
-
30
- | Input Type | Detection | Extraction Mode |
31
- |---|---|---|
32
- | **Rich document** | >5KB, detailed docs, design conversations, prior specs | Extraction |
33
- | **Thin document** | <5KB, structured but shallow (bullet list, rough PRD) | Expansion |
34
- | **Conversational dump** | Chat logs, unstructured conversation transcripts | Extraction (with noise filtering) |
35
- | **Verbal / one-liner** | User describes idea in chat, no files | Interview |
36
- | **Nothing** | "I want to build an app" or similar | Interview (deep) |
37
-
38
- **For rich inputs (Extraction mode):**
39
- 1. Read/ingest all provided documents
40
- 2. **Proportionality check**: If source >50KB, total ideation output must be ≥30% of source line count
41
- 3. **Interview the document**: Run the interview question framework from `idea-extraction/SKILL.md` Extraction Mode Phase 1. Extract concepts (not headings) with citations. Classify every concept through the Node Classification Gate. Build the classification table and proposed domain map.
42
- 4. **BLOCKING GATE — Do NOT proceed to Step 1.5 until the classification table is built.** The classification table is a required artifact. No domain folders can be created without it.
43
- 5. Identify gaps — questions the document doesn't answer → these become Phase 2 user interview questions
44
- 6. Use idea-extraction skill to refine, not re-derive
45
-
46
- **For thin inputs (Expansion mode):**
47
- 1. Read input and identify domain boundaries
48
- 2. Identify depth level per domain (surface → detailed → implementation-ready)
49
- 3. Note shallowest domains for priority treatment in `/ideate-discover`
50
-
51
- **For verbal / no input (Interview mode):**
52
- 1. Read `.agent/skills/idea-extraction/SKILL.md` and enter Interview mode
53
- 2. Start with: "In one sentence, what problem does this solve and for whom?"
54
- 3. **Immediately after**: Run Structural Classification (Step 1.3)
55
- 4. From that sentence + classification, identify initial domains
56
- 5. Proceed to folder seeding (Step 1.5)
33
+ Read `.agent/skills/prd-templates/references/input-classification.md` classify the input into one of the five types.
57
34
 
58
- ## 1.3. Structural Classification
35
+ Read `.agent/skills/idea-extraction/SKILL.md` `## Input-Adaptive Modes` — follow the process for the classified input type.
59
36
 
60
- Read the **Structural Classification Protocol** in `.agent/skills/idea-extraction/SKILL.md`.
37
+ **BLOCKING GATE**: Classification must produce a single input type. If ambiguous between Rich and Thin, use the 5KB threshold. If ambiguous between Thin and Verbal, check whether a file was provided.
61
38
 
62
- This step determines the folder layout. It MUST run **before** any domain folders are created (Step 1.5).
39
+ **For Extraction mode (rich input)**: Follow `idea-extraction/SKILL.md` Extraction Mode Phase 1 steps 1-6.
63
40
 
64
- **For rich/thin document input:**
65
- 1. Scan for surface signals (see detection table in skill)
66
- 2. If multi-product signals detected, scan for hub-and-spoke vs peer signals:
67
- - One surface described as "the platform" or "the API" → **hub-and-spoke**
68
- - All surfaces access central database through one API → **hub-and-spoke**
69
- - Surfaces described as equally independent → **peer**
70
- 3. If no multi-product signals → **single-surface**
71
- 4. If ambiguous → ask the user the classification questions
41
+ **BLOCKING GATE Do NOT proceed to Step 1.3 until the classification table is built.** The classification table (from skill Phase 1 step 4) is a required artifact. No domain folders can be created without it.
72
42
 
73
- **For interview / verbal input:**
74
- 1. After the opening problem statement, ask:
75
- - "Who are the distinct user types or audiences?"
76
- - "What platforms does this need to live on?" (web, mobile, desktop, API, CLI)
77
- 2. If multi-product → ask: "Is there a primary platform that others depend on, or are all surfaces independent peers?"
78
- 3. Classify the project shape
43
+ **For Expansion mode (thin input)**: Follow `idea-extraction/SKILL.md` Expansion Mode steps 1-3. Note shallowest domains for priority treatment in `/ideate-discover`.
79
44
 
80
- **Record the classification** in `ideation-index.md` under `## Structural Classification` per the super-index template.
45
+ **For Interview mode (verbal / no input)**: Follow `idea-extraction/SKILL.md` Interview Mode steps 1-2. Proceed to Step 1.3 immediately after opening question.
46
+
47
+ ## 1.3. Structural Classification
81
48
 
82
- Four shapes: `single-surface`, `multi-surface-shared`, `multi-product-hub`, `multi-product-peer`.
49
+ Read `.agent/skills/idea-extraction/SKILL.md` `## Structural Classification Protocol`. Follow the protocol for the current input type (document vs interview).
50
+
51
+ **BLOCKING GATE**: Classification must run BEFORE any domain folders are created (Step 1.5). Record the result (`single-surface`, `multi-surface-shared`, `multi-product-hub`, `multi-product-peer`) in `ideation-index.md` under `## Structural Classification`.
83
52
 
84
53
  ## 1.4. Re-run check
85
54
 
86
- Before seeding, check whether `docs/plans/ideation/ideation-index.md` already exists.
55
+ Check whether `docs/plans/ideation/ideation-index.md` already exists.
87
56
 
88
- - If it **exists**: Present summary (expansion mode, domain count, depth markers). Ask: "An ideation folder already exists. **Continue** or **start fresh**?"
57
+ - **Exists** Present summary (expansion mode, domain count, depth markers). Ask: "An ideation folder already exists. **Continue** or **start fresh**?"
89
58
  - **Continue** → skip seeding, jump to Step 1.6
90
59
  - **Start fresh** → archive to `docs/plans/ideation-archive-[timestamp]/`, then seed
91
- - If it **does not exist**: proceed with seeding.
60
+ - **Does not exist** proceed with seeding.
92
61
 
93
62
  ## 1.4.5. Classification Confirmation (Extraction mode only)
94
63
 
95
64
  > **BLOCKING GATE**: Before creating ANY domain folder, you MUST complete this step.
96
- > This step exists because the test revealed that the Node Classification Gate was being
97
- > bypassedthe agent mirrored source document headings as domains instead of classifying
98
- > each concept. This gate makes classification a hard prerequisite for folder creation.
99
-
100
- 1. **Verify the classification table exists.** Step 1 item 3 must have produced a completed classification table. If it doesn't exist, STOP — go back and run Extraction Mode Phase 1 from `idea-extraction/SKILL.md`.
101
- 2. **Present the classification table and proposed domain map to the user.** Show:
102
- - Every concept with its source location, gate result, and reasoning
103
- - The proposed domain hierarchy (what folders would be created and where)
104
- - The gap list (questions the document didn't answer)
105
- 3. **Ask**: "Here's how I classified your content. Does this look right?"
106
- 4. **Wait for user confirmation or corrections.** Do NOT proceed until the user responds.
107
- 5. **Apply any corrections** the user provides — update the classification table and domain map.
108
-
109
- **The classification table must show for each concept:**
110
- - Concept name and source location (line numbers or section reference)
111
- - Gate result: domain / sub-domain / feature / cross-cut / not-a-product-domain
112
- - Gate reasoning: which gate questions were asked and how they were answered
113
-
114
- **Do NOT mirror source document headings as domains.** Source headings are hints for finding concepts. The Node Classification Gate determines what each concept is.
65
+
66
+ 1. **Verify the classification table exists.** If it doesn't exist → STOP go back and run Extraction Mode Phase 1 from `idea-extraction/SKILL.md`.
67
+ 2. **Present the classification table and proposed domain map to the user.** Follow `idea-extraction/SKILL.md` Extraction Mode Phase 2 step 7 for what to show.
68
+ 3. **Wait for user confirmation or corrections.** Do NOT proceed until the user responds.
69
+ 4. **Apply any corrections** the user provides.
70
+ 5. **If user rejects the classification entirely** (e.g., "these domains are completely wrong") → return to Step 1 and re-classify from scratch, incorporating the user's feedback as explicit constraints. Do NOT attempt to patch the existing classification — start the classification protocol over.
115
71
 
116
72
  ## 1.5. Seed fractal `ideation/` folder
117
73
 
118
- Read these templates:
119
- - `.agent/skills/prd-templates/references/ideation-index-template.md` (super-index)
120
- - `.agent/skills/prd-templates/references/ideation-crosscut-template.md` (global CX)
121
- - `.agent/skills/prd-templates/references/fractal-node-index-template.md` (node index)
122
- - `.agent/skills/prd-templates/references/fractal-cx-template.md` (node CX)
123
- - `.agent/skills/prd-templates/references/fractal-feature-template.md` (feature file)
74
+ Read `.agent/skills/prd-templates/references/folder-seeding-protocol.md` and follow it.
124
75
 
125
76
  Read `.agent/skills/technical-writer/SKILL.md` and follow its methodology.
126
77
 
127
- **ADDITIVE ONLY** The `docs/plans/ideation/` directory already exists in the kit with `.gitkeep` and `README.md`. You are ADDING files into this existing directory. Do NOT delete, overwrite, or replace the directory itself. Do NOT remove any existing files. Create new files alongside what already exists.
128
-
129
- **Create the base structure** (all project shapes). This is what the folder should contain AFTER seeding — kit-shipped files plus new pipeline files:
78
+ **BLOCKING GATE**: If Step 1.4.5 was not completed (Extraction mode), STOP you cannot seed without a confirmed classification.
130
79
 
131
- ```
132
- docs/plans/ideation/
133
- ├── .gitkeep ← KIT-SHIPPED do not touch
134
- ├── README.md ← KIT-SHIPPED do not touch
135
- ├── ideation-index.md ← NEW: super-index (from ideation-index-template)
136
- ├── ideation-cx.md ← NEW: global cross-cuts (from ideation-crosscut-template)
137
- └── meta/ ← NEW: created by this step
138
- ├── problem-statement.md
139
- ├── personas.md
140
- ├── competitive-landscape.md
141
- └── constraints.md
142
- ```
80
+ **Partial failure recovery**: If folder seeding fails mid-way (some domain folders created, others not):
81
+ 1. List what was successfully created vs. what failed
82
+ 2. Present to user: "Folder seeding partially failed. [N] of [M] domains created. Retry the remaining [M-N] domains?"
83
+ 3. If user says retry → seed only the missing domains
84
+ 4. If user says abort → delete all newly created folders and STOP
143
85
 
144
- **For multi-product projects**, additionally create `surfaces/` with sub-folders per surface.
145
-
146
- **Post-seeding verification gate**: After creating all files, verify that `docs/plans/ideation/.gitkeep` and `docs/plans/ideation/README.md` still exist. If EITHER file is missing → **STOP**: "Kit-shipped files were destroyed during seeding. Restore `.gitkeep` and/or `README.md` to `docs/plans/ideation/` before continuing."
147
-
148
- **Seed domains from CONFIRMED classification table** (not from source headings):
149
-
150
- > **CRITICAL**: The domain list comes from the classification table confirmed in Step 1.4.5.
151
- > Do NOT re-derive domains from the source document. Do NOT fall back to source headings.
152
- > If Step 1.4.5 was not completed, STOP — you cannot seed without a confirmed classification.
153
-
154
- For each concept classified as **domain** in the confirmed table:
155
- 1. Determine placement from the structural classification:
156
- - Single-surface → create `docs/plans/ideation/{NN}-{slug}/`
157
- - Hub-and-spoke → surface-exclusive in `surfaces/{surface}/{NN}-{slug}/`, shared in hub surface
158
- - Peer → surface-exclusive in `surfaces/{surface}/{NN}-{slug}/`, shared in `shared/{NN}-{slug}/`
159
- 2. Create the domain folder with: `{slug}-index.md` + `{slug}-cx.md`
160
- 3. For concepts classified as **sub-domain**, create sub-domain folders nested inside their parent domain
161
- 4. For concepts classified as **feature**, create feature files inside their parent domain or sub-domain
162
- 5. For concepts classified as **cross-cut**, add entries to the appropriate CX files (domain-level or global)
163
- 6. For concepts classified as **not-a-product-domain**, add notes to `meta/constraints.md` for `/create-prd`
164
- 7. Update `ideation-index.md` structure map with paths
165
-
166
- **Seeding content by input type:**
167
-
168
- - **Rich document**: Seed each domain/sub-domain/feature with content from the source document using the source citations in the classification table. Run fidelity check: every major concept in the source must map to SOMETHING in the output (domain, sub-domain, feature, CX entry, or `/create-prd` note). Add `> Source: path/to/original.md` to index.
169
- - **Chat transcript**: Noise filter → extract signal → seed domain folders with structured output.
170
- - **Thin document**: Create domain folders with depth markers on feature files.
171
- - **Verbal / one-liner**: Create domain folders with scaffolding. Feature files are `[SURFACE]`.
86
+ **Post-seeding verification gate**: Verify `docs/plans/ideation/.gitkeep` and `docs/plans/ideation/README.md` still exist. If EITHER is missing → **STOP**: "Kit-shipped files were destroyed during seeding. Restore them before continuing."
172
87
 
173
88
  ## 1.6. Engagement Tier Selection (ALL input types)
174
89
 
175
- All three tiers are available for all input types. Present with the recommended default for this input type (Rich/Thin/Chat → Hybrid, Verbal → Interactive):
90
+ Read `.agent/skills/prd-templates/references/engagement-tier-protocol.md` for tier definitions and behavior.
176
91
 
177
- > **How involved do you want to be?**
178
- > 1. 🤖 **Auto** — I explore independently via Deep Think. You review at the end.
179
- > 2. 🤝 **Hybrid** *(recommended)* — Structural stuff auto, product decisions pause for you.
180
- > 3. 💬 **Interactive** — I pause at every gate. Full interview mode.
92
+ Present with the recommended default for this input type (Rich/Thin/Chat → Hybrid, Verbal → Interactive).
181
93
 
182
94
  **Wait for user answer.** Write the engagement tier to `ideation-index.md` under `## Engagement Tier` immediately.
183
95
 
184
96
  ## 1.6.5. Expansion Mode Selection (ALL input types)
185
97
 
186
- Present expansion mode options:
187
-
188
- 1. **Full exploration** *(recommended for 3+ domains)* — Breadth-before-depth with Deep Think
189
- 2. **Process as-is** — Proceed with what's captured
190
- 3. **Expand vertically** — Drill deeper into existing features
191
- 4. **Expand horizontally** — Add new domains
192
- 5. **Cross-cutting concerns** — Map feature interactions
193
- 6. **Combination** — User specifies dimensions and order
194
- 7. **Audit ambiguity first** — Inline check before deciding
98
+ Read `.agent/skills/prd-templates/references/expansion-modes.md` for mode options and default recommendations.
195
99
 
196
- **Wait for user answer.** Write expansion mode to `ideation-index.md` under `## Expansion Mode` immediately.
100
+ Present the options. **Wait for user answer.** Write expansion mode to `ideation-index.md` under `## Expansion Mode` immediately.
197
101
 
198
102
  ## 2. Load skills
199
103
 
@@ -201,8 +105,8 @@ Read `.agent/skills/idea-extraction/SKILL.md` and follow its methodology through
201
105
 
202
106
  Also read `.agent/skills/resolve-ambiguity/SKILL.md` — use reactively when encountering ambiguity that can be resolved without user input.
203
107
 
204
- ### Propose next step
108
+ ### Next step
205
109
 
206
- Proceed to `/ideate-discover` to explore domains using the recursive breadth-before-depth model with the fractal structure.
110
+ **STOP** do NOT proceed to any other workflow. The only valid next step is `/ideate-discover`.
207
111
 
208
- > If invoked standalone, surface this via `notify_user`. If invoked by parent `/ideate`, this is a natural handoff.
112
+ > If invoked standalone, surface this via `notify_user` and wait for user confirmation before running `/ideate-discover`.