[DTP-Worker 20260803_083713] Sprint 8 QA · fix · gate constraints-guard RED réparé (doc REFERENCE OTO_DESIGN_SYSTEM_v1 §15 = mention VPS, pas usage)

Régression neuve depuis commit 9c062ef : OTO_DESIGN_SYSTEM_v1.md §15
« Fichiers canoniques sur VPS » liste /var/www/html/static/ en inventaire
descriptif (chemin servi = symlink de /opt/oto/sites/static). Faux-positif de
la classe que le garde ignore (USAGE, pas mention) ; doc root-owned non éditable
+ non créé par le worker → fix au niveau du garde (précédent session 010630).

- ci/guard_constraints.sh : OTO_DESIGN_SYSTEM_*.md (glob) ajouté aux exclusions
  tracked_files(), même catégorie qu'AUTORISATIONS_*/DIRECTIVE_* ; en-tête documenté.
- ci/README.md : §exclusions + NB inconsistance chemin-servi-vs-source mis à jour.
- Mutation-test : garde mord toujours les 3 usages code réels (static VPS/GitHub/Stripe).
- Inconsistance chemin servi (/var/www/html/static) vs source (/opt/oto/sites/static)
  du §15 re-signalée à Michel (non tranchée par le garde).

run_ci.sh : 30 PASS · 0 FAIL · 0 SKIP (rétabli). Zéro nouveau module, zéro gate ajouté (#5).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-03 08:42:59 +00:00
parent 9c062ef83d
commit 12cfaaa2ed
3 changed files with 69 additions and 4 deletions
+12 -1
View File
@@ -46,12 +46,23 @@ ok() { printf ' \033[32m✓\033[0m %s\n' "$1"; }
# CONTREDIT l'interdit absolu de CLAUDE.md (le chemin correct est le SYMLINK
# source /opt/oto/sites/static/). Contradiction inter-mandats signalée à
# Michel (activity log 2026-08-03) — à trancher par lui, pas par le garde.
# - le DESIGN SYSTEM de référence à la racine (OTO_DESIGN_SYSTEM_*.md) :
# document root-owned, ajouté par un commit REFERENCE (non créé par un agent
# worker, non éditable → escape ci-allow par ligne inapplicable). Son §15
# « Fichiers canoniques sur VPS » est un INVENTAIRE des emplacements servis
# (nginx sert /var/www/html/static, SYMLINK de /opt/oto/sites/static) — une
# mention descriptive, pas une écriture exécutable. Même raison que ci-dessus :
# l'usage réel vivrait dans du code (.sh/.py/.yml, toujours scanné). NB · ce
# §15 liste le chemin SERVI /var/www/html/static/ alors que le mandat préfère
# la SOURCE /opt/oto/sites/static/ — même inconsistance chemin-servi-vs-source
# que la l.35 d'AUTORISATIONS, re-signalée à Michel (activity log 2026-08-03).
tracked_files() {
git ls-files -- . \
':(exclude)ci/guard_constraints.sh' \
':(exclude).gitea/workflows/*.yml' \
':(exclude)AUTORISATIONS_*.md' \
':(exclude)DIRECTIVE_*.md'
':(exclude)DIRECTIVE_*.md' \
':(exclude)OTO_DESIGN_SYSTEM_*.md'
}
# scan_forbidden <label> <regex-terme>