|
|
@@ -22,43 +22,43 @@ rules:
|
|
|
|
|
|
| ID | Date | Title | Status |
|
|
|
|----|------|-------|--------|
|
|
|
-| BDR-001 | 2026-04-22 | --help helper uniforme via hook post-start (option C) | accepted |
|
|
|
-| BDR-002 | 2026-04-23 | Restructurer tasks/ + memory + audits sous .claude/ | accepted |
|
|
|
-| BDR-003 | 2026-04-23 | Gitignore pattern wildcard + négations pour .claude/ | accepted |
|
|
|
+| BDR-001 | 2026-04-22 | Uniform --help helper via session-start hook (option C) | accepted |
|
|
|
+| BDR-002 | 2026-04-23 | Move tasks/ + introduce memory + audits under .claude/ | accepted |
|
|
|
+| BDR-003 | 2026-04-23 | Gitignore wildcard + negations pattern for .claude/ | accepted |
|
|
|
|
|
|
---
|
|
|
|
|
|
-## BDR-001 — --help helper uniforme via hook post-start (option C)
|
|
|
+## BDR-001 — Uniform --help helper via session-start hook (option C)
|
|
|
|
|
|
-- **Date** : 2026-04-22
|
|
|
-- **Statut** : accepted
|
|
|
-- **Décision** : tous les skills exposent `--help` via un snippet partagé injecté par le session-start hook, plutôt que dupliquer le helper dans chaque SKILL.md.
|
|
|
-- **Pourquoi** : 25+ skills, maintenir le même helper dans chaque fichier = drift garanti. Un point d'injection = une seule source de vérité.
|
|
|
-- **Alternatives rejetées** :
|
|
|
- - Option A (copier le helper dans chaque SKILL.md) — refusée : entropie de maintenance.
|
|
|
- - Option B (wrapper externe `/help <skill>`) — refusée : casse l'expérience "une commande = un skill".
|
|
|
-- **Référence** : commit 3968a29.
|
|
|
+- **Date**: 2026-04-22
|
|
|
+- **Status**: accepted
|
|
|
+- **Decision**: every skill exposes `--help` via a shared snippet injected by the session-start hook, rather than duplicating the helper in each SKILL.md.
|
|
|
+- **Why**: 25+ skills — keeping the same helper synced across every file guarantees drift. A single injection point = single source of truth.
|
|
|
+- **Alternatives rejected**:
|
|
|
+ - Option A (copy the helper into each SKILL.md) — rejected: maintenance entropy.
|
|
|
+ - Option B (external wrapper `/help <skill>`) — rejected: breaks the "one command = one skill" experience.
|
|
|
+- **Reference**: commit 3968a29.
|
|
|
|
|
|
-## BDR-002 — Restructurer tasks/ + memory + audits sous .claude/
|
|
|
+## BDR-002 — Move tasks/ + introduce memory + audits under .claude/
|
|
|
|
|
|
-- **Date** : 2026-04-23
|
|
|
-- **Statut** : accepted
|
|
|
-- **Décision** : migrer `./tasks/` vers `.claude/tasks/`, créer `.claude/memory/` (5 registres BDR/LRN/BLK/journal/EVAL) et `.claude/audits/` pour les fichiers AUDIT_*. Adapter skills/agents/CLAUDE.md. Intégrer un rituel de capitalisation dans les skills de complétion (ship-feature, feat, bugfix, hotfix, commit-change) + créer un skill `/close` pour le rituel de fin de session.
|
|
|
-- **Pourquoi** : regrouper tout le méta-projet (config IA + tâches + mémoire + audits) sous `.claude/` isole la gouvernance Claude du code réel. Alignement sur la doc officielle Claude Code memory. Sans intégration dans les skills, les registres resteraient vides (aspirational text).
|
|
|
-- **Alternatives rejetées** :
|
|
|
- - Laisser `./tasks/` à la racine — refusée : encombre le repo, mélange signal code / signal gouvernance.
|
|
|
- - Utiliser `.claude/agent-memory/` pour tout — refusée : `agent-memory/` a un rôle distinct (déjà utilisé par d'autres outils).
|
|
|
- - Rituel uniquement en texte aspirationnel dans CLAUDE.md — refusée : zéro garantie d'exécution, les registres resteraient vides.
|
|
|
- - Hook `Stop` pour poser les 3 questions à chaque tour — refusée : trop bruyant.
|
|
|
+- **Date**: 2026-04-23
|
|
|
+- **Status**: accepted
|
|
|
+- **Decision**: migrate `./tasks/` to `.claude/tasks/`, create `.claude/memory/` (5 registries BDR/LRN/BLK/journal/EVAL) and `.claude/audits/` for AUDIT_* files. Adapt skills/agents/CLAUDE.md. Integrate a CAPITALIZE step into completion skills (ship-feature, feat, bugfix, hotfix, commit-change) and add a `/close` skill for the session-end ritual.
|
|
|
+- **Why**: grouping all meta-project state (AI config + tasks + memory + audits) under `.claude/` isolates Claude governance from real code. Aligned with the official Claude Code memory docs. Without integration in completion skills, the registries would stay empty (aspirational text).
|
|
|
+- **Alternatives rejected**:
|
|
|
+ - Keep `./tasks/` at root — rejected: clutters the repo, mixes code signal with governance signal.
|
|
|
+ - Use `.claude/agent-memory/` for everything — rejected: `agent-memory/` has a distinct role (already used by other tools).
|
|
|
+ - Ritual as aspirational text only in CLAUDE.md — rejected: zero execution guarantee, registries would stay empty.
|
|
|
+ - `Stop` hook to ask the 3 questions every turn — rejected: too noisy.
|
|
|
|
|
|
-## BDR-003 — Gitignore pattern wildcard + négations pour `.claude/`
|
|
|
+## BDR-003 — Gitignore wildcard + negations pattern for `.claude/`
|
|
|
|
|
|
-- **Date** : 2026-04-23
|
|
|
-- **Statut** : accepted
|
|
|
-- **Décision** : utiliser `.claude/*` (wildcard match des enfants immédiats) + négations `!.claude/tasks/`, `!.claude/memory/`, etc., plutôt que `.claude/` (ignore récursif).
|
|
|
-- **Pourquoi** : quand un parent est ignoré via `.claude/`, git n'entre pas dans le dossier (pour la perf) et les négations sur les enfants sont **ignorées** — c'est documenté dans `gitignore(5)`. Avec `.claude/*`, git match chaque enfant individuellement, ce qui rend les négations actives.
|
|
|
-- **Alternatives rejetées** :
|
|
|
- - `.claude/` + `!.claude/tasks/` (naïf) — refusée : les négations n'ont aucun effet, tout reste ignoré.
|
|
|
- - Retirer `.claude/` du gitignore entièrement — refusée : `.claude/settings.local.json` et `.claude/agent-memory/` doivent rester ignorés (per-machine).
|
|
|
- - Ajouter les paths à tracker dans `.gitattributes` ou un outil externe — refusée : over-engineering, git gère nativement.
|
|
|
-- **Référence** : commit `499cd07`, `git check-ignore -v` vérifié sur 4 paths (2 trackés, 2 ignorés).
|
|
|
+- **Date**: 2026-04-23
|
|
|
+- **Status**: accepted
|
|
|
+- **Decision**: use `.claude/*` (wildcard match of immediate children) + negations `!.claude/tasks/`, `!.claude/memory/`, etc., rather than `.claude/` (recursive ignore).
|
|
|
+- **Why**: when a parent is ignored via `.claude/`, git does not descend into it (performance optimization) and negations on children are **ignored** — documented in `gitignore(5)`. With `.claude/*`, git matches each child individually, making negations active.
|
|
|
+- **Alternatives rejected**:
|
|
|
+ - `.claude/` + `!.claude/tasks/` (naive) — rejected: negations have no effect, everything stays ignored.
|
|
|
+ - Drop `.claude/` from gitignore entirely — rejected: `.claude/settings.local.json` and `.claude/agent-memory/` must stay ignored (per-machine).
|
|
|
+ - Track paths via `.gitattributes` or an external tool — rejected: over-engineering, git handles this natively.
|
|
|
+- **Reference**: commit `499cd07`, `git check-ignore -v` verified on 4 paths (2 tracked, 2 ignored).
|