gstack/scripts/resolvers/preamble
Benjamin D. Smith 2311e32d63 docs(workspace): mandate single-select default in AskUserQuestion format
📝 Summary:
• Add a `multiSelect` rule to the shared AskUserQuestion decision-brief
  preamble, plus a matching self-check bullet
• Regenerate the 44 SKILL.md surfaces that inline the preamble

🔧 Technical Improvements:
• `generate-ask-user-format.ts` now states that options are mutually
  exclusive by DEFAULT, and `multiSelect: true` is legal only when
  every option is an independently-selectable atom whose pro/con and
  effort stand alone
• Bundles or combinations of the same underlying items (`E1+E3`,
  `All three`, `E1 only`, `Defer all`) are mutually exclusive by
  construction, so they take `multiSelect: false` and score
  `Completeness:` per option LETTER, not per sub-item
• Names the diagnostic tell: a defer/none option or a do-everything
  option sitting in the list proves the question is single-select
• Routes 5+ independent atoms to the existing split chain rather than
  to `multiSelect`, so the 4-option cap is never silently exceeded

🏗 Architecture:
• The rule lives in the preamble resolver, not in any one skill, so
  every skill that renders a decision brief inherits it from one
  source; the 44 regenerated `SKILL.md` files are build output

🧾 Reports:
• Regenerated with `gen:skill-docs:user` to match how this branch's
  `SKILL.md` were produced (gbrain blocks inlined); the pure-form
  `gen:skill-docs` variant strips them and would have carried 326
  unrelated deletions
• `bun test test/host-config.test.ts test/skill-validation.test.ts
  test/audit-compliance.test.ts test/question-log-hook.test.ts
  test/gstack-question-preference.test.ts` — 387 pass, 0 fail across
  the four non-golden files
• The three `golden-file regression` tests were ALREADY red at HEAD:
  `test/fixtures/golden/*-ship-SKILL.md` are pure-form while the
  committed `ship/SKILL.md` is brain-form. Left untouched — a
  pre-existing defect, not this change

📊 Code Changes:
• 138 insertions, 0 deletions (net +138)

📦 Files Modified:
• `scripts/resolvers/preamble/generate-ask-user-format.ts`
  (substantial changes) — add the single-select rule paragraph and
  the `multiSelect: false` self-check bullet
• 44 × `**/SKILL.md` (minor updates) — regenerated preamble
2026-07-10 23:38:53 +10:00
..
generate-ask-user-format.ts docs(workspace): mandate single-select default in AskUserQuestion format 2026-07-10 23:38:53 +10:00
generate-brain-health-instruction.ts feat(v1.3.0.0): open agents learnings + cross-model benchmark skill (#1040) 2026-04-19 17:50:31 +08:00
generate-brain-sync-block.ts v1.29.0.0 feat: worktree-aware gbrain code sources via path-hash IDs and CWD pin (#1382) 2026-05-08 12:46:15 -07:00
generate-completeness-section.ts v1.57.4.0 refactor(ethos): rename Boil the Lake principle to Boil the Ocean (#1912) 2026-06-08 05:41:07 -07:00
generate-completion-status.ts v1.57.2.0 feat: AskUserQuestion prose fallback when the tool fails at runtime (#1908) 2026-06-07 21:38:21 -07:00
generate-confusion-protocol.ts v1.46.0.0 feat: gstack v2 foundation — catalog tokens drop 56%, eval-first floor covers all 51 skills (#1712) 2026-05-26 16:50:03 -07:00
generate-context-health.ts v1.46.0.0 feat: gstack v2 foundation — catalog tokens drop 56%, eval-first floor covers all 51 skills (#1712) 2026-05-26 16:50:03 -07:00
generate-context-recovery.ts v1.57.5.0 feat: cross-session decision memory + gbrain dream-stage call graph (#1910) 2026-06-08 06:20:58 -07:00
generate-continuous-checkpoint.ts v1.15.0.0 feat: slim preamble + real-PTY plan-mode E2E harness (#1215) 2026-04-26 13:55:13 -07:00
generate-first-run-guidance.ts v1.58.5.0 feat: first-run activation scaffold + gstack router front door (#2078) 2026-06-25 09:42:45 -07:00
generate-lake-intro.ts v1.57.4.0 refactor(ethos): rename Boil the Lake principle to Boil the Ocean (#1912) 2026-06-08 05:41:07 -07:00
generate-preamble-bash.ts v1.58.5.0 feat: first-run activation scaffold + gstack router front door (#2078) 2026-06-25 09:42:45 -07:00
generate-proactive-prompt.ts v1.15.0.0 feat: slim preamble + real-PTY plan-mode E2E harness (#1215) 2026-04-26 13:55:13 -07:00
generate-repo-mode-section.ts feat(v1.3.0.0): open agents learnings + cross-model benchmark skill (#1040) 2026-04-19 17:50:31 +08:00
generate-routing-injection.ts v1.47.0.0 feat: /spec — author backlog-ready spec in 5 phases + optional agent spawn (#1698) (#1733) 2026-05-26 21:36:53 -07:00
generate-search-before-building.ts feat(v1.3.0.0): open agents learnings + cross-model benchmark skill (#1040) 2026-04-19 17:50:31 +08:00
generate-spawned-session-check.ts feat(v1.3.0.0): open agents learnings + cross-model benchmark skill (#1040) 2026-04-19 17:50:31 +08:00
generate-telemetry-prompt.ts v1.55.1.0 fix: telemetry consent accuracy + gstack-slug cache sanitization (#1848) 2026-06-02 22:36:34 -07:00
generate-test-failure-triage.ts feat(v1.3.0.0): open agents learnings + cross-model benchmark skill (#1040) 2026-04-19 17:50:31 +08:00
generate-upgrade-check.ts v1.15.0.0 feat: slim preamble + real-PTY plan-mode E2E harness (#1215) 2026-04-26 13:55:13 -07:00
generate-vendoring-deprecation.ts v1.15.0.0 feat: slim preamble + real-PTY plan-mode E2E harness (#1215) 2026-04-26 13:55:13 -07:00
generate-voice-directive.ts v1.15.0.0 feat: slim preamble + real-PTY plan-mode E2E harness (#1215) 2026-04-26 13:55:13 -07:00
generate-writing-style-migration.ts v1.15.0.0 feat: slim preamble + real-PTY plan-mode E2E harness (#1215) 2026-04-26 13:55:13 -07:00
generate-writing-style.ts v1.46.0.0 feat: gstack v2 foundation — catalog tokens drop 56%, eval-first floor covers all 51 skills (#1712) 2026-05-26 16:50:03 -07:00