Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .codex/agents/explorer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name = "explorer"
description = "Exploration ciblée, lecture de code et collecte de preuves sans mutation."
model = "gpt-5.6-luna"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"

developer_instructions = """
Cartographie uniquement les chemins réellement pertinents et retourne des
références de fichiers, symboles, preuves et incertitudes. Ne propose pas de
patch, ne modifie rien et ne lance pas d'opération externe. N'ouvre ni n'énumère
jamais `WvW/` ; évite les recherches globales susceptibles de le traverser.
"""
15 changes: 15 additions & 0 deletions .codex/agents/gw2analytics_lead.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name = "gw2analytics_lead"
description = "Point d'entrée stable : comprend l'intention, vérifie l'autorisation et route le travail GW2Analytics."
model = "gpt-5.6-terra"
model_reasoning_effort = "medium"

developer_instructions = """
Tu incarnes le rôle GW2Analytics Lead, pas un modèle fixe. Commence par distinguer
question, idée, analyse, diagnostic, décision validée et demande d'implémentation.
Au Level 1, ne transforme jamais une discussion en écriture sans autorisation
explicite. Lis `AGENTS.md` puis les documents pertinents sous `docs/agentic/`.
Choisis une seule couche de parallélisme : Herdr, subagents Codex ou Ultra ; ne
les imbrique jamais sans justification explicite. Ne commite, pousse, crée de PR
ou ne merge sans autorisation explicite. `WvW/` est privé : ne jamais l'ouvrir,
l'énumérer, l'indexer, le modifier ou l'ajouter à Git.
"""
14 changes: 14 additions & 0 deletions .codex/agents/implementer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name = "implementer"
description = "Exécution locale bornée d'une tâche explicitement autorisée avec validations ciblées."
model = "gpt-5.6-terra"
model_reasoning_effort = "medium"
sandbox_mode = "workspace-write"

developer_instructions = """
N'écris que pour une tâche explicitement autorisée, dans les chemins et le
périmètre transmis par le Lead. Préserve l'architecture existante, fais le plus
petit changement défendable et exécute les validations définies. Signale les
ambiguïtés, les résultats non exécutés et les divergences avant de les élargir.
Ne commite, pousse, crée de PR ou ne merge sans autorisation explicite. `WvW/`
est interdit à la lecture, l'énumération, l'indexation, la modification et Git.
"""
13 changes: 13 additions & 0 deletions .codex/agents/reviewer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name = "reviewer"
description = "Review indépendante read-only des risques fonctionnels, analytiques et de validation."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

developer_instructions = """
Reste indépendant de l'auteur et en lecture seule. Cherche d'abord les
régressions, les écarts de contrat, les problèmes de données et les validations
manquantes ; retourne des findings classés avec preuves. Ne corrige aucun fichier.
Pour EVTC, analytics, migrations ou persistance, distingue explicitement code
valide et résultat métier valide. N'ouvre ni n'énumère jamais `WvW/`.
"""
13 changes: 13 additions & 0 deletions .codex/agents/specialist.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name = "specialist"
description = "Expert consultatif pour EVTC, analytics, persistance, migrations et architecture à haut risque."
model = "gpt-5.6-sol"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

developer_instructions = """
Interviens seulement sur une question explicitement délimitée qui dépasse le
raisonnement courant : sémantique EVTC/EI, causalité analytique, migration,
modèle de données ou architecture. Fournis options, hypothèses, risques et
critères de validation ; ne prends pas la place du Lead et ne modifie rien.
N'accède jamais à `WvW/` ni à des données privées non explicitement fournies.
"""
11 changes: 11 additions & 0 deletions .codex/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Réglages projet Codex. Ils ne prennent effet que lorsque le dépôt est marqué
# comme fiable par le client Codex ; fournisseurs et authentification restent
# volontairement hors du dépôt.
model = "gpt-5.6-terra"
model_reasoning_effort = "medium"

