docs: REVIEW.md with review levels and a calibration script (#63) #65
2 changed files with 4 additions and 4 deletions
|
|
@ -156,7 +156,7 @@ python3 scripts/review-levels.py --check
|
|||
- **Une PR qui exige une action de Max sur le VPS** (montage, variable Coolify, propriétaire d'un dossier, `agents-map.json`) doit être mergée après l'action, pas avant : sinon la route répond 500 ou `no_data` dès le déploiement. La revue vérifie que la PR dit l'ordre. — `CLAUDE.md` « Config », « Gotchas »
|
||||
- **Un montage manquant répond 200 `no_data`.** Après un redéploiement, contrôler le contenu des routes de lecture, pas leur code, et les trois vues des montages (`docker inspect`, `/proc/mounts`, contenu). — `CLAUDE.md` « Config »
|
||||
- **La garantie écrite dépasse la couverture.** `CLAUDE.md` et les en-têtes de tests affirment beaucoup (« figé par », « exige ») ; chaque affirmation nouvelle se vérifie par une mutation qui fait rougir le test cité. — PR #39, #45
|
||||
- **Séquences d'échappement décodées en route.** Un `-` tapé dans un outil arrive décodé dans le fichier : vérifier dans le fichier (`grep`, `od -c`), jamais dans l'outil d'édition. — PR #42, mémoire « Escapes decoded in tool calls »
|
||||
- **Séquences d'échappement décodées en route.** Un `\u002d` tapé dans un outil arrive décodé en `-` dans le fichier : vérifier dans le fichier (`grep`, `od -c`), jamais dans l'outil d'édition. — PR #42, mémoire « Escapes decoded in tool calls »
|
||||
- **Stack intégrée en avance rapide.** Forgejo marque ces PR « fermées » et non « mergées », `/pulls/{n}/files` répond 500 une fois la branche de base supprimée, et une PR dont la tête est déjà dans `main` a un `.diff` vide. — calibration de #63
|
||||
- **`/home/defenseur/defenseurs/status.json` est un leurre** : le Sergent écrit sous `/data/defenseurs/`. — `CLAUDE.md` « Config », « Gotchas »
|
||||
- **La sévérité est asymétrique** : `?severity=LOW` cache INFO, que seul `?severity=INFO` rend. Ce n'est pas un défaut. — `CLAUDE.md` « Gotchas »
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ whose base branch is gone, which is every link of a stack merged by
|
|||
fast-forward. Three PRs (EMPTY_DIFF) have an empty .diff and are read from
|
||||
the local clone: run the script from the repository. The content conditions of the Haut table are approximated from
|
||||
the diff: index.js routing and auth, side effects of the shipped modules
|
||||
(disk writes, environment, body caps, shell commands, outbound calls,
|
||||
require.main, log lines), guard tests (an existing line changed or removed),
|
||||
(disk writes, the temp-file sweep, body caps, shell commands, outbound calls,
|
||||
require.main), guard tests (an existing line changed or removed),
|
||||
package.json (anything but a version), package-lock.json (a package added or
|
||||
removed, an origin changed), .gitignore (a line removed).
|
||||
"""
|
||||
|
|
@ -63,7 +63,7 @@ LOW = ["**/*.md", "docs/**", "LICENSE", "reports/**"]
|
|||
NEVER_LOW = ["CLAUDE.md", "REVIEW.md", "agent/README.md", ".claude/**"]
|
||||
|
||||
AUTH = re.compile(r"\b(ROUTES|TOKEN_KINDS|resolveRoute|checkAuth|tokenMatches|logRejection|"
|
||||
r"safeLogValue|handler|timingSafeEqual|createHash|\w*_TOKEN)\b")
|
||||
r"safeLogValue|handler|\w*_TOKEN)\b")
|
||||
EFFECTS = re.compile(
|
||||
r"\b(writeFile\w*|writeSync|createWriteStream|appendFile\w*|rename\w*|mkdir\w*|unlink\w*|"
|
||||
r"rmSync|rmdir\w*|chmod\w*|chown\w*|copyFile\w*|symlink\w*|truncate\w*|writeJsonAtomic|"
|
||||
|
|
|
|||
Loading…
Reference in a new issue