From efe33b76c5cb470e636eaa4d2ed5edcf1f2f3625 Mon Sep 17 00:00:00 2001 From: Bastien Chanot Date: Tue, 30 Jun 2026 18:43:54 +0200 Subject: [PATCH] =?UTF-8?q?chore(memory):=20LRN-081=20correction=20?= =?UTF-8?q?=E2=80=94=20helper=20is=20trailer-agnostic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Append-only correction bullet to LRN-081: memory-commit.sh does NOT append trailers (git commit -m verbatim, memory-commit.sh:86, no hook/template); trailers are model-composed message content; control point = the MESSAGE, not the helper. Proven by 532ae69 (bare msg → no trailers) → c09f2b2 (amended). Phrasing cleanup of the false wording (body + Index cell) deferred to /prune-memory. Claude-composed → trailers (LRN-081 rule, 3rd application). Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_017KWG7sXg94LXX1gddCGBvM --- .claude/memory/learnings.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.claude/memory/learnings.md b/.claude/memory/learnings.md index a3834b7..a4b1013 100644 --- a/.claude/memory/learnings.md +++ b/.claude/memory/learnings.md @@ -889,6 +889,7 @@ rules: - **why it matters**: memory-commit.sh + the dev flows append the trailers BY DEFAULT → committing user-authored text through them mis-credits Claude on every note/spec the user writes. A `Claude-Session:` on a 100%-user addition is traceability noise pointing at no Claude contribution. - **context**: 2026-06-30 — user's `auto-skill-dispatch` planning note committed `chore(todo)` CLEAN, no trailer (`e591510`, author Bastien Chanot); vs `chore(memory)` BLK-013/BDR-043 (`5b03ac2`) WITH trailers (Claude composed those entries). The split IS the rule. - **future application**: before committing on the user's behalf ask "did Claude COMPOSE this content?" Composed (entry/code/doc/TODO-from-intent) → trailers. Merely staging user-written text → no trailers, user-authored. Self-referential proof: this entry + the promoted TODO follow-ups = Claude-composed → trailers OK on their commit. +- **correction 2026-06-30**: the mechanism claim above ("memory-commit.sh appends trailers by default", body + Index cell) is WRONG. `memory-commit.sh` does NOT append trailers — it commits `git commit -m "$msg"` verbatim (`memory-commit.sh:86`; trailer-agnostic; no `commit.template`, no `prepare-commit-msg` hook). Trailers are MODEL-composed message content (harness git-commit convention). Control point = the composed MESSAGE, not the helper. Proven live: a bare one-liner through the helper (`532ae69`) landed with ZERO trailers → had to amend (`c09f2b2`). Teeth = consciously ADD trailers on Claude-composed commits + OMIT on user-staging; the helper enforces NEITHER. The PRACTICAL guidance above (composed→trailers, staged→none) stays correct — only the mechanism was wrong; the false entry already mis-led one commit (the bare-msg miss). DEFERRED to /prune-memory: rewrite the false "helper appends" wording in this body + the Index cell (curation = not append-only → wrong tool here); this bullet marks WHAT to clean. ## LRN-082 — Trigger-cleared on a MULTI-MOTIF exclusion lifts only the NAMED motif — re-check the others before acting - **Date**: 2026-06-30