[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
+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:
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)
PY
rc=$?