forge-orkes 0.3.8 → 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.
- package/package.json +1 -1
- package/template/.claude/agents/executor.md +37 -50
- package/template/.claude/agents/planner.md +33 -41
- package/template/.claude/agents/researcher.md +24 -26
- package/template/.claude/agents/reviewer.md +45 -53
- package/template/.claude/agents/verifier.md +30 -50
- package/template/.claude/skills/architecting/SKILL.md +32 -46
- package/template/.claude/skills/beads-integration/SKILL.md +27 -43
- package/template/.claude/skills/debugging/SKILL.md +34 -35
- package/template/.claude/skills/designing/SKILL.md +33 -52
- package/template/.claude/skills/discussing/SKILL.md +139 -180
- package/template/.claude/skills/executing/SKILL.md +85 -157
- package/template/.claude/skills/forge/SKILL.md +101 -148
- package/template/.claude/skills/initializing/SKILL.md +104 -144
- package/template/.claude/skills/planning/SKILL.md +65 -67
- package/template/.claude/skills/quick-tasking/SKILL.md +25 -31
- package/template/.claude/skills/researching/SKILL.md +22 -32
- package/template/.claude/skills/reviewing/SKILL.md +406 -0
- package/template/.claude/skills/securing/SKILL.md +19 -19
- package/template/.claude/skills/upgrading/SKILL.md +19 -27
- package/template/.claude/skills/verifying/SKILL.md +53 -81
- package/template/CLAUDE.md +7 -10
- package/template/.claude/skills/auditing/SKILL.md +0 -314
- package/template/.claude/skills/refactoring/SKILL.md +0 -168
|
@@ -1,105 +1,88 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: discussing
|
|
3
|
-
description: "
|
|
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 decisions — no plans, no code."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Discussing
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Structured conversation about approach, trade-offs, and decisions. Produces clarity, not artifacts.
|
|
9
9
|
|
|
10
10
|
## When to Invoke
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
19
|
-
|
|
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
|
|
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 →
|
|
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
|
|
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
|
|
41
|
+
Summarize research structured around decisions — not a data dump.
|
|
50
42
|
|
|
51
|
-
**Use
|
|
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
|
|
55
|
-
2.
|
|
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", "
|
|
58
|
-
- `options`: 2-4
|
|
59
|
-
|
|
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
|
|
53
|
+
**Batch related decisions** into 1-2 calls so the user sees the full landscape.
|
|
64
54
|
|
|
65
|
-
**
|
|
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
|
|
57
|
+
Example structure:
|
|
68
58
|
|
|
69
59
|
```
|
|
70
|
-
Brief context paragraph
|
|
60
|
+
Brief context paragraph from research.
|
|
71
61
|
|
|
72
62
|
→ AskUserQuestion with questions:
|
|
73
|
-
1. "Which recovery strategy
|
|
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
|
|
78
|
-
- "Migration + constraints" / "Let sweep handle it" /
|
|
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
|
|
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
|
|
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
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
|
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
|
|
118
|
-
- *"
|
|
119
|
-
- *"Anything you definitely want or
|
|
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.
|
|
104
|
+
One or two questions at a time.
|
|
122
105
|
|
|
123
106
|
### Step 4: Functionality Distillation
|
|
124
107
|
|
|
125
|
-
|
|
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
|
-
**
|
|
110
|
+
**Five question layers per feature/requirement:**
|
|
128
111
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
|
136
|
-
|
|
137
|
-
- *"
|
|
138
|
-
- *"
|
|
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
|
|
143
|
-
|
|
144
|
-
- *"
|
|
145
|
-
- *"
|
|
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
|
|
150
|
-
|
|
151
|
-
- *"
|
|
152
|
-
- *"
|
|
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
|
|
157
|
-
|
|
158
|
-
- *"
|
|
159
|
-
- *"
|
|
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
|
-
**
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
154
|
+
description: "Queue retries at 1m/5m/30m. Adds complexity but self-heals."
|
|
183
155
|
- label: "Fail and alert"
|
|
184
|
-
description: "Mark
|
|
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
|
-
**
|
|
190
|
-
|
|
191
|
-
- **
|
|
192
|
-
- **
|
|
193
|
-
- **
|
|
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
|
-
|
|
169
|
+
Summarize what's been decided as a brief list, then confirm:
|
|
199
170
|
|
|
200
|
-
*"Here's where
|
|
201
|
-
- *[Decision 1]: [what
|
|
202
|
-
- *[Decision 2]: [what
|
|
203
|
-
- *[Open question]: [
|
|
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
|
|
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
|
|
212
|
-
- label: "
|
|
213
|
-
description: "Revisit one or more decisions
|
|
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: "
|
|
185
|
+
description: "Topics we haven't covered yet."
|
|
216
186
|
```
|
|
217
187
|
|
|
218
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
-
|
|
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
|
-
|
|
212
|
+
Proactively surface concerns. Use `AskUserQuestion` for discrete choices:
|
|
247
213
|
|
|
248
|
-
- **Decisions that could go either way** →
|
|
249
|
-
- **Scope questions** →
|
|
250
|
-
- **
|
|
251
|
-
- **
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
227
|
+
Post-planning discussion earns its keep here — the plan makes features concrete enough for questions impossible during pre-planning.
|
|
264
228
|
|
|
265
|
-
|
|
229
|
+
### Step 5: Discuss and Revise
|
|
266
230
|
|
|
267
231
|
```
|
|
268
|
-
question: "How
|
|
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
|
|
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
|
|
240
|
+
description: "Revisit a technical decision."
|
|
277
241
|
- label: "More questions"
|
|
278
|
-
description: "
|
|
242
|
+
description: "Discuss specific parts further."
|
|
279
243
|
```
|
|
280
244
|
|
|
281
|
-
|
|
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
|
|
249
|
+
If the discussion produced changes:
|
|
286
250
|
|
|
287
251
|
*"Based on our discussion:*
|
|
288
|
-
- *[Change 1]: [what
|
|
289
|
-
- *[Change 2]: [what
|
|
290
|
-
- *[Unchanged]: [
|
|
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
|
|
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
|
|
261
|
+
description: "Re-plan affected areas with revised decisions."
|
|
299
262
|
- label: "More to discuss"
|
|
300
|
-
description: "
|
|
263
|
+
description: "Topics we haven't covered yet."
|
|
301
264
|
```
|
|
302
265
|
|
|
303
|
-
If re-planning is needed, route
|
|
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
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
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
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
278
|
+
| Pattern | Fix |
|
|
279
|
+
|---------|-----|
|
|
280
|
+
| Analysis paralysis — 30 min on a 5-min decision | Name it: "We have enough to move forward. Revisit after first implementation." |
|
|
281
|
+
| False facilitation — asking questions you know the answer to | If research points one way, say so. |
|
|
282
|
+
| Premature convergence — locking 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
|
|
288
|
+
After discussion converges:
|
|
328
289
|
|
|
329
|
-
1. **Persist decisions** — The
|
|
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
|
-
*"
|
|
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}."*
|