[DTP-Worker 20260812_040034] cleanup #5 · suppression orphelin out_fresh/ (doublon d'artefacts échappant à tous les gates)

frontend/portails/out_fresh/ (workspace.json + MANIFEST.json) était tracké mais
commité par accident une seule fois (f954cc1, 2026-08-02, scratch « fresh rebuild ») :
byte-identique à out/, produit par RIEN (le générateur n'écrit que dans out/ via
_DEFAULT_OUT), référencé NULLE PART (git grep out_fresh = 0). Il échappait à
check_artifacts (find -type d -name out = match EXACT sur `out`, jamais `out_fresh`)
donc au balayage reverse-bijection → bombe de staleness silencieuse (rien ne le
régénère : dès que la source bouge, out/ se met à jour et out_fresh/ diverge en copie
stale non-possédée). Suppression (out/ intacte, régénère byte-identique). Occurrence
isolée → pas de gate (#5). Candidat is_filled() écarté au byte-level (non-défaut, #6).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-12 04:07:49 +00:00
parent 031b5e762e
commit ee88d3698b
3 changed files with 21 additions and 1544 deletions
@@ -1,94 +0,0 @@
{
"generated_from": "rbac_50_roles.json (permissions_cibles + portail par rôle)",
"spec_version": "1.0.0",
"source_version": "1.0.0",
"roadmap_ref": "04_roadmap/ROADMAP_8_WEEKS_OR_LESS.md · Sprint 4 l.49 « Frontend Console : 5 portails (Ventes/Construction/Achat/Compta/Direction) »",
"counts": {
"workspaces": 5,
"roles_couverts": 44,
"liens_total": 53,
"raccourcis_total": 20
},
"brand": {
"note": "Tokens de marque luxury dark+doré (CLAUDE.md #4). Appliqués par la couche thème desk (Website Theme / CSS custom) déposée par l'agent Frontend sur le VPS — HORS de ce worker (#8). Repris ici pour le hand-off, jamais fabriqués.",
"fond": {
"valeur": "#0a0a12",
"source": "CLAUDE.md #4"
},
"accent": {
"valeur": "#f0b429",
"source": "CLAUDE.md #4"
},
"polices": [
{
"valeur": "Fraunces",
"source": "CLAUDE.md #4"
},
{
"valeur": "Cormorant Garamond",
"source": "CLAUDE.md #4"
}
]
},
"module_note": "Workspace.module laisse a None (a_confirmer) : l'agent ERPNext Backend le fixe au module de l'app OTO a l'import (#8). Le worker ne fabrique pas de nom d'app.",
"doctypes_custom_a_creer": [
"CONFOTUR Application",
"Faisabilité",
"Publiciste Log"
],
"workspaces": [
{
"portail": "ventes",
"workspace": "OTO Ventes",
"nb_cartes": 4,
"nb_raccourcis": 4,
"nb_liens": 11,
"nb_roles": 12,
"doctypes_custom": [
"CONFOTUR Application",
"Publiciste Log"
]
},
{
"portail": "construction",
"workspace": "OTO Construction",
"nb_cartes": 4,
"nb_raccourcis": 4,
"nb_liens": 9,
"nb_roles": 10,
"doctypes_custom": [
"Faisabilité"
]
},
{
"portail": "achat",
"workspace": "OTO Achat",
"nb_cartes": 3,
"nb_raccourcis": 4,
"nb_liens": 8,
"nb_roles": 5,
"doctypes_custom": []
},
{
"portail": "compta",
"workspace": "OTO Compta",
"nb_cartes": 4,
"nb_raccourcis": 4,
"nb_liens": 11,
"nb_roles": 8,
"doctypes_custom": []
},
{
"portail": "direction",
"workspace": "OTO Direction",
"nb_cartes": 4,
"nb_raccourcis": 4,
"nb_liens": 14,
"nb_roles": 9,
"doctypes_custom": [
"CONFOTUR Application",
"Faisabilité"
]
}
]
}
File diff suppressed because it is too large Load Diff