WIP: pre-v1.60.1.0 upgrade checkpoint — uncommitted local edits

This commit is contained in:
Benjamin D. Smith 2026-07-10 22:08:44 +10:00
parent 823aaecfb5
commit 6205b5e05b
66 changed files with 452 additions and 352 deletions

View File

@ -171,3 +171,29 @@ upstream churn per release.
upstream-owned, intentionally-tuned behaviour per the token-ceiling upstream-owned, intentionally-tuned behaviour per the token-ceiling
comment, so propose it upstream per-skill via the same `sections/` comment, so propose it upstream per-skill via the same `sections/`
mechanism rather than forking it. mechanism rather than forking it.
---
## 6. Upstream duplicate check (2026-07-05, Opus session)
Ran the check the strategy said to do first. Findings on garrytan/gstack:
- **#1572 (open) — "skill: cache preamble bash output within session to
reduce duplication"** is the closest existing issue: same preamble-duplication
concern, no PR carving the interaction-framework prose yet. Our proposal is
complementary, not a duplicate.
- Active adjacent preamble work (do NOT collide): #2001/#2022 gate
upgrade-handling prose; #1150/#1188 gate telemetry session tracking; #1982
surface failed update-checks; #1972 shrink skill descriptions (codex budget).
- No open PR implements a `sections/` carve of the preamble prose.
Verification blockers confirming proposal-first:
- `bun run skill:check` is **red on a clean `11de390b` checkout** — unrelated
cause: `.gbrain/skills/gstack-*/SKILL.md` stale under `gen:skill-docs --host
gbrain` detection. A fork can't cleanly prove Claude-host freshness in
isolation against that baseline.
- Real behaviour gate is `test:evals` (EVALS=1, live model calls) — API-gated.
Deliverable: `~/worktrees/gstack-preamble-trim/PR-PROPOSAL.md` — maintainer-ready
text to post on #1572 for buy-in before implementing. Branch `pr/preamble-trim`
sits on clean upstream; no code committed (proposal-first, per above).

View File

@ -21,7 +21,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Surfaces Surfaces
@ -460,7 +459,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -558,8 +556,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -586,7 +582,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -667,7 +662,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -1713,7 +1707,6 @@ skills ran in this session), render:
skill writes its own; if you ran one of them but no list appears here, check skill writes its own; if you ran one of them but no list appears here, check
that jq is installed and the tasks-<phase>-*.jsonl files exist._` that jq is installed and the tasks-<phase>-*.jsonl files exist._`
**STOP here and present the final state to the user.** **STOP here and present the final state to the user.**
Present as a message, then use AskUserQuestion: Present as a message, then use AskUserQuestion:

View File

@ -16,7 +16,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Runs the same prompt through Claude, Runs the same prompt through Claude,
@ -427,8 +426,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -455,7 +452,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are

View File

@ -17,7 +17,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Establishes Establishes
@ -427,8 +426,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -455,7 +452,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-artifacts-init — set up ~/.gstack/ as a git repo synced to a private # gstack-artifacts-init — set up ~/.gstack/ as a git repo synced to a private
# git host (GitHub or GitLab) so a remote gbrain can ingest your artifacts # git host (GitHub or GitLab) so a remote gbrain can ingest your artifacts
# (CEO plans, designs, /investigate reports) as a federated source. # (CEO plans, designs, /investigate reports) as a federated source.
@ -48,7 +49,7 @@ while [ $# -gt 0 ]; do
--remote) REMOTE_URL="$2"; shift 2 ;; --remote) REMOTE_URL="$2"; shift 2 ;;
--host) HOST_PREF="$2"; shift 2 ;; --host) HOST_PREF="$2"; shift 2 ;;
--url-form-supported) URL_FORM_SUPPORTED="$2"; shift 2 ;; --url-form-supported) URL_FORM_SUPPORTED="$2"; shift 2 ;;
--help|-h) sed -n '2,32p' "$0" | sed 's/^# \{0,1\}//'; exit 0 ;; --help|-h) sed -n '3,33p' "$0" | sed 's/^# \{0,1\}//'; exit 0 ;;
*) echo "Unknown flag: $1" >&2; exit 1 ;; *) echo "Unknown flag: $1" >&2; exit 1 ;;
esac esac
done done

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-brain-consumer — manage the consumer (reader) registry. # gstack-brain-consumer — manage the consumer (reader) registry.
# #
# DEPRECATED in v1.17.0.0. This binary targets a gbrain HTTP /ingest-repo # DEPRECATED in v1.17.0.0. This binary targets a gbrain HTTP /ingest-repo
@ -196,6 +197,6 @@ case "${1:-}" in
list) sub_list ;; list) sub_list ;;
remove) shift; sub_remove "$@" ;; remove) shift; sub_remove "$@" ;;
test) shift; sub_test "$@" ;; test) shift; sub_test "$@" ;;
--help|-h|"") sed -n '2,20p' "$0" | sed 's/^# \{0,1\}//' ;; --help|-h|"") sed -n '3,21p' "$0" | sed 's/^# \{0,1\}//' ;;
*) echo "Unknown subcommand: $1" >&2; exit 1 ;; *) echo "Unknown subcommand: $1" >&2; exit 1 ;;
esac esac

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-brain-restore — bootstrap a new machine from an existing brain repo. # gstack-brain-restore — bootstrap a new machine from an existing brain repo.
# #
# Usage: # Usage:

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-brain-sync — drain queue, commit allowlisted paths, push to remote. # gstack-brain-sync — drain queue, commit allowlisted paths, push to remote.
# #
# Usage: # Usage:
@ -487,7 +488,7 @@ case "${1:-}" in
--drop-queue) shift; subcmd_drop_queue "${1:-}" ;; --drop-queue) shift; subcmd_drop_queue "${1:-}" ;;
--discover-new) subcmd_discover_new ;; --discover-new) subcmd_discover_new ;;
--help|-h) --help|-h)
sed -n '2,18p' "$0" | sed 's/^# \{0,1\}//' sed -n '3,19p' "$0" | sed 's/^# \{0,1\}//'
;; ;;
*) *)
echo "Unknown subcommand: $1" >&2 echo "Unknown subcommand: $1" >&2

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-distill-free-text — Layer 8 "dream cycle" batch distiller. # gstack-distill-free-text — Layer 8 "dream cycle" batch distiller.
# #
# Reads auq-other free-text events from this project's question-log.jsonl, # Reads auq-other free-text events from this project's question-log.jsonl,
@ -37,7 +38,7 @@ case "${1:-}" in
--dry-run) MODE="dry-run" ;; --dry-run) MODE="dry-run" ;;
--status) MODE="status" ;; --status) MODE="status" ;;
--help|-h) --help|-h)
sed -n '1,/^set -euo/p' "$0" | sed 's|^# \?||' sed -n '3,/^set -euo/p' "$0" | sed 's|^# \?||'
exit 0 exit 0
;; ;;
'') ;; '') ;;

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-jsonl-merge — git merge driver for append-only JSONL files. # gstack-jsonl-merge — git merge driver for append-only JSONL files.
# #
# Usage (called by git, not by users): # Usage (called by git, not by users):

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-settings-hook — manage Claude Code hooks in ~/.claude/settings.json # gstack-settings-hook — manage Claude Code hooks in ~/.claude/settings.json
# #
# Two shapes: # Two shapes:

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/bin/bash
# /bin/bash, not env bash: Homebrew bash 5.3 heredocs >511B deadlock on macOS (512-byte pipe buffers, no F_GETPIPE_SZ)
# gstack-team-init — generate repo-level bootstrap files for team mode # gstack-team-init — generate repo-level bootstrap files for team mode
# #
# Usage: # Usage:

