diff --git a/agents/bugfixer.md b/agents/bugfixer.md index 7a227e3..f5e414b 100644 --- a/agents/bugfixer.md +++ b/agents/bugfixer.md @@ -129,6 +129,27 @@ Load `$HOME/.claude/agents/doc-syncer.md`. Execute in automatic mode: `auto-mode scope: ` +## STEP 7 — CAPITALIZE (memory registries) + +A bugfix with an understood root cause is almost always worth one entry: + +1. Propose a `BLK-XXX` entry in `.claude/memory/blockers.md` pre-filled from STEP 3 diagnosis: + - `friction` = symptom + - `real_cause` = root cause identified + - `solution` = the fix applied + - `status` = resolved +2. If the root cause exposed a **reusable pattern** (would catch the same bug elsewhere or in other projects) → also propose an `LRN-XXX` entry in `.claude/memory/learnings.md`. +3. Present as: + ``` + CAPITALIZE — proposé + BLK-XXX — — resolved + [LRN-XXX — ] (optionnel) + Valider ? (all / blockers-only / edit / skip) + ``` +4. Append approved entries + update the Index. Add a line to today's heading in `.claude/memory/journal.md`. + +If the bug was trivial and the root cause not transferable → skip with `CAPITALIZE: trivial, skip`. + --- ## RULES diff --git a/agents/commit-changer.md b/agents/commit-changer.md index 115ac3f..502908c 100644 --- a/agents/commit-changer.md +++ b/agents/commit-changer.md @@ -100,3 +100,29 @@ when the diff alone isn't self-explanatory. artificially split what was done as one action - **Sensitive files** (.env, credentials, keys): warn the user and exclude them from commits by default + +### Phase 4: Capitalize (memory registries) + +After all commits are created, inspect the set as a whole: + +- Any commit that represents a **design/architecture choice** (new dependency, + refactor with rationale, API shape decision) → propose an entry in + `.claude/memory/decisions.md` (BDR-XXX) with pre-filled alternatives. +- Any commit that resolves a **non-trivial bug with a root cause** → propose + an entry in `.claude/memory/blockers.md` (BLK-XXX, status: resolved). +- Any commit whose content taught something **reusable beyond the immediate fix** + (a pattern, a gotcha, a surprising API behaviour) → propose an entry in + `.claude/memory/learnings.md` (LRN-XXX). + +Present grouped candidates: +``` +CAPITALIZE — depuis les commits créés + [decisions.md] BDR-XXX — (ref commit ) + [blockers.md] BLK-XXX — — resolved (ref commit ) + [learnings.md] LRN-XXX — +Valider ? (all / / edit / skip) +``` + +Append approved entries + update the Index of each registry file. Add a line to today's heading in `.claude/memory/journal.md` summarising the commit batch. + +If all commits are pure chore/docs/style with nothing to log → skip with `CAPITALIZE: rien à logger`. diff --git a/agents/feater.md b/agents/feater.md index d347fca..be3e59d 100644 --- a/agents/feater.md +++ b/agents/feater.md @@ -119,6 +119,25 @@ Load `$HOME/.claude/agents/doc-syncer.md`. Execute in automatic mode: `auto-mode scope: ` +## STEP 6 — CAPITALIZE (memory registries) + +A small feature may or may not involve a design choice. Scan the work for: + +- **Non-trivial design choice** (even small: a library pick, a naming convention, a data-model tradeoff) → propose `BDR-XXX` in `.claude/memory/decisions.md` with alternatives considered. +- **Reusable pattern or gotcha encountered** → propose `LRN-XXX` in `.claude/memory/learnings.md`. + +Present the candidates grouped: +``` +CAPITALIZE — proposé + [decisions.md] BDR-XXX — (optionnel) + [learnings.md] LRN-XXX — (optionnel) +Valider ? (all / / edit / skip) +``` + +Always append a 1-line entry to today's heading in `.claude/memory/journal.md`. + +If no substantive capture candidate → skip with `CAPITALIZE: rien à logger`. + --- ## RULES diff --git a/agents/hotfixer.md b/agents/hotfixer.md index b84f694..19b4b5f 100644 --- a/agents/hotfixer.md +++ b/agents/hotfixer.md @@ -74,6 +74,18 @@ Load `$HOME/.claude/agents/doc-syncer.md`. Execute in automatic mode: `auto-mode scope: ` +## STEP 5 — CAPITALIZE (memory registries, lightweight) + +Hotfixes are often trivial (typo, config, import) — skip by default. But if the fix revealed something non-obvious: + +- Wrong default that should never have been merged → propose `LRN-XXX` in `.claude/memory/learnings.md`. +- Bug that cost real time to locate despite being "superficial" → propose `BLK-XXX` in `.claude/memory/blockers.md` (status: resolved). + +Default behaviour: `CAPITALIZE: hotfix trivial, skip` (no prompt, no output). +Ask the user only when there is an actual candidate to propose. + +Always append a 1-line entry to today's heading in `.claude/memory/journal.md` (even trivial hotfix — journal is timeline, not signal). + --- ## RULES diff --git a/skills/ship-feature/SKILL.md b/skills/ship-feature/SKILL.md index 87c4b35..d5daec0 100644 --- a/skills/ship-feature/SKILL.md +++ b/skills/ship-feature/SKILL.md @@ -119,6 +119,32 @@ Load `$HOME/.claude/agents/doc-syncer.md`. Execute in automatic mode: `auto-mode scope: ` +## STEP 9 — CAPITALIZE (memory registries) +Feature shipped implies at least one design decision worth capturing. Run this before declaring done: + +1. Scan conversation context for: + - **Design / architecture choices with rationale** → candidate for `decisions.md` (BDR-XXX). + - **Reusable patterns, surprising discoveries** → candidate for `learnings.md` (LRN-XXX). + - **Dead-ends with identified root cause** → candidate for `blockers.md` (BLK-XXX). +2. For each candidate, pre-fill a full entry (ID, date, title, body per registry schema) from conversation context. +3. Present them grouped: + ``` + CAPITALIZE — registres proposés + + [ decisions.md ] + BDR-XXX — — <1-line why> + [ learnings.md ] + LRN-XXX — + [ blockers.md ] + (aucun) + + Valider lesquels ? (all / / edit / skip) + ``` +4. Append approved entries to the registries. Update the Index table at the top of each file. +5. Append a one-line entry to `.claude/memory/journal.md` under today's date heading (`## YYYY-MM-DD`). + +If nothing substantive to log → print `CAPITALIZE: rien à logger (travail trivial)` and skip. + --- ## RULES