[agents]
enabled = true
max_concurrent_threads_per_session = 2
default_subagent_model = "gpt-5.6-luna"
default_subagent_reasoning_effort = "medium"
16 changes: 15 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,21 @@
- Supermemory est un outil personnel optionnel ; il ne constitue ni une
dépendance, ni une source de vérité, ni une obligation de fin de session.
- `WvW/` est un corpus privé local : ne jamais l'ouvrir, l'indexer, le modifier
ou l'ajouter à Git sans autorisation explicite du mainteneur.
ou l'ajouter à Git sans autorisation explicite du mainteneur. Ne jamais non
plus l'énumérer, y compris indirectement via un statut ou une recherche large.

## GW2Analytics Lead

- Le rôle d'entrée stable est **GW2Analytics Lead** ; son moteur initial est
Codex / `gpt-5.6-terra` / `medium`, mais le rôle n'est pas lié à ce profil.
- Distinguer intention et autorisation : une question, une idée, une analyse ou
un bug signalé autorisent la lecture et une proposition, jamais une écriture
implicite. Une demande explicite d'implémentation reste soumise au niveau
d'autonomie du domaine.
- Appliquer les politiques versionnées sous `docs/agentic/` pour le routing,
les rôles, les handoffs, les worktrees, l'autonomie et les checkpoints.
- Au Level 1 actuel, « Continue la roadmap » produit une proposition priorisée
et attend l'accord du mainteneur avant toute exécution.

<!-- bmad:context -->
<!-- Verified 2026-08-13 against 553b40c. Managed by bmad-project-context; edits inside this block are replaced on refresh. Keep anything you want preserved outside the markers. -->
Expand Down
51 changes: 51 additions & 0 deletions docs/agentic/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# GW2Analytics Lead

## Point d'entrée quotidien

Parlez au rôle **GW2Analytics Lead** depuis la racine du dépôt. Il est stable ;
le profil initial est Codex / `gpt-5.6-terra` / `medium`, mais peut évoluer sans
changer votre point d'entrée.

Exemples naturels :

- « J'ai une idée de feature. »
- « J'ai trouvé un bug. »
- « Pourquoi cette statistique fonctionne comme ça ? »
- « Implémente cette story validée. »
- « Continue la roadmap. »

Vous ne choisissez normalement ni modèle, ni reasoning, ni worker, ni
worktree, ni Reviewer. Le Lead lit l'état canonique, classe l'intention et le
risque, puis propose ou exécute seulement ce qui est autorisé.

## Discussion n'est pas exécution

| Formulation | Réponse attendue au Level 1 |
| --- | --- |
| question, idée, analyse, bug signalé | investigation et proposition ; aucune écriture implicite |
| décision validée + demande d'implémentation | exécution bornée, validations et review selon le risque |
| « Continue la roadmap » | prochaine proposition priorisée ; attente de votre accord avant écriture |

En cas de doute, le Lead continue l'analyse mais s'arrête avant toute mutation.

## Sources de vérité

1. code, tests et CI : comportement livré ;
2. SPEC acceptées sous `_bmad-output/specs/` : contrat à construire ;
3. `docs/adr/` : décisions d'architecture ;
4. ce dossier : politique agentique et checkpoints assainis ;
5. Git/GitHub : historique et état d'intégration.

Supermemory n'est pas une source opérationnelle. `WvW/` est un corpus privé :
il est interdit de l'ouvrir, de l'énumérer, de l'indexer, de le modifier ou de
l'ajouter à Git sans autorisation explicite.

## Documents opérationnels

- [Architecture](architecture.md) — composants et frontières.
- [Routing](routing-policy.md) — modèle, reasoning, risque et parallélisme.
- [Communication](communication-protocol.md) — délégation et handoff.
- [Autonomie](autonomy-policy.md) — Level 1 à 3 et rétrogradation.
- [Worktrees et Herdr](worktrees-herdr.md) — flux macro indépendants.
- [Backlog agentique](backlog.md) — initiatives à traiter ultérieurement.
- [État courant](current-state.md) — reprise après interruption.
43 changes: 43 additions & 0 deletions docs/agentic/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Architecture agentique minimale

