feat(memory): introduce .claude/{tasks,memory,audits}/ governance layout

Move tasks/ into .claude/tasks/ and create .claude/memory/ with 5
persistent registries (decisions/learnings/blockers/journal/evals) plus
.claude/audits/ for audit reports. Also seed templates/memory/ for
onboarder to copy into user projects.

- tasks/TODO.md, tasks/rtk-upstream-issue.md → .claude/tasks/
- tasks/LESSONS.md deleted (empty template; superseded by learnings.md)
- .claude/memory/: 5 append-only registries with YAML schema + seed entries
- templates/memory/: 5 empty-index templates for new projects

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
bastien
2026-04-23 16:06:00 +02:00
co-authored by Claude Opus 4.7
parent 6f5f4fe5b5
commit 892de288fe
13 changed files with 334 additions and 4 deletions
+34
View File
@@ -0,0 +1,34 @@
---
type: blockers_registry
entry_prefix: BLK
schema:
id: BLK-XXX
date: YYYY-MM-DD
friction: string (what was blocked)
real_cause: string (root cause, not symptom)
solution: string (workaround or fix)
status: [open | resolved | upstream]
rules:
- Open a blocker as soon as friction > 15 min wasted. Close it with a real cause, not "moved on".
- Link to upstream issue / PR / commit when applicable.
- If cause is a bug in a dependency, set status upstream with a pointer to the tracker.
---
# Blockers registry (BLK)
## Index
| ID | Date | Friction | Status |
|----|------|---------|--------|
<!-- Append entries below. Template:
## BLK-XXX - <friction>
- **Date** : YYYY-MM-DD
- **Friction** : <ce qui était bloqué>
- **Cause réelle** : <cause racine>
- **Solution** : <workaround ou fix>
- **Statut** : open | resolved | upstream
-->
+39
View File
@@ -0,0 +1,39 @@
---
type: decisions_registry
entry_prefix: BDR
schema:
id: BDR-XXX
date: YYYY-MM-DD
title: string (<= 80 chars)
decision: string (what was chosen)
why: string (motivation, context)
alternatives: list of strings (what was rejected + why)
status: [proposed | accepted | deprecated | superseded]
supersedes: BDR-XXX (optional)
rules:
- Append-only. Never rewrite past entries - add a new one with status superseded if needed.
- One entry per non-trivial choice. Trivial = reversible in under 10 min with no cross-file impact.
- Capture why more carefully than what - the what rots, the why lasts.
---
# Decisions registry (BDR)
## Index
| ID | Date | Title | Status |
|----|------|-------|--------|
<!-- Append entries below. Template:
## BDR-XXX - <titre>
- **Date** : YYYY-MM-DD
- **Statut** : proposed | accepted | deprecated | superseded
- **Décision** : <ce qui a été choisi>
- **Pourquoi** : <motivation>
- **Alternatives rejetées** :
- Option A - <raison du rejet>
- Option B - <raison du rejet>
- **Référence** : <commit / PR / fichier>
-->
+35
View File
@@ -0,0 +1,35 @@
---
type: evals_registry
entry_prefix: EVAL
schema:
id: EVAL-XXX
date: YYYY-MM-DD
output: string (what was produced)
method: string (how it was evaluated - manual read, test, benchmark, user feedback)
anomalies: list of strings (what was wrong, missing, surprising)
action: [keep | correct | deprecate]
rules:
- Log an eval whenever you validate the quality of something Claude produced (report, audit, plan, generated code).
- Action keep - the output is fit for purpose as-is.
- Action correct - needs revision; capture what.
- Action deprecate - the approach itself is flawed; link to the decision that replaces it.
---
# Evals registry (EVAL)
## Index
| ID | Date | Output | Action |
|----|------|--------|--------|
<!-- Append entries below. Template:
## EVAL-XXX - <output>
- **Date** : YYYY-MM-DD
- **Output** : <ce qui a été produit>
- **Méthode** : <comment cela a été évalué>
- **Anomalies** : <ce qui est faux, manquant, surprenant>
- **Action** : keep | correct | deprecate
-->
+22
View File
@@ -0,0 +1,22 @@
---
type: journal
schema:
entry: one date heading per working session
body: 3-5 lines max - what was done, decided, blocked
rules:
- One heading per date (YYYY-MM-DD), not per session.
- Append at the end. Never edit past entries.
- Keep it terse. Details belong in decisions/learnings/blockers - this is a timeline only.
---
# Journal
<!-- Append new date-heading entries below. Template:
## YYYY-MM-DD
- <ligne 1>
- <ligne 2>
- <ligne 3-5 max>
-->
+32
View File
@@ -0,0 +1,32 @@
---
type: learnings_registry
entry_prefix: LRN
schema:
id: LRN-XXX
date: YYYY-MM-DD
pattern: string (what was observed, abstracted)
context: string (where/when it happened - concrete)
future_application: string (when to recall this)
rules:
- Capture learnings that apply beyond the current task.
- Abstract from the incident - the pattern is what is reusable, not the one-shot fact.
- Link to source (commit, file, PR) when possible.
---
# Learnings registry (LRN)
## Index
| ID | Date | Pattern | Applies to |
|----|------|---------|------------|
<!-- Append entries below. Template:
## LRN-XXX - <pattern abstrait>
- **Date** : YYYY-MM-DD
- **Pattern** : <ce qui a été observé, formulé de manière réutilisable>
- **Contexte** : <où et quand, concret>
- **Application future** : <quand se rappeler de ceci>
-->