forge-orkes 0.3.9 → 0.3.10

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.
@@ -1,105 +1,88 @@
1
1
  ---
2
2
  name: discussing
3
- description: "Use when you need to talk through approach, trade-offs, or concerns before committing to action. Trigger between researching and planning (pre-plan discussion), or invoke on any existing phase/plan to revisit decisions. This skill facilitates conversationit doesn't write plans or code."
3
+ description: "Talk through approach, trade-offs, or concerns before committing to action. Enters between researching and planning, or revisits existing plans on demand. Produces conversation and decisionsno plans, no code."
4
4
  ---
5
5
 
6
6
  # Discussing
7
7
 
8
- Facilitate a structured conversation about approach, trade-offs, and decisions. This skill produces clarity, not artifacts.
8
+ Structured conversation about approach, trade-offs, and decisions. Produces clarity, not artifacts.
9
9
 
10
10
  ## When to Invoke
11
11
 
12
- ### Pre-Planning (Default Position in Workflow)
13
- After `researching`, before `planning`. The agent has findings — now help the user decide what to do with them before locking anything into a plan.
12
+ | Trigger | Context |
13
+ |---------|---------|
14
+ | Pre-planning | After `researching`, before `planning`. Research findings available — decide what to do with them. |
15
+ | Post-planning | User says "discuss Phase 2" or "rethink the auth approach." Plan exists, user wants to revisit. |
16
+ | Mid-workflow | User feels uncertain or says "wait," "what are the alternatives?" Available from any skill. |
14
17
 
15
- ### Post-Planning (On-Demand)
16
- User says "discuss Phase 2" or "let's talk through plan 03" or "I want to rethink the auth approach." The plan exists but the user wants to revisit it before (or instead of) executing.
18
+ ## Boundaries
17
19
 
18
- ### Mid-Workflow
19
- User feels uncertain, wants to step back, or says things like "wait," "I'm not sure about this," "what are the alternatives?" Route here from any skill — discussion is always available.
20
-
21
- ## What This Skill Does NOT Do
22
-
23
- - **Does not write plans.** That's the `planning` skill.
24
- - **Does not write code.** That's the `executing` skill.
25
- - **Does not modify `.forge/` files.** Discussion produces decisions — the next skill writes them down.
26
- - **Does not require a phase or plan to exist.** You can discuss a vague idea.
27
-
28
- The only output is the conversation itself and, at the end, a summary of decisions made that the next skill should honor.
20
+ - Does not write plans, code, or `.forge/` files.
21
+ - Does not require a phase or plan to exist.
22
+ - Only output: the conversation itself + a decision summary the next skill honors.
29
23
 
30
24
  ## Pre-Planning Discussion
31
25
 
32
- When entering from `researching` (potentially after a context clear):
33
-
34
26
  ### Step 0: Load Context
35
27
 
36
- If entering with a fresh context (after `/clear`):
28
+ If entering with fresh context (after `/clear`):
37
29
 
38
30
  ```
39
31
  Read: .forge/state/milestone-{id}.yml → current position, progress
40
32
  Read: .forge/project.yml → tech stack, project description
41
- Read: .forge/context.md → any existing locked decisions (if exists)
33
+ Read: .forge/context.md → existing locked decisions (if exists)
42
34
  Read: .forge/constitution.md → active gates (if exists)
43
35
  ```
44
36
 
45
- Check if research findings were written to files (`.forge/phases/` or similar). If so, read them. If research was inline-only (conversation context), the findings may need to be re-summarized from the user — ask briefly: *"We're picking up after the research phase. Can you summarize the key findings, or should I re-scan the relevant areas?"*
37
+ Check for research findings in `.forge/phases/` or similar. If research was inline-only, ask: *"We're picking up after research. Summarize the key findings, or should I re-scan?"*
46
38
 
47
39
  ### Step 1: Present Decisions with AskUserQuestion
48
40
 
49
- Summarize what research found, structured around decisions the user needs to make — not a data dump.
41
+ Summarize research structured around decisions — not a data dump.
50
42
 
51
- **Use the `AskUserQuestion` tool for every decision point.** This gives users a clean, scannable interface instead of walls of text. You can batch up to 4 questions per `AskUserQuestion` call.
43
+ **Use `AskUserQuestion` for every decision point.** Batch up to 4 questions per call.
52
44
 
