Skip to main content

Pipeline de build

Deux pistes distinctes : le build (déterministe, sans mutation, sans réseau pour le cœur) et le rafraîchissement des données (passes mutantes, à la demande).

Build (déterministe)

canonical JSON
→ validate_model.py (gardes : scores 0-100, poids, refs, anti-anachronisme, maturité P1)
→ compute_scores.py
→ generate_exports.py
→ generate_mdx.py
→ docusaurus build
→ GitHub Pages

validate_model.py est la garde au build : il échoue si une donnée viole une règle (anachronisme non rejeté, reviewed hors P1, score hors borne…). Les gardes anachronisme et maturité sont déterministes et hors réseau.

Vérifications (read-only)

  • npm run check:data — validate + audit_anachronism --check + enforce_maturity_policy --check (hors réseau, utilisable partout).
  • npm run audit:refsaudit_references --check (réseau : Crossref/OpenLibrary). Exécuté en CI où le réseau est disponible ; échoue si une référence devient non vérifiable.

Rafraîchissement des données (mutant, à la demande)

npm run data:refresh
= audit_anachronism.py --write (rejette les anachronismes -> deprecated)
+ enforce_maturity_policy.py --write (reviewed réservé aux P1)
+ audit_references.py --write (flag les refs non vérifiables)
+ build_site.py (régénère les artefacts)

À lancer après toute modification des données canoniques. Ne fait pas partie du build CI : il modifie les fichiers canoniques (et touche le réseau pour les références).

CI

Le workflow GitHub Actions exécute, avant le build : check:data (gardes hors ligne) puis audit:refs (réseau). Aucun fichier généré ne doit être modifié à la main.