- CLAUDE.md: add "Question the question" and "One clarifying question" rules to Tone and Interaction — XY problem detection, false premise checks, and explicit reframe pattern before answering - Add claude/ detail-file directory (topic docs referenced from CLAUDE.md) - Add ABOUT.md, FUTURE.md - Update memory/, scripts/, settings.yaml with accumulated session changes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
14 lines
1.1 KiB
Markdown
14 lines
1.1 KiB
Markdown
# Hooks Gotchas
|
|
|
|
## PreCompact hook no longer receives `transcript_path` in JSON input
|
|
|
|
**Symptom:** `pre-compact-backup.sh` silently skipped every run — no backup file produced, no error.
|
|
**Cause:** Claude Code's PreCompact hook JSON input no longer includes `transcript_path` (changed from older versions). The hook was reading an empty value and short-circuiting.
|
|
**Fix:** Derive the transcript path from `session_id` and `cwd` instead: `~/.claude/projects/$(echo "$cwd" | tr '/' '-')/<session_id>.jsonl`. Both fields are still present in the hook input JSON.
|
|
|
|
## Hooks fail silently under `set -e` when an input field is missing
|
|
|
|
**Symptom:** Hook appears to run (exit 0) but produces no output or side effects.
|
|
**Cause:** A missing jq-extracted field returns empty, then subsequent commands operate on the empty string and either no-op or skip conditional branches without error.
|
|
**Fix:** Always validate required inputs early in the hook: `if [ -z "$session_id" ] || [ -z "$cwd" ]; then echo "missing input" >&2; exit 1; fi`. Log failures to stderr so they surface in Claude Code hook diagnostics.
|