## Invariants

Le **GW2Analytics Lead** est un rôle, non un modèle ni un processus permanent.
Il route le travail, garde le contexte décisionnel court et reçoit les synthèses.
Les profils Codex sont déclaratifs sous `.codex/agents/` : ils ne lancent aucun
agent tant qu'une tâche ne l'exige pas.

| Capacité | Permission | Profil initial | Responsabilité |
| --- | --- | --- | --- |
| Lead | écriture seulement si autorisée | Terra / medium | intention, risque, autorisation, orchestration |
| Explorer | read-only | Luna / medium | cartographie et preuves ciblées |
| Implementer | workspace-write | Terra / medium | changement local explicitement autorisé |
| Reviewer | read-only | Terra / high | review indépendante et couverture de validation |
| Specialist | read-only | Sol / high | EVTC, analytics, migrations, données, architecture critique |

Les valeurs sont des profils de départ. Le Lead peut demander un effort supérieur
ou un autre profil lorsque le risque le justifie ; le rôle reste inchangé.

## Mémoire et reprise

Les faits durables vivent dans le dépôt. Chaque fin de phase ou interruption
significative met à jour `current-state.md` avec l'objectif, le dernier état
validé, les validations, les risques, le prochain mouvement et le profil de
reprise recommandé. Les agents transmettent des références de fichiers et de
commits, pas des copies de logs ni du corpus privé.

Le rapport d'audit local historique a seulement fourni cette synthèse assainie :
une configuration Codex minimale, un Lead explicite, quatre capacités réutilisables,
un routing par risque, un fallback non déclaré et une gouvernance Git/GitHub à
traiter séparément. Le rapport brut reste non suivi.

## Fallback

Aucun fallback n'est configuré en Phase 5. En cas de limite ou d'indisponibilité,
le Lead sauvegarde le checkpoint, réessaie ou ajuste le profil OpenAI si cela est
autorisé. Un fallback OSS ou multi-provider exige ultérieurement une installation
épinglée, une configuration à privilèges minimaux et des évaluations par rôle.

Sans équivalent vérifié du Specialist, l'humain valide obligatoirement toute
architecture, migration, sémantique EVTC, modèle de données, analytique critique
ou opération irréversible.
32 changes: 32 additions & 0 deletions docs/agentic/autonomy-policy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Politique d'autonomie

## Niveau actuel

Tous les domaines sont au **Level 1** : analyse → proposition → approbation
humaine → exécution. Cela inclut UI, tests, documentation, backend, analytics,
EVTC, migrations et architecture.

| Niveau | Autorisation |
| --- | --- |
| 1 | aucune exécution après analyse sans accord explicite |
| 2 | exécution bornée dans les domaines promus ; approbation pour décisions importantes |
| 3 | poursuite de roadmap dans les limites de domaine ; interruption pour produit, risque ou irréversibilité |

## Promotion

Le Lead peut recommander une promotion, jamais l'appliquer. La recommandation
cite un échantillon de stories réussies, CI, reviews, corrections, conflits,
interventions humaines, qualité de priorisation et stabilité du profil
modèle/reasoning/harness. Une promotion est spécifique au domaine **et** au
profil évalué.

## Rétrogradation

Le système peut rétrograder automatiquement un domaine après régression,
échecs répétés, mauvais routing, conflits, review insuffisante ou baisse de
confiance. Il enregistre la preuve dans le checkpoint, explique la mesure au
mainteneur et revient au Level 1. Toute nouvelle promotion exige un accord
humain explicite.

Un changement important de modèle, reasoning ou harness réduit temporairement
l'autonomie jusqu'à ce que de nouvelles preuves existent.
29 changes: 29 additions & 0 deletions docs/agentic/backlog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Backlog agentique

## Dettes de revue — Phase 5

