Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 91bea06

Browse files
garrytanclaude
andauthored
fix: plan mode exception for review log + telemetry writes (v0.9.0.1) (garrytan#234)
* 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 <[email protected]> * 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 <[email protected]>
1 parent 8ddfab2 commit 91bea06

40 files changed

Lines changed: 927 additions & 215 deletions

File tree

.agents/skills/gstack-browse/SKILL.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o
5858
If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled,
5959
ask the user about telemetry. Use AskUserQuestion:
6060

61-
> gstack can share anonymous usage data (which skills you use, how long they take, crash info)
62-
> to help improve the project. No code, file paths, or repo names are ever sent.
61+
> Help gstack get better! Community mode shares usage data (which skills you use, how long
62+
> they take, crash info) with a stable device ID so we can track trends and fix bugs faster.
63+
> No code, file paths, or repo names are ever sent.
6364
> Change anytime with `gstack-config set telemetry off`.
6465
6566
Options:
66-
- A) Yes, share anonymous data (recommended)
67+
- A) Help gstack get better! (recommended)
6768
- B) No thanks
6869

69-
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
70-
If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
70+
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
71+
72+
If B: ask a follow-up AskUserQuestion:
73+
74+
> How about anonymous mode? We just learn that *someone* used gstack — no unique ID,
75+
> no way to connect sessions. Just a counter that helps us know if anyone's out there.
76+
77+
Options:
78+
- A) Sure, anonymous is fine
79+
- B) No thanks, fully off
80+
81+
If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
82+
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
7183

7284
Always run:
7385
```bash
@@ -180,7 +192,14 @@ RECOMMENDATION: [what the user should do next]
180192
After the skill workflow completes (success, error, or abort), log the telemetry event.
181193
Determine the skill name from the `name:` field in this file's YAML frontmatter.
182194
Determine the outcome from the workflow result (success if completed normally, error
183-
if it failed, abort if the user interrupted). Run this bash:
195+
if it failed, abort if the user interrupted).
196+
197+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to
198+
`~/.gstack/analytics/` (user config directory, not project files). The skill
199+
preamble already writes to the same directory — this is the same pattern.
200+
Skipping this command loses session duration and outcome data.
201+
202+
Run this bash:
184203

185204
```bash
186205
_TEL_END=$(date +%s)

.agents/skills/gstack-design-consultation/SKILL.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o
5959
If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled,
6060
ask the user about telemetry. Use AskUserQuestion:
6161

62-
> gstack can share anonymous usage data (which skills you use, how long they take, crash info)
63-
> to help improve the project. No code, file paths, or repo names are ever sent.
62+
> Help gstack get better! Community mode shares usage data (which skills you use, how long
63+
> they take, crash info) with a stable device ID so we can track trends and fix bugs faster.
64+
> No code, file paths, or repo names are ever sent.
6465
> Change anytime with `gstack-config set telemetry off`.
6566
6667
Options:
67-
- A) Yes, share anonymous data (recommended)
68+
- A) Help gstack get better! (recommended)
6869
- B) No thanks
6970

70-
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
71-
If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
71+
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
72+
73+
If B: ask a follow-up AskUserQuestion:
74+
75+
> How about anonymous mode? We just learn that *someone* used gstack — no unique ID,
76+
> no way to connect sessions. Just a counter that helps us know if anyone's out there.
77+
78+
Options:
79+
- A) Sure, anonymous is fine
80+
- B) No thanks, fully off
81+
82+
If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
83+
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
7284

7385
Always run:
7486
```bash
@@ -181,7 +193,14 @@ RECOMMENDATION: [what the user should do next]
181193
After the skill workflow completes (success, error, or abort), log the telemetry event.
182194
Determine the skill name from the `name:` field in this file's YAML frontmatter.
183195
Determine the outcome from the workflow result (success if completed normally, error
184-
if it failed, abort if the user interrupted). Run this bash:
196+
if it failed, abort if the user interrupted).
197+
198+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to
199+
`~/.gstack/analytics/` (user config directory, not project files). The skill
200+
preamble already writes to the same directory — this is the same pattern.
201+
Skipping this command loses session duration and outcome data.
202+
203+
Run this bash:
185204

186205
```bash
187206
_TEL_END=$(date +%s)

.agents/skills/gstack-design-review/SKILL.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o
5959
If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled,
6060
ask the user about telemetry. Use AskUserQuestion:
6161

62-
> gstack can share anonymous usage data (which skills you use, how long they take, crash info)
63-
> to help improve the project. No code, file paths, or repo names are ever sent.
62+
> Help gstack get better! Community mode shares usage data (which skills you use, how long
63+
> they take, crash info) with a stable device ID so we can track trends and fix bugs faster.
64+
> No code, file paths, or repo names are ever sent.
6465
> Change anytime with `gstack-config set telemetry off`.
6566
6667
Options:
67-
- A) Yes, share anonymous data (recommended)
68+
- A) Help gstack get better! (recommended)
6869
- B) No thanks
6970

