- pre-compact-backup.sh: derive transcript path from session_id+cwd (no longer relies on transcript_path field that Claude Code stopped providing); register each backup in tracking.json after saving - extract-transcripts.py: new script managing tracking.json — register, list, extract conversation text, mark-processed modes - list-transcripts-here.sh: thin wrapper for extract-transcripts --list using $(pwd); needed because SKILL.md bang commands reject $() substitution - install-hooks.sh: now also symlinks skill-helper scripts into ~/.claude/scripts/ via a curated SKILL_HELPERS list - Memory docs: new script-extract-transcripts.md, script-list-transcripts-here.md; updated skill-log.md, script-install-hooks.md, MEMORY.md index Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
skill: /log
Location: custom-claude-skills/skills/log/SKILL.md
Purpose
End-of-session logging. Captures key decisions, gotchas, open questions, and process notes into memory/log/YYYY-MM-DD.<HHMMSS>.md for later reflection. Run before ending a session.
Usage
/log
No arguments. Reviews the full conversation history and any pre-compaction transcript backups automatically.
How it works
- Creates
memory/log/if needed - Reviews the conversation and extracts: Summary, Decisions, Gotchas (tagged with
[topic]), Open Questions, Key Context, Process Notes - Writes a structured in-context log — empty sections are omitted
- Transcript analysis (when backups exist): Checks
~/.claude/transcript-backups/tracking.jsonfor unprocessed pre-compaction snapshots for the current project. If found, spawns a Sonnet subagent to read the JSONL backups (viaextract-transcripts.py --extract) and write a companion logHHMMSS-transcripts.md. The subagent then marks backups as processed intracking.json. Sonnet is used (not Haiku) because gotcha detection requires judgment about backtracking and failed attempts. - Prunes old logs: deletes reflected logs older than
retention_days(default 7), warns about unreflected logs older thanwarn_unreflected_days(default 14)
Dependencies
~/.claude/scripts/list-transcripts-here.sh— pre-gathers unprocessed transcript metadata (small JSON, no context overflow)~/.claude/scripts/extract-transcripts.py— reads JSONL backups and manages tracking.json (used by the Sonnet subagent)- Both scripts live in
claude-foundations/scripts/, symlinked into~/.claude/scripts/
Part of the knowledge pipeline
/log → /reflect-logs → /distill-best-practices
Raw session logs (and transcript companion logs) are input for /reflect-logs, which routes entries into topic memory files.
Gotchas
- Trivial sessions can be skipped — the skill says so if nothing worth logging happened
[topic]tags on gotchas should match existing memory file topics for routing by/reflect-logs- The Sonnet subagent writes to the project's absolute
memory/log/path; if it uses a relative path from the wrong cwd, the file ends up in the wrong place — verify on first real run - Pre-compaction backups from before the tracking system existed (files with
-autoin the name) are not intracking.jsonand won't be processed; they'll be pruned by the 30-day cleanup in the hook