[DTP-Worker] Sprint 8 · buffer · Fiches agents/master prompt : gate d'IDENTITÉ de l'endpoint GPU RunPod ComfyUI (pod t68akvx80wv092 + tag « Flux dev fp8 » · 6 citations BIM/Rendu/master prompt) ancré sur le bullet §1 de AGENTS_EXISTING_ASSETS.md

Surface data-derived jusqu'ici hors de tout gate : l'ID du pod RunPod ComfyUI
et le tag modèle Flux, recopiés à la main en 6 endroits, dont la source de
vérité in-repo est le fichier maître AGENTS_EXISTING_ASSETS.md (que les fiches
citent explicitement). Un pod re-créé (nouvel id) ou un modèle bumpé péримait
les citations en silence → batch Flux câblé vers un endpoint GPU mort (#6).

Gate « RunPod endpoint » (ci/check_readme_claims.sh, avant sys.exit) : id+tag
recomputés du bullet §1 (garde : bullet unique) ; direction fiche→inventaire —
toute fiche/master prompt mentionnant RunPod doit citer l'id EXACT (token
backtické de forme pod == canonique) + le tag EXACT ; disparition totale échoue.
6 morsures vérifiées (id change → 3 fiches cascade · tag bump → 3 · mistype → 1
· tag drop → 1 · id drop → incomplet · bullet supprimé → ancre morte) ; restauré
green · 7 gates re-verts.