53
45
  For each decision:
54
- 1. Write a **brief prose intro** (2-3 sentences max) setting context for the decision — what's the problem, why does it matter.
55
- 2. Then immediately call `AskUserQuestion` with:
46
+ 1. Write a brief prose intro (2-3 sentences max) setting context.
47
+ 2. Call `AskUserQuestion` with:
56
48
  - `question`: The decision stated plainly, ending with `?`
57
- - `header`: Short label (e.g., "Strategy", "Approach", "Scope")
58
- - `options`: 2-4 realistic approaches. Each option gets:
59
- - `label`: Concise name (1-5 words). Put your recommendation first with "(Recommended)" suffix.
60
- - `description`: Trade-offs — what you gain and what you lose. Be honest about costs.
61
- - `multiSelect`: false for mutually exclusive choices, true when combinations are valid.
49
+ - `header`: Short label (e.g., "Strategy", "Scope")
50
+ - `options`: 2-4 approaches. Each gets a `label` (1-5 words, recommendation first with "(Recommended)" suffix) and `description` (trade-offs — gains and costs).
51
+ - `multiSelect`: false for mutually exclusive, true when combinations are valid.
62
52
 
63
- **Batch related decisions.** If you have 3-5 decisions, group them into 1-2 `AskUserQuestion` calls (max 4 questions each) rather than asking one at a time. This lets the user see the full landscape and make coherent choices.
53
+ **Batch related decisions** into 1-2 calls so the user sees the full landscape.
64
54
 
65
- **When NOT to use AskUserQuestion:** For open-ended exploration questions where the answer isn't one of a few discrete options (e.g., "Walk me through the ideal user flow"), use regular prose. The tool is for decisions with concrete choices, not brainstorming.
55
+ **Skip AskUserQuestion for open-ended exploration** (e.g., "Walk me through the ideal user flow"). The tool is for decisions with discrete choices.
66
56
 
67
- Example structure for a discussion with 3 decisions:
57
+ Example structure:
68
58
 
69
59
  ```
70
- Brief context paragraph explaining the landscape from research.
60
+ Brief context paragraph from research.
71
61
 
72
62
  → AskUserQuestion with questions:
73
- 1. "Which recovery strategy should we use?" (header: "Recovery")
63
+ 1. "Which recovery strategy?" (header: "Recovery")
74
64
  - "Sweep timer (Recommended)" / "Sweep timer + queue refactor" / ...
75
65
  2. "Where should observability live?" (header: "Observability")
76
66
  - "Server-side logs only" / "PostHog events" / "Both" / ...
77
- 3. "How should we handle the 704 contradictory records?" (header: "Data cleanup")
78
- - "Migration + constraints" / "Let sweep handle it" / "Migration only" / ...
67
+ 3. "How to handle the 704 contradictory records?" (header: "Data cleanup")
68
+ - "Migration + constraints" / "Let sweep handle it" / ...
79
69
  ```
80
70
 
81
- Surface the 3-5 decisions that actually matter. Don't present a 20-item matrix.
71
+ Surface the 3-5 decisions that matter. Not a 20-item matrix.
82
72
 
83
73
  ### Step 2: Facilitate, Don't Dictate
84
74
 
85
- After the user responds to decisions, your role is to help them think deeper — not to push your preference.
86
-
87
- **Use `AskUserQuestion` for follow-up decisions** that emerge from their answers. Use prose for open-ended exploration.
88
-
89
- Good facilitation patterns:
90
- - *"The main tension here is between X and Y."* → then `AskUserQuestion` with the concrete options
91
- - Referencing earlier decisions: *"You chose Option A for recovery — that makes X a more natural fit for observability."* → then `AskUserQuestion` with refined options
92
- - When trade-offs need explicit weighing → `AskUserQuestion` with `description` fields that name the costs
75
+ After the user responds, help them think deeper — don't push your preference. Use `AskUserQuestion` for follow-up decisions; prose for open-ended exploration.
93
76
 
