forge-orkes 0.3.10 → 0.3.13

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,31 +1,31 @@
1
1
  ---
2
2
  name: discussing
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."
3
+ description: "Talk through approach, trade-offs, or concerns before committing. Between researching/planning, or revisits plans on demand. Decisions only — no plans, no code."
4
4
  ---
5
5
 
6
6
  # Discussing
7
7
 
8
- Structured conversation about approach, trade-offs, and decisions. Produces clarity, not artifacts.
8
+ Structured conversation: approach, trade-offs, decisions. Clarity, not artifacts.
9
9
 
10
10
  ## When to Invoke
11
11
 
12
12
  | Trigger | Context |
13
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
+ | Pre-planning | After `researching`, before `planning`. Research available -- decide what to do. |
15
+ | Post-planning | "Discuss Phase 2" or "rethink auth." Plan exists, user revisits. |
16
+ | Mid-workflow | User uncertain -- "wait," "alternatives?" Available from any skill. |
17
17
 
18
18
  ## Boundaries
19
19
 
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.
20
+ - No plans, code, or `.forge/` writes
21
+ - No phase/plan required
22
+ - Only output: conversation + decision summary next skill honors
23
23
 
24
24
  ## Pre-Planning Discussion
25
25
 
26
26
  ### Step 0: Load Context
27
27
 
28
- If entering with fresh context (after `/clear`):
28
+ If fresh (after `/clear`):
29
29
 
30
30
  ```
31
31
  Read: .forge/state/milestone-{id}.yml → current position, progress
@@ -34,27 +34,17 @@ Read: .forge/context.md → existing locked decisions (if exists)
34
34
  Read: .forge/constitution.md → active gates (if exists)
35
35
  ```
36
36
 
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?"*
37
+ Check `.forge/phases/` for research. If inline-only: *"Summarize findings, or re-scan?"*
38
38
 
39
39
  ### Step 1: Present Decisions with AskUserQuestion
40
40
 
41
- Summarize research structured around decisions not a data dump.
41
+ Structure around decisions, not data dump. **`AskUserQuestion` per decision**, batch up to 4.
42
42
 
43
- **Use `AskUserQuestion` for every decision point.** Batch up to 4 questions per call.
43
+ Per decision: brief intro (2-3 sentences), then `AskUserQuestion` with `question` (ending `?`), `header` (short label), `options` (2-4, rec first + "(Recommended)", each with trade-off `description`), `multiSelect` (false if exclusive).
44
44
 
45
- For each decision:
46
- 1. Write a brief prose intro (2-3 sentences max) setting context.
47
- 2. Call `AskUserQuestion` with:
48
- - `question`: The decision stated plainly, ending with `?`
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.
45
+ Batch related into 1-2 calls. Skip for open-ended -- discrete choices only.
52
46
 
53
- **Batch related decisions** into 1-2 calls so the user sees the full landscape.
54
-
55
- **Skip AskUserQuestion for open-ended exploration** (e.g., "Walk me through the ideal user flow"). The tool is for decisions with discrete choices.
56
-
57
- Example structure:
47
+ Example:
58
48
 
59
49
  ```
60
50
  Brief context paragraph from research.
@@ -68,21 +58,21 @@ Brief context paragraph from research.
68
58
  - "Migration + constraints" / "Let sweep handle it" / ...
69
59
  ```
70
60
 
71
- Surface the 3-5 decisions that matter. Not a 20-item matrix.
61
+ Surface 3-5 decisions that matter.
72
62
 
73
63
  ### Step 2: Facilitate, Don't Dictate
74
64
 
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.
65
+ Help user think deeper, don't push preference. `AskUserQuestion` for decisions; prose for open-ended.
76
66
 
77
67
  | Good | Bad |
78
68
  |------|-----|
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 |
69
+ | Name tension, offer AskUserQuestion options | Options as prose paragraphs |
70
+ | Reference earlier decisions to refine later | "What do you think?" without reaction material |
71
+ | `description` names costs | Edge cases before main path clear |
82
72
 
83
- ### Step 3: Probe for Hidden Constraints
73
+ ### Step 3: Probe Hidden Constraints
84
74
 
85
- Research often misses what the user knows but hasn't mentioned. Use `AskUserQuestion` for structured probes:
75
+ Uncover unstated knowledge. `AskUserQuestion` for structured probes:
86
76
 
