| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 0.9.98 source code.tar.gz | 2026-10-21 | 3.9 MB | |
| 0.9.98 source code.zip | 2026-10-21 | 4.1 MB | |
| README.md | 2026-10-21 | 1.6 kB | |
| Totals: 3 Items | 8.1 MB | 0 | |
Claude Code writes transcripts under $CLAUDE_CONFIG_DIR/projects/ when that variable is set, and writes nothing to ~/.claude/projects/. The skills named the fixed path, so on such a machine recall and automate-me read a directory that is missing or belongs to another configuration. reflect passed that directory to find-transcript.mjs, which exited 1 with ENOENT, so the skill fell back to a digest every time. The Eval and Session pickup playbooks and show-me-your-work had the same gap. worktree-audit.mjs has read the variable since 0.9.68.
Every skill and mapping that named ~/.claude/projects/ now names ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/, the directory worktree-audit.mjs scans. The default reads $HOME, as in the SessionStart hook, because bash leaves ~ unexpanded inside double quotes. The Worktree and simulator cleanup playbook also names Claude Code's shell snapshots as ${CLAUDE_CONFIG_DIR:-$HOME/.claude}/shell-snapshots/. The five rules in tools/substitutions.json that write these paths carry the new form, so a sync derives the same text and the change adds no fork. tests/claude-config-dir.test.mjs fails when a file outside CHANGES.md and tests/ spells these paths any other way, such as ~/.claude/projects, a ~ default, or $CLAUDE_CONFIG_DIR without a default.
Verified. The new test fails on 24 lines in 12 files at 0.9.97 and passes here. With CLAUDE_CONFIG_DIR set, the 0.9.97 reflect command line exits 1 with ENOENT, and the new one prints the session's transcript. With the variable unset, the new line resolves to ~/.claude/projects/.