94
- Bad facilitation patterns:
95
- - Presenting options as prose paragraphs when they could be `AskUserQuestion` choices
96
- - Asking "what do you think?" without giving the user something concrete to react to
97
- - Overwhelming with edge cases before the main path is clear
98
- - Treating every decision as equally important
77
+ | Good | Bad |
78
+ |------|-----|
79
+ | Name the tension, then offer concrete options via AskUserQuestion | Present options as prose paragraphs |
80
+ | Reference earlier decisions to refine later ones | Ask "what do you think?" without giving something to react to |
81
+ | Use `description` fields to name costs | Overwhelm with edge cases before the main path is clear |
99
82
 
100
83
  ### Step 3: Probe for Hidden Constraints
101
84
 
102
- Research often misses things the user knows but hasn't mentioned. Use `AskUserQuestion` for structured probes where the answer shapes the plan:
85
+ Research often misses what the user knows but hasn't mentioned. Use `AskUserQuestion` for structured probes:
103
86
 
104
87
  ```
105
88
  AskUserQuestion:
@@ -114,222 +97,198 @@ AskUserQuestion:
114
97
  description: "Do it right, scope is flexible"
115
98
  ```
116
99
 
117
- For open-ended probes where you need the user to explain (not choose), use prose:
118
- - *"Have you tried something similar before? What went wrong?"*
119
- - *"Anything you definitely want or definitely don't want?"*
100
+ For open-ended probes, use prose:
101
+ - *"Tried something similar before? What went wrong?"*
102
+ - *"Anything you definitely want or don't want?"*
120
103
 
121
- One or two questions at a time. Don't interrogate.
104
+ One or two questions at a time.
122
105
 
123
106
  ### Step 4: Functionality Distillation
124
107
 
125
- This is the heart of the discussing skill. Walk through each major feature or requirement and ask targeted questions that force clarity about *how the system should actually behave*. The goal is to surface the implicit assumptions and edge cases that the user hasn't articulated yet — but will need answers to during implementation.
108
+ Walk through each major feature and ask targeted questions that force clarity about how the system behaves. Surface implicit assumptions and edge cases the user hasn't articulated.
126
109
 
127
- **For each feature/requirement, work through these question layers:**
110
+ **Five question layers per feature/requirement:**
128
111
 
129
- **Layer 1: The Happy Path**
130
- What does success look like from the user's perspective? Walk through the ideal scenario step by step.
131
- - *"When a user [triggers this feature], what should they see/experience first?"*
132
- - *"Walk me through what happens next what's the sequence?"*
133
- - *"When it's done, what confirms to the user that it worked?"*
112
+ | Layer | Focus | When to use |
113
+ |-------|-------|-------------|
114
+ | 1. Happy Path | What success looks like step by step | Always |
115
+ | 2. Boundaries & Rules | Permissions, limits, triggers, preconditions | Anything with rules |
116
+ | 3. Failure Modes | Invalid input, service down, cancellation, concurrency | Critical paths (payments, data mutations, auth, integrations) |
117
+ | 4. Interactions & Side Effects | Cascading updates, notifications, undo, related features | Features with shared state or dependencies |
118
+ | 5. Evolution | v1 vs. final shape, scope cuts, likely future changes | Uncertain scope |
134
119
 
135
- **Layer 2: Boundaries and Rules**
136
- What are the constraints? What's allowed and what isn't?
137
- - *"Who can do this? Everyone, or only certain roles/states?"*
138
- - *"Is there a limit — how many, how often, how large?"*
139
- - *"What triggers this — user action, scheduled event, or reaction to something else?"*
140
- - *"Does this depend on anything else being true first?"*
120
+ **Layer 1 Happy Path:**
121
+ - *"When a user triggers this, what do they see first?"*
122
+ - *"What's the sequence?"*
123
+ - *"What confirms it worked?"*
141
124
 
142
- **Layer 3: When Things Go Wrong**
143
- What happens when the expected path breaks?
144
- - *"What if [the input is invalid / the service is down / the user cancels halfway]?"*
145
- - *"Should the system retry, fail gracefully, or alert someone?"*
146
- - *"If two users do this simultaneously, what should happen?"*
147
- - *"What's the worst thing that could happen if this feature has a bug?"*
125
+ **Layer 2 Boundaries:**
126
+ - *"Who can do this?"*
127
+ - *"Any limits how many, how often, how large?"*
128
+ - *"What triggers it user action, schedule, or reaction?"*
148
129
 