87
77
  ```
88
78
  AskUserQuestion:
@@ -97,17 +87,11 @@ AskUserQuestion:
97
87
  description: "Do it right, scope is flexible"
98
88
  ```
99
89
 
100
- For open-ended probes, use prose:
101
- - *"Tried something similar before? What went wrong?"*
102
- - *"Anything you definitely want or don't want?"*
103
-
104
- One or two questions at a time.
90
+ Open-ended via prose: *"Tried before?" / "Must-haves or must-nots?"* 1-2 at a time.
105
91
 
106
92
  ### Step 4: Functionality Distillation
107
93
 
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.
109
-
110
- **Five question layers per feature/requirement:**
94
+ Per feature, force behavioral clarity. Surface assumptions + edge cases. **Five layers:**
111
95
 
112
96
  | Layer | Focus | When to use |
113
97
  |-------|-------|-------------|
@@ -117,35 +101,15 @@ Walk through each major feature and ask targeted questions that force clarity ab
117
101
  | 4. Interactions & Side Effects | Cascading updates, notifications, undo, related features | Features with shared state or dependencies |
118
102
  | 5. Evolution | v1 vs. final shape, scope cuts, likely future changes | Uncertain scope |
119
103
 
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?"*
124
-
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?"*
129
-
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?"*
134
-
135
- **Layer 4 — Side Effects:**
136
- - *"Does anything else need to update?"*
137
- - *"Should others be notified? How?"*
138
- - *"Can this be undone?"*
104
+ **L1:** *"See first?" / "Sequence?" / "Confirms success?"*
105
+ **L2:** *"Who can?" / "Limits?" / "Trigger type?"*
106
+ **L3:** *"Invalid/down/cancel?" / "Retry/fail/alert?" / "Concurrent?"*
107
+ **L4:** *"Else updates?" / "Notify?" / "Undo?"*
108
+ **L5:** *"v1 or final?" / "Essential vs nice-to-have?"*
139
109
 
140
- **Layer 5 Evolution:**
141
- - *"v1 that expands later, or final shape?"*
142
- - *"If you cut scope, what's essential vs. nice-to-have?"*
110
+ Not all 5 mechanically. 2-3 questions, deeper on uncertainty. `AskUserQuestion` for discrete; prose to explain.
143
111
 
144
- Don't mechanically walk all 5 layers for every requirement. Ask 2-3 questions at a time, go deeper where answers reveal uncertainty.
145
-
146
- Use `AskUserQuestion` for behavior decisions with discrete answers. Use prose when you need the user to describe or explain.
147
-
148
- Example — Layer 3 as AskUserQuestion:
112
+ Example -- L3:
149
113
  ```
150
114
  question: "When the enrichment API is down, what should the system do?"
151
115
  header: "Failure mode"
@@ -159,19 +123,14 @@ options:
159
123
  ```
160
124
 
161
125
  **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.
166
-
167
- ### Step 5: Converge on Decisions
126
+ - **Contradictions** -- "Simple" + "12 states." Surface.
127
+ - **Vague** -- "Just work." Push for example.
128
+ - **Assumed knowledge** -- "Like Stripe." Confirm specifics.
129
+ - **Energy shifts** -- Excitement/boredom = signal.
168
130
 
169
- Summarize what's been decided as a brief list, then confirm:
131
+ ### Step 5: Converge
170
132
 
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]*
133
+ Summarize decided items, then confirm:
175
134
 
176
135
  ```
177
136
  question: "Does this match? Ready to move to planning?"
@@ -185,7 +144,7 @@ options:
185
144
  description: "Topics we haven't covered yet."
186
145
  ```
187
146
 
188
- Decisions flow into `context.md` as **Locked Decisions** when `planning` runs.
147
+ Decisions flow into `context.md` as **Locked Decisions** at planning.
189
148
 
190
149
  ## Post-Planning Discussion
191
150
 
@@ -198,35 +157,29 @@ Read: .forge/context.md → locked decisions
198
157
  Read: .forge/constitution.md → active gates