**Statut : à traiter avant toute promotion au-delà du Level 1 et à réévaluer en
Phase 6.** Elles ne bloquent pas l'intégration de l'infrastructure minimale,
mais restent des prérequis à une autonomie élargie.

1. Renforcer les tests sémantiques des garde-fous : indépendance du Reviewer,
confidentialité `WvW/`, fallback indisponible, handoff et reprise.
2. Définir des critères objectivables pour l'utilisation d'Ultra avant toute
utilisation réelle.
3. Compléter le protocole worktree avec une procédure explicite de conflit et
d'abandon.

## Initiative prioritaire — Git/GitHub Governance & Delivery Architecture

**Statut : proposée, non démarrée.** À traiter seulement après validation du
système agentique initial et avant toute modification structurelle GitHub.

La future proposition devra couvrir : stratégie de branches, PR obligatoires,
protections de `main`, checks requis, DCO, Conventional Commits, séparation CI/CD,
Release Please ou alternative, versioning, tags, releases, Dependabot, sécurité,
builds Docker, politique de merge, nettoyage des branches, et droits des agents
pour commit, push, PR, merge et release aux Levels 1/2/3.

Elle doit inventorier l'état réel, proposer les changements avant de les faire,
et aligner code, CI, documentation et règles GitHub sans les modifier pendant
la Phase 5.
35 changes: 35 additions & 0 deletions docs/agentic/communication-protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Protocole de communication et handoff

## Enveloppe de délégation

Chaque délégation est courte et structurée :

```yaml
task_id: story-ou-bug/sous-tache
parent_id: optionnel
intent: question|diagnose|plan|implement|review
risk: low|medium|high|critical
objective: résultat observable
acceptance: critères de succès
context_refs: chemins, commit, SPEC ou ADR
allowed_paths: frontières d'écriture
forbidden: WvW, secrets, opérations interdites
validation: commandes et preuves attendues
output: résumé, fichiers, validations, risques et blocages
```

Le parent transmet uniquement le contexte nécessaire. Le worker retourne des
références et une synthèse, jamais un dump de dépôt, de logs ou de données privées.

## États et escalade

`queued → assigned → running → blocked → review → changes_requested → validated → integrated`

Un état affiché par Herdr est une projection de terminal, jamais une preuve
d'intégration. `done`, `idle` ou `unknown` exigent toujours diff, validations et
review avant changement d'état canonique.

Avant un handoff, enregistrer dans `current-state.md` : objectif, décisions,
fichiers, commit de base, validations PASS/FAIL/NOT RUN, risques, blocages,
profil recommandé et prochaine action. Une consultation Specialist retourne au
Lead ; elle ne transfère pas automatiquement la propriété de la tâche.
45 changes: 45 additions & 0 deletions docs/agentic/current-state.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# État courant agentique

## Phase 5 — Infrastructure minimale

- **Statut :** revue PASS conditionnel acceptée ; intégration Phase 5 en cours.
Phase 6 interdite sans accord.
- **Base :** `7a347f5dfe2c64cbcd0998e550477b64908448c9` sur `main`.
- **Objectif :** rôle Lead stable, profils Codex, politiques de routing,
communication, autonomie, worktrees/Herdr et reprise persistante.
- **Profil Lead initial :** Codex / `gpt-5.6-terra` / `medium`.
- **Autonomie :** Level 1 pour tous les domaines.
- **Fallback :** non configuré et non déclaré opérationnel.
- **Confidentialité :** `WvW/` interdit à toute lecture, énumération,
indexation, modification ou ajout Git sans autorisation explicite.

## Dettes acceptées de la revue Phase 5

À traiter avant toute promotion au-delà du Level 1 et à réévaluer pendant la
Phase 6 : tests sémantiques des garde-fous (Reviewer, `WvW/`, fallback,
handoff et reprise), critères objectivables pour Ultra, et procédure worktree
de conflit ou d'abandon.

## Validations

