[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:
@@ -1,5 +1,53 @@
|
||||
# Activity Log · 2026-08-03 · Claude Code DTP Worker
|
||||
|
||||
## Session 083713 · Gate `constraints-guard` RED réparé — nouveau doc REFERENCE `OTO_DESIGN_SYSTEM_v1.md` (mention VPS, pas usage) + inconsistance chemin re-signalée à Michel
|
||||
|
||||
**Contexte.** `./run_ci.sh` au démarrage : **29 PASS · 1 FAIL** — régression NEUVE
|
||||
(`constraints-guard`) apparue avec le commit `9c062ef` (« REFERENCE · OTO Design System
|
||||
v1 »), qui a ajouté `OTO_DESIGN_SYSTEM_v1.md` à la racine. Toutes les autres dimensions
|
||||
vertes ; arbre propre.
|
||||
|
||||
**Cause racine (faux-positif · classe identique à la session 010630).** Le §15 du doc
|
||||
« **Fichiers canoniques sur VPS** » liste, en **inventaire** descriptif, deux emplacements
|
||||
`/var/www/html/static/` <!-- ci-allow : citation de la cause, jamais un usage --> (assets concierge + scripts UI canoniques). Le garde (dont
|
||||
l'en-tête déclare « détecte l'**USAGE**… PAS sa simple **mention** ») a mordu ces deux
|
||||
lignes — mais ce sont des **mentions** d'emplacements *servis* par nginx
|
||||
(`/var/www/html/static` = **SYMLINK** de `/opt/oto/sites/static`, cf. CLAUDE.md §VPS), pas
|
||||
une **écriture exécutable**. L'usage réel vivrait dans un `.sh`/`.py`/`.yml` — toujours
|
||||
scannés.
|
||||
|
||||
**Pourquoi PAS d'édition du doc fautif.** (1) Root-owned `root:root 644` — **non éditable**
|
||||
par `otoclaude` (`-w` négatif) → l'escape `ci-allow` par ligne est **inapplicable**.
|
||||
(2) Document **ajouté par un commit REFERENCE que je n'ai pas créé** → principe « surface,
|
||||
don't overwrite ». Exactement la situation de la session 010630 (fichiers root-owned de
|
||||
Michel).
|
||||
|
||||
**Correctif — au niveau du garde que je possède (`ci/`), 2+ solutions pesées.**
|
||||
- *Option retenue* : ajout de `OTO_DESIGN_SYSTEM_*.md` (glob → survit à un futur `_v2`) aux
|
||||
exclusions de `tracked_files()`, **même catégorie** que `AUTORISATIONS_*.md`/`DIRECTIVE_*.md`
|
||||
(docs racine énumérant *nécessairement* des chemins VPS en tant que mention). En-tête du
|
||||
garde + `ci/README.md` §exclusions mis en cohérence (raison + inventaire-vs-usage documentés).
|
||||
- *Option écartée* : demander à Michel de rendre le doc éditable pour y poser des `ci-allow`
|
||||
— plus lourd, casse à chaque re-push du doc ; le fix dans MON `ci/` est durable.
|
||||
|
||||
**Détection vraie-positive PRÉSERVÉE (mutation-test, [[guard-constraints-flags-usage-not-mention]]).**
|
||||
Un `.sh` temporaire commité avec les 3 usages littéraux (écriture chemin statique VPS, URL
|
||||
GitHub, appel Stripe) → le garde **mord les 3** (✗). Seule la prose de référence/gouvernance
|
||||
`.md` est exclue ; `CLAUDE.md` (constitution) **reste scanné**. Aucun trou vers un usage
|
||||
forbidden dans du code.
|
||||
|
||||
**⚠️ INCONSISTANCE RE-SIGNALÉE À MICHEL (non tranchée par le garde).** Le §15 liste le chemin
|
||||
**servi** `/var/www/html/static/` <!-- ci-allow : citation de l'inconsistance signalée --> alors que le mandat (CLAUDE.md · Interdits absolus + §VPS)
|
||||
préfère la **source** `/opt/oto/sites/static/` (le premier étant le symlink du second). Même
|
||||
inconsistance chemin-servi-vs-source que la l.35 d'`AUTORISATIONS_*.md` déjà signalée le
|
||||
010630. Documentée ici + `ci/README.md`, **pas masquée, pas tranchée** (décision archi → Michel).
|
||||
|
||||
**Vérifications.** `./run_ci.sh` → **30 PASS · 0 FAIL · 0 SKIP** (rétabli). Mes propres
|
||||
mentions du chemin dans `ci/README.md` (description de l'exclusion) marquées `ci-allow`
|
||||
(motif l.100 préexistant). **Zéro nouveau module · zéro gate ajouté (#5)** — le garde n'est
|
||||
pas affaibli (mutation 3/3 RED sur usage code), corrigé d'un faux-positif conforme à sa
|
||||
propre philosophie. Aucune commande touchant au VPS (#8) · aucun `git clean` <!-- ci-allow : mention de l'interdit absolu, jamais exécuté -->.
|
||||
|
||||
## Session 063711 · Sprint 5/8 · Canal 2 `daily_reports/` remis à jour (3 sessions manquantes depuis 040643)
|
||||
|
||||
**Contexte + choix de tâche.** `./run_ci.sh` au démarrage : **30 PASS · 0 FAIL · 0 SKIP**,
|
||||
|
||||
+9
-3
@@ -92,15 +92,21 @@ Escape hatch documenté : ajouter `ci-allow` sur une ligne pour l'exclure.
|
||||
**Exclusions de fichiers** (`tracked_files()`) — documents qui contiennent
|
||||
*nécessairement* les termes interdits en tant que **texte de politique** (mention),
|
||||
jamais en usage exécutable : le garde lui-même (il énumère les termes), les workflows
|
||||
CI (ils le référencent), et les **mandats signés de Michel à la racine**
|
||||
CI (ils le référencent), les **mandats signés de Michel à la racine**
|
||||
(`AUTORISATIONS_*.md`, `DIRECTIVE_*.md`) — prose de gouvernance listant règles ET
|
||||
autorisations. L'usage *réel* d'un terme interdit vivrait dans un `.sh`/`.py`/`.yml`
|
||||
autorisations —, et le **design system de référence** (`OTO_DESIGN_SYSTEM_*.md`,
|
||||
root-owned, ajouté par commit `REFERENCE`) dont le §15 « Fichiers canoniques sur VPS »
|
||||
est un **inventaire** d'emplacements servis (`/var/www/html/static/`, symlink de <!-- ci-allow : description de l'exclusion, jamais un usage -->
|
||||
`/opt/oto/sites/static/`) — mention descriptive, pas une écriture. L'usage *réel* d'un
|
||||
terme interdit vivrait dans un `.sh`/`.py`/`.yml`
|
||||
(**toujours scannés**), donc aucune détection vraie-positive n'est perdue (mutation-test
|
||||
à l'appui). **`CLAUDE.md` reste scanné** : sa prose d'interdits passe via les marqueurs
|
||||
de prohibition. NB · `AUTORISATIONS_*.md` l.35 « Écriture dans `/var/www/html/static/` » <!-- ci-allow : citation du mandat -->
|
||||
**contredit** l'interdit absolu de CLAUDE.md (le chemin correct est le SYMLINK source
|
||||
`/opt/oto/sites/static/`) — contradiction inter-mandats **signalée à Michel** (à trancher
|
||||
par lui, pas masquée par le garde).
|
||||
par lui, pas masquée par le garde). Même inconsistance chemin-**servi**-vs-**source** dans
|
||||
`OTO_DESIGN_SYSTEM_v1.md` §15 (liste `/var/www/html/static/` au lieu de la source <!-- ci-allow : citation de l'inconsistance signalée, jamais un usage -->
|
||||
`/opt/oto/sites/static/`) — **re-signalée à Michel**, non tranchée par le garde.
|
||||
|
||||
**Non-dérive documentée — `michel/otov7-platform` (CLAUDE.md #2) N'EST PAS une coquille
|
||||
de `michel/oto-enterprise-os-dtp`, à ne PAS « corriger ».** Un audit doc-vs-réalité relève
|
||||
|
||||
+12
-1
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user