check_docs : README.md liait DIRECTIVE_WORKFLOW_FAISABILITE_V10 (supprimé par
l'archivage V18 f316060) → repointé vers la directive active
DIRECTIVE_V18_MASTER_FEASIBILITY_ENGINE_20260810.
check_readme_claims : le scan VPS-infra ouvrait 4 docs REFERENCE root-owned
mode 600 de Michel (AUDIT_*/DIRECTIVE_COMPTE_CLIENT/GO_SIGNAL) → PermissionError
→ bad(). Tolère désormais PermissionError SPÉCIFIQUEMENT (note ⋯, continue),
tout autre OSError reste fatal. Même classe que les exclusions guard_constraints.
Garde anti-évaporation SSOT préservée sur le corpus lisible.
run_ci : 33 PASS · 0 FAIL · 0 SKIP rétabli.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.3 KiB
Activity Log · 2026-08-11 · Claude Code DTP Worker
Session 20260811_015744 — FIX · CI RED → VERT · 2 régressions induites par les commits root V18 (archivage V10/V11 + 4 docs REFERENCE root-owned mode 600)
Constat au démarrage. ./run_ci.sh = 31 PASS · 2 FAIL · 0 SKIP (régression vs la baseline 33/0/0 du 2026-08-06). Deux gates rouges : check-docs et check-readme-claims. Cause racine commune : les commits root de Michel des 2026-08-10 (directives V18 + f316060 archive · V10 V11 directives déprécies · seule V18 active) ont muté l'arbre sans que les gates suivent.
Régression 1 · check_docs — lien pendant. README.md:88 liait DIRECTIVE_WORKFLOW_FAISABILITE_V10_20260803.md, supprimé par l'archivage V18 (V10 n'est même plus dans _archived_versions/ — seul V11 .archived y subsiste). Lien cassé → gate rouge.
- Fix (édition worker légitime, doc du worker). Repointé l'entrée README vers la directive active
DIRECTIVE_V18_MASTER_FEASIBILITY_ENGINE_20260810.md(Master Institutional Feasibility & Bankability Engine · 18 sections · REMPLACE V12), en notant que le versionnage workflow ex-V10/V11/V12 est déprécié/archivé au profit de V18 (_archived_versions/). Le fragment-slug de section#directives-michel-input-specs-datés(cf. mémoiremarkdown-anchor-fragment-integrity) est intact.
Régression 2 · check_readme_claims — 4 docs root-owned illisibles. Le scan « VPS infra » énumère git ls-files *.md, ouvre chaque fichier en Python (open()) et vérifie IP/conteneurs. Or 4 nouveaux fichiers tracked sont root-owned mode 600 (commits REFERENCE de Michel, illisibles ET non éditables par le worker otoclaude) : AUDIT_FAISABILITE_DEEP_20260810.md, AUDIT_P1_COMPTE_CLIENT_20260810.md, DIRECTIVE_COMPTE_CLIENT_COURRIELS_20260810.md, GO_SIGNAL_20260810_1540.md. open() lève PermissionError → bad() → gate rouge.
- Précédent appliqué (mémoire
guard-tracked-files-exclusion).guard_constraints.shgère déjà exactement cette classe : il exclutDIRECTIVE_*.md/AUTORISATIONS_*.md/OTO_DESIGN_SYSTEM_*.mdde son scan et lit viagrep 2>/dev/null(tolère l'illisible → aucun rouge).check_readme_claimsn'avait pas l'équivalent. - Fix (chirurgical, honnête). Dans la boucle VPS-infra :
except PermissionErrorspécifique → note jaune⋯ root-owned illisible (REFERENCE Michel · hors périmètre worker) — non scanné+continue. Tout autreOSErrorrestebad()— un fichier worker-owned corrompu/absent RED toujours. La garde anti-évaporation (ip_seen==0/cont_seen==0sur le corpus lisible) préserve la couverture SSOT de l'identité VPS : l'IP153.75.250.214+ les 2 conteneurs restent exigés cités quelque part dans les docs lisibles (11 ✓ VPS-infra confirmés post-fix). Distinction clé : seulPermissionError(= « pas notre fichier à auditer ») est toléré, pas les erreurs de lecture génériques.
Pourquoi ne PAS éditer les 4 docs / ne PAS les untrack. Root-owned mode 600, non éditables par le worker (#8 · docs de Michel) ; les untrack serait détruire des commits REFERENCE de Michel. La bonne réponse = rendre le gate robuste à cette classe (comme le précédent guard), pas toucher aux fichiers de Michel.
Vérif. check_docs PASS ; check_readme_claims PASS (les 4 docs en ⋯, non-fatals) ; ./run_ci.sh = 33 PASS · 0 FAIL · 0 SKIP rétabli. Aucune commande VPS (#8). Fichiers : README.md + ci/check_readme_claims.sh + ce journal.
Contexte V18 (prochaine étape, hors ce commit). Le GO signal V18_GO_SIGNAL_DEVELOPMENT_20260810.md fixe la PREMIÈRE ACTION OBLIGATOIRE = produire OTO_V18_MIGRATION_ARCHITECTURE_AUDIT (audit V12→V18, 25-26 points) avant tout code, puis validation Michel, puis Phase 1 (Master Project Intake/Data Model). Ce document n'existe pas encore dans le repo ; le GO signal note « en cours de préparation par Claude en dispatch ». Les docs d'audit deep de Michel (AUDIT_FAISABILITE_DEEP, etc.) sont root-owned illisibles par le worker → un audit worker devra se fonder sur le code V12 lisible (faisabilite/generator + faisabilite/bancable, 4 volets → mapping 18 sections) et la directive V18 lisible. Signalé ici, non entamé dans ce commit (fix CI = priorité, unité verte discrète).