Просмотр исходного кода

feat(capitalize): enforce English in all memory registry entries

Registries are re-read at every session start; consistency pays back
each time. Adding a single rule in CLAUDE.md § Memory registries
(authoritative) + a short reminder at the end of each CAPITALIZE
block (ship-feature, bugfix, hotfix, feat, commit-change, close).

Rationale: (1) model re-reads the registries more efficiently in a
single language, (2) lower token cost for English (model's primary
training language), (3) easier cross-project reuse. Interactive gates
may still mirror the user's language — only the written entry is
constrained.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bastien 3 недель назад
Родитель
Сommit
617865cb07
7 измененных файлов с 17 добавлено и 3 удалено
  1. 3 0
      CLAUDE.md
  2. 2 0
      agents/bugfixer.md
  3. 3 1
      agents/commit-changer.md
  4. 3 1
      agents/feater.md
  5. 2 0
      agents/hotfixer.md
  6. 1 0
      skills/close/SKILL.md
  7. 3 1
      skills/ship-feature/SKILL.md

+ 3 - 0
CLAUDE.md

@@ -67,6 +67,9 @@ Five append-only registries persist across sessions. Read all at session start.
 | `journal.md` | date heading | 3-5 lines/session — what was done, decided, blocked |
 | `journal.md` | date heading | 3-5 lines/session — what was done, decided, blocked |
 | `evals.md` | EVAL-XXX | Quality check of Claude's output + method + anomalies + action |
 | `evals.md` | EVAL-XXX | Quality check of Claude's output + method + anomalies + action |
 
 
+**Language — registries are ALWAYS written in English:**
+All persisted entries (decisions, learnings, blockers, journal, evals) must be in English. Rationale: consistent vocabulary for re-read efficiency, lower token cost, easier cross-project reuse. User-facing CAPITALIZE prompts may mirror the user's language; only the final written entry is English.
+
 **Routing — what goes where:**
 **Routing — what goes where:**
 - Choice with tradeoffs you'd defend → `decisions.md`.
 - Choice with tradeoffs you'd defend → `decisions.md`.
 - Pattern worth reusing → `learnings.md`.
 - Pattern worth reusing → `learnings.md`.

+ 2 - 0
agents/bugfixer.md

@@ -148,6 +148,8 @@ A bugfix with an understood root cause is almost always worth one entry:
    ```
    ```
 4. Append approved entries + update the Index. Add a line to today's heading in `.claude/memory/journal.md`.
 4. Append approved entries + update the Index. Add a line to today's heading in `.claude/memory/journal.md`.
 
 
+**Language rule**: written entries are ALWAYS in English (see CLAUDE.md "Memory registries" § Language). The interactive gate may mirror the user's language; the appended entries must not.
+
 If the bug was trivial and the root cause not transferable → skip with `CAPITALIZE: trivial, skip`.
 If the bug was trivial and the root cause not transferable → skip with `CAPITALIZE: trivial, skip`.
 
 
 ---
 ---

+ 3 - 1
agents/commit-changer.md

@@ -125,4 +125,6 @@ Valider ? (all / <IDs> / 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.
 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`.
+**Language rule**: written entries are ALWAYS in English (see CLAUDE.md "Memory registries" § Language). The interactive gate may mirror the user's language; the appended entries must not.
+
+If all commits are pure chore/docs/style with nothing to log → skip with `CAPITALIZE: nothing to log`.

+ 3 - 1
agents/feater.md

@@ -136,7 +136,9 @@ Valider ? (all / <IDs> / edit / skip)
 
 
 Always append a 1-line entry to today's heading in `.claude/memory/journal.md`.
 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`.
+**Language rule**: written entries are ALWAYS in English (see CLAUDE.md "Memory registries" § Language). The interactive gate may mirror the user's language; the appended entries must not.
+
+If no substantive capture candidate → skip with `CAPITALIZE: nothing to log`.
 
 
 ---
 ---
 
 

+ 2 - 0
agents/hotfixer.md

@@ -86,6 +86,8 @@ 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).
 Always append a 1-line entry to today's heading in `.claude/memory/journal.md` (even trivial hotfix — journal is timeline, not signal).
 
 
+**Language rule**: the journal line and any proposed BLK/LRN entries are ALWAYS written in English (see CLAUDE.md "Memory registries" § Language).
+
 ---
 ---
 
 
 ## RULES
 ## RULES

+ 1 - 0
skills/close/SKILL.md

@@ -136,3 +136,4 @@ Prochaine session : lire `.claude/memory/` au démarrage pour rappel.
 - Never overwrite existing entries — append-only.
 - Never overwrite existing entries — append-only.
 - If the user says `skip-all` → still write the journal line and exit.
 - If the user says `skip-all` → still write the journal line and exit.
 - If `.claude/memory/` is missing → STOP at STEP 0, do not create it here (onboard / init-project responsibility).
 - If `.claude/memory/` is missing → STOP at STEP 0, do not create it here (onboard / init-project responsibility).
+- **Language rule**: written entries are ALWAYS in English (see CLAUDE.md "Memory registries" § Language). The 3-question prompt may mirror the user's language; the appended entries must not.

+ 3 - 1
skills/ship-feature/SKILL.md

@@ -143,7 +143,9 @@ Feature shipped implies at least one design decision worth capturing. Run this b
 4. Append approved entries to the registries. Update the Index table at the top of each file.
 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`).
 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.
+**Language rule**: written entries are ALWAYS in English (see CLAUDE.md "Memory registries" § Language). The interactive gate above may mirror the user's language; the appended entries must not.
+
+If nothing substantive to log → print `CAPITALIZE: nothing substantive to log` and skip.
 
 
 ---
 ---