cac65386ab
Orchestrateur méta-niveau : compose les hand-offs out/ des 10 modules déjà livrés en un run-sheet de démo jouable, via pointeurs RFC 6901 résolus à la construction (zéro chiffre en dur · #6). Réutilise le validateur Publiciste et la preuve de couverture CI de l'auditeur 4Big (#5) — une démo ne s'appuie que sur des modules gated. Enregistre demo/scenarios dans l'audit 4Big (17→18, verdict PASS 18/18 à 100). 32 tests (9 injections négatives) · régression 474 tests verts · guards CI verts · builds déterministes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
"""Réutilisation des briques déjà livrées (workflow #5 · zéro duplication).
|
|
|
|
L'orchestrateur démo ne redéfinit RIEN qui existe ailleurs :
|
|
|
|
- `validate` : le validateur JSON-Schema maison du Publiciste (draft-07,
|
|
sous-ensemble) — le run-sheet est validé SANS pip, car le
|
|
gate CI Gitea Actions tourne sans réseau (CLAUDE.md #2).
|
|
- `ci_module_paths` : la PREUVE de couverture de l'auditeur 4Big
|
|
(`qa/audit_4big/q4lib/registry.py`), qui lit
|
|
`.gitea/workflows/ci.yml` pour connaître les modules
|
|
réellement gated. On la réutilise pour garantir qu'une
|
|
démo ne s'appuie QUE sur des livrables validés par le CI —
|
|
jamais sur du code non gated.
|
|
|
|
Import par manipulation de `sys.path` (idiome des modules voisins :
|
|
`banclib/deps.py`, `q4lib/deps.py`) plutôt que duplication — une seule source de
|
|
vérité pour tout le mandat.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
|
|
_HERE = os.path.dirname(os.path.abspath(__file__))
|
|
# demo/scenarios/scenlib → 05_deliverables_mvp
|
|
_DELIVERABLES = os.path.normpath(os.path.join(_HERE, "..", "..", ".."))
|
|
_PUB = os.path.join(_DELIVERABLES, "publiciste")
|
|
_AUDIT = os.path.join(_DELIVERABLES, "qa", "audit_4big")
|
|
|
|
for _p in (_PUB, _AUDIT):
|
|
if _p not in sys.path:
|
|
sys.path.insert(0, _p)
|
|
|
|
from lib import validator # type: ignore # noqa: E402
|
|
from q4lib import registry # type: ignore # noqa: E402
|
|
|
|
validate = validator.validate
|
|
ci_module_paths = registry.ci_module_paths
|
|
|
|
# Racine des livrables, exposée aux autres modules scenlib.
|
|
DELIVERABLES_ROOT = _DELIVERABLES
|
|
|
|
__all__ = ["validate", "ci_module_paths", "DELIVERABLES_ROOT"]
|