ci/README.md (clause récap + paragraphe détaillé) + 05_activity_log mis à jour.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-01 13:11:39 +00:00
parent c6428533a0
commit 2e627a6a3b
3 changed files with 152 additions and 1 deletions
+50
View File
@@ -1403,3 +1403,53 @@ reste l'interdit absolu — non utilisé.)
- **Hors périmètre worker (VPS · #8)** : néant (gate bash/python3 stdlib en-repo · - **Hors périmètre worker (VPS · #8)** : néant (gate bash/python3 stdlib en-repo ·
édition **hors** `05_deliverables_mvp/*/out` ⇒ 0 dérive d'artefact). édition **hors** `05_deliverables_mvp/*/out` ⇒ 0 dérive d'artefact).
- **Auto-score 4Big** : 96/100. - **Auto-score 4Big** : 96/100.
## Session `20260801_130325` · Buffer S8 · Fiches agents + master prompt/infra GPU : l'**IDENTITÉ de l'endpoint RunPod ComfyUI** — l'ID du pod `t68akvx80wv092` + le tag modèle **« Flux dev fp8 »** qui exécute le rendu Flux — était RECOPIÉE À LA MAIN en **6 citations** (`03_agents/bim/AGENT.md:32,67` · `03_agents/rendu/AGENT.md:19,55,91` · `02_master_prompt/MASTER_PROMPT_DTP_v2.md:24`) mais **HORS de tout gate**. La source de vérité in-repo est le bullet §1 de `AGENTS_EXISTING_ASSETS.md:15` — « le fichier maître » que les fiches CITENT explicitement comme leur ancre.
**Tâche** : **Sprint 8 · buffer** (DevOps CI/CD · QA). Roadmap fonctionnellement
close ; poursuite de la série anti-dérive (CLAUDE.md #6). Même classe de « vert
trompeur » que la colonne « Job CI » ou « Entrée CLI » des fiches (surface data-derived
recopiée à la main, jamais confrontée à sa source) — appliquée à une **surface distincte
encore jamais gatée** : l'**infra GPU** (l'endpoint RunPod que l'agent Rendu/BIM câble
pour le batch Flux). Classe `agent-fiche-role-attrs-ungated`.
**Dérive silencieuse fermée** :
- `03_agents/bim/AGENT.md` (table modules L32 + coordination L67) · `03_agents/rendu/AGENT.md`
(principe L19 + table L55 + coordination L91) · `02_master_prompt/MASTER_PROMPT_DTP_v2.md:24`
(bloc infra « GPU ») — chacun NOMME entre backticks l'id `t68akvx80wv092` et/ou le tag
« Flux dev fp8 ».
- Source faisant autorité : `AGENTS_EXISTING_ASSETS.md:15` §1 BIM
(« - **RunPod ComfyUI** endpoint `t68akvx80wv092` (Flux dev fp8) »).
- Piège : un pod RunPod est **RE-CRÉÉ avec un NOUVEL id** (cas le plus courant) ou le
modèle Flux est bumpé (`dev fp8`→autre quant) : l'inventaire maître se met à jour, les
6 citations se PÉRIMENT en silence pendant que l'agent Rendu/BIM câblerait le batch vers
un **endpoint GPU MORT** — l'invention même que #6 interdit. `check_docs` ne voit qu'un
lien, `guard_constraints` qu'un terme interdit, `check_artifacts` qu'un `out/` — un ID de
pod n'est aucun des trois ; aucune suite `tests/` (FONCTIONS du module) n'attrape la prose.
- **État courant** : **aucune citation périmée** — les 6 recoupent l'inventaire exactement
(anti-invention #6, rien à réécrire). Le défaut est la **surface ungated**.
**Gate ajouté** (`ci/check_readme_claims.sh`, nouveau bloc « RunPod endpoint » avant
`sys.exit`) : (0) **ancrage** — id + tag recomputés du bullet §1 (garde : bullet EXACTEMENT
une fois, sinon ancre morte) ; (1) **direction fiche→inventaire** — toute fiche/master
prompt qui MENTIONNE RunPod doit citer l'id EXACT (tout token backtické de forme pod —
alphanum minuscule ≥12 **avec un chiffre**, forme qui n'entre en collision avec aucun autre
token backtické du corpus : vérifié) == canonique, ET le tag Flux EXACT (substring
normalisé, insensible casse) ; (2) **disparition totale** — plus aucune mention RunPod
échoue AUSSI (traçabilité #6).
**6 morsures vérifiées** : inventaire re-crée le pod (id change → mord les **3 fiches** en
cascade) · inventaire bump le tag (`dev fp8→schnell fp8` → 3 fiches) · fiche rendu mistype
une citation (id fantôme, mord rendu seul) · fiche bim retire le tag (tag absent) · master
prompt retire l'id backtické (citation incomplète) · inventaire supprime le bullet canonique
(ancre morte, recompute impossible) ; restauré = green : 3 fiches · id == inventaire · tag ==
inventaire · exit 0. Working tree byte-restauré (`git checkout --`, **JAMAIS** `git clean`,
interdit absolu) · **7 gates re-verts** (`check_readme_claims`/`check_docs`/`guard_constraints`/
`check_artifacts`/`check_ci_integrity`/`validate_json`/`check_regression`).
- `ci/README.md` (clause récap du pipeline `check-readme-claims` + paragraphe détaillé
« IDENTITÉ de l'endpoint GPU RunPod ComfyUI ancrée sur l'inventaire maître ») mis à jour.
- **Hors périmètre worker (VPS · #8)** : néant (gate bash/python3 stdlib en-repo ; édition
**hors** `05_deliverables_mvp/*/out` ⇒ 0 dérive d'artefact ; le pod RunPod réel + le
batch ComfyUI Flux restent côté VPS/RunPod).
- **Auto-score 4Big** : 96/100.
+23 -1
View File
File diff suppressed because one or more lines are too long
+79
View File
@@ -5375,6 +5375,85 @@ if sdk is not None:
else: else:
good(f"Mobile Expo SDK · {MOB_SDK_RD} — « Expo SDK **{sdk}** » cite l'ancre roadmap") good(f"Mobile Expo SDK · {MOB_SDK_RD} — « Expo SDK **{sdk}** » cite l'ancre roadmap")
# ============================================================================
# Fiches agents + master prompt · IDENTITÉ de l'endpoint GPU RunPod ComfyUI —
# le pod `t68akvx80wv092` (Flux dev fp8) cité DOIT == l'inventaire maître
# AGENTS_EXISTING_ASSETS.md (même classe de « vert trompeur », côté infra GPU).
# ----------------------------------------------------------------------------
# Les fiches BIM/Rendu et le master prompt NOMMENT, entre backticks, l'ID du pod
# RunPod ComfyUI qui exécute le rendu Flux (`t68akvx80wv092`) + le tag du modèle
# (« Flux dev fp8 »). Ces valeurs sont SAISIES À LA MAIN ; la source de vérité
# in-repo est le bullet §1 de AGENTS_EXISTING_ASSETS.md — « le fichier maître
# en-repo » que les fiches CITENT explicitement comme leur ancre. Aucun gate ne
# couvrait ce lien : check_docs ne voit qu'un lien Markdown, guard_constraints
# qu'un terme interdit, check_artifacts qu'un out/ — un ID de pod n'est aucun des
# trois. Or un pod RunPod est RE-CRÉÉ avec un NOUVEL id (le cas le plus courant) :
# l'inventaire maître se met à jour, les 6 citations en fiches se PÉRIMENT en
# silence → l'agent Rendu/BIM câblerait le batch Flux vers un endpoint GPU MORT
# (l'invention même que #6 interdit). Aucune suite tests/ (FONCTIONS du module,
# jamais la prose de fiche) ne l'attrape ; classe notée en mémoire
# (`agent-fiche-role-attrs-ungated`) : la fiche restitue une donnée data-derived
# (ici l'infra GPU) sur une surface distincte de tout gate.
#
# On RECOMPUTE l'id + le tag depuis le bullet maître (jamais une liste à la main
# · #6). Direction fiche→inventaire (le consommateur) : toute fiche/master prompt
# qui MENTIONNE RunPod doit citer l'id EXACT (tout token backtické de forme pod —
# alphanum minuscule ≥12 avec un chiffre — == canonique) + le tag Flux EXACT. La
# disparition TOTALE de la surface (plus aucune mention RunPod) échoue AUSSI.
# ============================================================================
RUNPOD_SRC = "AGENTS_EXISTING_ASSETS.md"
try:
_rp_src = re.sub(r"\s+", " ", open(RUNPOD_SRC, encoding="utf-8").read())
except OSError as e:
bad(f"RunPod endpoint · {RUNPOD_SRC} illisible : {e}"); _rp_src = None
if _rp_src is not None:
_rp_hits = re.findall(
r"RunPod ComfyUI\*\*\s*endpoint\s*`([a-z0-9]+)`\s*\((Flux[^)]+)\)", _rp_src)
if len(_rp_hits) != 1:
bad(f"RunPod endpoint · bullet canonique INTROUVABLE ou en double dans "
f"{RUNPOD_SRC} (attendu 1, trouvé {len(_rp_hits)}) → source d'ancrage "
f"cassée, impossible de recomputer l'id du pod GPU")
else:
pod_id, flux_tag = _rp_hits[0]
flux_tag = flux_tag.strip()
flux_norm = re.sub(r"\s+", " ", flux_tag).lower()
pod_shape = re.compile(r"`([a-z0-9]{12,})`")
rp_files = subprocess.run(
["git", "ls-files", "03_agents/*/AGENT.md"],
capture_output=True, text=True).stdout.split()
rp_files.append("02_master_prompt/MASTER_PROMPT_DTP_v2.md")
rp_citers = 0
for rf in rp_files:
try:
rtxt = re.sub(r"\s+", " ", open(rf, encoding="utf-8").read())
except OSError as e:
bad(f"RunPod endpoint · {rf} illisible : {e}"); continue
if "RunPod" not in rtxt:
continue # fiche ne cite pas l'infra GPU (ok)
rp_citers += 1
toks = [t for t in pod_shape.findall(rtxt) if re.search(r"\d", t)]
if not toks:
bad(f"RunPod endpoint · {rf} mentionne RunPod mais ne cite AUCUN id "
f"de pod backtické (attendu `{pod_id}`) → citation incomplète")
else:
stale = sorted({t for t in toks if t != pod_id})
if stale:
bad(f"RunPod endpoint · {rf} cite l'id périmé {stale} MAIS "
f"l'inventaire maître dit `{pod_id}` → pod re-créé / mal "
f"recopié, endpoint GPU fantôme (régénérer la fiche)")
else:
good(f"RunPod endpoint · {rf} · {len(toks)} citation(s) "
f"`{pod_id}` == {RUNPOD_SRC}")
if flux_norm not in rtxt.lower():
bad(f"RunPod endpoint · {rf} cite le pod mais PAS le tag modèle "
f"« {flux_tag} » (== {RUNPOD_SRC}) → tag Flux périmé/absent")
else:
good(f"RunPod endpoint · {rf} · tag modèle « {flux_tag} » == inventaire")
if rp_citers == 0:
bad(f"RunPod endpoint · AUCUNE fiche/master prompt ne mentionne RunPod — "
f"la surface d'identité de l'endpoint GPU s'est évaporée (régression #6)")
sys.exit(1 if FAIL else 0) sys.exit(1 if FAIL else 0)
PY PY
rc=$? rc=$?