@open-agent-toolkit/cli 0.0.61 → 0.0.65
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/assets/docs/cli-utilities/tool-packs.md +74 -4
- package/assets/docs/reference/file-locations.md +1 -1
- package/assets/docs/reference/oat-directory-structure.md +2 -0
- package/assets/docs/workflows/ideas/index.md +6 -0
- package/assets/docs/workflows/ideas/lifecycle.md +12 -0
- package/assets/docs/workflows/projects/lifecycle.md +21 -0
- package/assets/docs/workflows/skills/index.md +8 -2
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-brainstorm/SKILL.md +600 -0
- package/assets/skills/oat-brainstorm/references/destinations.md +167 -0
- package/assets/skills/oat-brainstorm/references/dogfood-results.md +731 -0
- package/assets/skills/oat-brainstorm/references/visual-companion.md +316 -0
- package/assets/skills/oat-brainstorm/scripts/frame-template.html +214 -0
- package/assets/skills/oat-brainstorm/scripts/helper.js +88 -0
- package/assets/skills/oat-brainstorm/scripts/server.cjs +354 -0
- package/assets/skills/oat-brainstorm/scripts/start-server.sh +176 -0
- package/assets/skills/oat-brainstorm/scripts/stop-server.sh +56 -0
- package/assets/skills/oat-brainstorm/templates/brainstorm-doc.md +79 -0
- package/assets/skills/oat-idea-ideate/SKILL.md +8 -4
- package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +2 -1
- package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +2 -1
- package/assets/skills/oat-project-complete/SKILL.md +49 -2
- package/assets/skills/oat-project-document/SKILL.md +2 -1
- package/assets/skills/oat-project-pr-final/SKILL.md +2 -1
- package/assets/skills/oat-project-spec/SKILL.md +2 -2
- package/assets/skills/oat-project-summary/SKILL.md +2 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +12 -0
- package/dist/commands/init/tools/brainstorm/index.d.ts +22 -0
- package/dist/commands/init/tools/brainstorm/index.d.ts.map +1 -0
- package/dist/commands/init/tools/brainstorm/index.js +145 -0
- package/dist/commands/init/tools/brainstorm/install-brainstorm.d.ts +19 -0
- package/dist/commands/init/tools/brainstorm/install-brainstorm.d.ts.map +1 -0
- package/dist/commands/init/tools/brainstorm/install-brainstorm.js +37 -0
- package/dist/commands/init/tools/index.d.ts +3 -1
- package/dist/commands/init/tools/index.d.ts.map +1 -1
- package/dist/commands/init/tools/index.js +76 -6
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +7 -0
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +11 -0
- package/dist/commands/tools/remove/index.d.ts.map +1 -1
- package/dist/commands/tools/remove/index.js +2 -1
- package/dist/commands/tools/shared/install-sync-context.d.ts.map +1 -1
- package/dist/commands/tools/shared/install-sync-context.js +3 -1
- package/dist/commands/tools/shared/scan-tools.d.ts.map +1 -1
- package/dist/commands/tools/shared/scan-tools.js +3 -1
- package/dist/commands/tools/shared/types.d.ts +1 -1
- package/dist/commands/tools/shared/types.d.ts.map +1 -1
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +2 -1
- package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
- package/dist/commands/tools/update/update-tools.js +6 -1
- package/dist/config/oat-config.d.ts +1 -1
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +1 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,731 @@
|
|
|
1
|
+
# Dogfood Results — `oat-brainstorm`
|
|
2
|
+
|
|
3
|
+
> **Walkthrough plans only — not live runs.** This file documents
|
|
4
|
+
> walkthrough plans for the 10 dogfood scenarios from `design.md` Testing
|
|
5
|
+
> Strategy. None of the scenarios were exercised against live LLM
|
|
6
|
+
> conversations, real `git status` / `git commit`, or live visual-companion
|
|
7
|
+
> sessions while writing this document. The fold-back commit safety contract
|
|
8
|
+
> in particular has **not** been exercised against real working-tree state.
|
|
9
|
+
> The follow-up live-dogfood task is tracked as a backlog item — see
|
|
10
|
+
> `.oat/repo/reference/backlog/items/live-dogfood-oat-brainstorm.md`
|
|
11
|
+
> ("Live dogfood for `oat-brainstorm` — fold-back commit safety + 9
|
|
12
|
+
> destination families"). Treat the contents below as a contract spec for
|
|
13
|
+
> what live dogfood will assert, not as a record of completed runs.
|
|
14
|
+
|
|
15
|
+
This document records walkthrough plans for the 10 dogfood scenarios from
|
|
16
|
+
`design.md` Testing Strategy. Each scenario captures: setup (preconditions),
|
|
17
|
+
the brainstorming flow that would be taken, the artifact(s) produced, the
|
|
18
|
+
verifiable skill content for that path, and any issues / follow-ups.
|
|
19
|
+
|
|
20
|
+
**Note on dogfood interpretation.** Dogfood here means _exercising the skill
|
|
21
|
+
as a documented flow_, not running a live brainstorm conversation through an
|
|
22
|
+
LLM in interactive context. The skill ships as markdown content that an
|
|
23
|
+
invoking agent reads and executes; verification at this stage is whether the
|
|
24
|
+
flow is unambiguous and self-contained for each terminal state. Live
|
|
25
|
+
brainstorm conversations will surface tuning opportunities (trigger-phrase
|
|
26
|
+
sensitivity, conversation cadence) that this walkthrough cannot anticipate;
|
|
27
|
+
those are tracked in the live-dogfood backlog item, not gating issues for
|
|
28
|
+
this project.
|
|
29
|
+
|
|
30
|
+
**Repo state used for the walkthroughs.** This repo
|
|
31
|
+
(`open-agent-toolkit`) has the following packs installed:
|
|
32
|
+
|
|
33
|
+
- `core` (`tools.core: true`)
|
|
34
|
+
- `ideas` (`tools.ideas: true`)
|
|
35
|
+
- `workflows` (`tools.workflows: true`)
|
|
36
|
+
- `utility` (`tools.utility: true`)
|
|
37
|
+
- `project-management` (`tools.project-management: true`)
|
|
38
|
+
- `research` (`tools.research: true`)
|
|
39
|
+
- `docs` (`tools.docs: true`)
|
|
40
|
+
- `brainstorm` (newly added in this project)
|
|
41
|
+
|
|
42
|
+
So all pack-gated terminal states are reachable. Active-project state varies
|
|
43
|
+
per scenario (some assume an active OAT project, some assume none).
|
|
44
|
+
|
|
45
|
+
**Skill files referenced throughout.**
|
|
46
|
+
|
|
47
|
+
- `.agents/skills/oat-brainstorm/SKILL.md` — the dispatcher
|
|
48
|
+
- `.agents/skills/oat-brainstorm/references/destinations.md` — playbook
|
|
49
|
+
- `.agents/skills/oat-brainstorm/templates/brainstorm-doc.md` — doc-to-path
|
|
50
|
+
- Downstream: `.agents/skills/oat-idea-new/SKILL.md`,
|
|
51
|
+
`.agents/skills/oat-idea-ideate/SKILL.md`,
|
|
52
|
+
`.agents/skills/oat-idea-summarize/SKILL.md`,
|
|
53
|
+
`.agents/skills/oat-pjm-add-backlog-item/SKILL.md`,
|
|
54
|
+
`.agents/skills/oat-project-new/SKILL.md`
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Scenario 1: Inline only
|
|
59
|
+
|
|
60
|
+
**Setup**
|
|
61
|
+
|
|
62
|
+
- Any directory; no active project required.
|
|
63
|
+
- User opens a chat with an exploratory message such as:
|
|
64
|
+
> "I've been thinking about how our PR review tooling feels heavy. Just
|
|
65
|
+
> want to talk through whether we should change anything — no need to
|
|
66
|
+
> write this down."
|
|
67
|
+
|
|
68
|
+
**Flow**
|
|
69
|
+
|
|
70
|
+
1. Always-on description on `oat-brainstorm` fires on "I've been thinking
|
|
71
|
+
about" + "talk through" + "no need to write this down" — exploratory
|
|
72
|
+
phrasing with explicit no-artifact signal.
|
|
73
|
+
2. Skill prints OAT MODE: Brainstorm banner, asserts mode.
|
|
74
|
+
3. Visual companion offer (own message). User declines (text-only topic).
|
|
75
|
+
4. Pack and active-project detection runs once. No active project. All packs
|
|
76
|
+
installed.
|
|
77
|
+
5. Free brainstorming. Skill explores: what specifically feels heavy? Which
|
|
78
|
+
step? What would lighter look like? Skill proposes 2-3 distinct approaches
|
|
79
|
+
(e.g., reduce required reviewers, async-first review, rotation policy).
|
|
80
|
+
6. Trigger phrase from Step 1 ("no need to write this down") matched against
|
|
81
|
+
destinations playbook → matches "Inline only" stanza trigger phrases.
|
|
82
|
+
Skill surfaces immediately: "Sounds like inline-only — close out with a
|
|
83
|
+
summary, no artifact?"
|
|
84
|
+
7. Satisfaction check: user confirms wrap up.
|
|
85
|
+
8. Synthesis: skill builds the in-memory `SynthesizedPayload` for closure.
|
|
86
|
+
Inline-only requires no template fields (just the summary).
|
|
87
|
+
9. Handoff: `Inline only` branch in SKILL.md Process step 9 — emits a
|
|
88
|
+
one-paragraph closing summary capturing the chosen direction (or "no
|
|
89
|
+
direction selected"), key decisions, open questions. Ends mode assertion.
|
|
90
|
+
|
|
91
|
+
**Artifact produced**
|
|
92
|
+
|
|
93
|
+
- None. Closing summary is in-conversation text only.
|
|
94
|
+
|
|
95
|
+
**Verifiable from skill content**
|
|
96
|
+
|
|
97
|
+
- `destinations.md` "Inline only" stanza: `Pack required: always available`,
|
|
98
|
+
trigger phrases include "no need to write this down", confirmation pattern
|
|
99
|
+
`none`, `Handoff target: no downstream skill`.
|
|
100
|
+
- SKILL.md Process step 9 "Inline only" branch: emits closing summary, ends
|
|
101
|
+
mode assertion.
|
|
102
|
+
|
|
103
|
+
**Issues / follow-ups**
|
|
104
|
+
|
|
105
|
+
- None observed in skill content. Live testing may reveal tuning needs in
|
|
106
|
+
the trigger-phrase boundary against routine "talk it through" questions
|
|
107
|
+
that aren't actually exploratory.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Scenario 2: Doc-to-path (in-repo)
|
|
112
|
+
|
|
113
|
+
**Setup**
|
|
114
|
+
|
|
115
|
+
- Inside an OAT-initialized repo (e.g., this repo).
|
|
116
|
+
- User: > "I want to map out where our config layering gets confusing.
|
|
117
|
+
> Write this to `docs/scratchpad/config-layering.md` when we're done."
|
|
118
|
+
|
|
119
|
+
**Flow**
|
|
120
|
+
|
|
121
|
+
1. Trigger fires on "I want to map out" + explicit user-supplied path.
|
|
122
|
+
2. Mode banner; mode assertion.
|
|
123
|
+
3. Visual-companion offer. User likely declines (textual mapping).
|
|
124
|
+
4. Pack/active-project detection.
|
|
125
|
+
5. Free brainstorming about config layers (`shared/`, `local`, user, env
|
|
126
|
+
overrides). Skill proposes 2-3 ways to structure the document
|
|
127
|
+
(layer-by-layer, by use-case, by symptom).
|
|
128
|
+
6. Destination identification: explicit user-supplied path → direct match on
|
|
129
|
+
"Doc-to-path" stanza. Skill notes the destination and continues exploring.
|
|
130
|
+
7. Satisfaction check (when convergence happens or when user signals).
|
|
131
|
+
8. Synthesis: build payload with `title`, `summary`, `approachesConsidered`,
|
|
132
|
+
`chosenDirection`, `transcriptSessionNote` (required), plus `motivation`,
|
|
133
|
+
`vision`, `openQuestions`, `nextSteps` (optional, populated from
|
|
134
|
+
conversation).
|
|
135
|
+
9. Doc-to-path handoff (Process step 9):
|
|
136
|
+
- Path validation: `docs/scratchpad/config-layering.md` is in-repo, parent
|
|
137
|
+
`docs/scratchpad/` exists in this repo. No off-repo confirmation needed.
|
|
138
|
+
- Render `templates/brainstorm-doc.md` with payload values.
|
|
139
|
+
- Write the file. Report absolute path to the user.
|
|
140
|
+
|
|
141
|
+
**Artifact produced**
|
|
142
|
+
|
|
143
|
+
- `docs/scratchpad/config-layering.md` rendered from
|
|
144
|
+
`.agents/skills/oat-brainstorm/templates/brainstorm-doc.md` with title,
|
|
145
|
+
overview, approaches considered, chosen direction, open questions, next
|
|
146
|
+
steps, and a transcript session note appendix.
|
|
147
|
+
|
|
148
|
+
**Verifiable from skill content**
|
|
149
|
+
|
|
150
|
+
- `destinations.md` "Doc-to-path" stanza: confirmation `minimal` (path only);
|
|
151
|
+
in-repo and off-repo path handling described.
|
|
152
|
+
- SKILL.md Process step 9 doc-to-path branch: parent existence check, file
|
|
153
|
+
collision check, unwritable error handling per design Error Handling.
|
|
154
|
+
- `templates/brainstorm-doc.md`: section structure matches the
|
|
155
|
+
`SynthesizedPayload` interface from design Data Models.
|
|
156
|
+
|
|
157
|
+
**Issues / follow-ups**
|
|
158
|
+
|
|
159
|
+
- None.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Scenario 3: Doc-to-path (off-repo)
|
|
164
|
+
|
|
165
|
+
**Setup**
|
|
166
|
+
|
|
167
|
+
- Inside this repo.
|
|
168
|
+
- User: > "Write up where I landed on the personal-vault note structure into
|
|
169
|
+
> `~/vault/notes/vault-structure-2026-05.md`."
|
|
170
|
+
|
|
171
|
+
**Flow**
|
|
172
|
+
|
|
173
|
+
Same as Scenario 2 through Step 8.
|
|
174
|
+
|
|
175
|
+
9. Doc-to-path handoff:
|
|
176
|
+
- Path expansion: `~` resolves to `$HOME`.
|
|
177
|
+
- Path is outside the current repo. Skill MUST require explicit
|
|
178
|
+
confirmation per design Error Handling: "About to write outside the
|
|
179
|
+
current repo to `<absolute-path>` — confirm?"
|
|
180
|
+
- User confirms.
|
|
181
|
+
- Parent directory `~/vault/notes/` may exist or not; if missing, offer
|
|
182
|
+
to create with the off-repo confirmation.
|
|
183
|
+
- Render and write.
|
|
184
|
+
|
|
185
|
+
**Artifact produced**
|
|
186
|
+
|
|
187
|
+
- `~/vault/notes/vault-structure-2026-05.md` rendered from
|
|
188
|
+
`templates/brainstorm-doc.md`.
|
|
189
|
+
|
|
190
|
+
**Verifiable from skill content**
|
|
191
|
+
|
|
192
|
+
- SKILL.md Process step 9 doc-to-path branch explicitly handles the
|
|
193
|
+
out-of-repo case with confirmation.
|
|
194
|
+
- `destinations.md` "Doc-to-path" stanza covers explicit user-supplied path
|
|
195
|
+
trigger including paths outside the repo.
|
|
196
|
+
|
|
197
|
+
**Issues / follow-ups**
|
|
198
|
+
|
|
199
|
+
- None observed in skill content. The off-repo confirmation wording is
|
|
200
|
+
written by the agent at runtime; consistent phrasing across runs is a
|
|
201
|
+
potential live-tuning area.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Scenario 4: Capture as new idea
|
|
206
|
+
|
|
207
|
+
**Setup**
|
|
208
|
+
|
|
209
|
+
- This repo (has `tools.ideas: true`).
|
|
210
|
+
- User: > "I've been thinking about a way to make `oat-doctor` self-heal
|
|
211
|
+
> common config drift. Capture this as an idea so I don't forget."
|
|
212
|
+
|
|
213
|
+
**Flow**
|
|
214
|
+
|
|
215
|
+
1. Trigger fires on "I've been thinking about" + "capture this as an idea".
|
|
216
|
+
2. Mode banner; mode assertion.
|
|
217
|
+
3. Visual-companion offer (declined for prose-heavy idea).
|
|
218
|
+
4. Pack detection: `tools.ideas: true`. Idea-pack destinations enabled.
|
|
219
|
+
5. Free brainstorming about what self-healing would mean, which drift cases
|
|
220
|
+
are common, what's safe vs unsafe to auto-fix.
|
|
221
|
+
6. "Capture this as an idea" → matches `destinations.md` "Capture as new
|
|
222
|
+
idea" stanza. Skill surfaces destination.
|
|
223
|
+
7. Satisfaction check: user confirms wrap up.
|
|
224
|
+
8. Synthesis: build payload with `title` (slug-friendly), `summary`,
|
|
225
|
+
`motivation` (Why Is It Interesting?), `vision` (What Would It Look
|
|
226
|
+
Like?), `transcriptSessionNote`, plus optionals.
|
|
227
|
+
9. Handoff (Process step 9 capture-as-new-idea branch):
|
|
228
|
+
- Read `.agents/skills/oat-idea-new/SKILL.md`.
|
|
229
|
+
- Run its Steps 3-7 inline: initialize `.oat/ideas/` dir, scaffold
|
|
230
|
+
`<slug>/discovery.md`, update backlog, check scratchpad, set active-idea
|
|
231
|
+
pointer.
|
|
232
|
+
- Seed scaffolded `discovery.md` first session with payload contents
|
|
233
|
+
(What's the Idea?, Why Is It Interesting?, What Would It Look Like?,
|
|
234
|
+
first session note in Notes & Discussion).
|
|
235
|
+
- Offer to chain into `oat-idea-ideate` Step 4 or stop.
|
|
236
|
+
|
|
237
|
+
**Artifact produced**
|
|
238
|
+
|
|
239
|
+
- `.oat/ideas/<slug>/discovery.md` — populated with payload, idea-pack
|
|
240
|
+
scaffolding present.
|
|
241
|
+
- Backlog index updated to reference the new idea.
|
|
242
|
+
- Active-idea pointer set.
|
|
243
|
+
|
|
244
|
+
**Verifiable from skill content**
|
|
245
|
+
|
|
246
|
+
- `destinations.md` "Capture as new idea" stanza: pack required `ideas`,
|
|
247
|
+
confirmation `minimal` (slug only), handoff target `oat-idea-new` Steps 3-7
|
|
248
|
+
with seeding instructions.
|
|
249
|
+
- SKILL.md Process step 9 capture-as-new-idea branch references the same
|
|
250
|
+
steps and seeding behavior.
|
|
251
|
+
- `.agents/skills/oat-idea-new/SKILL.md` exists at the canonical path.
|
|
252
|
+
|
|
253
|
+
**Issues / follow-ups**
|
|
254
|
+
|
|
255
|
+
- None.
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Scenario 5: Extend existing idea
|
|
260
|
+
|
|
261
|
+
**Setup**
|
|
262
|
+
|
|
263
|
+
- This repo with at least one existing idea under `.oat/ideas/<slug>/`.
|
|
264
|
+
- User: > "Add another session to the `oat-doctor-self-heal` idea — I had
|
|
265
|
+
> some new thoughts on which drift cases to prioritize."
|
|
266
|
+
|
|
267
|
+
**Flow**
|
|
268
|
+
|
|
269
|
+
1. Trigger fires on "add another session" + slug reference.
|
|
270
|
+
2. Mode banner; mode assertion.
|
|
271
|
+
3. Visual-companion offer; declined.
|
|
272
|
+
4. Pack detection: `tools.ideas: true`.
|
|
273
|
+
5. Free brainstorming about prioritization criteria.
|
|
274
|
+
6. "Add to the `<idea-slug>` idea" → matches `destinations.md` "Extend
|
|
275
|
+
existing idea" stanza. Skill confirms which idea: minimal confirmation.
|
|
276
|
+
7. Satisfaction check.
|
|
277
|
+
8. Synthesis: build payload — `transcriptSessionNote` (the new session
|
|
278
|
+
body), optionally `chosenDirection`, `openQuestions`, `nextSteps`.
|
|
279
|
+
9. Handoff (Process step 9 extend-existing-idea branch):
|
|
280
|
+
- Read `.agents/skills/oat-idea-ideate/SKILL.md`.
|
|
281
|
+
- Run its Step 4 (Start New Session) with the resolved idea path.
|
|
282
|
+
- Append `transcriptSessionNote` from the brainstorming payload as the
|
|
283
|
+
new session's body.
|
|
284
|
+
|
|
285
|
+
**Artifact produced**
|
|
286
|
+
|
|
287
|
+
- `.oat/ideas/oat-doctor-self-heal/discovery.md` — new session appended
|
|
288
|
+
under "Notes & Discussion".
|
|
289
|
+
|
|
290
|
+
**Verifiable from skill content**
|
|
291
|
+
|
|
292
|
+
- `destinations.md` "Extend existing idea" stanza: `oat-idea-ideate` Step 4
|
|
293
|
+
handoff, append-new-session semantics.
|
|
294
|
+
- `.agents/skills/oat-idea-ideate/SKILL.md` exists at the canonical path.
|
|
295
|
+
|
|
296
|
+
**Issues / follow-ups**
|
|
297
|
+
|
|
298
|
+
- None observed. Live runs may surface ambiguity when a slug is
|
|
299
|
+
paraphrased — the playbook says skill "asks before committing when
|
|
300
|
+
ambiguous", which addresses this.
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Scenario 6: Summarize idea directly
|
|
305
|
+
|
|
306
|
+
**Setup**
|
|
307
|
+
|
|
308
|
+
- This repo.
|
|
309
|
+
- User: > "I've been turning over an idea about a `oat-stale-pr` skill that
|
|
310
|
+
> nudges abandoned PRs. Summarize this idea so I have a clean writeup."
|
|
311
|
+
|
|
312
|
+
**Flow**
|
|
313
|
+
|
|
314
|
+
1. Trigger fires on "I've been turning over" + "summarize this idea".
|
|
315
|
+
2. Mode banner; mode assertion.
|
|
316
|
+
3. Visual-companion offer; declined.
|
|
317
|
+
4. Pack detection: `tools.ideas: true`.
|
|
318
|
+
5. Free brainstorming about what "stale" means, what nudge channel, how to
|
|
319
|
+
avoid noise.
|
|
320
|
+
6. "Summarize this idea" → matches `destinations.md` "Summarize idea
|
|
321
|
+
directly" stanza.
|
|
322
|
+
7. Satisfaction check.
|
|
323
|
+
8. Synthesis: build payload (same field set as capture-as-new-idea — the
|
|
324
|
+
capture path runs first silently).
|
|
325
|
+
9. Handoff (Process step 9 summarize-idea-directly branch):
|
|
326
|
+
- Capture-as-new-idea path runs silently (read
|
|
327
|
+
`.agents/skills/oat-idea-new/SKILL.md`, run Steps 3-7, seed discovery).
|
|
328
|
+
- Then read `.agents/skills/oat-idea-summarize/SKILL.md` and run it
|
|
329
|
+
end-to-end. The `oat-idea-summarize` skill's own accept/refine review
|
|
330
|
+
serves as the user gate.
|
|
331
|
+
|
|
332
|
+
**Artifact produced**
|
|
333
|
+
|
|
334
|
+
- `.oat/ideas/<slug>/discovery.md` — populated.
|
|
335
|
+
- `.oat/ideas/<slug>/summary.md` — produced by `oat-idea-summarize`.
|
|
336
|
+
|
|
337
|
+
**Verifiable from skill content**
|
|
338
|
+
|
|
339
|
+
- `destinations.md` "Summarize idea directly" stanza: confirmation `none` at
|
|
340
|
+
this layer; downstream skill owns the review gate.
|
|
341
|
+
- SKILL.md Process step 9 summarize-idea-directly branch references both
|
|
342
|
+
downstream skill paths.
|
|
343
|
+
- Both `oat-idea-new` and `oat-idea-summarize` SKILL.md files exist at
|
|
344
|
+
canonical paths.
|
|
345
|
+
|
|
346
|
+
**Issues / follow-ups**
|
|
347
|
+
|
|
348
|
+
- None.
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Scenario 7: Scoped backlog item
|
|
353
|
+
|
|
354
|
+
**Setup**
|
|
355
|
+
|
|
356
|
+
- This repo (has `tools.project-management: true`).
|
|
357
|
+
- User: > "We keep hitting this annoying drift in provider-view sync after
|
|
358
|
+
> rebases. Track this as a backlog item — I think it's a real bug."
|
|
359
|
+
|
|
360
|
+
**Flow**
|
|
361
|
+
|
|
362
|
+
1. Trigger fires on "we keep hitting" + "track this as a backlog item".
|
|
363
|
+
2. Mode banner; mode assertion.
|
|
364
|
+
3. Visual-companion offer; declined.
|
|
365
|
+
4. Pack detection: `tools.project-management: true`. Backlog destination
|
|
366
|
+
enabled.
|
|
367
|
+
5. Free brainstorming about: which rebase scenarios trigger it, what the
|
|
368
|
+
symptom is, what an acceptable fix would look like, scope estimate.
|
|
369
|
+
6. "Track this as a backlog item" → matches `destinations.md` "Scoped
|
|
370
|
+
backlog item" stanza.
|
|
371
|
+
7. Satisfaction check.
|
|
372
|
+
8. Synthesis (with **full** confirmation pattern per the stanza):
|
|
373
|
+
|
|
374
|
+
```
|
|
375
|
+
I have what I need to track this as a backlog item. Here is the proposed payload:
|
|
376
|
+
|
|
377
|
+
Title: Provider-view sync drift after rebase
|
|
378
|
+
Description:
|
|
379
|
+
After a worktree rebases against main, provider views can desync from
|
|
380
|
+
the canonical asset map. The next sync corrects state but the gap is
|
|
381
|
+
confusing during reviews.
|
|
382
|
+
Acceptance Criteria:
|
|
383
|
+
- Reproducible repro for the desync state under post-rebase conditions
|
|
384
|
+
- Drift surfaced by a check command (likely `oat sync --check` or
|
|
385
|
+
`oat-doctor`) so users notice before the next sync
|
|
386
|
+
- Fix preserves manifest hash semantics
|
|
387
|
+
Scope: m
|
|
388
|
+
Priority: p2
|
|
389
|
+
|
|
390
|
+
Confirm to write this to a new bl-XXXX file, or tell me what to change.
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
User confirms or revises field-by-field.
|
|
394
|
+
|
|
395
|
+
9. Handoff (Process step 9 scoped-backlog-item branch):
|
|
396
|
+
- Read `.agents/skills/oat-pjm-add-backlog-item/SKILL.md`.
|
|
397
|
+
- Run its process from Step 1 with the confirmed payload pre-filling the
|
|
398
|
+
early prompts (title, description, AC, scope, priority).
|
|
399
|
+
- Downstream skill owns ID generation, file writing, and backlog-index
|
|
400
|
+
regeneration.
|
|
401
|
+
|
|
402
|
+
**Artifact produced**
|
|
403
|
+
|
|
404
|
+
- `.oat/repo/reference/backlog/items/<slug>.md` (e.g.,
|
|
405
|
+
`bl-XXXX-provider-view-sync-drift.md`) with full payload.
|
|
406
|
+
- Backlog index regenerated.
|
|
407
|
+
|
|
408
|
+
**Verifiable from skill content**
|
|
409
|
+
|
|
410
|
+
- `destinations.md` "Scoped backlog item" stanza: confirmation pattern
|
|
411
|
+
`full` with the worked example wording above (matches design's canonical
|
|
412
|
+
example).
|
|
413
|
+
- SKILL.md Process step 9 scoped-backlog-item branch references
|
|
414
|
+
`oat-pjm-add-backlog-item` and pre-fill semantics.
|
|
415
|
+
- `.agents/skills/oat-pjm-add-backlog-item/SKILL.md` exists at the canonical
|
|
416
|
+
path.
|
|
417
|
+
|
|
418
|
+
**Issues / follow-ups**
|
|
419
|
+
|
|
420
|
+
- None observed in skill content. The full-confirmation example wording
|
|
421
|
+
matches the design's canonical wording exactly, including the field
|
|
422
|
+
layout.
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Scenario 8: Promote to new OAT project
|
|
427
|
+
|
|
428
|
+
**Setup**
|
|
429
|
+
|
|
430
|
+
- This repo (has `tools.workflows: true`).
|
|
431
|
+
- No active project.
|
|
432
|
+
- User: > "I keep coming back to this idea of an `oat-archive-explore` skill
|
|
433
|
+
> for searching archived projects. Let's promote this to a project."
|
|
434
|
+
|
|
435
|
+
**Flow**
|
|
436
|
+
|
|
437
|
+
1. Trigger fires on "let's promote this to a project".
|
|
438
|
+
2. Mode banner; mode assertion.
|
|
439
|
+
3. Visual-companion offer; declined.
|
|
440
|
+
4. Pack detection: `tools.workflows: true`. Project promotion enabled. No
|
|
441
|
+
active project, so no 3-way router.
|
|
442
|
+
5. Free brainstorming about: search shape (full-text vs metadata), output
|
|
443
|
+
format (terminal table vs JSON), scope reduction options.
|
|
444
|
+
6. "Promote this to a project" → matches `destinations.md` "Promote to new
|
|
445
|
+
OAT project" stanza.
|
|
446
|
+
7. Satisfaction check.
|
|
447
|
+
8. Synthesis: build payload. Decide mode (`quick` vs `spec-driven`) based on
|
|
448
|
+
`chosen_direction` and scope signals — likely `quick` since search has
|
|
449
|
+
bounded scope and clear requirements emerged from the conversation.
|
|
450
|
+
Confirm slug + mode (minimal confirmation).
|
|
451
|
+
9. Handoff (Process step 9 promote-to-new-OAT-project branch):
|
|
452
|
+
- Run `oat project new <slug> --mode quick` to scaffold.
|
|
453
|
+
- Write field-filled `discovery.md` only (Initial Request, Solution Space
|
|
454
|
+
with approaches, Chosen Direction, Key Decisions, Open Questions). NEVER
|
|
455
|
+
write `design.md` (per design — half-populated design constrains the
|
|
456
|
+
design phase).
|
|
457
|
+
- Mark `oat_status: complete` in discovery; `oat_ready_for:
|
|
458
|
+
oat-project-quick-start`.
|
|
459
|
+
- Update project `state.md` (phase=discovery, status=complete).
|
|
460
|
+
- Print pointer to `oat-project-quick-start` (for quick mode) or
|
|
461
|
+
`oat-project-design` (for spec-driven mode).
|
|
462
|
+
- **Stop.** Do NOT inline-execute the next phase.
|
|
463
|
+
|
|
464
|
+
**Artifact produced**
|
|
465
|
+
|
|
466
|
+
- `.oat/projects/shared/<slug>/discovery.md` — fully populated.
|
|
467
|
+
- `.oat/projects/shared/<slug>/state.md` — phase=discovery, status=complete.
|
|
468
|
+
- No `design.md` written.
|
|
469
|
+
|
|
470
|
+
**Verifiable from skill content**
|
|
471
|
+
|
|
472
|
+
- `destinations.md` "Promote to new OAT project" stanza: confirmation
|
|
473
|
+
`minimal` (slug + mode), handoff stops after discovery is seeded.
|
|
474
|
+
- SKILL.md Process step 9 promote-to-new-OAT-project branch: discovery-only
|
|
475
|
+
rule explicitly stated; explicit "do NOT inline-execute the next phase".
|
|
476
|
+
|
|
477
|
+
**Issues / follow-ups**
|
|
478
|
+
|
|
479
|
+
- The mode-decision heuristic (quick vs spec-driven) is articulated as
|
|
480
|
+
"based on chosen_direction and scope signals" but the exact thresholds are
|
|
481
|
+
inherently judgment-based. Live runs will calibrate this.
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
## Scenario 9: Active project — fold-back
|
|
486
|
+
|
|
487
|
+
**Setup**
|
|
488
|
+
|
|
489
|
+
- This repo with an active OAT project (e.g., this very project,
|
|
490
|
+
`independent-brainstorming`, while it's still in progress on a feature
|
|
491
|
+
branch).
|
|
492
|
+
- User: > "About this brainstorm-skill project — I've been thinking about
|
|
493
|
+
> whether the destinations playbook should also support a 'send to
|
|
494
|
+
> bookmark' state. Want to fold this in."
|
|
495
|
+
|
|
496
|
+
**Flow**
|
|
497
|
+
|
|
498
|
+
1. Trigger fires on "I've been thinking about" + "fold this in" + active
|
|
499
|
+
project context.
|
|
500
|
+
2. Mode banner; mode assertion.
|
|
501
|
+
3. Visual-companion offer; declined.
|
|
502
|
+
4. Pack detection: `tools.workflows: true`. Active project detected via
|
|
503
|
+
`oat config get activeProject`. Reads `state.md` for `oat_workflow_mode`,
|
|
504
|
+
`oat_phase`, `oat_pr_status`.
|
|
505
|
+
5. Free brainstorming about: what "send to bookmark" means, where it
|
|
506
|
+
conflicts with existing destinations, scope of change.
|
|
507
|
+
6. "Fold this in" + active project → 3-way router triggered.
|
|
508
|
+
- Router asks: "Is this brainstorm related to the active project?"
|
|
509
|
+
- User: "Related — fold-back."
|
|
510
|
+
- 3-way router → fold-back rule (uniform across spec-driven and quick
|
|
511
|
+
modes).
|
|
512
|
+
7. Satisfaction check.
|
|
513
|
+
8. Synthesis: build payload — `chosenDirection`, key decisions,
|
|
514
|
+
`transcriptSessionNote`.
|
|
515
|
+
9. Fold-back handoff (Process step 9 active-project fold-back branch):
|
|
516
|
+
1. **Pick upstream artifact.** `design.md` exists for this project →
|
|
517
|
+
use it. (For a quick-mode project without `design.md`, use
|
|
518
|
+
`discovery.md`.)
|
|
519
|
+
2. **Preflight `git status` check.**
|
|
520
|
+
```bash
|
|
521
|
+
git status --porcelain -- .oat/projects/shared/independent-brainstorming/design.md
|
|
522
|
+
```
|
|
523
|
+
3. **Clean → append + scoped commit.** Append `## Brainstorming Update:
|
|
524
|
+
2026-05-01 — bookmark destination` section with chosen-direction,
|
|
525
|
+
key-decisions, transcript appendix. Then:
|
|
526
|
+
`bash
|
|
527
|
+
git add -- .oat/projects/shared/independent-brainstorming/design.md
|
|
528
|
+
git commit -m "chore(oat): integrate brainstorm into design.md for independent-brainstorming"
|
|
529
|
+
`
|
|
530
|
+
(Explicit `--` form. NEVER `-A`, NEVER globs.)
|
|
531
|
+
4. **Dirty → user picker** (3 options): commit current first, mix with
|
|
532
|
+
fold-back, or abort and switch to brainstorming reference file.
|
|
533
|
+
5. **Handoff prompt printed only after scoped commit succeeds.** This
|
|
534
|
+
project is `quick` mode + no PR open → prompt addresses
|
|
535
|
+
`oat-project-quick-start`:
|
|
536
|
+
|
|
537
|
+
```
|
|
538
|
+
Run `oat-project-quick-start` with this context:
|
|
539
|
+
|
|
540
|
+
"A brainstorming session surfaced changes that needed to be folded
|
|
541
|
+
into design.md. I've committed the update (commit <hash>:
|
|
542
|
+
chore(oat): integrate brainstorm into design.md for
|
|
543
|
+
independent-brainstorming). Integrate the new content into the
|
|
544
|
+
existing plan as new tasks (or a new phase if substantial). Don't
|
|
545
|
+
refresh the existing plan — preserve review tables and any
|
|
546
|
+
in-progress task state."
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
6. **If `git commit` fails** (pre-commit hooks reject, signing fails, …):
|
|
550
|
+
surface the error, do NOT print handoff prompt.
|
|
551
|
+
|
|
552
|
+
**Artifact produced**
|
|
553
|
+
|
|
554
|
+
- Append to `<active-project>/design.md` (or `discovery.md` if no design).
|
|
555
|
+
- A scoped commit with hash referenced by the handoff prompt.
|
|
556
|
+
|
|
557
|
+
**Verifiable from skill content**
|
|
558
|
+
|
|
559
|
+
- SKILL.md Process step 9 active-project fold-back branch matches the
|
|
560
|
+
design's "Fold-back commit safety contract" word-for-word: preflight,
|
|
561
|
+
scoped staging discipline, three-option dirty-tree picker, conditional
|
|
562
|
+
handoff print, mode-and-PR-status routing table.
|
|
563
|
+
- `destinations.md` "Active project: fold-back" stanza references the
|
|
564
|
+
contract.
|
|
565
|
+
|
|
566
|
+
**Issues / follow-ups**
|
|
567
|
+
|
|
568
|
+
- The handoff-prompt commit hash interpolation is at runtime (skill text
|
|
569
|
+
uses `<hash>` placeholder). The hash MUST be the real hash from the
|
|
570
|
+
scoped commit; this is verifiable in live runs by inspecting the prompt
|
|
571
|
+
vs `git log`.
|
|
572
|
+
- This is the most safety-critical destination. The contract is exercised
|
|
573
|
+
end-to-end here as a walkthrough; live testing will be the first time
|
|
574
|
+
the actual `git status --porcelain --` and `git commit` commands run in
|
|
575
|
+
context.
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
## Scenario 10: Active project — brainstorming reference file
|
|
580
|
+
|
|
581
|
+
**Setup**
|
|
582
|
+
|
|
583
|
+
- This repo with an active OAT project (any project).
|
|
584
|
+
- User: > "Quick brainstorm related to the active project but not really
|
|
585
|
+
> design-grade — just a side thought about UX wording. Capture as a
|
|
586
|
+
> reference, not in the design doc."
|
|
587
|
+
|
|
588
|
+
**Flow**
|
|
589
|
+
|
|
590
|
+
1. Trigger fires on exploratory phrasing + active project context +
|
|
591
|
+
"capture as a reference, not in the design doc".
|
|
592
|
+
2. Mode banner; mode assertion.
|
|
593
|
+
3. Visual-companion offer; declined.
|
|
594
|
+
4. Pack detection: `tools.workflows: true`. Active project detected.
|
|
595
|
+
5. Free brainstorming about UX wording options.
|
|
596
|
+
6. Active project + "related but supplementary" → 3-way router:
|
|
597
|
+
- "Is this brainstorm related to the active project?"
|
|
598
|
+
- User: "Related but supplementary — reference file."
|
|
599
|
+
- Router routes to brainstorming reference file destination.
|
|
600
|
+
7. Satisfaction check.
|
|
601
|
+
8. Synthesis: build payload — `title` (topic slug), `summary`,
|
|
602
|
+
`transcriptSessionNote`, optional `chosenDirection`, `openQuestions`,
|
|
603
|
+
`nextSteps`.
|
|
604
|
+
9. Handoff (Process step 9 active-project reference-file branch):
|
|
605
|
+
- Resolve `<project>/brainstorming/` directory; create if missing.
|
|
606
|
+
- Filename: `YYYY-MM-DD-<topic>.md`. Minimal confirmation on filename.
|
|
607
|
+
- Render synthesized payload using `templates/brainstorm-doc.md` (or a
|
|
608
|
+
simpler reference template if defined; the design says
|
|
609
|
+
`<project>/brainstorming/YYYY-MM-DD-<topic>.md` is "always available
|
|
610
|
+
regardless of project phase").
|
|
611
|
+
- Write the file. No upstream-artifact mutation. No commit (the file is
|
|
612
|
+
itself the artifact, separate from any plan/design changes).
|
|
613
|
+
|
|
614
|
+
**Artifact produced**
|
|
615
|
+
|
|
616
|
+
- `<active-project>/brainstorming/YYYY-MM-DD-<topic>.md` written with
|
|
617
|
+
payload contents.
|
|
618
|
+
|
|
619
|
+
**Verifiable from skill content**
|
|
620
|
+
|
|
621
|
+
- SKILL.md Process step 9 active-project router: "Related but supplementary
|
|
622
|
+
→ brainstorming reference file at `<project>/brainstorming/YYYY-MM-DD-<topic>.md`
|
|
623
|
+
(always available regardless of project phase; minimal confirmation on
|
|
624
|
+
filename)".
|
|
625
|
+
- `destinations.md` "Active project: brainstorming reference file" stanza
|
|
626
|
+
references the same path convention.
|
|
627
|
+
|
|
628
|
+
**Issues / follow-ups**
|
|
629
|
+
|
|
630
|
+
- The reference-file path convention parallels `pr/` and `reviews/` per
|
|
631
|
+
design — naturally discoverable, no collision risk.
|
|
632
|
+
|
|
633
|
+
---
|
|
634
|
+
|
|
635
|
+
## Aggregate observations
|
|
636
|
+
|
|
637
|
+
**Stay-in-mode discipline.** All 10 walkthroughs stay within the skill's
|
|
638
|
+
declared blocked / allowed activities. None of them trigger any of the six
|
|
639
|
+
self-correction protocol entries (no implementation code, no auto-routing
|
|
640
|
+
before convergence, no skipping the visual-companion offer, no fold-back on
|
|
641
|
+
dirty tree without preflight, no `-A` staging, no premature handoff prompt).
|
|
642
|
+
|
|
643
|
+
**Coverage.** All 9 destination families exercised; doc-to-path is split
|
|
644
|
+
into in-repo (Scenario 2) and off-repo (Scenario 3) per the design's
|
|
645
|
+
testing-strategy refinement.
|
|
646
|
+
|
|
647
|
+
**Skill-content completeness.**
|
|
648
|
+
|
|
649
|
+
- All 9 stanzas present in `destinations.md`.
|
|
650
|
+
- All 9 handoff branches present in SKILL.md Process step 9.
|
|
651
|
+
- Doc-to-path template present at `templates/brainstorm-doc.md`.
|
|
652
|
+
- Visual-companion bundle present at `scripts/`.
|
|
653
|
+
- Visual-companion guide present at `references/visual-companion.md`.
|
|
654
|
+
|
|
655
|
+
**Open follow-ups (not gating ship).**
|
|
656
|
+
|
|
657
|
+
- Live-run trigger-phrase calibration. Initial set is conservative; first
|
|
658
|
+
~10 real brainstorms in this repo will surface any over-fire or
|
|
659
|
+
under-fire patterns. Tracked as a follow-up per design Open Questions.
|
|
660
|
+
- Mode-decision heuristic for promote-to-new-OAT-project (quick vs
|
|
661
|
+
spec-driven) is judgment-based; live runs will calibrate.
|
|
662
|
+
- Off-repo confirmation wording for doc-to-path is agent-rendered; consistent
|
|
663
|
+
phrasing across runs is a potential live-tuning area but not a
|
|
664
|
+
correctness issue.
|
|
665
|
+
- Fold-back commit safety contract (Scenario 9) has not been exercised
|
|
666
|
+
against real `git status --porcelain --` / `git commit` invocations yet.
|
|
667
|
+
First live use will be the integration test.
|
|
668
|
+
- The optional `oat brainstorm visual-server` CLI wrapper is deferred per
|
|
669
|
+
design — bundle ships with raw bash scripts.
|
|
670
|
+
|
|
671
|
+
## Activation Anti-Cases
|
|
672
|
+
|
|
673
|
+
The Activation Contract (see `SKILL.md`) splits user messages into three
|
|
674
|
+
tiers: **Hard Activation** (banner + mode), **Soft Exploratory Path** (no
|
|
675
|
+
banner; brainstorm-quality response by default; offer mode after ≥2
|
|
676
|
+
sustained exploratory turns), and **No Activation** (advisory / review /
|
|
677
|
+
debug / PR / status / implementation / active-workflow questions never
|
|
678
|
+
auto-activate). These anti-cases are walkthrough specifications for
|
|
679
|
+
verifying the discrimination — each entry captures the input, expected
|
|
680
|
+
behavior, and rationale.
|
|
681
|
+
|
|
682
|
+
### Hard Activation — banner expected
|
|
683
|
+
|
|
684
|
+
| Input | Expected | Rationale |
|
|
685
|
+
| ----------------------------------------------- | ---------------------------- | ------------------------------------------------------------ |
|
|
686
|
+
| `/oat-brainstorm` | Enter mode and print banner. | Explicit invocation. |
|
|
687
|
+
| "Let's brainstorm how this should work." | Enter mode and print banner. | Explicit `brainstorm` verb with topic. |
|
|
688
|
+
| "Brainstorm this with me." | Enter mode and print banner. | Explicit `brainstorm` verb with topic. |
|
|
689
|
+
| "Can we brainstorm the schema design?" | Enter mode and print banner. | Explicit `brainstorm` verb with topic. |
|
|
690
|
+
| "Help me brainstorm the rollout plan." | Enter mode and print banner. | Explicit `brainstorm` verb with topic. |
|
|
691
|
+
| "Yeah, use the brainstorm skill." (after offer) | Enter mode and print banner. | User accepts the soft offer — transition to Hard Activation. |
|
|
692
|
+
|
|
693
|
+
### Soft Exploratory Path — no banner first turn
|
|
694
|
+
|
|
695
|
+
| Input | Expected | Rationale |
|
|
696
|
+
| --------------------------------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
|
|
697
|
+
| "I've been thinking about changing how this works." | No banner. Respond conversationally with options/tradeoffs. | Exploratory but not an explicit brainstorm request. |
|
|
698
|
+
| "What if we used X instead of Y?" | No banner. Respond with tradeoffs, no premature destination. | "What if" is exploratory phrasing, not a `brainstorm` verb. |
|
|
699
|
+
| "Help me think through whether to use X or Y." | No banner. Respond with brainstorm-quality reasoning inline. | Exploratory intent without the `brainstorm` verb. |
|
|
700
|
+
| "I'm trying to figure out the right way to do X." | No banner. Respond with brainstorm-quality reasoning inline. | Exploratory intent without the `brainstorm` verb. |
|
|
701
|
+
| "I'm not sure how to approach this." | No banner. Respond with brainstorm-quality reasoning inline. | Exploratory intent without the `brainstorm` verb. |
|
|
702
|
+
| (After 2+ exploratory turns with no concrete ask) | Append soft offer once: "If you want, I can switch into structured brainstorm mode for this." | Sustained exploration earns one offer. |
|
|
703
|
+
|
|
704
|
+
### No Activation — direct response, no banner, no offer
|
|
705
|
+
|
|
706
|
+
| Input | Expected | Rationale |
|
|
707
|
+
| ----------------------------------------- | -------------------------------------- | --------------------------------------------------------- |
|
|
708
|
+
| "What do you think about this direction?" | Direct advisory response. No banner. | Advisory request — wants an opinion, not a workflow. |
|
|
709
|
+
| "Thoughts?" | Direct advisory response. No banner. | Advisory request. |
|
|
710
|
+
| "What's your take?" | Direct advisory response. No banner. | Advisory request. |
|
|
711
|
+
| "Does this seem right?" | Direct advisory response. No banner. | Advisory / verification request. |
|
|
712
|
+
| "Please review this." | Direct review response. No banner. | Review request — handoff to review skills if appropriate. |
|
|
713
|
+
| "Why is this failing?" | Direct debugging response. No banner. | Debugging — not a brainstorm. |
|
|
714
|
+
| "What's the PR status?" | Direct status response. No banner. | Status — not a brainstorm. |
|
|
715
|
+
| "What about X?" mid-implementation | Direct follow-up response. No banner. | Active-workflow continuation, not a fresh brainstorm. |
|
|
716
|
+
| "I noticed an issue with the new code." | Direct diagnostic response. No banner. | Implementation observation, not a brainstorm. |
|
|
717
|
+
| "How would you fix this?" | Direct advisory response. No banner. | Advisory request. |
|
|
718
|
+
|
|
719
|
+
### Verification
|
|
720
|
+
|
|
721
|
+
Live dogfood (tracked under `bl-7d5b`) should exercise each row at least
|
|
722
|
+
once. The live observer records the first-turn response and confirms:
|
|
723
|
+
|
|
724
|
+
- Hard Activation rows printed the banner exactly once.
|
|
725
|
+
- Soft Exploratory Path rows did NOT print the banner and either gave a
|
|
726
|
+
brainstorm-quality response or, on turn ≥2, appended the soft offer.
|
|
727
|
+
- No Activation rows did NOT print the banner and did NOT append the soft
|
|
728
|
+
offer.
|
|
729
|
+
|
|
730
|
+
If any row regresses, file a follow-up backlog item with the offending
|
|
731
|
+
input, the produced response, and the expected response.
|