mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-19 02:42:29 +08:00
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.
This commit is contained in:
9
SKILL.md
9
SKILL.md
@@ -217,7 +217,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -186,7 +186,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -187,7 +187,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -191,7 +191,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -191,7 +191,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -188,7 +188,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -201,7 +201,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -192,7 +192,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -189,7 +189,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
@@ -837,7 +844,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default.
|
|||||||
|
|
||||||
## Review Log
|
## 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
|
```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"}'
|
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-ceo-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}'
|
||||||
|
|||||||
@@ -635,7 +635,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default.
|
|||||||
|
|
||||||
## Review Log
|
## 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
|
```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"}'
|
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-ceo-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}'
|
||||||
|
|||||||
@@ -189,7 +189,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
@@ -468,7 +475,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default to
|
|||||||
|
|
||||||
## Review Log
|
## 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
|
```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"}'
|
~/.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"}'
|
||||||
|
|||||||
@@ -266,7 +266,13 @@ If any AskUserQuestion goes unanswered, note it here. Never silently default to
|
|||||||
|
|
||||||
## Review Log
|
## 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
|
```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"}'
|
~/.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"}'
|
||||||
|
|||||||
@@ -188,7 +188,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
@@ -438,7 +445,13 @@ Check the git log for this branch. If there are prior commits suggesting a previ
|
|||||||
|
|
||||||
## Review Log
|
## 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
|
```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"}'
|
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-eng-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}'
|
||||||
|
|||||||
@@ -253,7 +253,13 @@ Check the git log for this branch. If there are prior commits suggesting a previ
|
|||||||
|
|
||||||
## Review Log
|
## 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
|
```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"}'
|
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-eng-review","timestamp":"TIMESTAMP","status":"STATUS","unresolved":N,"critical_gaps":N,"mode":"MODE","commit":"COMMIT"}'
|
||||||
|
|||||||
@@ -185,7 +185,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -192,7 +192,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -186,7 +186,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -187,7 +187,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -271,7 +271,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the \`name:\` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
\`\`\`bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -183,7 +183,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -186,7 +186,14 @@ RECOMMENDATION: [what the user should do next]
|
|||||||
After the skill workflow completes (success, error, or abort), log the telemetry event.
|
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 skill name from the `name:` field in this file's YAML frontmatter.
|
||||||
Determine the outcome from the workflow result (success if completed normally, error
|
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
|
```bash
|
||||||
_TEL_END=$(date +%s)
|
_TEL_END=$(date +%s)
|
||||||
|
|||||||
@@ -449,6 +449,7 @@ describe('telemetry', () => {
|
|||||||
expect(content).toContain('_TEL_DUR');
|
expect(content).toContain('_TEL_DUR');
|
||||||
expect(content).toContain('SKILL_NAME');
|
expect(content).toContain('SKILL_NAME');
|
||||||
expect(content).toContain('OUTCOME');
|
expect(content).toContain('OUTCOME');
|
||||||
|
expect(content).toContain('PLAN MODE EXCEPTION');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('generated SKILL.md contains pending marker handling', () => {
|
test('generated SKILL.md contains pending marker handling', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user