diff --git a/SKILL.md b/SKILL.md index 1f1085e6..0ec227fc 100644 --- a/SKILL.md +++ b/SKILL.md @@ -217,7 +217,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/browse/SKILL.md b/browse/SKILL.md index e8ae4450..415ae7d7 100644 --- a/browse/SKILL.md +++ b/browse/SKILL.md @@ -186,7 +186,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/codex/SKILL.md b/codex/SKILL.md index c67acc2c..1af428da 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -187,7 +187,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index 5d70420a..ddedad8a 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -191,7 +191,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/design-review/SKILL.md b/design-review/SKILL.md index 5fdaa989..d2b2c14d 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -191,7 +191,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/document-release/SKILL.md b/document-release/SKILL.md index cf8656e4..c23fc261 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -188,7 +188,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/investigate/SKILL.md b/investigate/SKILL.md index 17ef4a8b..da280c3f 100644 --- a/investigate/SKILL.md +++ b/investigate/SKILL.md @@ -201,7 +201,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index 0a2bb310..820c3a53 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -192,7 +192,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/plan-ceo-review/SKILL.md b/plan-ceo-review/SKILL.md index d684ac79..62bd03c9 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -189,7 +189,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) @@ -837,7 +844,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default. ## Review Log -After producing the Completion Summary above, persist the review result: +After producing the Completion Summary above, persist the review result. + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes review metadata to +`~/.gstack/` (user config directory, not project files). The skill preamble +already writes to `~/.gstack/sessions/` and `~/.gstack/analytics/` — this is +the same pattern. The review dashboard depends on this data. Skipping this +command breaks the review readiness dashboard in /ship. ```bash ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-ceo-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}' diff --git a/plan-ceo-review/SKILL.md.tmpl b/plan-ceo-review/SKILL.md.tmpl index c8d33a9a..87dec8e7 100644 --- a/plan-ceo-review/SKILL.md.tmpl +++ b/plan-ceo-review/SKILL.md.tmpl @@ -635,7 +635,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default. ## Review Log -After producing the Completion Summary above, persist the review result: +After producing the Completion Summary above, persist the review result. + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes review metadata to +`~/.gstack/` (user config directory, not project files). The skill preamble +already writes to `~/.gstack/sessions/` and `~/.gstack/analytics/` — this is +the same pattern. The review dashboard depends on this data. Skipping this +command breaks the review readiness dashboard in /ship. ```bash ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-ceo-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}' diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index d2b4fe76..8fc84da6 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -189,7 +189,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) @@ -468,7 +475,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default to ## Review Log -After producing the Completion Summary above, persist the review result: +After producing the Completion Summary above, persist the review result. + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes review metadata to +`~/.gstack/` (user config directory, not project files). The skill preamble +already writes to `~/.gstack/sessions/` and `~/.gstack/analytics/` — this is +the same pattern. The review dashboard depends on this data. Skipping this +command breaks the review readiness dashboard in /ship. ```bash ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-design-review","timestamp":"TIMESTAMP","status":"STATUS","overall_score":N,"unresolved":N,"decisions_made":N,"commit":"COMMIT"}' diff --git a/plan-design-review/SKILL.md.tmpl b/plan-design-review/SKILL.md.tmpl index 461fd8f7..597ff6a7 100644 --- a/plan-design-review/SKILL.md.tmpl +++ b/plan-design-review/SKILL.md.tmpl @@ -266,7 +266,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default to ## Review Log -After producing the Completion Summary above, persist the review result: +After producing the Completion Summary above, persist the review result. + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes review metadata to +`~/.gstack/` (user config directory, not project files). The skill preamble +already writes to `~/.gstack/sessions/` and `~/.gstack/analytics/` — this is +the same pattern. The review dashboard depends on this data. Skipping this +command breaks the review readiness dashboard in /ship. ```bash ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-design-review","timestamp":"TIMESTAMP","status":"STATUS","overall_score":N,"unresolved":N,"decisions_made":N,"commit":"COMMIT"}' diff --git a/plan-eng-review/SKILL.md b/plan-eng-review/SKILL.md index d22ee433..d0a66217 100644 --- a/plan-eng-review/SKILL.md +++ b/plan-eng-review/SKILL.md @@ -188,7 +188,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) @@ -438,7 +445,13 @@ Check the git log for this branch. If there are prior commits suggesting a previ ## Review Log -After producing the Completion Summary above, persist the review result: +After producing the Completion Summary above, persist the review result. + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes review metadata to +`~/.gstack/` (user config directory, not project files). The skill preamble +already writes to `~/.gstack/sessions/` and `~/.gstack/analytics/` — this is +the same pattern. The review dashboard depends on this data. Skipping this +command breaks the review readiness dashboard in /ship. ```bash ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-eng-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}' diff --git a/plan-eng-review/SKILL.md.tmpl b/plan-eng-review/SKILL.md.tmpl index 96dfe228..ef21a200 100644 --- a/plan-eng-review/SKILL.md.tmpl +++ b/plan-eng-review/SKILL.md.tmpl @@ -253,7 +253,13 @@ Check the git log for this branch. If there are prior commits suggesting a previ ## Review Log -After producing the Completion Summary above, persist the review result: +After producing the Completion Summary above, persist the review result. + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes review metadata to +`~/.gstack/` (user config directory, not project files). The skill preamble +already writes to `~/.gstack/sessions/` and `~/.gstack/analytics/` — this is +the same pattern. The review dashboard depends on this data. Skipping this +command breaks the review readiness dashboard in /ship. ```bash ~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-eng-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}' diff --git a/qa-only/SKILL.md b/qa-only/SKILL.md index 4242f626..0468c1db 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -185,7 +185,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/qa/SKILL.md b/qa/SKILL.md index 17066366..9f6c509b 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -192,7 +192,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/retro/SKILL.md b/retro/SKILL.md index 7cbdd6d4..af05ff92 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -186,7 +186,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/review/SKILL.md b/review/SKILL.md index 86c7c768..3c11cb39 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -187,7 +187,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/scripts/gen-skill-docs.ts b/scripts/gen-skill-docs.ts index b746bf2a..fbc3a576 100644 --- a/scripts/gen-skill-docs.ts +++ b/scripts/gen-skill-docs.ts @@ -271,7 +271,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the \`name:\` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +\`~/.gstack/analytics/\` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: \`\`\`bash _TEL_END=$(date +%s) diff --git a/setup-browser-cookies/SKILL.md b/setup-browser-cookies/SKILL.md index 864c6c31..c1dcc958 100644 --- a/setup-browser-cookies/SKILL.md +++ b/setup-browser-cookies/SKILL.md @@ -183,7 +183,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/ship/SKILL.md b/ship/SKILL.md index be1b628c..b0526acc 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -186,7 +186,14 @@ RECOMMENDATION: [what the user should do next] After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the skill name from the `name:` field in this file's YAML frontmatter. Determine the outcome from the workflow result (success if completed normally, error -if it failed, abort if the user interrupted). Run this bash: +if it failed, abort if the user interrupted). + +**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to +`~/.gstack/analytics/` (user config directory, not project files). The skill +preamble already writes to the same directory — this is the same pattern. +Skipping this command loses session duration and outcome data. + +Run this bash: ```bash _TEL_END=$(date +%s) diff --git a/test/gen-skill-docs.test.ts b/test/gen-skill-docs.test.ts index 0664f361..386abf5d 100644 --- a/test/gen-skill-docs.test.ts +++ b/test/gen-skill-docs.test.ts @@ -449,6 +449,7 @@ describe('telemetry', () => { expect(content).toContain('_TEL_DUR'); expect(content).toContain('SKILL_NAME'); expect(content).toContain('OUTCOME'); + expect(content).toContain('PLAN MODE EXCEPTION'); }); test('generated SKILL.md contains pending marker handling', () => {