mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-06 13:45:35 +02:00
merge: resolve conflicts with main (careful/freeze/guard/unfreeze skills)
Merged main which added /careful, /freeze, /guard, /unfreeze skills, analytics tracking, proactive suggest phrases, and dirty-tree handling. Resolved conflicts by keeping both sides: codex + new safety skills in template list, deduplicated proactive config in preamble, merged trigger phrase tests with proactive phrase tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,8 @@ description: |
|
||||
analyze, hypothesize, implement. Iron Law: no fixes without root cause.
|
||||
Use when asked to "debug this", "fix this bug", "why is this broken",
|
||||
"investigate this error", or "root cause analysis".
|
||||
Proactively suggest when the user reports errors, unexpected behavior, or
|
||||
is troubleshooting why something stopped working.
|
||||
allowed-tools:
|
||||
- Bash
|
||||
- Read
|
||||
@@ -14,6 +16,18 @@ allowed-tools:
|
||||
- Grep
|
||||
- Glob
|
||||
- AskUserQuestion
|
||||
hooks:
|
||||
PreToolUse:
|
||||
- matcher: "Edit"
|
||||
hooks:
|
||||
- type: command
|
||||
command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh"
|
||||
statusMessage: "Checking debug scope boundary..."
|
||||
- matcher: "Write"
|
||||
hooks:
|
||||
- type: command
|
||||
command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh"
|
||||
statusMessage: "Checking debug scope boundary..."
|
||||
---
|
||||
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
|
||||
<!-- Regenerate: bun run gen:skill-docs -->
|
||||
@@ -34,8 +48,13 @@ echo "BRANCH: $_BRANCH"
|
||||
echo "PROACTIVE: $_PROACTIVE"
|
||||
_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no")
|
||||
echo "LAKE_INTRO: $_LAKE_SEEN"
|
||||
mkdir -p ~/.gstack/analytics
|
||||
echo '{"skill":"debug","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
|
||||
```
|
||||
|
||||
If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills — only invoke
|
||||
them when the user explicitly asks. The user opted out of proactive suggestions.
|
||||
|
||||
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.claude/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
|
||||
|
||||
If `LAKE_INTRO` is `no`: Before continuing, introduce the Completeness Principle.
|
||||
@@ -179,6 +198,31 @@ Output: **"Root cause hypothesis: ..."** — a specific, testable claim about wh
|
||||
|
||||
---
|
||||
|
||||
## Scope Lock
|
||||
|
||||
After forming your root cause hypothesis, lock edits to the affected module to prevent scope creep.
|
||||
|
||||
```bash
|
||||
[ -x "${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh" ] && echo "FREEZE_AVAILABLE" || echo "FREEZE_UNAVAILABLE"
|
||||
```
|
||||
|
||||
**If FREEZE_AVAILABLE:** Identify the narrowest directory containing the affected files. Write it to the freeze state file:
|
||||
|
||||
```bash
|
||||
STATE_DIR="${CLAUDE_PLUGIN_DATA:-$HOME/.gstack}"
|
||||
mkdir -p "$STATE_DIR"
|
||||
echo "<detected-directory>/" > "$STATE_DIR/freeze-dir.txt"
|
||||
echo "Debug scope locked to: <detected-directory>/"
|
||||
```
|
||||
|
||||
Substitute `<detected-directory>` with the actual directory path (e.g., `src/auth/`). Tell the user: "Edits restricted to `<dir>/` for this debug session. This prevents changes to unrelated code. Run `/unfreeze` to remove the restriction."
|
||||
|
||||
If the bug spans the entire repo or the scope is genuinely unclear, skip the lock and note why.
|
||||
|
||||
**If FREEZE_UNAVAILABLE:** Skip scope lock. Edits are unrestricted.
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: Pattern Analysis
|
||||
|
||||
Check if this bug matches a known pattern:
|
||||
|
||||
@@ -6,6 +6,8 @@ description: |
|
||||
analyze, hypothesize, implement. Iron Law: no fixes without root cause.
|
||||
Use when asked to "debug this", "fix this bug", "why is this broken",
|
||||
"investigate this error", or "root cause analysis".
|
||||
Proactively suggest when the user reports errors, unexpected behavior, or
|
||||
is troubleshooting why something stopped working.
|
||||
allowed-tools:
|
||||
- Bash
|
||||
- Read
|
||||
@@ -14,6 +16,18 @@ allowed-tools:
|
||||
- Grep
|
||||
- Glob
|
||||
- AskUserQuestion
|
||||
hooks:
|
||||
PreToolUse:
|
||||
- matcher: "Edit"
|
||||
hooks:
|
||||
- type: command
|
||||
command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh"
|
||||
statusMessage: "Checking debug scope boundary..."
|
||||
- matcher: "Write"
|
||||
hooks:
|
||||
- type: command
|
||||
command: "bash ${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh"
|
||||
statusMessage: "Checking debug scope boundary..."
|
||||
---
|
||||
|
||||
{{PREAMBLE}}
|
||||
@@ -48,6 +62,31 @@ Output: **"Root cause hypothesis: ..."** — a specific, testable claim about wh
|
||||
|
||||
---
|
||||
|
||||
## Scope Lock
|
||||
|
||||
After forming your root cause hypothesis, lock edits to the affected module to prevent scope creep.
|
||||
|
||||
```bash
|
||||
[ -x "${CLAUDE_SKILL_DIR}/../freeze/bin/check-freeze.sh" ] && echo "FREEZE_AVAILABLE" || echo "FREEZE_UNAVAILABLE"
|
||||
```
|
||||
|
||||
**If FREEZE_AVAILABLE:** Identify the narrowest directory containing the affected files. Write it to the freeze state file:
|
||||
|
||||
```bash
|
||||
STATE_DIR="${CLAUDE_PLUGIN_DATA:-$HOME/.gstack}"
|
||||
mkdir -p "$STATE_DIR"
|
||||
echo "<detected-directory>/" > "$STATE_DIR/freeze-dir.txt"
|
||||
echo "Debug scope locked to: <detected-directory>/"
|
||||
```
|
||||
|
||||
Substitute `<detected-directory>` with the actual directory path (e.g., `src/auth/`). Tell the user: "Edits restricted to `<dir>/` for this debug session. This prevents changes to unrelated code. Run `/unfreeze` to remove the restriction."
|
||||
|
||||
If the bug spans the entire repo or the scope is genuinely unclear, skip the lock and note why.
|
||||
|
||||
**If FREEZE_UNAVAILABLE:** Skip scope lock. Edits are unrestricted.
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: Pattern Analysis
|
||||
|
||||
Check if this bug matches a known pattern:
|
||||
|
||||
Reference in New Issue
Block a user