70-
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
71-
If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
71+
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
72+
73+
If B: ask a follow-up AskUserQuestion:
74+
75+
> How about anonymous mode? We just learn that *someone* used gstack — no unique ID,
76+
> no way to connect sessions. Just a counter that helps us know if anyone's out there.
77+
78+
Options:
79+
- A) Sure, anonymous is fine
80+
- B) No thanks, fully off
81+
82+
If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
83+
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
7284

7385
Always run:
7486
```bash
@@ -181,7 +193,14 @@ RECOMMENDATION: [what the user should do next]
181193
After the skill workflow completes (success, error, or abort), log the telemetry event.
182194
Determine the skill name from the `name:` field in this file's YAML frontmatter.
183195
Determine the outcome from the workflow result (success if completed normally, error
184-
if it failed, abort if the user interrupted). Run this bash:
196+
if it failed, abort if the user interrupted).
197+
198+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to
199+
`~/.gstack/analytics/` (user config directory, not project files). The skill
200+
preamble already writes to the same directory — this is the same pattern.
201+
Skipping this command loses session duration and outcome data.
202+
203+
Run this bash:
185204

186205
```bash
187206
_TEL_END=$(date +%s)

.agents/skills/gstack-document-release/SKILL.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o
5757
If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled,
5858
ask the user about telemetry. Use AskUserQuestion:
5959

60-
> gstack can share anonymous usage data (which skills you use, how long they take, crash info)
61-
> to help improve the project. No code, file paths, or repo names are ever sent.
60+
> Help gstack get better! Community mode shares usage data (which skills you use, how long
61+
> they take, crash info) with a stable device ID so we can track trends and fix bugs faster.
62+
> No code, file paths, or repo names are ever sent.
6263
> Change anytime with `gstack-config set telemetry off`.
6364
6465
Options:
65-
- A) Yes, share anonymous data (recommended)
66+
- A) Help gstack get better! (recommended)
6667
- B) No thanks
6768

68-
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
69-
If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
69+
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
70+
71+
If B: ask a follow-up AskUserQuestion:
72+
73+
> How about anonymous mode? We just learn that *someone* used gstack — no unique ID,
74+
> no way to connect sessions. Just a counter that helps us know if anyone's out there.
75+
76+
Options:
77+
- A) Sure, anonymous is fine
78+
- B) No thanks, fully off
79+
80+
If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
81+
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
7082

7183
Always run:
7284
```bash
@@ -179,7 +191,14 @@ RECOMMENDATION: [what the user should do next]
179191
After the skill workflow completes (success, error, or abort), log the telemetry event.
180192
Determine the skill name from the `name:` field in this file's YAML frontmatter.
181193
Determine the outcome from the workflow result (success if completed normally, error
182-
if it failed, abort if the user interrupted). Run this bash:
194+
if it failed, abort if the user interrupted).
195+
196+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to
197+
`~/.gstack/analytics/` (user config directory, not project files). The skill
198+
preamble already writes to the same directory — this is the same pattern.
199+
Skipping this command loses session duration and outcome data.
200+
201+
Run this bash:
183202

184203
```bash
185204
_TEL_END=$(date +%s)

.agents/skills/gstack-investigate/SKILL.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o
6060
If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled,
6161
ask the user about telemetry. Use AskUserQuestion:
6262

63-
> gstack can share anonymous usage data (which skills you use, how long they take, crash info)
64-
> to help improve the project. No code, file paths, or repo names are ever sent.
63+
> Help gstack get better! Community mode shares usage data (which skills you use, how long
64+
> they take, crash info) with a stable device ID so we can track trends and fix bugs faster.
65+
> No code, file paths, or repo names are ever sent.
6566
> Change anytime with `gstack-config set telemetry off`.
6667
6768
Options:
68-
- A) Yes, share anonymous data (recommended)
69+
- A) Help gstack get better! (recommended)
6970
- B) No thanks
7071

71-
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
72-
If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
72+
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
73+
74+
If B: ask a follow-up AskUserQuestion:
75+
76+
> How about anonymous mode? We just learn that *someone* used gstack — no unique ID,
77+
> no way to connect sessions. Just a counter that helps us know if anyone's out there.
78+
79+
Options:
80+
- A) Sure, anonymous is fine
81+
- B) No thanks, fully off
82+
83+
If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
84+
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
7385

7486
Always run:
7587
```bash
@@ -182,7 +194,14 @@ RECOMMENDATION: [what the user should do next]
182194
After the skill workflow completes (success, error, or abort), log the telemetry event.
183195
Determine the skill name from the `name:` field in this file's YAML frontmatter.
184196
Determine the outcome from the workflow result (success if completed normally, error
185-
if it failed, abort if the user interrupted). Run this bash:
197+
if it failed, abort if the user interrupted).
198+
199+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to
200+
`~/.gstack/analytics/` (user config directory, not project files). The skill
201+
preamble already writes to the same directory — this is the same pattern.
202+
Skipping this command loses session duration and outcome data.
203+
204+
Run this bash:
186205

187206
```bash
188207
_TEL_END=$(date +%s)