199
158
  ```
200
159
 
201
- ### Step 2: Present the Plan in Plain Language
160
+ ### Step 2: Present Plan Simply
202
161
 
203
- Translate the plan into what it means — don't recite it back.
162
+ Translate into meaning, don't recite. Example: *"Phase 2: 3 plans, 8 tasks. Plan 01 builds [A] -- creates [X], wires [Y]. Risk: [risk]. Key assumption: [X]. If wrong, 02-03 need rework."*
204
163
 
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].*
207
- *Plan 02 builds [feature B] — [same pattern].*
208
- *Key assumption: [assumption]. If wrong, plans 02-03 need rework."*
164
+ ### Step 3: Surface Concerns
209
165
 
210
- ### Step 3: Surface What's Worth Discussing
166
+ `AskUserQuestion` for:
167
+ - **Either-way decisions** -- options + trade-offs
168
+ - **Scope** -- "Ship admin in v1?" / "Include" / "Defer"
169
+ - **Risks** -- "Add fallback?" / "Add" / "Accept"
170
+ - **Shaky assumptions** -- Prose (confirmation, not choice)
211
171
 
212
- Proactively surface concerns. Use `AskUserQuestion` for discrete choices:
172
+ ### Step 4: Drill Functionality
213
173
 
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)
174
+ Apply **Functionality Distillation** (Step 4 above), grounded in tasks:
218
175
 
219
- ### Step 4: Drill into Functionality
176
+ - *"Notification service send failure -- retry or log?"*
177
+ - *"Dashboard-to-API -- poll or push?"*
178
+ - *"Roles but no permissions. Walk through?"*
220
179
 
221
- Apply the **Functionality Distillation** layers from Pre-Planning Step 4, now grounded in concrete tasks:
180
+ Plan makes features concrete enough for questions impossible earlier.
222
181
 
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?"*
226
-
227
- Post-planning discussion earns its keep here — the plan makes features concrete enough for questions impossible during pre-planning.
228
-
229
- ### Step 5: Discuss and Revise
182
+ ### Step 5: Revise
230
183
 
231
184
  ```
232
185
  question: "How to proceed with this plan?"
@@ -242,16 +195,11 @@ options:
242
195
  description: "Discuss specific parts further."
243
196
  ```
244
197
 
245
- Drill deeper or move to summarizing based on their response.
246
-
247
198
  ### Step 6: Summarize Changes
248
199
 
249
- If the discussion produced changes:
200
+ If changes:
250
201
 
251
- *"Based on our discussion:*
252
- - *[Change 1]: [what and why]*
253
- - *[Change 2]: [what and why]*
254
- - *[Unchanged]: [stays the same]*
202
+ List changes and what stayed same.
255
203
 
256
204
  ```
257
205
  question: "Ready to update plans, or more to discuss?"
@@ -263,32 +211,32 @@ options:
263
211
  description: "Topics we haven't covered yet."
264
212
  ```
265
213
 
266
- If re-planning is needed, route to `planning` with the discussion summary. Planning updates plans, requirements, and context.md.
214
+ Re-plan? Route to `planning` with summary.
267
215
 
268
216
  ## Facilitation Principles
269
217
 
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.
218
+ 1. **Interesting question first.** "Real-time or on-refresh?" beats "Use React?"
219
+ 2. **Name trade-off.** "A is better" without "but 2x longer" = dishonest.
220
+ 3. **Reference user's words.** "Friday" factors into every rec.
221
+ 4. **Stop when clear.** Don't manufacture uncertainty.
222
+ 5. **Now vs later.** Flag deferrable vs blocking.
275
223
 
276
224
  ## Anti-Patterns
277
225
 
278
226
  | Pattern | Fix |
279
227
  |---------|-----|
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. |
228
+ | Analysis paralysis -- 30 min on 5-min decision | "Enough. Revisit post-impl." |
229
+ | False facilitation -- asking known answers | Say what research shows. |
230
+ | Premature convergence -- lock before thinking | Don't rush summary. |
231
+ | Scope creep -- "while we're at it..." | Stay focused. |
232
+ | Procrastination -- never approving | Surface it. |
285
233
 
286
234
  ## Phase Handoff
287
235
 
288
- After discussion converges:
236
+ After convergence:
289
237
 
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.
291
- 2. **Update state** Set `current.status` to `planning` (or `architecting` for Full tier) in `.forge/state/milestone-{id}.yml`
292
- 3. **Recommend context clear:**
238
+ 1. **Persist** -- Step 5/6 summary flows into `context.md` at planning. Post-planning revisions noted.
239
+ 2. **Update state** -- `current.status` = `planning` (`architecting` for Full) in milestone yml
240
+ 3. **Recommend clear:**
293
241
 
294
242
  *"Decisions captured. State written. `/clear` then `/forge` to continue with {planning/architecting}."*