From 61891f2e338b5ce0d2c68e47bd8055d0b4d65c9d Mon Sep 17 00:00:00 2001 From: phernandez Date: Sun, 31 May 2026 14:07:07 -0500 Subject: [PATCH] =?UTF-8?q?fix(plugins):=20address=20PR=20review=20?= =?UTF-8?q?=E2=80=94=20scope=20captureFolder=20to=20checkpoints,=20ASCII?= =?UTF-8?q?=20echo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review feedback on #876: - Codex (P2): the SessionStart "Where to write" brief said all auto-capture goes to captureFolder, but captureFolder is only the PreCompact checkpoint folder. Narrowed it — checkpoints go to captureFolder; decisions/tasks/notes follow placementConventions (or topic folders when none are set), so proactive captures aren't dumped into sessions/ alongside checkpoints. - Claude review: replaced the em dash in the skills-source-guard echo string with a hyphen so the instruction's console output stays ASCII (CLAUDE.md compatibility). Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: phernandez --- plugins/claude-code/hooks/session-start.sh | 24 +++++++++++++++++----- plugins/claude-code/skills/setup/SKILL.md | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/plugins/claude-code/hooks/session-start.sh b/plugins/claude-code/hooks/session-start.sh index 28e94743..f838d14e 100755 --- a/plugins/claude-code/hooks/session-start.sh +++ b/plugins/claude-code/hooks/session-start.sh @@ -255,13 +255,27 @@ if shared_capped: # Trigger: a primaryProject is set (so capture is actually active — pre-compact and # proactive writes land somewhere intentional). Why: the output style tells Claude to # follow the project's placement conventions, but nothing else surfaces them. -# Outcome: Claude sees the capture folder + any stored conventions, so writes land -# where the user expects instead of being guesswork. Bounded — conventions are a -# short string by design. +# Outcome: Claude sees that session checkpoints go to captureFolder while decisions/ +# tasks/notes follow the stored conventions — so it doesn't dump everything into the +# checkpoint folder. Bounded — conventions are a short string by design. if primary_project: - placement = ["", "## Where to write", f"- Auto-capture and checkpoints go to `{capture_folder}/`."] + # captureFolder is the PreCompact *checkpoint* folder only; proactive captures + # (decisions, tasks, notes) follow placementConventions, not this folder. + placement = [ + "", + "## Where to write", + f"- Session checkpoints (the PreCompact auto-capture) go to `{capture_folder}/`.", + ] if placement_conventions: - placement.append(f"- Placement conventions: {placement_conventions}") + placement.append( + "- Decisions, tasks, and other notes follow these placement " + f"conventions: {placement_conventions}" + ) + else: + placement.append( + "- Place decisions, tasks, and notes in folders that fit their topic, " + "not the checkpoint folder." + ) lines += placement # --- First-run / config nudges --- diff --git a/plugins/claude-code/skills/setup/SKILL.md b/plugins/claude-code/skills/setup/SKILL.md index 4d316828..a793d0cc 100644 --- a/plugins/claude-code/skills/setup/SKILL.md +++ b/plugins/claude-code/skills/setup/SKILL.md @@ -150,7 +150,7 @@ copy with published versions. In that case **skip the install** and tell the use the skills are already present as source; don't run the command. Quick check: ``` -git ls-files skills/ | grep -q memory- && echo "source repo — skip install" +git ls-files skills/ | grep -q memory- && echo "source repo - skip install" ``` Otherwise, run from the project root: