diff --git a/agents/onboarder.md b/agents/onboarder.md index e0db63d..b214c6d 100644 --- a/agents/onboarder.md +++ b/agents/onboarder.md @@ -1,6 +1,6 @@ --- name: onboarder -description: Generate claude-config files (CLAUDE.md, settings.json, .claudeignore, .gitignore safety, tasks/) for an existing project. Pure config generator — no interview, no audit. Called by /onboard orchestrator. +description: Generate claude-config files (CLAUDE.md, settings.json, .claudeignore, .gitignore safety, .claude/tasks/ + .claude/memory/ + .claude/audits/) for an existing project. Pure config generator — no interview, no audit. Called by /onboard orchestrator. tools: Read, Write, Edit, Bash, Glob, Grep model: sonnet --- @@ -101,22 +101,19 @@ grep -q 'settings.local.json' ${PROJECT_ROOT}/.gitignore 2>/dev/null && echo "ha --- -## PHASE 5 — tasks/ scaffold +## PHASE 5 — .claude/tasks/ + .claude/memory/ + .claude/audits/ scaffold ```bash -ls ${PROJECT_ROOT}/tasks/LESSONS.md ${PROJECT_ROOT}/tasks/TODO.md 2>/dev/null +ls ${PROJECT_ROOT}/.claude/tasks/TODO.md ${PROJECT_ROOT}/.claude/memory/ 2>/dev/null ``` -- **tasks/TODO.md missing** → create with header: +- **.claude/tasks/TODO.md missing** → `mkdir -p ${PROJECT_ROOT}/.claude/tasks` then create with header: ``` # TODO ``` -- **tasks/LESSONS.md missing** → create with header: - ``` - # Lessons learned - - ``` +- **.claude/memory/ missing** → `mkdir -p ${PROJECT_ROOT}/.claude/memory`, then for each of the 5 registries (`decisions.md`, `learnings.md`, `blockers.md`, `journal.md`, `evals.md`): if the file does not exist in `${PROJECT_ROOT}/.claude/memory/`, copy from `~/.claude/templates/memory/.md` (YAML schema + empty index + inline template comment). If a registry file already exists → skip (do NOT overwrite). +- **.claude/audits/ missing** → `mkdir -p ${PROJECT_ROOT}/.claude/audits` (empty — populated later by `/onboard` audit phase). **Do NOT overwrite existing content.** @@ -144,8 +141,13 @@ FILES WRITTEN: ✅ .claude/settings.json ✅ .claudeignore ✅ .gitignore (created | updated | unchanged) - ✅ tasks/TODO.md (created | unchanged) - ✅ tasks/LESSONS.md (created | unchanged) + ✅ .claude/tasks/TODO.md (created | unchanged) + ✅ .claude/memory/decisions.md (created | unchanged) + ✅ .claude/memory/learnings.md (created | unchanged) + ✅ .claude/memory/blockers.md (created | unchanged) + ✅ .claude/memory/journal.md (created | unchanged) + ✅ .claude/memory/evals.md (created | unchanged) + ✅ .claude/audits/ (created | unchanged) [✅ ROADMAP.md] (if generate_roadmap) ``` diff --git a/lib/project-archetypes/dotfiles-meta.md b/lib/project-archetypes/dotfiles-meta.md index c42aae6..58010db 100644 --- a/lib/project-archetypes/dotfiles-meta.md +++ b/lib/project-archetypes/dotfiles-meta.md @@ -111,5 +111,7 @@ skills/ (skills custom) hooks/ (hooks projet, pas git) templates/ (templates config fournis) lib/ (helpers shell) -tasks/ +.claude/tasks/ +.claude/memory/ +.claude/audits/ ``` diff --git a/skills/init-project/SKILL.md b/skills/init-project/SKILL.md index 0c2a485..3cac6c5 100644 --- a/skills/init-project/SKILL.md +++ b/skills/init-project/SKILL.md @@ -57,7 +57,7 @@ Changes → back to STEP 3. Approved → continue. ## STEP 5 — SCAFFOLD Load `$HOME/.claude/agents/scaffolder.md`. Pass: BRIEF + DESIGN + `~/.claude/templates/project-CLAUDE.md` + `~/.claude/CLAUDE.md`. -Creates: CLAUDE.md, settings, structure, config, empty entry points, .gitignore, .env.example, tasks/TODO.md, tasks/LESSONS.md. NO README, NO features. +Creates: CLAUDE.md, settings, structure, config, empty entry points, .gitignore, .env.example, .claude/tasks/TODO.md, .claude/memory/{decisions,learnings,blockers,journal,evals}.md, .claude/audits/. NO README, NO features. Verify: `git init` + build passes. ## STEP 5b — CREATE README diff --git a/skills/onboard/SKILL.md b/skills/onboard/SKILL.md index 11c3861..b7c5e85 100644 --- a/skills/onboard/SKILL.md +++ b/skills/onboard/SKILL.md @@ -1,6 +1,6 @@ --- name: onboard -description: Onboard an existing project — detects archetype, installs claude-config, runs full audit (dette/SEO-GEO/UI-UX/perf/sécu/a11y/doc), produces improvement plan in ./tasks/. Use on repos not created via /init-project. +description: Onboard an existing project — detects archetype, installs claude-config, runs full audit (dette/SEO-GEO/UI-UX/perf/sécu/a11y/doc), produces improvement plan in .claude/audits/ + .claude/tasks/. Use on repos not created via /init-project. argument-hint: [optional hints: "Python FastAPI" | "add gsd" | "Next.js monorepo" | "force-archetype:wordpress"] disable-model-invocation: true allowed-tools: Read, Write, Edit, Bash, Glob, Grep @@ -96,7 +96,7 @@ L'agent génère : - `.claude/settings.json` - `.claudeignore` - `.gitignore` (safety check) -- `tasks/TODO.md`, `tasks/LESSONS.md` +- `.claude/tasks/TODO.md`, `.claude/memory/{decisions,learnings,blockers,journal,evals}.md` - **Pas encore** `ROADMAP.md` (décision STEP 9) Si `CLAUDE.md` existe déjà : lire son contenu, ne PAS écraser — fusionner après STEP 3. @@ -219,7 +219,7 @@ grep -q '^\.onboard-audit/' .gitignore 2>/dev/null || \ printf '\n# onboard audit raw outputs (consumed by /onboard STEP 7)\n.onboard-audit/\n' >> .gitignore ``` -Ce dossier contient les sorties brutes des audits (L3a+L3b). STEP 7 (L4) les synthétise vers `tasks/`. Peut être supprimé après L4 sans perte. +Ce dossier contient les sorties brutes des audits (L3a+L3b). STEP 7 (L4) les synthétise vers `.claude/audits/` (rapports) et `.claude/tasks/` (backlog). Peut être supprimé après L4 sans perte. ### Injection contexte archétype @@ -677,25 +677,25 @@ done --- -## STEP 7 — SYNTHÈSE dans `tasks/` +## STEP 7 — SYNTHÈSE dans `.claude/audits/` -À partir des rapports bruts dans `.onboard-audit/`, générer 4 fichiers structurés dans `tasks/`. +À partir des rapports bruts dans `.onboard-audit/`, générer 4 fichiers structurés dans `.claude/audits/`. Spawn un subagent synthétiseur (isolé, chargé uniquement du contenu de `.onboard-audit/`) : ``` Agent( subagent_type="general-purpose", - description="Onboard — synthèse vers tasks/", + description="Onboard — synthèse vers .claude/audits/", prompt=""" Lire tous les fichiers de /.onboard-audit/ : - analyze.md, code-clean.md, cso.md, doc.md (toujours) - seo.md, geo.md, design.md, perf.md, a11y.md (si présents) Contexte : archetype=, public=, stack=, brief_interview=. - Produire 4 fichiers dans /tasks/ : + Produire 4 fichiers dans /.claude/audits/ : - ═══ 1. tasks/ONBOARD_REPORT.md — synthèse exécutive ═══ + ═══ 1. .claude/audits/ONBOARD_REPORT.md — synthèse exécutive ═══ Structure : # Onboard Report — ## Profile @@ -714,12 +714,12 @@ Agent( | design | ... | perf | ... | a11y | ... - ## Top 5 priorités (choisies depuis AUDIT_ISSUES par score sévérité × impact projet) + ## Top 5 priorités (choisies depuis .claude/audits/AUDIT_ISSUES.md par score sévérité × impact projet) 1. [P0 Critique] 2. ... ## Prochaines étapes (pointeurs vers les 3 autres fichiers) - ═══ 2. tasks/AUDIT_GOOD.md — ce qui va ═══ + ═══ 2. .claude/audits/AUDIT_GOOD.md — ce qui va ═══ Inventaire positif par domaine. Ce qu'il faut PROTÉGER en modifiant le reste. Structure: # Audit — Ce qui va @@ -729,7 +729,7 @@ Agent( - ## [domaine par domaine] - ═══ 3. tasks/AUDIT_ISSUES.md — ce qui ne va pas ═══ + ═══ 3. .claude/audits/AUDIT_ISSUES.md — ce qui ne va pas ═══ Listing par sévérité descendante (Critique → Basse). Structure: # Audit — Ce qui ne va pas @@ -744,7 +744,7 @@ Agent( ## Basse Ne pas inventer, ne citer QUE ce qui est dans .onboard-audit/. - ═══ 4. tasks/AUDIT_PROPOSALS.md — propositions ═══ + ═══ 4. .claude/audits/AUDIT_PROPOSALS.md — propositions ═══ Pour CHAQUE issue Critique et Haute du fichier ISSUES : proposer au minimum 2 options, avec tradeoffs. Pour les issues Moyennes : 1 option suffit. Structure: @@ -774,7 +774,7 @@ Agent( ) ``` -Vérifier que les 4 fichiers `tasks/ONBOARD_REPORT.md`, `tasks/AUDIT_GOOD.md`, `tasks/AUDIT_ISSUES.md`, `tasks/AUDIT_PROPOSALS.md` existent et sont non vides. +Vérifier que les 4 fichiers `.claude/audits/ONBOARD_REPORT.md`, `.claude/audits/AUDIT_GOOD.md`, `.claude/audits/AUDIT_ISSUES.md`, `.claude/audits/AUDIT_PROPOSALS.md` existent et sont non vides. --- @@ -789,7 +789,7 @@ Archétype: Stack: Scores: dette: · sécu: · doc: [· seo: · geo: · design: · perf: · a11y:] -📂 Fichiers produits dans tasks/ : +📂 Fichiers produits dans .claude/audits/ : - ONBOARD_REPORT.md (synthèse exécutive) - AUDIT_GOOD.md (ce qui va) - AUDIT_ISSUES.md (ce qui ne va pas, par sévérité) @@ -802,13 +802,13 @@ TOP 5 PRIORITÉS : 4. [P1 Haute] 5. [P2 Moyenne] -Prochaine étape : générer tasks/TODO.md depuis AUDIT_PROPOSALS.md approuvé. +Prochaine étape : générer .claude/tasks/TODO.md depuis .claude/audits/AUDIT_PROPOSALS.md approuvé. Options : A) Lire d'abord les 4 fichiers, je reviens te le dire (STOP) - B) Tout est OK, génère TODO.md depuis toutes les propositions recommandées - C) Je veux éditer AUDIT_PROPOSALS.md avant de générer TODO.md (indiquer ce à changer) - D) Réduire le scope — ne garder que P0 Critique dans TODO.md + B) Tout est OK, génère .claude/tasks/TODO.md depuis toutes les propositions recommandées + C) Je veux éditer .claude/audits/AUDIT_PROPOSALS.md avant de générer .claude/tasks/TODO.md (indiquer ce à changer) + D) Réduire le scope — ne garder que P0 Critique dans .claude/tasks/TODO.md E) Abort — je n'utilise pas le backlog auto Choix ? (A / B / C / D / E) @@ -818,15 +818,15 @@ Choix ? (A / B / C / D / E) - **A** → stop ici, l'utilisateur relira et reviendra avec `/onboard continue`. - **B** → continuer STEP 9 avec toutes les recommandations. -- **C** → demander les changements spécifiques, les appliquer dans AUDIT_PROPOSALS.md, puis re-présenter la gate. +- **C** → demander les changements spécifiques, les appliquer dans .claude/audits/AUDIT_PROPOSALS.md, puis re-présenter la gate. - **D** → continuer STEP 9 avec seulement les P0. -- **E** → arrêter sans générer TODO.md, print "Onboard rapport figé dans tasks/ — tu peux t'en servir à la main ensuite." +- **E** → arrêter sans générer .claude/tasks/TODO.md, print "Onboard rapport figé dans .claude/audits/ — tu peux t'en servir à la main ensuite." --- -## STEP 9 — BACKLOG → tasks/TODO.md +## STEP 9 — BACKLOG → .claude/tasks/TODO.md -Lire `tasks/AUDIT_PROPOSALS.md` (avec les "Recommandations" sélectionnées par l'utilisateur). Pour chaque proposition recommandée, générer une entrée dans `tasks/TODO.md` : +Lire `.claude/audits/AUDIT_PROPOSALS.md` (avec les "Recommandations" sélectionnées par l'utilisateur). Pour chaque proposition recommandée, générer une entrée dans `.claude/tasks/TODO.md` : Format : ``` @@ -838,7 +838,7 @@ Format : ## P0 — Critique - [ ] [P0] [/hotfix] — Fichiers: - Source: AUDIT_PROPOSALS.md § "" + Source: .claude/audits/AUDIT_PROPOSALS.md § "" Option recommandée: - [ ] [P0] [/bugfix] — Fichiers: ... @@ -871,7 +871,7 @@ Format : | Audit SEO/GEO à re-lancer après corrections | `/seo` ou `/geo` | | Audit docs à re-sync après changement | `/doc` | -Ne PAS écraser `tasks/TODO.md` s'il contient déjà du contenu utilisateur : append avec un séparateur : +Ne PAS écraser `.claude/tasks/TODO.md` s'il contient déjà du contenu utilisateur : append avec un séparateur : ``` @@ -883,8 +883,8 @@ Ne PAS écraser `tasks/TODO.md` s'il contient déjà du contenu utilisateur : ap Print : ``` -✅ tasks/TODO.md mis à jour — tâches ajoutées (///) -Pour démarrer : lire tasks/TODO.md, choisir une tâche P0, lancer le /skill indiqué. +✅ .claude/tasks/TODO.md mis à jour — tâches ajoutées (///) +Pour démarrer : lire .claude/tasks/TODO.md, choisir une tâche P0, lancer le /skill indiqué. ``` --- @@ -912,7 +912,7 @@ Pour démarrer : lire tasks/TODO.md, choisir une tâche P0, lancer le /skill ind ONBOARD COMPLETE: ARCHETYPE : (confiance: ) STACK : -CONFIG : ✅ CLAUDE.md, settings.json, .claudeignore, tasks/ +CONFIG : ✅ CLAUDE.md, settings.json, .claudeignore, .claude/{tasks,memory,audits}/ CTX7 CACHE : ✅ [libs] | ⚠️ not installed | — N/A GRAPHIFY : ✅ graphify-out/ | ⚠️ not installed | — skipped (simple) AUDITS : @@ -925,15 +925,15 @@ AUDITS : ✅ accessibilité (.onboard-audit/a11y.md) [si frontend] SYNTHÈSE : - ✅ tasks/ONBOARD_REPORT.md (exécutif) - ✅ tasks/AUDIT_GOOD.md - ✅ tasks/AUDIT_ISSUES.md (par sévérité) - ✅ tasks/AUDIT_PROPOSALS.md (options + tradeoffs) - ✅ tasks/TODO.md (backlog priorisé avec skill recommandé) + ✅ .claude/audits/ONBOARD_REPORT.md (exécutif) + ✅ .claude/audits/AUDIT_GOOD.md + ✅ .claude/audits/AUDIT_ISSUES.md (par sévérité) + ✅ .claude/audits/AUDIT_PROPOSALS.md (options + tradeoffs) + ✅ .claude/tasks/TODO.md (backlog priorisé avec skill recommandé) NEXT STEPS : - 1. Ouvrir tasks/ONBOARD_REPORT.md — overview complète - 2. Démarrer par la première tâche P0 de tasks/TODO.md avec le skill indiqué + 1. Ouvrir .claude/audits/ONBOARD_REPORT.md — overview complète + 2. Démarrer par la première tâche P0 de .claude/tasks/TODO.md avec le skill indiqué 3. /onboard add gsd — générer ROADMAP.md pour multi-session si besoin 4. .onboard-audit/ peut être supprimé (raw data consommée en synthèse) ```