[DTP-Worker 20260802_193605] Sprint 8 · buffer · Faux-positif d'audit récurrent verrouillé en garde-fou in-repo (ci/README.md) : otov7-platform (produit) ≠ oto-enterprise-os-dtp (mandat)
Audit doc-vs-réalité (fan-out exploration) sur les *.md de tête, 03_agents/*/AGENT.md, 05_deliverables_mvp/*/README.md, ci/README.md, roadmap → UNE candidate : CLAUDE.md#2 « michel/otov7-platform » vs section Git « oto-enterprise-os-dtp ». FAUX POSITIF connu (mémoire otov7-platform-not-drift) : deux dépôts Gitea distincts, tous deux corrects — otov7-platform = dépôt PRODUIT (plateforme OTOV7 cible du refactoring), oto-enterprise-os-dtp = dépôt MANDAT (ce worker). L'agent d'exploration (sans accès mémoire) l'a re-remonté → preuve que le garde-fou méritait d'être in-repo, pas seulement en mémoire privée. Action : paragraphe « Non-dérive documentée » ajouté à la section guard_constraints.sh de ci/README.md (propriétaire de #2), calqué sur la note roles_couverts « 44 » — explicite que produit ≠ mandat, qu'il ne faut PAS « aligner » CLAUDE.md#2, et qu'il n'y a rien à gater (le garde ne vérifie que l'ABSENCE de github/gitlab/bitbucket, pas l'identité d'un repo Gitea autorisé). Discipline : zéro module · zéro gate ajouté (#5) · CLAUDE.md intact (on ne « corrige » pas la constitution · #6). Recompute README concordant (22/22 scores={100} · 564/564 · 15/15 in_repo · 13 agents · gate.needs=30) = zéro dérive numérique. run_ci.sh --static 7 PASS · guard_constraints/check_docs/check_readme_claims verts (nouveau texte cite les plateformes interdites mais chaque ligne porte « interdites » → ignorée par le garde). Aucune commande touchant au VPS (#8). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,45 @@
|
|||||||
# Activity log · 2026-08-02 · Claude Code DTP Worker
|
# Activity log · 2026-08-02 · Claude Code DTP Worker
|
||||||
|
|
||||||
|
## Session `20260802_193605` · Sprint 8 · buffer · Faux-positif d'audit récurrent documenté en garde-fou in-repo (`ci/README.md`) : `michel/otov7-platform` (CLAUDE.md #2 · dépôt PRODUIT) ≠ `oto-enterprise-os-dtp` (dépôt MANDAT) → prévention d'une « correction » nuisible de la constitution (PAS un gate #5, PAS un module)
|
||||||
|
|
||||||
|
**Nature — verrouiller une non-dérive contre une future « correction » nuisible, pas empiler un gate.**
|
||||||
|
Ouverture : arbre `git status --porcelain` **vide**, `run_ci.sh` **30 PASS / 0 FAIL / 0 SKIP**
|
||||||
|
(7 gates `ci/*.sh` + 23 suites module). Recompute indépendant des agrégats du README racine,
|
||||||
|
concordant : **22/22** qualité (scores = `{100}`) · **564/564** régression · **15/15** recette
|
||||||
|
(verdict `true`) · **13** agents · `gate.needs` = **30** — **zéro dérive numérique**.
|
||||||
|
|
||||||
|
**Audit doc-vs-réalité (fan-out d'exploration).** Balayage des `*.md` de tête (README, CLAUDE.md,
|
||||||
|
AGENTS_EXISTING_ASSETS, PORTAIL_BANCABLES), `02_master_prompt/`, `03_agents/*/AGENT.md`,
|
||||||
|
`05_deliverables_mvp/*/README.md`, `ci/README.md`, `04_roadmap/`. **Une seule** candidate
|
||||||
|
remontée : CLAUDE.md ligne 16 (#2) nomme `michel/otov7-platform` là où la section *Git* (l.62)
|
||||||
|
et le README racine nomment `michel/oto-enterprise-os-dtp` — apparence de coquille contradictoire.
|
||||||
|
|
||||||
|
**Verdict : FAUX POSITIF connu** (mémoire *otov7-platform-not-drift*). Ce sont **deux dépôts
|
||||||
|
Gitea distincts, tous deux corrects** : `otov7-platform` = dépôt du **produit** (plateforme OTOV7
|
||||||
|
en construction, cible du refactoring) ; `oto-enterprise-os-dtp` = dépôt de **mandat** (ce worker).
|
||||||
|
La contrainte #2 verrouille le produit ; la section *Git* précise où vit le mandat. « Aligner »
|
||||||
|
#2 sur le nom du mandat **corromprait la constitution**. L'agent d'exploration (sans accès à ma
|
||||||
|
mémoire) l'a re-remonté cette session — preuve que le garde-fou méritait d'être **in-repo**, pas
|
||||||
|
seulement dans ma mémoire privée.
|
||||||
|
|
||||||
|
**Action — garde-fou documenté, à la manière de la « Non-surface documentée » existante.**
|
||||||
|
Ajout d'un paragraphe **« Non-dérive documentée »** dans la section `guard_constraints.sh` de
|
||||||
|
`ci/README.md` (propriétaire de la contrainte #2), calqué sur la note `roles_couverts` (« 44 »
|
||||||
|
non cross-gaté). Il explicite : produit ≠ mandat, ne pas « corriger » CLAUDE.md #2, et pourquoi
|
||||||
|
il n'y a **rien à gater** (le garde ne vérifie que l'**absence** de plateformes interdites
|
||||||
|
github/gitlab/bitbucket, pas l'identité d'un repo Gitea autorisé). **CLAUDE.md non touché.**
|
||||||
|
|
||||||
|
**Discipline (#5/#6).** **Zéro nouveau module · zéro gate ajouté** — pure documentation d'une
|
||||||
|
non-dérive, dans le fichier qui héberge déjà ce type de garde-fou. **CLAUDE.md intact** (on ne
|
||||||
|
« corrige » pas la constitution). Le nouveau texte cite github/gitlab/bitbucket mais chaque
|
||||||
|
occurrence est sur une ligne portant un marqueur de prohibition (« interdites ») → **ignorée**
|
||||||
|
par `guard_constraints` (vérifié vert). `check_docs` (liens) + `check_readme_claims` verts.
|
||||||
|
|
||||||
|
**Clôture.** `run_ci.sh --static` → **7 PASS / 0 FAIL / 0 SKIP**. Aucune commande touchant au
|
||||||
|
VPS (`153.75.250.214` · #8). Prochaine tâche : buffer Sprint 8 toujours en **veille saturée**
|
||||||
|
(fiches 13/13 closes, gates saturés) — ne durcir un gate que si un blind-spot est **prouvé par
|
||||||
|
mutation-test** (*verify-uncovered-before-gating*), jamais un gate redondant (#5).
|
||||||
|
|
||||||
## Session `20260802_183604` · Sprint 8 · buffer · Dérive doc-vs-réalité (README racine) : la ligne « Régression » affirmait `regression_run.json` « non commité par design » — FAUX depuis la refonte baseline byte-gatée (`76fb0e7`) → correction de vérité (PAS un gate #5, PAS un chiffre inventé #6)
|
## Session `20260802_183604` · Sprint 8 · buffer · Dérive doc-vs-réalité (README racine) : la ligne « Régression » affirmait `regression_run.json` « non commité par design » — FAUX depuis la refonte baseline byte-gatée (`76fb0e7`) → correction de vérité (PAS un gate #5, PAS un chiffre inventé #6)
|
||||||
|
|
||||||
**Nature — dérive réelle non gatée, corrigée par la vérité (pas un gate de plus).**
|
**Nature — dérive réelle non gatée, corrigée par la vérité (pas un gate de plus).**
|
||||||
|
|||||||
@@ -74,6 +74,20 @@ Détecte l'**usage** (pas la simple mention) de :
|
|||||||
(`jamais`, `❌`, `only`, `pas de`, `interdit`…) est un rappel de règle → ignorée.
|
(`jamais`, `❌`, `only`, `pas de`, `interdit`…) est un rappel de règle → ignorée.
|
||||||
Escape hatch documenté : ajouter `ci-allow` sur une ligne pour l'exclure.
|
Escape hatch documenté : ajouter `ci-allow` sur une ligne pour l'exclure.
|
||||||
|
|
||||||
|
**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
|
||||||
|
périodiquement que la contrainte #2 nomme `michel/otov7-platform` (port 3015) tandis que la
|
||||||
|
section *Git* de CLAUDE.md et le README racine nomment `michel/oto-enterprise-os-dtp` — d'où
|
||||||
|
un soupçon de faute de frappe dans deux docs qui se contrediraient. **Ce sont deux dépôts
|
||||||
|
Gitea distincts, tous deux corrects** : `otov7-platform` est le dépôt du **produit** (la
|
||||||
|
plateforme OTOV7 en cours de construction, cible du refactoring), `oto-enterprise-os-dtp` est
|
||||||
|
le dépôt de **mandat** (ce worker, ses générateurs et hand-off). La contrainte #2 verrouille
|
||||||
|
la plateforme *produit* sur Gitea ; la section *Git* précise où vit le *mandat*. Aucune des
|
||||||
|
deux ne ment. **Ne pas « aligner » CLAUDE.md #2 sur le nom du mandat** — ce serait corrompre
|
||||||
|
la constitution (mémoire *otov7-platform-not-drift*). Le garde `guard_constraints.sh` ne
|
||||||
|
vérifie que l'**absence** de plateformes interdites (github/gitlab/bitbucket), pas l'identité
|
||||||
|
d'un repo Gitea autorisé — donc rien à gater ici (#5).
|
||||||
|
|
||||||
### `validate_json.sh`
|
### `validate_json.sh`
|
||||||
Parse chaque `*.json` suivi (dont `version.schema.json` et
|
Parse chaque `*.json` suivi (dont `version.schema.json` et
|
||||||
`projets_master.schema.json`, contrat de données Faisabilité → Publiciste).
|
`projets_master.schema.json`, contrat de données Faisabilité → Publiciste).
|
||||||
|
|||||||
Reference in New Issue
Block a user