From 73dfbe64a22b7b4c73b7ae9cfe462c7f2d5fd63b Mon Sep 17 00:00:00 2001 From: garrytan Date: Thu, 1 Oct 2026 18:00:17 +0000 Subject: [PATCH] fix(office-hours, design-consultation): ask the goal question and read the mode section first; ask the memorable-thing question on its own --- CHANGELOG.md | 1 + design-consultation/SKILL.md | 2 +- design-consultation/SKILL.md.tmpl | 2 +- office-hours/SKILL.md | 2 +- office-hours/SKILL.md.tmpl | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 142656919..a84b71bd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ Run `bun run typecheck` and `bun run typecheck:test` before you push; both are f - `$B connect --supervise` respawned with a block-scoped env that no longer existed, so every restart threw and the supervisor gave up after five tries. The headed env is one helper used by connect and respawn, and the loop has behavioral tests. - Compiled `/cso` installs called an unimported `join` when launching the assertion-witness child, breaking runtime-tested witnessing for every installed user. - Browser-only `/qa` runs were told to materialize an evidence file that only accepts functional captures; they now skip that step and link their checkpoints. The fix loop had spent its last minute on it and timed out. +- `/office-hours` asks its goal question unless the user already chose a mode, then reads that mode's section before its first question; skipping both produced forcing questions with an empty recommendation. `/design-consultation` asks the memorable-thing question on its own after Q1 instead of packing it into Q1's call. - Free-form eval judges (docs, outcome, posture) could return JSON broken by an unescaped quote in their reasoning; they now use structured output. - `/qa` checkpoint receipts now print the report link for their `exploration-NNN.json` file; reports had been linking `.qa-evidence/NNN` capture folders as checkpoints instead. - `/review` Review Army passes checklists to specialists by path and runs web research alongside dispatch (a 12-line N+1 review went from 300 s to 212 s), and the design-lite pass always runs its detector probe; reviews had reported the detector absent without probing in 5 of 6 captured trials. diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index a64002147..2d56eb7d6 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -651,7 +651,7 @@ sections. Read a section in full before doing its step; do not work from memory. Recommend A or B for this product, naming what research buys or costs here versus the other. **Explicitly say:** "At any point you can just drop into chat and we'll talk through anything — this isn't a rigid form, it's a conversation." -**Memorable-thing forcing question.** Before moving on, ask the user: *"What's the one +**Memorable-thing forcing question.** After Q1's answer, in its own AskUserQuestion brief (never in Q1's call), ask: *"What's the one thing you want someone to remember after they see this product for the first time?"* Record the one-sentence answer: a feeling, visual, claim, or posture. Every subsequent design decision must serve it. diff --git a/design-consultation/SKILL.md.tmpl b/design-consultation/SKILL.md.tmpl index 5b1dfeffe..5d6850ece 100644 --- a/design-consultation/SKILL.md.tmpl +++ b/design-consultation/SKILL.md.tmpl @@ -132,7 +132,7 @@ Phase 5: `DESIGN_READY` uses AI mockups on realistic product screens; `DESIGN_NO Recommend A or B for this product, naming what research buys or costs here versus the other. **Explicitly say:** "At any point you can just drop into chat and we'll talk through anything — this isn't a rigid form, it's a conversation." -**Memorable-thing forcing question.** Before moving on, ask the user: *"What's the one +**Memorable-thing forcing question.** After Q1's answer, in its own AskUserQuestion brief (never in Q1's call), ask: *"What's the one thing you want someone to remember after they see this product for the first time?"* Record the one-sentence answer: a feeling, visual, claim, or posture. Every subsequent design decision must serve it. diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index 550dc195a..6c07a4d35 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -576,7 +576,7 @@ matches a past learning, display: This makes the compounding visible. The user should see that gstack is getting smarter on their codebase over time. -5. **Ask: what's your goal with this?** This is a real question, not a formality. The answer determines everything about how the session runs. +5. **Ask: what's your goal with this?** This is a real question, not a formality. The answer determines everything about how the session runs. Unless the user already chose a mode, ask it even when the request suggests one, recommending that mode. Read the chosen mode's section before its first question. Via AskUserQuestion, ask: diff --git a/office-hours/SKILL.md.tmpl b/office-hours/SKILL.md.tmpl index 9b6e57f03..c252796c5 100644 --- a/office-hours/SKILL.md.tmpl +++ b/office-hours/SKILL.md.tmpl @@ -93,7 +93,7 @@ Understand the project and the area the user wants to change. {{LEARNINGS_SEARCH}} -5. **Ask: what's your goal with this?** This is a real question, not a formality. The answer determines everything about how the session runs. +5. **Ask: what's your goal with this?** This is a real question, not a formality. The answer determines everything about how the session runs. Unless the user already chose a mode, ask it even when the request suggests one, recommending that mode. Read the chosen mode's section before its first question. Via AskUserQuestion, ask: