# The shared brief of the fixing agents
Write it once in the scratchpad (`BRIEF.md`), adapted to the application, then give each agent a prompt of a few
lines: *"Read {path}/BRIEF.md first and follow it to the letter. Your domain: ... Your tickets: #1 (...), #2 (...).
Absolute priority: #1, #2 (blocking). Prove each fix with a request replayed by a non admin account, before and
after."* Launch them in the background, all in one message.
Below, the brief my.oviepro's 8 agents had (in French, as their tickets were). Replace the application, its paths
and its accounts; keep the rules.
```markdown
# Brief commun : correction des tickets du board {board}
Tu fais partie de N agents qui travaillent EN PARALLÈLE dans les mêmes dossiers, chacun sur sa liste de tickets.
Ta liste de tickets est dans ton message. Ne touche pas aux tickets des autres.
## Où
- Application : `~/dev/src/{app}` (branche develop, version x.y.z), servie sur http://localhost/{app}/
- Bibliothèques MMO : `~/dev/src/MMO/master/libs/<name>` (sous-modules git). Lis `~/dev/src/MMO/master/AGENTS.md`,
puis le skill `mmoframework` (PHP, surtout `references/gotchas.md`) ou `mmo-client` (.jhs/.scs) selon ce que tu touches.
- Tout le monde part d'un état git propre : `git diff` montre ce que les agents ont changé.
## Les tickets
- Lire un ticket (sa description contient le constat et un prompt ```claude à suivre) :
`curl -s http://localhost/my.oviepro/api/boards/{board}.json | jq -r '.data.data.tickets[] | select(.id=="12") | .description'`
- Commenter un ticket (OBLIGATOIRE pour chacun de tes tickets, à la fin de son traitement) :
`jq -n --arg body "$BODY" '{body: $body}' | curl -s -X POST -H 'Content-Type: application/json' --data-binary @- http://localhost/my.oviepro/api/boards/{board}/<id>/comments.json`
- NE MODIFIE JAMAIS le board lui-même (pas de PUT sur {board}.json) : l'orchestrateur déplacera les tickets.
- Tout ce qui concerne un ticket DOIT être dans sa discussion : le commentaire, en markdown, commence par
`**Claude — résultat**` puis donne : verdict (`CORRIGÉ`, `PARTIEL` ou `NON FAIT`), cause trouvée, fichiers modifiés
(chemins complets depuis `~/dev/src/...`), ce que tu as vérifié et comment (requête, page, test), ce qui reste à
faire / décision métier attendue, et pour NON FAIT la raison précise. Un ticket non reproductible en local : dis-le
avec ce que tu as essayé. Termine par un bloc ```check : une vérification fonctionnelle par ligne,
`page | url relative | ce qu'il faut vérifier` -- c'est la checklist de relecture qui les reprendra.
Un problème qui touche un autre ticket : signale-le dans TON commentaire et dans ton rapport final, sans le
corriger à la place de l'autre agent.
## Règles de travail
- Ne commite JAMAIS (ni git commit, ni stash, ni rebase...). Ne pousse rien. Ne déploie rien.
- Fichiers partagés (styles `.scs` du thème, `libs/client/src/js/i18n/fr.js`, composants communs de mmo.client) :
d'autres agents peuvent les éditer en même temps. Relis le fichier juste avant chaque modification, fais des
modifications petites et localisées, ne reformate jamais un fichier, ne revert jamais une modification que tu n'as
pas faite.
- Corrige à la cause. Code au style des voisins. Un nouveau fichier PHP commence par `declare(strict_types=1);` et
est inclus par le `src/bootstrap.php` de sa lib. Jamais de `@phpstan-ignore` ni d'entrée dans un baseline.
- Vérification : pour une lib MMO modifiée, `cd ~/dev/src/MMO/master && php tools/mmo.php verify --lib=<name>` doit
passer (sinon dis-le dans le ticket avec la sortie). Pour l'application : `php -l` sur chaque fichier PHP modifié.
- Données locales : tu peux créer des fiches de test (préfixe `TEST CLAUDE`) ; ne supprime ni n'écrase de données
existantes. Ne lance jamais de script de migration sur les données : propose-le dans le ticket.
- Connexion : skill `mmo-agent-login` (`php admin.php agent-login --user=god --url=http://localhost/{app} -m`) ;
`--as=<username>` donne la session d'un autre utilisateur, pour tester un compte sans droit d'admin par l'API.
Ne recopie JAMAIS le lien ni le jeton dans un commentaire ou un rapport.
- Navigateur : il est PARTAGÉ avec les autres agents. Crée ton propre onglet (`tabs_create`) et passe TOUJOURS son
`tabId` ; reste connecté avec le même compte (ne te déconnecte pas) ; teste les autres comptes par l'API.
`resize_window` : remets `preset: desktop` à la fin.
- Écrire dans `/dev/null`, jamais dans `null`.
## Rapport final (ta réponse)
Une ligne par ticket : `#<id> | CORRIGÉ|PARTIEL|NON FAIT | résumé en une phrase`, puis la liste des fichiers
modifiés et les problèmes découverts pour d'autres tickets. Chaque ticket doit avoir reçu son commentaire avant
que tu répondes.
```
## The orchestrator's comment on a moved ticket
```markdown
**Claude — orchestration** : déplacé en **Recette**. Corrigé et vérifié en local (voir le résultat ci-dessus),
**pas encore commité ni déployé** : à recetter après livraison. Vérification d'ensemble du 05/10/2026 :
`php tools/mmo.php verify` passe pour mmo.core, mmo.client... ; `php -l` passe sur les fichiers PHP modifiés ;
les 106 pages de `pages.json` répondent sans erreur en local.
```
For a ticket left in todo, the same comment says what is missing: the decision awaited, what did not reproduce.