.agents/skills/gstack-office-hours/SKILL.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o
6161
If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled,
6262
ask the user about telemetry. Use AskUserQuestion:
6363

64-
> gstack can share anonymous usage data (which skills you use, how long they take, crash info)
65-
> to help improve the project. No code, file paths, or repo names are ever sent.
64+
> Help gstack get better! Community mode shares usage data (which skills you use, how long
65+
> they take, crash info) with a stable device ID so we can track trends and fix bugs faster.
66+
> No code, file paths, or repo names are ever sent.
6667
> Change anytime with `gstack-config set telemetry off`.
6768
6869
Options:
69-
- A) Yes, share anonymous data (recommended)
70+
- A) Help gstack get better! (recommended)
7071
- B) No thanks
7172

72-
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
73-
If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
73+
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
74+
75+
If B: ask a follow-up AskUserQuestion:
76+
77+
> How about anonymous mode? We just learn that *someone* used gstack — no unique ID,
78+
> no way to connect sessions. Just a counter that helps us know if anyone's out there.
79+
80+
Options:
81+
- A) Sure, anonymous is fine
82+
- B) No thanks, fully off
83+
84+
If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
85+
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
7486

7587
Always run:
7688
```bash
@@ -183,7 +195,14 @@ RECOMMENDATION: [what the user should do next]
183195
After the skill workflow completes (success, error, or abort), log the telemetry event.
184196
Determine the skill name from the `name:` field in this file's YAML frontmatter.
185197
Determine the outcome from the workflow result (success if completed normally, error
186-
if it failed, abort if the user interrupted). Run this bash:
198+
if it failed, abort if the user interrupted).
199+
200+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to
201+
`~/.gstack/analytics/` (user config directory, not project files). The skill
202+
preamble already writes to the same directory — this is the same pattern.
203+
Skipping this command loses session duration and outcome data.
204+
205+
Run this bash:
187206

188207
```bash
189208
_TEL_END=$(date +%s)

.agents/skills/gstack-plan-ceo-review/SKILL.md

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,28 @@ Only run `open` if the user says yes. Always run `touch` to mark as seen. This o
6060
If `TEL_PROMPTED` is `no` AND `LAKE_INTRO` is `yes`: After the lake intro is handled,
6161
ask the user about telemetry. Use AskUserQuestion:
6262

63-
> gstack can share anonymous usage data (which skills you use, how long they take, crash info)
64-
> to help improve the project. No code, file paths, or repo names are ever sent.
63+
> Help gstack get better! Community mode shares usage data (which skills you use, how long
64+
> they take, crash info) with a stable device ID so we can track trends and fix bugs faster.
65+
> No code, file paths, or repo names are ever sent.
6566
> Change anytime with `gstack-config set telemetry off`.
6667
6768
Options:
68-
- A) Yes, share anonymous data (recommended)
69+
- A) Help gstack get better! (recommended)
6970
- B) No thanks
7071

71-
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
72-
If B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
72+
If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
73+
74+
If B: ask a follow-up AskUserQuestion:
75+
76+
> How about anonymous mode? We just learn that *someone* used gstack — no unique ID,
77+
> no way to connect sessions. Just a counter that helps us know if anyone's out there.
78+
79+
Options:
80+
- A) Sure, anonymous is fine
81+
- B) No thanks, fully off
82+
83+
If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
84+
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
7385

7486
Always run:
7587
```bash
@@ -182,7 +194,14 @@ RECOMMENDATION: [what the user should do next]
182194
After the skill workflow completes (success, error, or abort), log the telemetry event.
183195
Determine the skill name from the `name:` field in this file's YAML frontmatter.
184196
Determine the outcome from the workflow result (success if completed normally, error
185-
if it failed, abort if the user interrupted). Run this bash:
197+
if it failed, abort if the user interrupted).
198+
199+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes telemetry to
200+
`~/.gstack/analytics/` (user config directory, not project files). The skill
201+
preamble already writes to the same directory — this is the same pattern.
202+
Skipping this command loses session duration and outcome data.
203+
204+
Run this bash:
186205

187206
```bash
188207
_TEL_END=$(date +%s)
@@ -830,7 +849,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default.
830849

831850
## Review Log
832851

833-
After producing the Completion Summary above, persist the review result:
852+
After producing the Completion Summary above, persist the review result.
853+
854+
**PLAN MODE EXCEPTION — ALWAYS RUN:** This command writes review metadata to
855+
`~/.gstack/` (user config directory, not project files). The skill preamble
856+
already writes to `~/.gstack/sessions/` and `~/.gstack/analytics/` — this is
857+
the same pattern. The review dashboard depends on this data. Skipping this
858+
command breaks the review readiness dashboard in /ship.
834859

835860
```bash
836861
~/.codex/skills/gstack/bin/gstack-review-log '{"skill":"plan-ceo-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}'

0 commit comments

Comments
 (0)