149
- **Layer 4: Interactions and Side Effects**
150
- How does this feature affect the rest of the system?
151
- - *"When this happens, does anything else need to update?"*
152
- - *"Should other users be notified? How?"*
153
- - *"Does this affect [related feature the research uncovered]? How?"*
154
- - *"Can this be undone? Should it be?"*
130
+ **Layer 3 Failures:**
131
+ - *"What if the input is invalid / service is down / user cancels halfway?"*
132
+ - *"Retry, fail gracefully, or alert?"*
133
+ - *"What if two users do this simultaneously?"*
155
134
 
156
- **Layer 5: Evolution**
157
- How might this change over time?
158
- - *"Is this a v1 that you expect to expand later, or is this the final shape?"*
159
- - *"If you had to cut scope, which parts of this are essential vs. nice-to-have?"*
160
- - *"What's the most likely thing you'd want to change about this in 3 months?"*
135
+ **Layer 4 — Side Effects:**
136
+ - *"Does anything else need to update?"*
137
+ - *"Should others be notified? How?"*
138
+ - *"Can this be undone?"*
161
139
 
162
- **How to use the layers:**
140
+ **Layer 5 Evolution:**
141
+ - *"v1 that expands later, or final shape?"*
142
+ - *"If you cut scope, what's essential vs. nice-to-have?"*
163
143
 
164
- Don't mechanically walk through all 5 layers for every requirement that would take hours. Instead:
144
+ Don't mechanically walk all 5 layers for every requirement. Ask 2-3 questions at a time, go deeper where answers reveal uncertainty.
165
145
 
166
- - **Always do Layer 1** if the happy path isn't clear, nothing else matters.
167
- - **Do Layer 2 for anything with rules** — permissions, limits, validations, workflows.
168
- - **Do Layer 3 for anything critical** — payments, data mutations, auth, external integrations.
169
- - **Do Layer 4 when features interact** — if research found shared state or dependencies between features.
170
- - **Do Layer 5 when scope feels uncertain** — if the user seems unsure how much to build now.
146
+ Use `AskUserQuestion` for behavior decisions with discrete answers. Use prose when you need the user to describe or explain.
171
147
 
172
- Ask 2-3 questions at a time, let the user respond, then go deeper where their answers reveal uncertainty. The conversation should feel like a collaborative design session, not an interrogation.
173
-
174
- **Use `AskUserQuestion` for behavior decisions within distillation.** When a question has discrete answers (retry vs. fail vs. alert, real-time vs. polling, roles A/B/C), use the tool. When you need the user to describe or explain something open-ended, use prose.
175
-
176
- Example — Layer 3 question as `AskUserQuestion`:
148
+ Example Layer 3 as AskUserQuestion:
177
149
  ```
178
- question: "When the external enrichment API is down, what should the system do?"
150
+ question: "When the enrichment API is down, what should the system do?"
179
151
  header: "Failure mode"
180
152
  options:
181
153
  - label: "Retry with backoff (Recommended)"
182
- description: "Queue retries at 1m/5m/30m intervals. Adds complexity but self-heals."
154
+ description: "Queue retries at 1m/5m/30m. Adds complexity but self-heals."
183
155
  - label: "Fail and alert"
184
- description: "Mark as failed, send alert. Simple but requires manual re-trigger."
156
+ description: "Mark failed, send alert. Simple but requires manual re-trigger."
185
157
  - label: "Skip and continue"
186
158
  description: "Process remaining items, revisit failures in next sweep."
187
159
  ```
188
160
 
189
- **What you're listening for:**
190
-
191
- - **Contradictions** — "It should be simple" but also "it needs to handle 12 different states." Surface these gently.
192
- - **Vague handwaving** — "It should just work normally." Push for specifics: *"What does 'normally' mean here? Can you describe one concrete example?"*
193
- - **Assumed knowledge** — "Like how Stripe does it." Confirm you share the same mental model: *"I want to make sure I understand — you mean [specific behavior], right?"*
194
- - **Energy shifts** — When the user gets excited about a detail, that's signal. When they get bored or dismissive, that's also signal. The things they care about should get more attention in the plan.
161
+ **Listen for:**
162
+ - **Contradictions** — "It should be simple" + "12 different states." Surface these.
163
+ - **Vague handwaving** — "It should just work." Push: *"What does 'normally' mean here? One concrete example?"*
164
+ - **Assumed knowledge** — "Like how Stripe does it." Confirm: *"You mean [specific behavior], right?"*
165
+ - **Energy shifts** — Excitement = signal. Boredom = signal. Weight attention accordingly.
195
166
 