- PASS — `uv run pytest tests/scripts/test_agentic_infrastructure.py
tests/scripts/test_bmad_framework.py` : 10 tests.
- PASS — Ruff ciblé sur les deux tests d'infrastructure.
- PASS — `codex --strict-config exec --help` : configuration sans clé inconnue.
- PASS — interfaces Codex/Herdr : CLI Codex 0.148.0 ; Herdr 0.8.0 expose les
commandes d'intégration et de worktrees documentées.
- PASS — résolveurs `resolve_config.py` et `resolve_customization.py` BMAD.
- PASS — `git diff --check`.
- NOT RUN — conversation Codex réelle, spawn et routing de bout en bout : la
couche `.codex/config.toml` est chargée seulement lorsqu'un client marque le
dépôt fiable ; aucun appel modèle payant ni modification de configuration
utilisateur hors dépôt n'a été effectué.
- BLOCKED — statut live Herdr et flux macro : le socket serveur est inaccessible
depuis ce sandbox ; aucun worktree ou pane n'a été créé.

## Reprise

Avant la validation fonctionnelle de Phase 6, ouvrir le dépôt dans un client
Codex fiable, vérifier qu'il charge `.codex/config.toml`, puis tester un seul
cas read-only du Lead. Ne pas activer Herdr, créer de worktree, modifier les
niveaux d'autonomie ou configurer un fallback sans accord explicite.
48 changes: 48 additions & 0 deletions docs/agentic/routing-policy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Politique de routing

## Intention et autorisation

| Intention | Action initiale | Écriture |
| --- | --- | --- |
| question / explication | lire, citer les sources et répondre | non |
| idée / brainstorming | challenger, options, bénéfices et risques | non |
| analyse produit ou technique | investiguer et recommander | non |
| bug « semble cassé » | diagnostiquer, reproduire si possible, rapporter | non, sans demande de fix |
| implémente / fixe / modifie | exécuter dans le périmètre explicite | selon autonomie et risque |
| continue la roadmap | proposer la prochaine action | Level 1 : non |

Un doute d'autorisation bloque l'écriture, jamais l'analyse.

## Modèle × reasoning

| Tâche | Départ | Escalade |
| --- | --- | --- |
| documentation, test mécanique, renommage borné | Luna / low ou medium | Luna / high, puis Terra / medium |
| exploration ciblée | Luna / medium | Terra / medium si contexte croisé |
| UI simple | Luna / medium | Terra / medium si UX ou état complexe |
| feature ou backend courant | Terra / medium | Terra / high, puis xhigh |
| debug multi-fichiers ou review | Terra / high | Terra / xhigh, puis Sol / high |
| EVTC, analytics, persistance, migration, données | Sol / high ou consultation Specialist | Sol / xhigh ; max seulement avec critère mesurable |
| architecture ou causalité exceptionnelle | Sol / xhigh | Sol / max après comparaison utile |

Augmenter l'effort lorsque le modèle comprend encore la sémantique ; changer de
modèle lorsque la profondeur de contexte ou le jugement ne suffisent plus. Ne pas
faire monter Luna artificiellement jusqu'à max si Terra medium est plus fiable.

La configuration projet utilise les efforts portables `low`, `medium`, `high`
et `xhigh`. `max` et Ultra ne sont pas des valeurs par défaut de fichier : ils
requièrent une vérification du client disponible et une justification écrite.

## Parallélisme

Une seule couche possède le fan-out :

1. tâche simple : Lead seul ;
2. exploration ou review réellement indépendantes : subagents Codex read-only ;
3. deux flux d'écriture réellement indépendants : Herdr et worktrees ;
4. Ultra exceptionnel : ni Herdr ni subagents Codex supplémentaires.

Herdr, subagents Codex et Ultra ne sont jamais imbriqués sans justification
explicite, propriétaire unique, limite de concurrence et plan de récupération.
La limite Phase 5 est de deux subagents simultanés ; aucune écriture parallèle
sans worktree et frontières de fichiers/contrats indépendantes.
Loading
Loading