diff --git a/autoplan/SKILL.md b/autoplan/SKILL.md index 8b4d6850a..b8b1091a9 100644 --- a/autoplan/SKILL.md +++ b/autoplan/SKILL.md @@ -302,7 +302,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"autoplan","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"autoplan","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -311,7 +311,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/canary/SKILL.md b/canary/SKILL.md index f3c69664e..25974f309 100644 --- a/canary/SKILL.md +++ b/canary/SKILL.md @@ -283,7 +283,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"canary","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"canary","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -292,7 +292,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/codex/SKILL.md b/codex/SKILL.md index ecdd4ba39..70bdb1057 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -286,7 +286,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"codex","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"codex","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -295,7 +295,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/context-restore/SKILL.md b/context-restore/SKILL.md index 968f9a210..6df0d3965 100644 --- a/context-restore/SKILL.md +++ b/context-restore/SKILL.md @@ -285,7 +285,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"context-restore","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"context-restore","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -294,7 +294,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/context-save/SKILL.md b/context-save/SKILL.md index f2b25b884..db781f7c4 100644 --- a/context-save/SKILL.md +++ b/context-save/SKILL.md @@ -284,7 +284,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"context-save","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"context-save","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -293,7 +293,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index 19992d9a8..bae0d3581 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -309,7 +309,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-consultation","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-consultation","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -318,7 +318,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/design-html/SKILL.md b/design-html/SKILL.md index d361c5539..e9ec85a16 100644 --- a/design-html/SKILL.md +++ b/design-html/SKILL.md @@ -290,7 +290,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-html","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-html","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -299,7 +299,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/design-review/SKILL.md b/design-review/SKILL.md index 52cbbd7a9..b076ca7af 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -287,7 +287,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -296,7 +296,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/design-shotgun/SKILL.md b/design-shotgun/SKILL.md index 44b7bd1d6..edf03dce2 100644 --- a/design-shotgun/SKILL.md +++ b/design-shotgun/SKILL.md @@ -303,7 +303,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-shotgun","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"design-shotgun","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -312,7 +312,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/devex-review/SKILL.md b/devex-review/SKILL.md index 4ba861a82..adbc8c1f4 100644 --- a/devex-review/SKILL.md +++ b/devex-review/SKILL.md @@ -289,7 +289,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"devex-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"devex-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -298,7 +298,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/document-generate/SKILL.md b/document-generate/SKILL.md index 3d8d79bb2..b4a274ead 100644 --- a/document-generate/SKILL.md +++ b/document-generate/SKILL.md @@ -289,7 +289,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"document-generate","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"document-generate","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -298,7 +298,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/document-release/SKILL.md b/document-release/SKILL.md index d297da7a6..17d3a158e 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -287,7 +287,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"document-release","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"document-release","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -296,7 +296,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/health/SKILL.md b/health/SKILL.md index 31d720615..322a967c7 100644 --- a/health/SKILL.md +++ b/health/SKILL.md @@ -285,7 +285,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"health","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"health","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -294,7 +294,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/investigate/SKILL.md b/investigate/SKILL.md index 7cc3e1633..1a3ee8259 100644 --- a/investigate/SKILL.md +++ b/investigate/SKILL.md @@ -324,7 +324,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"investigate","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"investigate","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -333,7 +333,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/ios-clean/SKILL.md b/ios-clean/SKILL.md index e237ac950..3bb422330 100644 --- a/ios-clean/SKILL.md +++ b/ios-clean/SKILL.md @@ -287,7 +287,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-clean","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-clean","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -296,7 +296,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/ios-design-review/SKILL.md b/ios-design-review/SKILL.md index 7b2d35a96..6b6e22a04 100644 --- a/ios-design-review/SKILL.md +++ b/ios-design-review/SKILL.md @@ -289,7 +289,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-design-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-design-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -298,7 +298,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/ios-fix/SKILL.md b/ios-fix/SKILL.md index 5bc37e266..cbf765e09 100644 --- a/ios-fix/SKILL.md +++ b/ios-fix/SKILL.md @@ -290,7 +290,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-fix","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-fix","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -299,7 +299,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/ios-qa/SKILL.md b/ios-qa/SKILL.md index 1553649ee..100599489 100644 --- a/ios-qa/SKILL.md +++ b/ios-qa/SKILL.md @@ -293,7 +293,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-qa","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-qa","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -302,7 +302,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/ios-sync/SKILL.md b/ios-sync/SKILL.md index 0cb1a2cbe..cf44a470f 100644 --- a/ios-sync/SKILL.md +++ b/ios-sync/SKILL.md @@ -287,7 +287,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-sync","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ios-sync","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -296,7 +296,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index 79f6280fa..324e9119a 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -282,7 +282,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"land-and-deploy","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"land-and-deploy","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -291,7 +291,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/landing-report/SKILL.md b/landing-report/SKILL.md index 92d8da4ea..9deba7b91 100644 --- a/landing-report/SKILL.md +++ b/landing-report/SKILL.md @@ -284,7 +284,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"landing-report","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"landing-report","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -293,7 +293,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/learn/SKILL.md b/learn/SKILL.md index 33bc44d98..996955a14 100644 --- a/learn/SKILL.md +++ b/learn/SKILL.md @@ -285,7 +285,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"learn","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"learn","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -294,7 +294,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index 49f509b0a..d227fb0b1 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -330,7 +330,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"office-hours","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"office-hours","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -339,7 +339,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/pair-agent/SKILL.md b/pair-agent/SKILL.md index 1baaa1854..1d4b9302b 100644 --- a/pair-agent/SKILL.md +++ b/pair-agent/SKILL.md @@ -286,7 +286,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"pair-agent","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"pair-agent","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -295,7 +295,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/plan-ceo-review/SKILL.md b/plan-ceo-review/SKILL.md index 0aba60f0d..e46775b53 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -305,7 +305,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-ceo-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-ceo-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -314,7 +314,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index a7f81ca85..a212a8de5 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -311,7 +311,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-design-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-design-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -320,7 +320,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/plan-devex-review/SKILL.md b/plan-devex-review/SKILL.md index e25a1a8f8..875718a8e 100644 --- a/plan-devex-review/SKILL.md +++ b/plan-devex-review/SKILL.md @@ -283,7 +283,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-devex-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-devex-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -292,7 +292,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/plan-eng-review/SKILL.md b/plan-eng-review/SKILL.md index cf559787f..d6d64acee 100644 --- a/plan-eng-review/SKILL.md +++ b/plan-eng-review/SKILL.md @@ -327,7 +327,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-eng-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-eng-review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -336,7 +336,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/plan-tune/SKILL.md b/plan-tune/SKILL.md index d0c29b700..674c537ad 100644 --- a/plan-tune/SKILL.md +++ b/plan-tune/SKILL.md @@ -295,7 +295,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-tune","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"plan-tune","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -304,7 +304,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." @@ -679,7 +679,7 @@ scope expansion comes up", etc). 4. Write: ```bash - ~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"plan-tune","free_text":""}' + ~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"plan-tune"}' ``` 5. Confirm: "Set `` → ``. Active immediately. One-way doors diff --git a/plan-tune/SKILL.md.tmpl b/plan-tune/SKILL.md.tmpl index 236b61ee2..758089b1a 100644 --- a/plan-tune/SKILL.md.tmpl +++ b/plan-tune/SKILL.md.tmpl @@ -355,7 +355,7 @@ scope expansion comes up", etc). 4. Write: ```bash - ~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"plan-tune","free_text":""}' + ~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"plan-tune"}' ``` 5. Confirm: "Set `` → ``. Active immediately. One-way doors diff --git a/qa-only/SKILL.md b/qa-only/SKILL.md index f43d4b68e..a8801d33c 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -285,7 +285,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"qa-only","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"qa-only","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -294,7 +294,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/qa/SKILL.md b/qa/SKILL.md index 8570a96f1..167508805 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -289,7 +289,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"qa","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"qa","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -298,7 +298,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/retro/SKILL.md b/retro/SKILL.md index 2ff2c817d..e7591bfbd 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -303,7 +303,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"retro","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"retro","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -312,7 +312,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/review/SKILL.md b/review/SKILL.md index 559850bab..474e295a2 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -287,7 +287,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"review","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -296,7 +296,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/scripts/resolvers/question-tuning.ts b/scripts/resolvers/question-tuning.ts index 189f6c249..e232191de 100644 --- a/scripts/resolvers/question-tuning.ts +++ b/scripts/resolvers/question-tuning.ts @@ -35,7 +35,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute \`SESSION_ID\` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: \`\`\`bash -${bin}/gstack-question-log '{"skill":"${ctx.skillName}","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +${bin}/gstack-question-log '{"skill":"${ctx.skillName}","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true \`\`\` For two-way questions, offer: "Tune this question? Reply \`tune: never-ask\`, \`tune: always-ask\`, or free-form." @@ -44,7 +44,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when \`tune Write (only after confirmation for free-form): \`\`\`bash -${bin}/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +${bin}/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' \`\`\` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set \`\` → \`\`. Active immediately."`; diff --git a/setup-deploy/SKILL.md b/setup-deploy/SKILL.md index b00fee176..a1df1d1d3 100644 --- a/setup-deploy/SKILL.md +++ b/setup-deploy/SKILL.md @@ -286,7 +286,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"setup-deploy","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"setup-deploy","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -295,7 +295,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/setup-gbrain/SKILL.md b/setup-gbrain/SKILL.md index 5e6ef3c07..8f2b57797 100644 --- a/setup-gbrain/SKILL.md +++ b/setup-gbrain/SKILL.md @@ -285,7 +285,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"setup-gbrain","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"setup-gbrain","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -294,7 +294,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/ship/SKILL.md b/ship/SKILL.md index 0cca3fe07..80e232e94 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -287,7 +287,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ship","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"ship","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -296,7 +296,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/skillify/SKILL.md b/skillify/SKILL.md index a1fddf632..a9aaed03e 100644 --- a/skillify/SKILL.md +++ b/skillify/SKILL.md @@ -284,7 +284,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"skillify","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"skillify","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -293,7 +293,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/spec/SKILL.md b/spec/SKILL.md index 758be4b00..14667d269 100644 --- a/spec/SKILL.md +++ b/spec/SKILL.md @@ -285,7 +285,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"spec","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"spec","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -294,7 +294,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/sync-gbrain/SKILL.md b/sync-gbrain/SKILL.md index 251d2a7d4..b9147f2e2 100644 --- a/sync-gbrain/SKILL.md +++ b/sync-gbrain/SKILL.md @@ -286,7 +286,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"sync-gbrain","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"sync-gbrain","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -295,7 +295,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately." diff --git a/test-audit/SKILL.md b/test-audit/SKILL.md index bb1e7d7e1..352a14c76 100644 --- a/test-audit/SKILL.md +++ b/test-audit/SKILL.md @@ -281,7 +281,7 @@ Before each decision brief (AskUserQuestion or Conductor/fallback prose), choose After answer, log best-effort (PostToolUse hook also captures deterministically when installed; dedup on (source, tool_use_id) handles double-writes). Substitute `SESSION_ID` with the value the preamble's skill-start output echoed — shell variables do not survive between Bash calls: ```bash -~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"test-audit","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true +~/.claude/skills/gstack/bin/gstack-question-log '{"skill":"test-audit","question_id":"","question_summary":"","category":"","door_type":"","options_count":N,"user_choice":"","recommended":"","session_id":"SESSION_ID"}' 2>/dev/null || true ``` For two-way questions, offer: "Tune this question? Reply `tune: never-ask`, `tune: always-ask`, or free-form." @@ -290,7 +290,7 @@ User-origin gate (profile-poisoning defense): write tune events ONLY when `tune: Write (only after confirmation for free-form): ```bash -~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user","free_text":""}' +~/.claude/skills/gstack/bin/gstack-question-preference --write '{"question_id":"","preference":"","source":"inline-user"}' ``` Exit code 2 = rejected as not user-originated; do not retry. On success: "Set `` → ``. Active immediately."