From e3e0c6699901b1ccfe03f0da41ae7801462458e6 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Thu, 9 Jul 2026 19:47:14 -0700 Subject: [PATCH] fix(resolvers): compress --summary-stdin preamble prose to fit parity budget; re-bless ship goldens The v1.57.7.0 parity suite caps investigate's generated size at 1.09x baseline; the #2024 question-tuning prose (duplicated into every tier->=2 skill) tipped it to 1.092. Compressed to a single inline command + short pointer (the full rationale lives in bin/gstack-question-preference's header and the one-way-doors module docs). Ship goldens re-blessed against the final resolver text (conscious template-change acknowledgment, per the golden-file regression contract). Co-Authored-By: Claude Fable 5 --- autoplan/SKILL.md | 6 +----- canary/SKILL.md | 6 +----- codex/SKILL.md | 6 +----- context-restore/SKILL.md | 6 +----- context-save/SKILL.md | 6 +----- cso/SKILL.md | 6 +----- design-consultation/SKILL.md | 6 +----- design-html/SKILL.md | 6 +----- design-review/SKILL.md | 6 +----- design-shotgun/SKILL.md | 6 +----- devex-review/SKILL.md | 6 +----- diagram/SKILL.md | 6 +----- document-generate/SKILL.md | 6 +----- document-release/SKILL.md | 6 +----- health/SKILL.md | 6 +----- investigate/SKILL.md | 6 +----- ios-clean/SKILL.md | 6 +----- ios-design-review/SKILL.md | 6 +----- ios-fix/SKILL.md | 6 +----- ios-qa/SKILL.md | 6 +----- ios-sync/SKILL.md | 6 +----- land-and-deploy/SKILL.md | 6 +----- landing-report/SKILL.md | 6 +----- learn/SKILL.md | 6 +----- office-hours/SKILL.md | 6 +----- open-gstack-browser/SKILL.md | 6 +----- pair-agent/SKILL.md | 6 +----- plan-ceo-review/SKILL.md | 6 +----- plan-design-review/SKILL.md | 6 +----- plan-devex-review/SKILL.md | 6 +----- plan-eng-review/SKILL.md | 6 +----- plan-tune/SKILL.md | 6 +----- qa-only/SKILL.md | 6 +----- qa/SKILL.md | 6 +----- retro/SKILL.md | 6 +----- review/SKILL.md | 6 +----- scrape/SKILL.md | 6 +----- scripts/resolvers/question-tuning.ts | 6 +----- setup-deploy/SKILL.md | 6 +----- setup-gbrain/SKILL.md | 6 +----- ship/SKILL.md | 6 +----- skillify/SKILL.md | 6 +----- spec/SKILL.md | 12 ++---------- sync-gbrain/SKILL.md | 6 +----- test/fixtures/golden/claude-ship-SKILL.md | 2 +- test/fixtures/golden/codex-ship-SKILL.md | 2 +- test/fixtures/golden/factory-ship-SKILL.md | 2 +- 47 files changed, 48 insertions(+), 228 deletions(-) diff --git a/autoplan/SKILL.md b/autoplan/SKILL.md index de3536c63..a8e480914 100644 --- a/autoplan/SKILL.md +++ b/autoplan/SKILL.md @@ -711,11 +711,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/canary/SKILL.md b/canary/SKILL.md index 1bce6dea6..a7eded4fe 100644 --- a/canary/SKILL.md +++ b/canary/SKILL.md @@ -703,11 +703,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/codex/SKILL.md b/codex/SKILL.md index 9d2710fcc..af7fa4de9 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -706,11 +706,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/context-restore/SKILL.md b/context-restore/SKILL.md index 5f3d5d498..500731936 100644 --- a/context-restore/SKILL.md +++ b/context-restore/SKILL.md @@ -707,11 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/context-save/SKILL.md b/context-save/SKILL.md index 57a70247f..b347b1b7d 100644 --- a/context-save/SKILL.md +++ b/context-save/SKILL.md @@ -706,11 +706,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/cso/SKILL.md b/cso/SKILL.md index 0f173d41b..cd1e346fc 100644 --- a/cso/SKILL.md +++ b/cso/SKILL.md @@ -709,11 +709,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index 6efd5c5b2..9b52914ea 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -729,11 +729,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/design-html/SKILL.md b/design-html/SKILL.md index 6abfbfeb9..8222a3f6c 100644 --- a/design-html/SKILL.md +++ b/design-html/SKILL.md @@ -710,11 +710,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/design-review/SKILL.md b/design-review/SKILL.md index 89720c0c2..56bd0ff41 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -707,11 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/design-shotgun/SKILL.md b/design-shotgun/SKILL.md index 5faa4b8a8..d18254b8b 100644 --- a/design-shotgun/SKILL.md +++ b/design-shotgun/SKILL.md @@ -724,11 +724,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/devex-review/SKILL.md b/devex-review/SKILL.md index 21f1cf930..4903ac4f0 100644 --- a/devex-review/SKILL.md +++ b/devex-review/SKILL.md @@ -709,11 +709,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/diagram/SKILL.md b/diagram/SKILL.md index 0bd159f86..215f90efd 100644 --- a/diagram/SKILL.md +++ b/diagram/SKILL.md @@ -704,11 +704,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/document-generate/SKILL.md b/document-generate/SKILL.md index 83af17881..f681a612e 100644 --- a/document-generate/SKILL.md +++ b/document-generate/SKILL.md @@ -709,11 +709,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/document-release/SKILL.md b/document-release/SKILL.md index 7ad9cf40f..b7fe35f0e 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -707,11 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/health/SKILL.md b/health/SKILL.md index 1e9e602e8..659ba78d2 100644 --- a/health/SKILL.md +++ b/health/SKILL.md @@ -705,11 +705,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/investigate/SKILL.md b/investigate/SKILL.md index 583937771..e7d81a45b 100644 --- a/investigate/SKILL.md +++ b/investigate/SKILL.md @@ -744,11 +744,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/ios-clean/SKILL.md b/ios-clean/SKILL.md index 2937a9869..ea004cde2 100644 --- a/ios-clean/SKILL.md +++ b/ios-clean/SKILL.md @@ -707,11 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/ios-design-review/SKILL.md b/ios-design-review/SKILL.md index ef6589618..633dd1820 100644 --- a/ios-design-review/SKILL.md +++ b/ios-design-review/SKILL.md @@ -709,11 +709,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/ios-fix/SKILL.md b/ios-fix/SKILL.md index b2662eced..81176c9ea 100644 --- a/ios-fix/SKILL.md +++ b/ios-fix/SKILL.md @@ -710,11 +710,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/ios-qa/SKILL.md b/ios-qa/SKILL.md index 8343a1ad0..14127a4c7 100644 --- a/ios-qa/SKILL.md +++ b/ios-qa/SKILL.md @@ -713,11 +713,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/ios-sync/SKILL.md b/ios-sync/SKILL.md index a7585fbc1..d696cd5f3 100644 --- a/ios-sync/SKILL.md +++ b/ios-sync/SKILL.md @@ -707,11 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index f53675abc..0df40c312 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -702,11 +702,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/landing-report/SKILL.md b/landing-report/SKILL.md index ddcbfe6b7..927244c58 100644 --- a/landing-report/SKILL.md +++ b/landing-report/SKILL.md @@ -703,11 +703,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/learn/SKILL.md b/learn/SKILL.md index edc67a480..cf08d6b80 100644 --- a/learn/SKILL.md +++ b/learn/SKILL.md @@ -705,11 +705,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index 76f1ba049..b304a23b4 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -740,11 +740,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/open-gstack-browser/SKILL.md b/open-gstack-browser/SKILL.md index 60e2d02d2..507ecceb2 100644 --- a/open-gstack-browser/SKILL.md +++ b/open-gstack-browser/SKILL.md @@ -702,11 +702,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/pair-agent/SKILL.md b/pair-agent/SKILL.md index fe16ad3ec..367f56d2a 100644 --- a/pair-agent/SKILL.md +++ b/pair-agent/SKILL.md @@ -704,11 +704,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/plan-ceo-review/SKILL.md b/plan-ceo-review/SKILL.md index cbe6f7a23..4ad55529a 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -734,11 +734,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index c8afb02fb..dfd4f4253 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -706,11 +706,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/plan-devex-review/SKILL.md b/plan-devex-review/SKILL.md index a03230616..698900edb 100644 --- a/plan-devex-review/SKILL.md +++ b/plan-devex-review/SKILL.md @@ -712,11 +712,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/plan-eng-review/SKILL.md b/plan-eng-review/SKILL.md index 4770180b9..448c36e24 100644 --- a/plan-eng-review/SKILL.md +++ b/plan-eng-review/SKILL.md @@ -710,11 +710,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/plan-tune/SKILL.md b/plan-tune/SKILL.md index b5ec6ab1c..cbb6bb618 100644 --- a/plan-tune/SKILL.md +++ b/plan-tune/SKILL.md @@ -715,11 +715,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/qa-only/SKILL.md b/qa-only/SKILL.md index b5ace46a9..9953eb228 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -705,11 +705,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/qa/SKILL.md b/qa/SKILL.md index 18cc7414c..38b1131cd 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -711,11 +711,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/retro/SKILL.md b/retro/SKILL.md index 2ce902083..3016295a6 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -722,11 +722,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/review/SKILL.md b/review/SKILL.md index 0bb8ce714..dbc28f704 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -707,11 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/scrape/SKILL.md b/scrape/SKILL.md index a241757ca..86ae0fc7b 100644 --- a/scrape/SKILL.md +++ b/scrape/SKILL.md @@ -703,11 +703,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/scripts/resolvers/question-tuning.ts b/scripts/resolvers/question-tuning.ts index 67a32469f..fe6f78c94 100644 --- a/scripts/resolvers/question-tuning.ts +++ b/scripts/resolvers/question-tuning.ts @@ -23,11 +23,7 @@ export function generateQuestionTuning(ctx: TemplateContext): string { const bin = binDir(ctx); return `## Question Tuning (skip entirely if \`QUESTION_TUNING: false\`) -Before each AskUserQuestion, choose \`question_id\` from \`scripts/question-registry.ts\` or \`{skill}-{slug}\`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -\`\`\`bash -printf '%s' "" | ${bin}/gstack-question-preference --check "" --summary-stdin -\`\`\` -\`AUTO_DECIDE\` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." \`ASK_NORMALLY\` means ask. +Before each AskUserQuestion, choose \`question_id\` from \`scripts/question-registry.ts\` or \`{skill}-{slug}\`, then run \`printf '%s' "" | ${bin}/gstack-question-preference --check "" --summary-stdin\` (piped summary feeds the one-way keyword net, #2024). \`AUTO_DECIDE\` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." \`ASK_NORMALLY\` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append \`\` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered \`question_id\`. diff --git a/setup-deploy/SKILL.md b/setup-deploy/SKILL.md index 62e1596dd..eba0e3bf8 100644 --- a/setup-deploy/SKILL.md +++ b/setup-deploy/SKILL.md @@ -706,11 +706,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/setup-gbrain/SKILL.md b/setup-gbrain/SKILL.md index 216f84476..fa1aec521 100644 --- a/setup-gbrain/SKILL.md +++ b/setup-gbrain/SKILL.md @@ -705,11 +705,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/ship/SKILL.md b/ship/SKILL.md index 845951470..3062cda60 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -707,11 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/skillify/SKILL.md b/skillify/SKILL.md index 7ca21f3b7..af2f7ec38 100644 --- a/skillify/SKILL.md +++ b/skillify/SKILL.md @@ -703,11 +703,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/spec/SKILL.md b/spec/SKILL.md index e0e06fa7a..4301ec3e7 100644 --- a/spec/SKILL.md +++ b/spec/SKILL.md @@ -704,11 +704,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. @@ -1778,11 +1774,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/sync-gbrain/SKILL.md b/sync-gbrain/SKILL.md index abe5c4d68..67b6b9547 100644 --- a/sync-gbrain/SKILL.md +++ b/sync-gbrain/SKILL.md @@ -705,11 +705,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run the check with the question summary piped on stdin (the summary lets the one-way keyword net catch ad-hoc destructive questions whose id has no registry entry — #2024; stdin, never argv, so quotes/newlines survive): -```bash -printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin -``` -`AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/test/fixtures/golden/claude-ship-SKILL.md b/test/fixtures/golden/claude-ship-SKILL.md index eadffaa8f..3062cda60 100644 --- a/test/fixtures/golden/claude-ship-SKILL.md +++ b/test/fixtures/golden/claude-ship-SKILL.md @@ -707,7 +707,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `~/.claude/skills/gstack/bin/gstack-question-preference --check ""`. `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | ~/.claude/skills/gstack/bin/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/test/fixtures/golden/codex-ship-SKILL.md b/test/fixtures/golden/codex-ship-SKILL.md index d99630c4b..1d9b707bf 100644 --- a/test/fixtures/golden/codex-ship-SKILL.md +++ b/test/fixtures/golden/codex-ship-SKILL.md @@ -693,7 +693,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `$GSTACK_BIN/gstack-question-preference --check ""`. `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | $GSTACK_BIN/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`. diff --git a/test/fixtures/golden/factory-ship-SKILL.md b/test/fixtures/golden/factory-ship-SKILL.md index a2acad24f..40ad2e3f3 100644 --- a/test/fixtures/golden/factory-ship-SKILL.md +++ b/test/fixtures/golden/factory-ship-SKILL.md @@ -695,7 +695,7 @@ If you are looping on the same diagnostic, same file, or failed fix variants, ST ## Question Tuning (skip entirely if `QUESTION_TUNING: false`) -Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `$GSTACK_BIN/gstack-question-preference --check ""`. `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. +Before each AskUserQuestion, choose `question_id` from `scripts/question-registry.ts` or `{skill}-{slug}`, then run `printf '%s' "" | $GSTACK_BIN/gstack-question-preference --check "" --summary-stdin` (piped summary feeds the one-way keyword net, #2024). `AUTO_DECIDE` means choose the recommended option and say "Auto-decided [summary] → [option] (your preference). Change with /plan-tune." `ASK_NORMALLY` means ask. **Embed the question_id as a marker in the question text** so hooks can identify it deterministically (plan-tune cathedral T14 / D18 progressive markers). Append `` somewhere in the rendered question (the leading line or trailing line is fine; the marker doesn't render visibly to the user when wrapped in HTML-style angle brackets, but the hook strips it). Without the marker the PreToolUse enforcement hook treats the AUQ as observed-only and never auto-decides — so always include it when the question matches a registered `question_id`.