From 91bea06675f4f7ed5554f3d2a82514f29d7addfd Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Thu, 19 Mar 2026 23:10:26 -0700 Subject: [PATCH] fix: plan mode exception for review log + telemetry writes (v0.9.0.1) (#234) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: plan mode exception for review log + telemetry writes Add explicit plan-mode exception notes to review log sections in all 3 plan review skill templates and the telemetry section in gen-skill-docs.ts. When Claude runs in plan mode, it self-censors bash writes — but review logging and telemetry write to ~/.gstack/ (user metadata, not project files). The preamble already writes to the same directory successfully. The exception note gives Claude a reasoning chain: safety argument, precedent, and consequence of skipping. * chore: regenerate Codex/agents SKILL.md files with plan-mode exception * chore: bump version and changelog (v0.9.0.1) Co-Authored-By: Claude Opus 4.6 * feat: community-first telemetry opt-in with anonymous fallback Default opt-in is now "Help gstack get better!" (community mode with stable device ID). If declined, offers anonymous mode as a softer alternative before fully off. * chore: regenerate SKILL.md files with community-first telemetry prompt --------- Co-authored-by: Claude Opus 4.6 --- .agents/skills/gstack-browse/SKILL.md | 31 ++++++++++++--- .../gstack-design-consultation/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack-design-review/SKILL.md | 31 ++++++++++++--- .../skills/gstack-document-release/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack-investigate/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack-office-hours/SKILL.md | 31 ++++++++++++--- .../skills/gstack-plan-ceo-review/SKILL.md | 39 +++++++++++++++---- .../skills/gstack-plan-design-review/SKILL.md | 39 +++++++++++++++---- .../skills/gstack-plan-eng-review/SKILL.md | 39 +++++++++++++++---- .agents/skills/gstack-qa-only/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack-qa/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack-retro/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack-review/SKILL.md | 31 ++++++++++++--- .../gstack-setup-browser-cookies/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack-ship/SKILL.md | 31 ++++++++++++--- .agents/skills/gstack/SKILL.md | 31 ++++++++++++--- CHANGELOG.md | 10 +++++ SKILL.md | 31 ++++++++++++--- VERSION | 2 +- browse/SKILL.md | 31 ++++++++++++--- codex/SKILL.md | 31 ++++++++++++--- design-consultation/SKILL.md | 31 ++++++++++++--- design-review/SKILL.md | 31 ++++++++++++--- document-release/SKILL.md | 31 ++++++++++++--- investigate/SKILL.md | 31 ++++++++++++--- office-hours/SKILL.md | 31 ++++++++++++--- plan-ceo-review/SKILL.md | 39 +++++++++++++++---- plan-ceo-review/SKILL.md.tmpl | 8 +++- plan-design-review/SKILL.md | 39 +++++++++++++++---- plan-design-review/SKILL.md.tmpl | 8 +++- plan-eng-review/SKILL.md | 39 +++++++++++++++---- plan-eng-review/SKILL.md.tmpl | 8 +++- qa-only/SKILL.md | 31 ++++++++++++--- qa/SKILL.md | 31 ++++++++++++--- retro/SKILL.md | 31 ++++++++++++--- review/SKILL.md | 31 ++++++++++++--- scripts/gen-skill-docs.ts | 31 ++++++++++++--- setup-browser-cookies/SKILL.md | 31 ++++++++++++--- ship/SKILL.md | 31 ++++++++++++--- test/gen-skill-docs.test.ts | 4 +- 40 files changed, 927 insertions(+), 215 deletions(-) diff --git a/.agents/skills/gstack-browse/SKILL.md b/.agents/skills/gstack-browse/SKILL.md index 08fe9f1f26bc852e3ab87b0f23d822e03ee2c3a3..6f634f1291e09ac8101283d543d5523ae600de92 100644 --- a/.agents/skills/gstack-browse/SKILL.md +++ b/.agents/skills/gstack-browse/SKILL.md @@ -58,16 +58,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -180,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/.agents/skills/gstack-design-consultation/SKILL.md b/.agents/skills/gstack-design-consultation/SKILL.md index cd81ab4ea2670738c6e24f79a36d013ff7e63034..8d018781cf4b1aa9d8490dbdc1ed430a5e03c3f6 100644 --- a/.agents/skills/gstack-design-consultation/SKILL.md +++ b/.agents/skills/gstack-design-consultation/SKILL.md @@ -59,16 +59,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -181,7 +193,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/.agents/skills/gstack-design-review/SKILL.md b/.agents/skills/gstack-design-review/SKILL.md index fa7100dbe1ac20ea314da455ceb212081fa343b0..2a7d26b23a9ee8f01b8e4958c07362f86bf4454b 100644 --- a/.agents/skills/gstack-design-review/SKILL.md +++ b/.agents/skills/gstack-design-review/SKILL.md @@ -59,16 +59,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -181,7 +193,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/.agents/skills/gstack-document-release/SKILL.md b/.agents/skills/gstack-document-release/SKILL.md index c28b034e49da6b2ab333bf2ebfe85976346da0e1..9249b0be810a693fedfb2977113f2cddae1976ff 100644 --- a/.agents/skills/gstack-document-release/SKILL.md +++ b/.agents/skills/gstack-document-release/SKILL.md @@ -57,16 +57,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -179,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/.agents/skills/gstack-investigate/SKILL.md b/.agents/skills/gstack-investigate/SKILL.md index ed8a342533641d68e6b7dcdbb72d247da595e45c..39f5910ea44a6ae01d2720217cb56e823d0f692f 100644 --- a/.agents/skills/gstack-investigate/SKILL.md +++ b/.agents/skills/gstack-investigate/SKILL.md @@ -60,16 +60,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -182,7 +194,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/.agents/skills/gstack-office-hours/SKILL.md b/.agents/skills/gstack-office-hours/SKILL.md index 78ae567078884e838f195ed083f3fb62877897f5..c843d9086a8307480ad86c4e0fc26df69c67705d 100644 --- a/.agents/skills/gstack-office-hours/SKILL.md +++ b/.agents/skills/gstack-office-hours/SKILL.md @@ -61,16 +61,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -183,7 +195,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/.agents/skills/gstack-plan-ceo-review/SKILL.md b/.agents/skills/gstack-plan-ceo-review/SKILL.md index 6cc2472b136161ef1f0330142ed32aeb4889cc44..dfb1c937de315e68d806131b1db3133ae5cf835e 100644 --- a/.agents/skills/gstack-plan-ceo-review/SKILL.md +++ b/.agents/skills/gstack-plan-ceo-review/SKILL.md @@ -60,16 +60,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -182,7 +194,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) @@ -830,7 +849,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 ~/.codex/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/.agents/skills/gstack-plan-design-review/SKILL.md b/.agents/skills/gstack-plan-design-review/SKILL.md index 531867725e1bad8ccca269bd9135e5ecd04b9707..92a5dc568218d28dcd84eea803d3c66bc9ee91f4 100644 --- a/.agents/skills/gstack-plan-design-review/SKILL.md +++ b/.agents/skills/gstack-plan-design-review/SKILL.md @@ -59,16 +59,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -181,7 +193,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) @@ -460,7 +479,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 ~/.codex/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/.agents/skills/gstack-plan-eng-review/SKILL.md b/.agents/skills/gstack-plan-eng-review/SKILL.md index 37ea990e794ea1f208d3ca510fab034723d66d7c..492bf9f83bfe35341352cdc60b0d9fafef47c960 100644 --- a/.agents/skills/gstack-plan-eng-review/SKILL.md +++ b/.agents/skills/gstack-plan-eng-review/SKILL.md @@ -58,16 +58,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -180,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) @@ -430,7 +449,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 ~/.codex/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/.agents/skills/gstack-qa-only/SKILL.md b/.agents/skills/gstack-qa-only/SKILL.md index dba7efd1fdbc22738be4df857262c78cbec9a0c1..6a6f8a7d4fe9917634bd1f596f942d23bdd39e46 100644 --- a/.agents/skills/gstack-qa-only/SKILL.md +++ b/.agents/skills/gstack-qa-only/SKILL.md @@ -57,16 +57,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -179,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/.agents/skills/gstack-qa/SKILL.md b/.agents/skills/gstack-qa/SKILL.md index 88bfc49da72aff276825eeab10bd45533de9e350..0617c447a7066b05a1084e17059fdd588ad132f8 100644 --- a/.agents/skills/gstack-qa/SKILL.md +++ b/.agents/skills/gstack-qa/SKILL.md @@ -60,16 +60,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -182,7 +194,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/.agents/skills/gstack-retro/SKILL.md b/.agents/skills/gstack-retro/SKILL.md index 057d45d5776e2bd4d4da5c9fa08dee1f56d5adf4..2a30b5273abf8b670a1f5c1bf7e696728173334b 100644 --- a/.agents/skills/gstack-retro/SKILL.md +++ b/.agents/skills/gstack-retro/SKILL.md @@ -57,16 +57,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -179,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/.agents/skills/gstack-review/SKILL.md b/.agents/skills/gstack-review/SKILL.md index 94dc0e74cb9756b5f5f0a9ae2089e9b394d00675..0253dcac28bd1aeba6031167994056d6e2ac39c7 100644 --- a/.agents/skills/gstack-review/SKILL.md +++ b/.agents/skills/gstack-review/SKILL.md @@ -56,16 +56,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -178,7 +190,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/.agents/skills/gstack-setup-browser-cookies/SKILL.md b/.agents/skills/gstack-setup-browser-cookies/SKILL.md index 1fccb626c72d0308f2f9651319a72e3b5ef0c35d..34f95391cfb5ea69cbec4808a7c4389a14da4436 100644 --- a/.agents/skills/gstack-setup-browser-cookies/SKILL.md +++ b/.agents/skills/gstack-setup-browser-cookies/SKILL.md @@ -56,16 +56,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -178,7 +190,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/.agents/skills/gstack-ship/SKILL.md b/.agents/skills/gstack-ship/SKILL.md index 8b66d09e21c8b167aeb6ed9d6f34bc6754bb8b29..da20fd2623e1713be8376003720cbb256c186c52 100644 --- a/.agents/skills/gstack-ship/SKILL.md +++ b/.agents/skills/gstack-ship/SKILL.md @@ -54,16 +54,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -176,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/.agents/skills/gstack/SKILL.md b/.agents/skills/gstack/SKILL.md index d517f861bb425584545fc8970b5d53d53c6449da..3b4f93b5261f7a1a10b78deb5b160dc069f34352 100644 --- a/.agents/skills/gstack/SKILL.md +++ b/.agents/skills/gstack/SKILL.md @@ -89,16 +89,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -211,7 +223,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/CHANGELOG.md b/CHANGELOG.md index f85beb3f6dc9ac66b4447b81ff9596a035564630..74572e225b11ea1b9a6e7fe185cce9c37ef69aa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [0.9.0.1] - 2026-03-19 + +### Changed + +- **Telemetry opt-in now defaults to community mode.** First-time prompt asks "Help gstack get better!" (community mode with stable device ID for trend tracking). If you decline, you get a second chance with anonymous mode (no unique ID, just a counter). Respects your choice either way. + +### Fixed + +- **Review logs and telemetry now persist during plan mode.** When you ran `/plan-ceo-review`, `/plan-eng-review`, or `/plan-design-review` in plan mode, the review result wasn't saved to disk — so the dashboard showed stale or missing entries even though you just completed a review. Same issue affected telemetry logging at the end of every skill. Both now work reliably in plan mode. + ## [0.9.0] - 2026-03-19 — Works on Codex, Gemini CLI, and Cursor **gstack now works on any AI agent that supports the open SKILL.md standard.** Install once, use from Claude Code, OpenAI Codex CLI, Google Gemini CLI, or Cursor. All 21 skills are available in `.agents/skills/` -- just run `./setup --host codex` or `./setup --host auto` and your agent discovers them automatically. diff --git a/SKILL.md b/SKILL.md index 1f1085e6692e6045aa255885484dbb6095ce9602..fe66b618095a1cbd84576fd80c3648dc8dbd6c83 100644 --- a/SKILL.md +++ b/SKILL.md @@ -95,16 +95,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -217,7 +229,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/VERSION b/VERSION index ac39a106c48515b621e90c028ed94c6f71bc03fa..15e36e668356fc36285277ba5a3d5c5286be13fd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.0 +0.9.0.1 diff --git a/browse/SKILL.md b/browse/SKILL.md index e8ae44500fc50dd83db3fb46d8681a01df5135da..8782ccbf566da655fefe8ec6ac9813d055bdb5af 100644 --- a/browse/SKILL.md +++ b/browse/SKILL.md @@ -64,16 +64,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -186,7 +198,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 c67acc2ce1f78e1b3ece6e53e344f97a0addac43..19a341dd6b95496683c4a87cd187d4dee2ded58c 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -65,16 +65,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -187,7 +199,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 5d70420ad6ead3bd66d1f120c5debdabd7d0ddd4..cc21fa7e46eb4055d2caf9693eecff849faeb4fd 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -69,16 +69,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -191,7 +203,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 5fdaa9897cedef1703fb094e0ebca6a6ac6b5d19..cbc0d5e87bddae42925ba79a7d05bac87a41f2e5 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -69,16 +69,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -191,7 +203,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 cf8656e453c78f1b5e04f218e8808ea8f3ed1f59..d71d5d3bea9c99879531490890d1adf047756356 100644 --- a/document-release/SKILL.md +++ b/document-release/SKILL.md @@ -66,16 +66,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -188,7 +200,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 17ef4a8b0abef689570e2a6d4805f017051e3311..eccce870c9cb121b78f8672dfaf411edb1fbe21c 100644 --- a/investigate/SKILL.md +++ b/investigate/SKILL.md @@ -79,16 +79,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -201,7 +213,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 0a2bb310439ad7e66e92c69ba44acf54c8b616fb..ff0aeafa186d3520e66d44f135690c60bf8b18df 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -70,16 +70,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -192,7 +204,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 d684ac79d4885a5f4118a5bf5048a16e19ccab20..68b234d61495777ac4abb19962bc231740f80af6 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -67,16 +67,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -189,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) @@ -837,7 +856,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 c8d33a9a2703950c68e1b234e28f353616ecd1be..87dec8e7bb778795cb34cfe71d5c0150ca359670 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 d2b4fe76cb55487536f728fa11fd6960b6afcc70..6abd6948159fa719c6282f82e9038c5ef03277c2 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -67,16 +67,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -189,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) @@ -468,7 +487,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 461fd8f70f92087ee8cac3a2f2338cdc5c73a6ed..597ff6a71ffbb5204de258b26745ea0d1d9ab8f5 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 d22ee433d05bbeb446b8decbaa5073833d378c94..45ac15d0d8c823ce35c4794d8e3f0fa5e4f75724 100644 --- a/plan-eng-review/SKILL.md +++ b/plan-eng-review/SKILL.md @@ -66,16 +66,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -188,7 +200,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 +457,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 96dfe228a349eac1d31958522245608fd71a976c..ef21a200530754a6443f70fc96f2be24915ba072 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 4242f626dcafdf1fa8a16261927438cbe870e7bc..1d2479d17377de0c1a6849814fa24a2162f1cde6 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -63,16 +63,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -185,7 +197,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 17066366839f0592e61d5c429fa9e331ebcd9e0c..92799a0d0cb83ade3f9a2da9300924bd2de708f6 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -70,16 +70,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -192,7 +204,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 7cbdd6d4c5d0dd1df8057a7e9c049ab86a150297..bc1f5f32959f9085af40184047764fb58dd33a22 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -64,16 +64,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -186,7 +198,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 86c7c768bb8d1525cb6b966bb2f25931f8c75115..013738755c503105cc4d0c447cb312aceeb3ffde 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -65,16 +65,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -187,7 +199,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 81a43bf541fc6ba31b52e761fa452f80b16af5ba..8ac36a46d9236688bd7278b3cf3b29d07ebda4d9 100644 --- a/scripts/gen-skill-docs.ts +++ b/scripts/gen-skill-docs.ts @@ -190,16 +190,28 @@ function generateTelemetryPrompt(ctx: TemplateContext): string { return `If \`TEL_PROMPTED\` is \`no\` AND \`LAKE_INTRO\` is \`yes\`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with \`gstack-config set telemetry off\`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run \`${ctx.paths.binDir}/gstack-config set telemetry anonymous\` -If B: run \`${ctx.paths.binDir}/gstack-config set telemetry off\` +If A: run \`${ctx.paths.binDir}/gstack-config set telemetry community\` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run \`${ctx.paths.binDir}/gstack-config set telemetry anonymous\` +If B→B: run \`${ctx.paths.binDir}/gstack-config set telemetry off\` Always run: \`\`\`bash @@ -320,7 +332,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 864c6c31d641f7ec8a4d132c7926e29b14db3e65..ac2d873cbe00743c6bf6010b2dd1c7673780c1be 100644 --- a/setup-browser-cookies/SKILL.md +++ b/setup-browser-cookies/SKILL.md @@ -61,16 +61,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -183,7 +195,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 be1b628cfab7ce11a59c32181dcb9f9ec6637162..a4eb4d80f5a1a8776090294bdfa7720d9ff32bd8 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -64,16 +64,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled, ask the user about telemetry. Use AskUserQuestion: -> gstack can share anonymous usage data (which skills you use, how long they take, crash info) -> to help improve the project. No code, file paths, or repo names are ever sent. +> Help gstack get better! Community mode shares usage data (which skills you use, how long +> they take, crash info) with a stable device ID so we can track trends and fix bugs faster. +> No code, file paths, or repo names are ever sent. > Change anytime with `gstack-config set telemetry off`. Options: -- A) Yes, share anonymous data (recommended) +- A) Help gstack get better! (recommended) - B) No thanks -If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` -If B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` +If A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry community` + +If B: ask a follow-up AskUserQuestion: + +> How about anonymous mode? We just learn that *someone* used gstack — no unique ID, +> no way to connect sessions. Just a counter that helps us know if anyone's out there. + +Options: +- A) Sure, anonymous is fine +- B) No thanks, fully off + +If B→A: run `~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous` +If B→B: run `~/.claude/skills/gstack/bin/gstack-config set telemetry off` Always run: ```bash @@ -186,7 +198,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 6627c5c76041f558dc9a36c6151465e6c7e300ae..49714f2a68985cfa4d2bb622176b5dafec745a00 100644 --- a/test/gen-skill-docs.test.ts +++ b/test/gen-skill-docs.test.ts @@ -742,7 +742,8 @@ describe('telemetry', () => { test('generated SKILL.md contains telemetry opt-in prompt', () => { const content = fs.readFileSync(path.join(ROOT, 'SKILL.md'), 'utf-8'); expect(content).toContain('.telemetry-prompted'); - expect(content).toContain('anonymous usage data'); + expect(content).toContain('Help gstack get better'); + expect(content).toContain('gstack-config set telemetry community'); expect(content).toContain('gstack-config set telemetry anonymous'); expect(content).toContain('gstack-config set telemetry off'); }); @@ -755,6 +756,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', () => {