196
167
  ### Step 5: Converge on Decisions
197
168
 
198
- When the conversation has covered the key points, summarize what's been decided as a brief prose list, then use `AskUserQuestion` for final confirmation:
169
+ Summarize what's been decided as a brief list, then confirm:
199
170
 
200
- *"Here's where I think we've landed:"*
201
- - *[Decision 1]: [what was decided and why]*
202
- - *[Decision 2]: [what was decided and why]*
203
- - *[Open question]: [what's still unresolved and how to handle it]*
171
+ *"Here's where we've landed:"*
172
+ - *[Decision 1]: [what and why]*
173
+ - *[Decision 2]: [what and why]*
174
+ - *[Open question]: [unresolved + how to handle]*
204
175
 
205
- Then confirm with `AskUserQuestion`:
206
176
  ```
207
- question: "Does this match your understanding? Ready to move to planning?"
177
+ question: "Does this match? Ready to move to planning?"
208
178
  header: "Confirm"
209
179
  options:
210
180
  - label: "Looks good, proceed"
211
- description: "Lock these decisions and move to planning phase."
212
- - label: "I want to adjust something"
213
- description: "Revisit one or more decisions before locking."
181
+ description: "Lock decisions, move to planning."
182
+ - label: "Adjust something"
183
+ description: "Revisit one or more decisions."
214
184
  - label: "More to discuss"
215
- description: "There are topics we haven't covered yet."
185
+ description: "Topics we haven't covered yet."
216
186
  ```
217
187
 
218
- These decisions flow into `context.md` as **Locked Decisions** when the `planning` skill runs next.
188
+ Decisions flow into `context.md` as **Locked Decisions** when `planning` runs.
219
189
 
220
190
  ## Post-Planning Discussion
221
191
 
222
- When invoked on an existing phase or plan:
223
-
224
192
  ### Step 1: Load Context
225
193
 
226
- Read the relevant files:
227
- - The plan being discussed (`.forge/phases/m{M}-{N}-{name}/plan-{NN}.md`)
228
- - Requirements it's based on (`.forge/requirements.yml`)
229
- - Locked decisions (`.forge/context.md`)
230
- - Constitution (`.forge/constitution.md`)
194
+ ```
195
+ Read: .forge/phases/m{M}-{N}-{name}/plan-{NN}.md → the plan
196
+ Read: .forge/requirements.yml → source requirements
197
+ Read: .forge/context.md → locked decisions
198
+ Read: .forge/constitution.md → active gates
199
+ ```
231
200
 
232
201
  ### Step 2: Present the Plan in Plain Language
233
202
 
234
- Don't just recite the plan back. Translate it into what it means:
235
-
236
- *"Phase 2 has 3 plans with 8 tasks total. Here's what it actually does:*
237
-
238
- *Plan 01 builds [feature A] — it creates [these things] and wires them to [these things]. The main risk is [risk]. Estimated at [time].*
203
+ Translate the plan into what it means don't recite it back.
239
204
 
205
+ *"Phase 2 has 3 plans with 8 tasks. Here's what it does:*
206
+ *Plan 01 builds [feature A] — creates [X], wires to [Y]. Main risk: [risk].*
240
207
  *Plan 02 builds [feature B] — [same pattern].*
241
-
242
- *The key assumption is [assumption]. If that's wrong, plans 02 and 03 would need rework."*
208
+ *Key assumption: [assumption]. If wrong, plans 02-03 need rework."*
243
209
 
244
210
  ### Step 3: Surface What's Worth Discussing
245
211
 
246
- Don't wait for the user to spot issues. Proactively surface concerns, then **use `AskUserQuestion` for any that have discrete choices:**
212
+ Proactively surface concerns. Use `AskUserQuestion` for discrete choices:
247
213
 
248
- - **Decisions that could go either way** → `AskUserQuestion` with the options and trade-offs
249
- - **Scope questions** → `AskUserQuestion` (e.g., "Ship admin features in v1?" with "Yes, include" / "Defer to v2" options)
250
- - **Risks the plan doesn't address** → `AskUserQuestion` (e.g., "Worth adding a fallback?" with "Add fallback" / "Accept risk" options)
251
- - **Assumptions you're not confident about** → Prose, since these need the user to confirm or correct rather than choose
214
+ - **Decisions that could go either way** → AskUserQuestion with options and trade-offs
215
+ - **Scope questions** → AskUserQuestion (e.g., "Ship admin in v1?" "Include" / "Defer to v2")
216
+ - **Unaddressed risks** → AskUserQuestion (e.g., "Add fallback?" "Add" / "Accept risk")
217
+ - **Shaky assumptions** → Prose (needs user to confirm/correct, not choose)
252
218
 
253
219
  ### Step 4: Drill into Functionality
254
220
 
255
- Use the same **Functionality Distillation** question layers from Pre-Planning Step 4, but now grounded in the concrete plan. Instead of asking about abstract requirements, ask about the specific tasks and how they'll behave:
256
-
257
- - *"Task 2 creates the notification service. When a notification fails to send, should the system retry or just log it?"*
258
- - *"Plan 01 wires the dashboard to the API. Should the dashboard poll for updates, or should changes push in real-time?"*
259
- - *"The plan has user roles as a task, but the requirements don't specify what each role can do. Can we walk through the permissions?"*
221
+ Apply the **Functionality Distillation** layers from Pre-Planning Step 4, now grounded in concrete tasks:
260
222
 
261
- This is where post-planning discussion earns its keep — the plan makes the feature concrete enough to ask questions that were impossible during pre-planning.
223
+ - *"Task 2 creates the notification service. On send failure retry or log?"*
224
+ - *"Plan 01 wires dashboard to API. Poll for updates or push real-time?"*
225
+ - *"The plan has user roles but requirements don't specify permissions. Walk through them?"*
262
226
 
263
- ### Step 5: Discuss and Revise Direction
227
+ Post-planning discussion earns its keep here — the plan makes features concrete enough for questions impossible during pre-planning.
264
228
 
265
- The user may want to change approach, adjust scope, reorder priorities, ask questions, or approve as-is. Use `AskUserQuestion` to give them a clear way to signal their intent:
229
+ ### Step 5: Discuss and Revise
266
230
 
267
231
  ```
268
- question: "How would you like to proceed with this plan?"
232
+ question: "How to proceed with this plan?"
269
233
  header: "Direction"
270
234
  options:
271
235
  - label: "Approve as-is"
272
- description: "Lock decisions and move to execution."
236
+ description: "Lock decisions, move to execution."
273
237
  - label: "Adjust scope"
274
238
  description: "Defer or add features before building."
275
239
  - label: "Change approach"
276
- description: "Revisit a technical decision in the plan."
240
+ description: "Revisit a technical decision."
277
241
  - label: "More questions"
278
- description: "I want to discuss specific parts further."
242
+ description: "Discuss specific parts further."
279
243
  ```
280
244
 
281
- Based on their response, either drill deeper with follow-up `AskUserQuestion` calls or move to summarizing.
245
+ Drill deeper or move to summarizing based on their response.
282
246
 
283
247
  ### Step 6: Summarize Changes
284
248
 
285
- If the discussion produced changes to the plan direction, summarize as prose:
249
+ If the discussion produced changes:
286
250
 
287
251
  *"Based on our discussion:*
288
- - *[Change 1]: [what changed and why]*
289
- - *[Change 2]: [what changed and why]*
290
- - *[Unchanged]: [what stays the same]*
252
+ - *[Change 1]: [what and why]*
253
+ - *[Change 2]: [what and why]*
254
+ - *[Unchanged]: [stays the same]*
291
255
 
292
- Then confirm next steps with `AskUserQuestion`:
293
256
  ```
294
- question: "Ready to update the plans, or more to discuss?"
257
+ question: "Ready to update plans, or more to discuss?"
295
258
  header: "Next step"
296
259
  options:
297
260
  - label: "Update plans"
298
- description: "Re-plan affected areas with the revised decisions."
261
+ description: "Re-plan affected areas with revised decisions."
299
262
  - label: "More to discuss"
300
- description: "There are topics we haven't covered yet."
263
+ description: "Topics we haven't covered yet."
301
264
  ```
302
265
 
303
- If re-planning is needed, route back to the `planning` skill with the discussion summary as input. The planning skill will update plans, requirements, and context.md accordingly.
266
+ If re-planning is needed, route to `planning` with the discussion summary. Planning updates plans, requirements, and context.md.
304
267
 
305
268
  ## Facilitation Principles
306
269
 
307
- 1. **Lead with the interesting question, not the obvious one.** "Should we use React?" is boring if the project already uses React. "Should the dashboard update in real-time or on refresh?" is the real decision.
308
-
309
- 2. **Name the trade-off, don't hide it.** Every decision has a cost. Saying "Option A is better" without saying "but it takes 2x longer" is dishonest facilitation.
310
-
311
- 3. **Reference what the user has already told you.** Good facilitators remember. If the user said "I want this done by Friday" three messages ago, factor that into every recommendation.
312
-
313
- 4. **Know when to stop discussing.** If the user is clear and confident, don't manufacture uncertainty. Some discussions take 2 minutes. That's fine.
314
-
315
- 5. **Separate "must decide now" from "can decide later."** Not every question needs an answer before planning starts. Flag what can be deferred and what can't.
270
+ 1. **Lead with the interesting question.** "Should we use React?" is boring if the project already uses React. "Real-time or on-refresh?" is the real decision.
271
+ 2. **Name the trade-off.** "Option A is better" without "but it takes 2x longer" is dishonest facilitation.
272
+ 3. **Reference what the user already told you.** "Done by Friday" three messages ago factors into every recommendation.
273
+ 4. **Know when to stop.** If the user is clear and confident, don't manufacture uncertainty.
274
+ 5. **Separate "must decide now" from "can decide later."** Flag what can be deferred and what can't.
316
275
 
317
276
  ## Anti-Patterns
318
277
 
319
- - **Analysis paralysis** discussing for 30 minutes what could be decided in 5. If the user is going in circles, name it: "I think we have enough to move forward. We can revisit after seeing the first implementation."
320
- - **False facilitation** — asking questions you already know the answer to. If the research clearly points one way, say so.
321
- - **Premature convergence**locking decisions before the user has had a chance to think. Don't rush the summary.
322
- - **Scope creep via discussion** "While we're at it, should we also..." Keep discussion focused on the work at hand.
323
- - **Discussion as procrastination** if the user keeps wanting to discuss but never approves a plan, gently surface the pattern.
278
+ | Pattern | Fix |
279
+ |---------|-----|
280
+ | Analysis paralysis30 min on a 5-min decision | Name it: "We have enough to move forward. Revisit after first implementation." |
281
+ | False facilitationasking questions you know the answer to | If research points one way, say so. |
282
+ | Premature convergencelocking before the user has thought | Don't rush the summary. |
283
+ | Scope creep via discussion — "while we're at it..." | Stay focused on the work at hand. |
284
+ | Discussion as procrastination — never approving a plan | Surface the pattern. |
324
285
 
325
286
  ## Phase Handoff
326
287
 
327
- After discussion converges on decisions:
288
+ After discussion converges:
328
289
 
329
- 1. **Persist decisions** — The decision summary from Step 5 (pre-planning) or Step 6 (post-planning) will flow into `context.md` when the planning skill runs. For post-planning revisions, note the changes clearly so planning can pick them up.
290
+ 1. **Persist decisions** — The summary from Step 5 (pre) or Step 6 (post) flows into `context.md` when planning runs. For post-planning revisions, note changes clearly.
330
291
  2. **Update state** — Set `current.status` to `planning` (or `architecting` for Full tier) in `.forge/state/milestone-{id}.yml`
331
292
  3. **Recommend context clear:**
332
293
 
333
- *"Discussion phase complete. Decisions are captured and will be written to context.md during planning. I recommend clearing context (`/clear`) before starting the {planning/architecting} phase — the planner will load everything it needs from `.forge/` state files.*
334
-
335
- *Ready to continue? Clear context and invoke `/forge` to resume."*
294
+ *"Decisions captured. State written. `/clear` then `/forge` to continue with {planning/architecting}."*