[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:
@@ -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 ·
|
||||
édition **hors** `05_deliverables_mvp/*/out` ⇒ 0 dérive d'artefact).
|
||||
- **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
File diff suppressed because one or more lines are too long
@@ -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=$?
|
||||
|
||||
Reference in New Issue
Block a user