Admin

checklist

  • mmo.admin
  • agent skill
  • mmoframework-skill://mmo.admin/mmo-release-bugs/references/checklist.md
# The release checklist of a board mmo.admin's guide is `docs/checklists.md` (`mmoframework-docs://mmo.admin/checklists.md`): the file, the recipe, the page, how an application adds them. This is the part phase 3 needs. ## Create it ```bash H=http://localhost/my.oviepro jq -n --slurpfile recipe recipe.json '{version: 0, title: "my.oviepro 4.1 : relecture avant commit", description: "Tout ce qui a changé pour les tickets du board, à relire avant de commiter.", board: "my.oviepro-deploy", boardUrl: "admin/developer/boards", recipe: $recipe[0]}' \ | curl -s -X PUT -H 'Content-Type: application/json' --data-binary @- "$H/api/checklists/my.oviepro-4.1.json" curl -s -X POST "$H/api/checklists/my.oviepro-4.1/build.json" | jq '.data.progress, .data.build' ``` The name is the release's (`my.oviepro-4.1`), not the board's: a board lives across releases, a checklist is one. ## The recipe my.oviepro 4.1 had ```json { "repositories": [ {"label": "my.oviepro", "path": "~/dev/src/my.oviepro", "exclude": ["checklists/"], "together": ["modules/IJSS/", "www/assets/fonts/montserrat/", "boards/"]}, {"label": "mmo.core", "path": "~/dev/src/MMO/master/libs/core"}, {"label": "mmo.client", "path": "~/dev/src/MMO/master/libs/client"}, {"label": "hub (MMO/master)", "path": "~/dev/src/MMO/master", "pages": false, "exclude": ["libs/"]} ], "site": "http://localhost/my.oviepro/", "pages": "my.oviepro — pages", "checks": { "1": {"page": "API (compte non admin)", "check": "PUT /data/main/roles.json en s'ajoutant admin: true -> 403, rôle inchangé.", "url": "home"} }, "items": [ {"group": "transverse", "section": "avant de commiter", "title": "`php tools/mmo.php verify` passe pour chaque lib modifiée", "detail": "..."}, {"group": "transverse", "section": "nettoyage", "title": "Données de test locales « TEST CLAUDE »", "detail": "..."} ], "texts": {"M": "modifié", "D": "supprimé", "??": "nouveau", "A": "nouveau", "R": "renommé", "T": "type changé", "files": "{count} fichiers, {state}", "diff": "Relire le diff : `git -C {root} diff -- {path}`", "new": "Relire le fichier (nouveau).", "deleted": "Vérifier que la suppression est voulue (`git checkout -- {path}` le restaure).", "orphan": " Aucun ticket ne le cite : changement transverse, à relire pour lui-même.", "pages": "pages", "root": "(racine)", "page": "page ", "unchecked": "(aucune vérification décrite)", "uncheckedDetail": "Vérifier à l'écran ce que le résultat du ticket dit avoir corrigé."} } ``` - **checks** are only needed for tickets whose result comment has no ```` ```check ```` block (phase 2's agents write one). A ticket with neither gets one item asking to check its result on screen: write its check then. - **items** are what no ticket covers. Always worth one: `verify` passes for each library touched; the config files changed (re-read before shipping, a local path must not ship); the behaviour changes every application of the framework gets; the commit order (each library on its branch, then the hub's submodule pointers, the application apart); the test data to remove; what an agent created by mistake. - A treated ticket is one whose discussion has the result comment (`**Claude — résultat**` / `**Claude — result**`), or one the recipe's `checks` names. `treated` (a regular expression) changes that. ## After - Rebuild after every new fix (`build.json`, or the page's Rebuild button): what was checked stays checked while its item is still there -- an item's id is its group, section and title. - `orphans` (files no ticket cites) are not errors: say which they are; a file an agent changed for a ticket but did not cite means its comment is incomplete -- add the path to the comment and rebuild. - The user checks, the page labels the tickets `vérifié`, and moves them to done with a comment listing what was checked. Never check items for the user.