View File

@ -16,7 +16,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Navigate any URL, interact with Navigate any URL, interact with
@ -425,8 +424,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -453,7 +450,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are

View File

@ -17,7 +17,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Watches the live app for console errors, Watches the live app for console errors,
@ -452,7 +451,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -550,8 +548,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -578,7 +574,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -659,7 +654,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -18,7 +18,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Code review: independent diff review via Code review: independent diff review via
@ -455,7 +454,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -553,8 +551,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -581,7 +577,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -662,7 +657,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Loads the most recent Loads the most recent
@ -456,7 +455,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -554,8 +552,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -582,7 +578,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -663,7 +658,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Captures git state, decisions made, and remaining work Captures git state, decisions made, and remaining work
@ -455,7 +454,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -553,8 +551,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -581,7 +577,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -662,7 +657,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -20,7 +20,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Infrastructure-first security audit: secrets archaeology, Infrastructure-first security audit: secrets archaeology,
@ -458,7 +457,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -556,8 +554,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -584,7 +580,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -665,7 +660,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -784,7 +778,17 @@ Replace `SKILL_NAME`, `OUTCOME`, and `USED_BROWSE` before running.
Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode. Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode.
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
# /cso — Chief Security Officer Audit (v2) # /cso — Chief Security Officer Audit (v2)
@ -829,7 +833,6 @@ sections. Read a section in full before doing its step; do not work from memory.
| running the scope-dependent audit phases (Phases 2-11) selected by the resolved mode, after the Phase 0 stack detection and Phase 1 attack-surface census | `sections/audit-phases.md` | | running the scope-dependent audit phases (Phases 2-11) selected by the resolved mode, after the Phase 0 stack detection and Phase 1 attack-surface census | `sections/audit-phases.md` |
--- ---
## Important: Use the Grep tool for all code searches ## Important: Use the Grep tool for all code searches
The bash blocks throughout this skill show WHAT patterns to search for, not HOW to run them. Use Claude Code's Grep tool (which handles permissions and access correctly) rather than raw bash grep. The bash blocks are illustrative examples — do NOT copy-paste them into a terminal. Do NOT use `| head` to truncate results. The bash blocks throughout this skill show WHAT patterns to search for, not HOW to run them. Use Claude Code's Grep tool (which handles permissions and access correctly) rather than raw bash grep. The bash blocks are illustrative examples — do NOT copy-paste them into a terminal. Do NOT use `| head` to truncate results.
@ -1257,7 +1260,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "security-audits/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Security Audit: <feature name>"
tags: [security-audit, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
## Important Rules ## Important Rules

View File

@ -43,7 +43,6 @@ gbrain:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Creates DESIGN.md as your project's design source Creates DESIGN.md as your project's design source
@ -478,7 +477,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -576,8 +574,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -604,7 +600,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -685,7 +680,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -953,7 +947,17 @@ If `DESIGN_NOT_AVAILABLE`: Phase 5 falls back to the HTML preview page (still go
--- ---
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
## Prior Learnings ## Prior Learnings
@ -1216,7 +1220,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "design-systems/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Design System: <feature name>"
tags: [design-system, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
## Important Rules ## Important Rules

View File

@ -20,7 +20,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Works with approved mockups from /design-shotgun, CEO plans from /plan-ceo-review, Works with approved mockups from /design-shotgun, CEO plans from /plan-ceo-review,
@ -459,7 +458,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -557,8 +555,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -585,7 +581,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -666,7 +661,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -20,7 +20,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Iteratively fixes issues Iteratively fixes issues
@ -456,7 +455,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -554,8 +552,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -582,7 +578,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -663,7 +658,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -800,7 +794,17 @@ Replace `SKILL_NAME`, `OUTCOME`, and `USED_BROWSE` before running.
Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode. Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode.
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
# /design-review: Design Audit → Fix → Verify # /design-review: Design Audit → Fix → Verify
@ -1981,7 +1985,14 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
If the skill output is worth preserving, save it via
`gbrain put "<slug>" --content "<frontmatter + markdown>"`. Full template
(heredoc body, frontmatter shape, entity-stub instructions, throttle
handling): see `docs/gbrain-write-surfaces.md` §Save Template.
## Additional Rules (design-review specific) ## Additional Rules (design-review specific)

View File

@ -38,7 +38,6 @@ gbrain:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Standalone design exploration you can Standalone design exploration you can
@ -473,7 +472,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -571,8 +569,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -599,7 +595,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -680,7 +675,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Uses the browse tool to actually TEST the Uses the browse tool to actually TEST the
@ -458,7 +457,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -556,8 +554,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -584,7 +580,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -665,7 +660,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -18,7 +18,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
on excalidraw.com, on excalidraw.com,
@ -453,7 +452,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -551,8 +549,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -579,7 +575,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -660,7 +655,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -23,7 +23,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Uses the Diataxis framework (tutorial / how-to / reference / explanation) to produce Uses the Diataxis framework (tutorial / how-to / reference / explanation) to produce
@ -458,7 +457,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -556,8 +554,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -584,7 +580,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -665,7 +660,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Reads all project docs, cross-references the Reads all project docs, cross-references the
@ -456,7 +455,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -554,8 +552,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -582,7 +578,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -663,7 +658,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -97,23 +97,24 @@ fi
# Ask once (idempotent: if journal exists from a prior partial run, skip ask). # Ask once (idempotent: if journal exists from a prior partial run, skip ask).
if [ ! -f "$JOURNAL" ]; then if [ ! -f "$JOURNAL" ]; then
cat >&2 <<EOF # printf, not a heredoc: bash 5.3 heredocs >512B deadlock on macOS when the
# kernel grants 512-byte pipe buffers (pipe-KVA pressure; no F_GETPIPE_SZ).
[v1.27.0.0] gstack-brain has been renamed to gstack-artifacts. printf '%s\n' \
This is a clearer name for what it actually holds: CEO plans, designs, '' \
/investigate reports, retros (i.e. artifacts, not behavioral memory). ' [v1.27.0.0] gstack-brain has been renamed to gstack-artifacts.' \
' This is a clearer name for what it actually holds: CEO plans, designs,' \
This migration will: ' /investigate reports, retros (i.e. artifacts, not behavioral memory).' \
1. Rename your private GitHub/GitLab repo "$OLD_REPO_NAME" → "$NEW_REPO_NAME" '' \
2. mv ~/.gstack-brain-remote.txt → ~/.gstack-artifacts-remote.txt ' This migration will:' \
3. Rename gbrain_sync_mode → artifacts_sync_mode in ~/.gstack/config.yaml " 1. Rename your private GitHub/GitLab repo \"$OLD_REPO_NAME\" → \"$NEW_REPO_NAME\"" \
4. Update any "## GBrain Configuration" block in CLAUDE.md ' 2. mv ~/.gstack-brain-remote.txt → ~/.gstack-artifacts-remote.txt' \
5. Update gbrain federated source registration (local CLI mode) ' 3. Rename gbrain_sync_mode → artifacts_sync_mode in ~/.gstack/config.yaml' \
OR print commands for your brain admin (remote MCP mode) ' 4. Update any "## GBrain Configuration" block in CLAUDE.md' \
' 5. Update gbrain federated source registration (local CLI mode)' \
Each step is journaled so a Ctrl-C mid-flight is safe to re-run. ' OR print commands for your brain admin (remote MCP mode)' \
'' \
EOF ' Each step is journaled so a Ctrl-C mid-flight is safe to re-run.' \
'' >&2
if [ -t 0 ]; then if [ -t 0 ]; then
printf " Proceed? [Y/n/skip-for-now]: " >&2 printf " Proceed? [Y/n/skip-for-now]: " >&2
read -r REPLY || REPLY="" read -r REPLY || REPLY=""

View File

@ -70,22 +70,23 @@ is_local_engine_missing() {
} }
if is_remote_http_mcp && is_local_engine_missing; then if is_remote_http_mcp && is_local_engine_missing; then
cat <<'NOTICE' # printf, not a heredoc: bash 5.3 heredocs >512B deadlock on macOS when the
# kernel grants 512-byte pipe buffers (pipe-KVA pressure; no F_GETPIPE_SZ).
┌──────────────────────────────────────────────────────────────────┐ printf '%s\n' \
│ gstack v1.37.0.0 — split-engine gbrain │ '' \
│ │ ' ┌──────────────────────────────────────────────────────────────────┐' \
│ Symbol-aware code search is now available on this machine. │ ' │ gstack v1.37.0.0 — split-engine gbrain │' \
│ Your remote brain at gbrain MCP keeps working as today; you can │ ' │ │' \
│ add a tiny local PGLite (~30s, no accounts) for `gbrain │ ' │ Symbol-aware code search is now available on this machine. │' \
│ code-def` / `code-refs` / `code-callers` queries per worktree. │ ' │ Your remote brain at gbrain MCP keeps working as today; you can │' \
│ │ ' │ add a tiny local PGLite (~30s, no accounts) for `gbrain │' \
│ Run /setup-gbrain to opt in at Step 4.5. Or skip this notice │ ' │ code-def` / `code-refs` / `code-callers` queries per worktree. │' \
│ permanently: │ ' │ │' \
│ gstack-config set local_code_index_offered true │ ' │ Run /setup-gbrain to opt in at Step 4.5. Or skip this notice │' \
└──────────────────────────────────────────────────────────────────┘ ' │ permanently: │' \
' │ gstack-config set local_code_index_offered true │' \
NOTICE ' └──────────────────────────────────────────────────────────────────┘' \
''
fi fi
# Always touch done so we don't print again, regardless of state-match outcome. # Always touch done so we don't print again, regardless of state-match outcome.

View File

@ -19,7 +19,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Wraps existing project tools (type checker, linter, Wraps existing project tools (type checker, linter,
@ -454,7 +453,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -552,8 +550,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -580,7 +576,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -661,7 +656,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -56,7 +56,6 @@ gbrain:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Four phases: investigate, Four phases: investigate,
@ -493,7 +492,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -591,8 +589,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -619,7 +615,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -700,7 +695,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -829,7 +823,19 @@ Fixing symptoms creates whack-a-mole debugging. Every fix that doesn't address r
--- ---
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
For structured-data extraction requests ("track this", "extract from emails", "build a tracker"), route to GBrain's data-research skill instead: `gbrain call data-research`.
## Phase 1: Root Cause Investigation ## Phase 1: Root Cause Investigation
@ -1058,7 +1064,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "investigations/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Investigation: <feature name>"
tags: [investigation, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
--- ---

View File

@ -18,7 +18,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Cleans up StateServer, DebugOverlay, accessor codegen output, and Cleans up StateServer, DebugOverlay, accessor codegen output, and
@ -456,7 +455,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -554,8 +552,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -582,7 +578,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -663,7 +658,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -17,7 +17,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Connects to a real Connects to a real
@ -458,7 +457,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -556,8 +554,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -584,7 +580,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -665,7 +660,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Takes a bug found by /ios-qa, reads the source, Takes a bug found by /ios-qa, reads the source,
@ -459,7 +458,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -557,8 +555,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -585,7 +581,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -666,7 +661,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -21,7 +21,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Connects to a real iPhone via USB Connects to a real iPhone via USB
@ -462,7 +461,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -560,8 +558,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -588,7 +584,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -669,7 +664,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Updates StateServer.swift, DebugOverlay.swift, Package.swift, Updates StateServer.swift, DebugOverlay.swift, Package.swift,
@ -456,7 +455,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -554,8 +552,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -582,7 +578,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -663,7 +658,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -17,7 +17,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Merges the PR, waits for CI and deploy, Merges the PR, waits for CI and deploy,
@ -451,7 +450,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -549,8 +547,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -577,7 +573,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -658,7 +653,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -15,7 +15,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Shows which VERSION slots Shows which VERSION slots
@ -452,7 +451,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -550,8 +548,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -578,7 +574,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -659,7 +654,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Review, search, prune, and export what gstack Review, search, prune, and export what gstack
@ -454,7 +453,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -552,8 +550,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -580,7 +576,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -661,7 +656,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -950,4 +944,3 @@ Then log it:
```bash ```bash
~/.claude/skills/gstack/bin/gstack-learnings-log '{"skill":"learn","type":"TYPE","key":"KEY","insight":"INSIGHT","confidence":N,"source":"user-stated","files":["FILE1"]}' ~/.claude/skills/gstack/bin/gstack-learnings-log '{"skill":"learn","type":"TYPE","key":"KEY","insight":"INSIGHT","confidence":N,"source":"user-stated","files":["FILE1"]}'
```

View File

@ -16,7 +16,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Proper 1in margins, Proper 1in margins,
@ -462,8 +461,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -490,7 +487,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are

View File

@ -48,7 +48,6 @@ gbrain:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Startup mode: six forcing questions that expose Startup mode: six forcing questions that expose
@ -489,7 +488,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -587,8 +585,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -615,7 +611,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -696,7 +691,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -877,7 +871,17 @@ You are a **YC office hours partner**. Your job is to ensure the problem is unde
--- ---
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
## Brain Context (preflight) ## Brain Context (preflight)
@ -916,7 +920,6 @@ rm -f /tmp/.gstack-brain-context-$$.md 2>/dev/null || true
**Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`, **Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`,
`gstack/`, `concepts/` only). Personal/family/therapy content never leaks here. `gstack/`, `concepts/` only). Personal/family/therapy content never leaks here.
## Phase 1: Context Gathering ## Phase 1: Context Gathering
Understand the project and the area the user wants to change. Understand the project and the area the user wants to change.
@ -999,7 +1002,6 @@ Output: "Here's what I understand about this project and the area you want to ch
--- ---
--- ---
## Section index — Read each section when its situation applies ## Section index — Read each section when its situation applies

View File

@ -209,7 +209,28 @@ Present the reviewed design doc to the user via AskUserQuestion:
- B) Revise — specify which sections need changes (loop back to revise those sections) - B) Revise — specify which sections need changes (loop back to revise those sections)
- C) Start over — return to Phase 2 - C) Start over — return to Phase 2
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "office-hours/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Office Hours: <feature name>"
tags: [design-doc, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
## Brain Calibration Write-Back (Phase 2 / gated) ## Brain Calibration Write-Back (Phase 2 / gated)

View File

@ -15,7 +15,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Opens a visible browser window where you can watch every action in real time. Opens a visible browser window where you can watch every action in real time.
@ -451,7 +450,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -549,8 +547,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -577,7 +573,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -658,7 +653,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -15,7 +15,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
One command generates a setup key and One command generates a setup key and
@ -453,7 +452,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -551,8 +549,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -579,7 +575,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -660,7 +655,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -1043,7 +1037,6 @@ OpenClaw agents use the `exec` tool instead of `Bash`. The instruction block use
`exec curl` syntax which OpenClaw understands natively. When using `--local openclaw`, `exec curl` syntax which OpenClaw understands natively. When using `--local openclaw`,
credentials are written to `~/.openclaw/skills/gstack/browse-remote.json`. credentials are written to `~/.openclaw/skills/gstack/browse-remote.json`.
### Codex ### Codex
Codex agents can execute shell commands via `codex exec`. The instruction block's Codex agents can execute shell commands via `codex exec`. The instruction block's
@ -1069,4 +1062,3 @@ To disconnect all agents and rotate the root token:
```bash ```bash
# This invalidates ALL scoped tokens immediately # This invalidates ALL scoped tokens immediately
$B tunnel rotate $B tunnel rotate
```

View File

@ -45,7 +45,6 @@ gbrain:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Rethink the problem, find the 10-star product, Rethink the problem, find the 10-star product,
@ -483,7 +482,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -581,8 +579,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -609,7 +605,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -690,7 +685,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -1140,7 +1134,17 @@ matches a past learning, display:
This makes the compounding visible. The user should see that gstack is getting This makes the compounding visible. The user should see that gstack is getting
smarter on their codebase over time. smarter on their codebase over time.
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
## Brain Context (preflight) ## Brain Context (preflight)
@ -1177,7 +1181,6 @@ rm -f /tmp/.gstack-brain-context-$$.md 2>/dev/null || true
**Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`, **Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`,
`gstack/`, `concepts/` only). Personal/family/therapy content never leaks here. `gstack/`, `concepts/` only). Personal/family/therapy content never leaks here.
## Section index — Read each section when its situation applies ## Section index — Read each section when its situation applies
This skill is a decision-tree skeleton. The steps below point to on-demand This skill is a decision-tree skeleton. The steps below point to on-demand
@ -1444,7 +1447,6 @@ file, not from memory. If you produced the Completion Summary or wrote the revie
report without Reading that section, STOP, Read it now, and redo the review from the report without Reading that section, STOP, Read it now, and redo the review from the
source of truth. source of truth.
## EXIT PLAN MODE GATE (BLOCKING) ## EXIT PLAN MODE GATE (BLOCKING)
Before calling ExitPlanMode, run this self-check. If any item fails, do the Before calling ExitPlanMode, run this self-check. If any item fails, do the

View File

@ -828,7 +828,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "ceo-plans/<feature-slug>" --content "$(cat <<'EOF'
---
title: "CEO Plan: <feature name>"
tags: [ceo-plan, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
## Brain Calibration Write-Back (Phase 2 / gated) ## Brain Calibration Write-Back (Phase 2 / gated)

View File

@ -19,7 +19,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Rates each design dimension 0-10, explains what would make it a 10, Rates each design dimension 0-10, explains what would make it a 10,
@ -455,7 +454,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -553,8 +551,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -581,7 +577,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -662,7 +657,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -1122,7 +1116,6 @@ rm -f /tmp/.gstack-brain-context-$$.md 2>/dev/null || true
**Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`, **Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`,
`gstack/`, `concepts/` only). Personal/family/therapy content never leaks here. `gstack/`, `concepts/` only). Personal/family/therapy content never leaks here.
--- ---
## Section index — Read each section when its situation applies ## Section index — Read each section when its situation applies
@ -1134,7 +1127,6 @@ sections. Read a section in full before doing its step; do not work from memory.
| running the 7 design passes, required outputs, and review report (only after Step 0 scope is agreed) | `sections/review-sections.md` | | running the 7 design passes, required outputs, and review report (only after Step 0 scope is agreed) | `sections/review-sections.md` |
--- ---
## Step 0: Design Scope Assessment ## Step 0: Design Scope Assessment
### 0A. Initial Design Rating ### 0A. Initial Design Rating

View File

@ -531,7 +531,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "design-reviews/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Design Review: <feature name>"
tags: [design-review, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
## Brain Calibration Write-Back (Phase 2 / gated) ## Brain Calibration Write-Back (Phase 2 / gated)

View File

@ -21,7 +21,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Explores developer personas, Explores developer personas,
@ -461,7 +460,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -559,8 +557,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -587,7 +583,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -668,7 +663,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -1100,7 +1094,6 @@ rm -f /tmp/.gstack-brain-context-$$.md 2>/dev/null || true
**Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`, **Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`,
`gstack/`, `concepts/` only). Personal/family/therapy content never leaks here. `gstack/`, `concepts/` only). Personal/family/therapy content never leaks here.
--- ---
## Section index — Read each section when its situation applies ## Section index — Read each section when its situation applies
@ -1112,7 +1105,6 @@ sections. Read a section in full before doing its step; do not work from memory.
| running the 8 DX passes, required outputs, and review report (only after Step 0 investigation is complete) | `sections/review-sections.md` | | running the 8 DX passes, required outputs, and review report (only after Step 0 investigation is complete) | `sections/review-sections.md` |
--- ---
## Step 0: DX Investigation (before scoring) ## Step 0: DX Investigation (before scoring)
The core principle: **gather evidence and force decisions BEFORE scoring, not during The core principle: **gather evidence and force decisions BEFORE scoring, not during

View File

@ -769,7 +769,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "devex-reviews/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Devex Review: <feature name>"
tags: [devex-review, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
## Brain Calibration Write-Back (Phase 2 / gated) ## Brain Calibration Write-Back (Phase 2 / gated)

View File

@ -21,7 +21,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Lock in the execution plan — architecture, Lock in the execution plan — architecture,
@ -459,7 +458,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -557,8 +555,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -585,7 +581,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -666,7 +661,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -803,7 +797,17 @@ Replace `SKILL_NAME`, `OUTCOME`, and `USED_BROWSE` before running.
Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode. Skills that run plan reviews (`/plan-*-review`, `/codex review`) include the EXIT PLAN MODE GATE blocking checklist at the end of the skill, which verifies the plan file ends with `## GSTACK REVIEW REPORT` before ExitPlanMode is called. Skills that don't run plan reviews (operational skills like `/ship`, `/qa`, `/review`) typically don't operate in plan mode and have no review report to verify; this footer is a no-op for them. Writing the plan file is the one edit allowed in plan mode.
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
# Plan Review Mode # Plan Review Mode
@ -893,7 +897,6 @@ rm -f /tmp/.gstack-brain-context-$$.md 2>/dev/null || true
**Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`, **Privacy:** Salience digest is filtered by allowlist (D9 default: `projects/`,
`gstack/`, `concepts/` only). Personal/family/therapy content never leaks here. `gstack/`, `concepts/` only). Personal/family/therapy content never leaks here.
--- ---
## Section index — Read each section when its situation applies ## Section index — Read each section when its situation applies
@ -905,7 +908,6 @@ sections. Read a section in full before doing its step; do not work from memory.
| running the 4-section review, outside voice, required outputs, and review report (only after Step 0 scope is agreed) | `sections/review-sections.md` | | running the 4-section review, outside voice, required outputs, and review report (only after Step 0 scope is agreed) | `sections/review-sections.md` |
--- ---
## BEFORE YOU START: ## BEFORE YOU START:
### Design Doc Check ### Design Doc Check

View File

@ -849,7 +849,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "eng-reviews/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Eng Review: <feature name>"
tags: [eng-review, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
## Brain Calibration Write-Back (Phase 2 / gated) ## Brain Calibration Write-Back (Phase 2 / gated)

View File

@ -23,7 +23,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Review which AskUserQuestion prompts fire across gstack skills, set per-question preferences Review which AskUserQuestion prompts fire across gstack skills, set per-question preferences
@ -464,7 +463,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -562,8 +560,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -590,7 +586,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -671,7 +666,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -21,7 +21,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Walks `git log base..HEAD`, derives Walks `git log base..HEAD`, derives
@ -58,6 +57,24 @@ echo "REPO_MODE: $REPO_MODE"
_SESSION_KIND=$(~/.claude/skills/gstack/bin/gstack-session-kind 2>/dev/null || echo "interactive") _SESSION_KIND=$(~/.claude/skills/gstack/bin/gstack-session-kind 2>/dev/null || echo "interactive")
case "$_SESSION_KIND" in spawned|headless|interactive) ;; *) _SESSION_KIND="interactive" ;; esac case "$_SESSION_KIND" in spawned|headless|interactive) ;; *) _SESSION_KIND="interactive" ;; esac
echo "SESSION_KIND: $_SESSION_KIND" echo "SESSION_KIND: $_SESSION_KIND"
# Conductor host: AskUserQuestion is unreliable here (native disabled, MCP
# variant flaky), so skills render decisions as prose instead of calling the
# tool. Gated on !headless so an eval/CI run INSIDE Conductor (GSTACK_HEADLESS)
# still BLOCKs rather than rendering prose to nobody.
if [ "$_SESSION_KIND" != "headless" ] && { [ -n "${CONDUCTOR_WORKSPACE_PATH:-}" ] || [ -n "${CONDUCTOR_PORT:-}" ]; }; then
echo "CONDUCTOR_SESSION: true"
fi
_ACTIVATED=$([ -f ~/.gstack/.activated ] && echo "yes" || echo "no")
_FIRST_LOOP_SHOWN=$([ -f ~/.gstack/.first-loop-tip-shown ] && echo "yes" || echo "no")
echo "ACTIVATED: $_ACTIVATED"
echo "FIRST_LOOP_SHOWN: $_FIRST_LOOP_SHOWN"
# First-run project detection: run the detector ONLY on the first-ever skill run
# (ACTIVATED=no, interactive) so it stays off the hot path for every run after.
_FIRST_TASK=""
if [ "$_ACTIVATED" = "no" ] && [ "$_SESSION_KIND" != "headless" ]; then
_FIRST_TASK=$(~/.claude/skills/gstack/bin/gstack-first-task-detect 2>/dev/null || true)
fi
echo "FIRST_TASK: $_FIRST_TASK"
_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no") _LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no")
echo "LAKE_INTRO: $_LAKE_SEEN" echo "LAKE_INTRO: $_LAKE_SEEN"
_TEL=$(~/.claude/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true) _TEL=$(~/.claude/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true)
@ -227,6 +244,24 @@ touch ~/.gstack/.proactive-prompted
Skip if `PROACTIVE_PROMPTED` is `yes`. Skip if `PROACTIVE_PROMPTED` is `yes`.
## First-run guidance (one-time)
If `ACTIVATED` is `no` (first skill run on this machine) AND the preamble printed a non-empty `FIRST_TASK:` value that is NOT `nongit`: show ONE short, project-specific line mapped from the token, as a heads-up, then CONTINUE with whatever the user actually asked — do NOT halt their task. Map the token: `greenfield` → "Fresh repo — shape it first with `/spec` or `/office-hours`." `code_node`/`code_python`/`code_rust`/`code_go`/`code_ruby`/`code_ios` → "There's code here — `/qa` to see it work, or `/investigate` if something's off." `branch_ahead` → "Unshipped work on this branch — `/review` then `/ship`." `dirty_default` → "Uncommitted changes — `/review` before committing." `clean_default` → "Pick one: `/spec`, `/investigate`, or `/qa`." Then substitute the token you saw for TASK_TOKEN and run (best-effort), and mark activated:
```bash
~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type first_task_scaffold_shown --skill "TASK_TOKEN" --outcome shown 2>/dev/null || true
touch ~/.gstack/.activated 2>/dev/null || true
```
If `ACTIVATED` is `no` but `FIRST_TASK:` is empty or `nongit` (headless, non-git, or nothing actionable): show nothing, just run `touch ~/.gstack/.activated 2>/dev/null || true`.
Else if `ACTIVATED` is `yes` AND `FIRST_LOOP_SHOWN` is `no`: say once as a heads-up (then continue):
> Tip: gstack pays off when you complete one loop — **plan → review → ship**. A common first loop: `/office-hours` or `/spec` to shape it, `/plan-eng-review` to lock it, then `/ship`.
Then run `touch ~/.gstack/.first-loop-tip-shown 2>/dev/null || true`.
Skip this section if `ACTIVATED` and `FIRST_LOOP_SHOWN` are both `yes`.
If `HAS_ROUTING` is `no` AND `ROUTING_DECLINED` is `false` AND `PROACTIVE_PROMPTED` is `yes`: If `HAS_ROUTING` is `no` AND `ROUTING_DECLINED` is `false` AND `PROACTIVE_PROMPTED` is `yes`:
Check if a CLAUDE.md file exists in the project root. If it does not exist, create it. Check if a CLAUDE.md file exists in the project root. If it does not exist, create it.
@ -307,7 +342,9 @@ AI orchestrator (e.g., OpenClaw). In spawned sessions:
"AskUserQuestion" can resolve to two tools at runtime: the **host MCP variant** (e.g. `mcp__conductor__AskUserQuestion` — appears in your tool list when the host registers it) or the **native** Claude Code tool. "AskUserQuestion" can resolve to two tools at runtime: the **host MCP variant** (e.g. `mcp__conductor__AskUserQuestion` — appears in your tool list when the host registers it) or the **native** Claude Code tool.
**Rule:** if any `mcp__*__AskUserQuestion` variant is in your tool list, prefer it. Hosts may disable native AUQ via `--disallowedTools AskUserQuestion` (Conductor does, by default) and route through their MCP variant; calling native there silently fails. Same questions/options shape; same decision-brief format applies. **Conductor rule (read before the MCP rule):** if `CONDUCTOR_SESSION: true` was echoed by the preamble, do NOT call AskUserQuestion at all — neither native nor any `mcp__*__AskUserQuestion` variant. Render EVERY decision brief as the **prose form** below and STOP. This is proactive, not a reaction to a failure: Conductor disables native AUQ and its MCP variant is flaky (it returns `[Tool result missing due to internal error]`), so prose is the reliable path. **Auto-decide preferences still apply first:** if a `[plan-tune auto-decide] <id> → <option>` result has already surfaced for a question, proceed with that option (no prose). Because in Conductor you go straight to prose without ever calling the tool, this auto-decide-first ordering is enforced HERE, not only by the PreToolUse hook. When you render a Conductor prose brief, also capture it with `bin/gstack-question-log` (the PostToolUse capture hook never fires on a prose path, so `/plan-tune` history/learning depends on this call).
**Rule (non-Conductor):** if any `mcp__*__AskUserQuestion` variant is in your tool list, prefer it. Hosts may disable native AUQ via `--disallowedTools AskUserQuestion` (Conductor does, by default) and route through their MCP variant; calling native there silently fails. Same questions/options shape; same decision-brief format applies.
If AskUserQuestion is unavailable (no variant in your tool list) OR a call to it fails, do NOT silently auto-decide or write the decision to the plan file as a substitute. Follow the **failure fallback** below. If AskUserQuestion is unavailable (no variant in your tool list) OR a call to it fails, do NOT silently auto-decide or write the decision to the plan file as a substitute. Follow the **failure fallback** below.
@ -329,7 +366,11 @@ Tell three outcomes apart:
2. **Completeness scores per choice** — explicit `Completeness: X/10` on EACH choice (10 complete, 7 happy-path, 3 shortcut); use the kind-note when options differ in kind not coverage, but never silently drop the score. 2. **Completeness scores per choice** — explicit `Completeness: X/10` on EACH choice (10 complete, 7 happy-path, 3 shortcut); use the kind-note when options differ in kind not coverage, but never silently drop the score.
3. **The recommendation and why** — a `Recommendation: <choice> because <reason>` line plus the `(recommended)` marker on that choice. 3. **The recommendation and why** — a `Recommendation: <choice> because <reason>` line plus the `(recommended)` marker on that choice.
Layout: a `D<N>` title + a one-line note that AskUserQuestion failed and to reply with a letter; the issue ELI10; the Recommendation line; then ONE paragraph per choice carrying its `(recommended)` marker, its `Completeness: X/10`, and 2-4 sentences of reasoning — never a bare bullet list; a closing `Net:` line. Split chains / 5+ options: one prose block per per-option call, in sequence. Then STOP and wait — the user's typed answer is the decision. In plan mode this satisfies end-of-turn like a tool call. Layout: a `D<N>` title + a one-line note to reply with a letter (in Conductor this is the normal path; elsewhere it means AskUserQuestion was unavailable or errored); the issue ELI10; the Recommendation line; then ONE paragraph per choice carrying its `(recommended)` marker, its `Completeness: X/10`, and 2-4 sentences of reasoning — never a bare bullet list; a closing `Net:` line. Split chains / 5+ options: one prose block per per-option call, in sequence. Then STOP and wait — the user's typed answer is the decision. In plan mode this satisfies end-of-turn like a tool call.
**Continuation — mapping a typed reply back to a brief.** Each brief carries a stable label (`D<N>`, or `D<N>.k` in a split chain). The user references it (e.g. "3.2: B"). A bare letter maps to the single most-recent UNANSWERED brief; if more than one is open (a split chain), do NOT guess — ask which `D<N>.k` it answers. Never apply a bare letter ambiguously across a chain.
**One-way / destructive confirmations in prose.** When the decision is a one-way door (irreversible or destructive — delete, force-push, drop, overwrite), prose is a WEAKER gate than the tool, so make it stronger: require an explicit typed confirmation (the exact option letter or word), state plainly what is irreversible, and NEVER proceed on a vague, partial, or ambiguous reply — re-ask instead. Treat silence or "ok"/"sure" without the explicit choice as not-yet-confirmed.
### Format ### Format
@ -413,13 +454,12 @@ Before calling AskUserQuestion, verify:
- [ ] (recommended) label on one option (even for neutral-posture) - [ ] (recommended) label on one option (even for neutral-posture)
- [ ] Dual-scale effort labels on effort-bearing options (human / CC) - [ ] Dual-scale effort labels on effort-bearing options (human / CC)
- [ ] Net line closes the decision - [ ] Net line closes the decision
- [ ] You are calling the tool, not writing prose — unless the documented failure fallback applies (then: prose with the mandatory triad — issue ELI10, per-choice Completeness, Recommendation + `(recommended)` — and a "reply with a letter" instruction, then STOP) - [ ] You are calling the tool, not writing prose — unless `CONDUCTOR_SESSION: true` (then prose is the DEFAULT, not the tool) OR the documented failure fallback applies (then: prose with the mandatory triad — issue ELI10, per-choice Completeness, Recommendation + `(recommended)` — and a "reply with a letter" instruction, then STOP)
- [ ] Non-ASCII characters (CJK / accents) written directly, NOT \u-escaped - [ ] Non-ASCII characters (CJK / accents) written directly, NOT \u-escaped
- [ ] If you had 5+ options, you split (or batched into ≤4-groups) — did NOT drop any - [ ] If you had 5+ options, you split (or batched into ≤4-groups) — did NOT drop any
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -517,8 +557,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -545,7 +583,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -626,7 +663,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -17,7 +17,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Systematically tests a web application and produces a Systematically tests a web application and produces a
@ -454,7 +453,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -552,8 +550,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -580,7 +576,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -661,7 +656,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -20,7 +20,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Runs QA testing, Runs QA testing,
@ -460,7 +459,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -558,8 +556,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -586,7 +582,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -667,7 +662,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -843,7 +837,17 @@ branch name wherever the instructions say "the base branch" or `<default>`.
--- ---
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
# /qa: Test → Fix → Verify # /qa: Test → Fix → Verify
@ -1673,7 +1677,14 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
If the skill output is worth preserving, save it via
`gbrain put "<slug>" --content "<frontmatter + markdown>"`. Full template
(heredoc body, frontmatter shape, entity-stub instructions, throttle
handling): see `docs/gbrain-write-surfaces.md` §Save Template.
## Additional Rules (qa-specific) ## Additional Rules (qa-specific)

View File

@ -36,7 +36,6 @@ gbrain:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Analyzes commit history, work patterns, Analyzes commit history, work patterns,
@ -471,7 +470,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -569,8 +567,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -597,7 +593,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -678,7 +673,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -853,7 +847,17 @@ When the user types `/retro`, run this skill.
- `/retro global` — cross-project retro across all AI coding tools (7d default) - `/retro global` — cross-project retro across all AI coding tools (7d default)
- `/retro global 14d` — cross-project retro with explicit window - `/retro global 14d` — cross-project retro with explicit window
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
## Instructions ## Instructions
@ -1234,7 +1238,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "retros/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Retro: <feature name>"
tags: [retro, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
### Step 10: Week-over-Week Trends (if window >= 14d) ### Step 10: Week-over-Week Trends (if window >= 14d)

View File

@ -22,7 +22,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Analyzes diff against the base branch for SQL safety, LLM trust Analyzes diff against the base branch for SQL safety, LLM trust
@ -456,7 +455,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -554,8 +552,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -582,7 +578,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -663,7 +658,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -16,7 +16,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
First call on a new intent prototypes the flow First call on a new intent prototypes the flow
@ -452,7 +451,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -550,8 +548,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -578,7 +574,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -659,7 +654,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -15,7 +15,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Opens an interactive picker UI where you select which cookie domains to import. Opens an interactive picker UI where you select which cookie domains to import.
@ -421,8 +420,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -449,7 +446,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are

View File

@ -19,7 +19,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Detects your deploy Detects your deploy
@ -455,7 +454,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -553,8 +551,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -581,7 +577,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -662,7 +657,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -21,7 +21,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
One command from zero to "gbrain is running, and this agent One command from zero to "gbrain is running, and this agent
@ -454,7 +453,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -552,8 +550,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -580,7 +576,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -661,7 +656,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -22,7 +22,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Use when asked to "ship", "deploy", Use when asked to "ship", "deploy",
@ -456,7 +455,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -554,8 +552,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -582,7 +578,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -663,7 +658,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -839,7 +833,17 @@ branch name wherever the instructions say "the base branch" or `<default>`.
--- ---
## Brain Context Load
**Skip this entire section if `gbrain` is not on PATH.**
Extract 2-4 keywords from the user's request. Search the brain:
`gbrain search "<keywords>"`. Read the top 3 results with
`gbrain get_page "<slug>"`. Use that context to inform your analysis.
If `gbrain search` returns no results or any non-zero exit, proceed
without brain context. Full search/read protocol + examples:
see `docs/gbrain-write-surfaces.md` §Context Load.
# Ship: Fully Automated Ship Workflow # Ship: Fully Automated Ship Workflow

View File

@ -179,7 +179,28 @@ staleness detection: if those files are later deleted, the learning can be flagg
**Only log genuine discoveries.** Don't log obvious things. Don't log things the user **Only log genuine discoveries.** Don't log obvious things. Don't log things the user
already knows. A good test: would this insight save time in a future session? If yes, log it. already knows. A good test: would this insight save time in a future session? If yes, log it.
## Save Results to Brain
**Skip this entire section if `gbrain` is not on PATH.**
After completing this skill, save the output:
```bash
gbrain put "releases/<feature-slug>" --content "$(cat <<'EOF'
---
title: "Release: <feature name>"
tags: [release, <feature-slug>]
---
<skill output in markdown>
EOF
)"
```
Then extract person/org entities and create stub pages for each one.
Throttle errors (exit 1 with "throttle"/"rate limit"/"busy") and any
other non-zero exit are transient — don't retry inline. Full entity-stub
template, throttle handling, and backlink protocol:
see `docs/gbrain-write-surfaces.md` §Save Template.
### Refresh learnings for the headline feature on this branch ### Refresh learnings for the headline feature on this branch

View File

@ -16,7 +16,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Future /scrape calls with the same intent run Future /scrape calls with the same intent run
@ -452,7 +451,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -550,8 +548,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -578,7 +574,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -659,7 +654,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -19,7 +19,6 @@ triggers:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
Files the issue, Files the issue,
@ -453,7 +452,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -551,8 +549,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -579,7 +575,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -660,7 +655,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.
@ -1523,7 +1517,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -1621,8 +1614,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -1649,7 +1640,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -1730,7 +1720,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.

View File

@ -20,7 +20,6 @@ allowed-tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
<!-- Regenerate: bun run gen:skill-docs --> <!-- Regenerate: bun run gen:skill-docs -->
## When to invoke this skill ## When to invoke this skill
probing, native code-surface registration, capability checks, probing, native code-surface registration, capability checks,
@ -454,7 +453,6 @@ Before calling AskUserQuestion, verify:
- [ ] If you split, you checked dependencies between options before firing the chain - [ ] If you split, you checked dependencies between options before firing the chain
- [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue) - [ ] If a per-option Hold fires, you stopped the chain immediately (didn't queue)
## Artifacts Sync (skill start) ## Artifacts Sync (skill start)
```bash ```bash
@ -552,8 +550,6 @@ else
fi fi
``` ```
Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once: Privacy stop-gate: if output shows `ARTIFACTS_SYNC: off`, `artifacts_sync_mode_prompted` is `false`, and gbrain is on PATH or `gbrain doctor --fast --json` works, ask once:
> gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync? > gstack can publish your artifacts (CEO plans, designs, reports) to a private GitHub repo that GBrain indexes across machines. How much should sync?
@ -580,7 +576,6 @@ At skill END before telemetry:
"~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true "~/.claude/skills/gstack/bin/gstack-brain-sync" --once 2>/dev/null || true
``` ```
## Model-Specific Behavioral Patch (claude) ## Model-Specific Behavioral Patch (claude)
The following nudges are tuned for the claude model family. They are The following nudges are tuned for the claude model family. They are
@ -661,7 +656,6 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i
Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases.
## Completeness Principle — Boil the Ocean ## Completeness Principle — Boil the Ocean
AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut.