Gates CI
Les gates CI sont les vérifications bloquantes appliquées sur chaque PR et chaque push sur main. Toute PR doit les passer pour être mergée.
Workflows : .github/workflows/ci.yml, .github/workflows/release.yml, .github/workflows/scorecard.yml.
Vue d’ensemble des gates
Section intitulée « Vue d’ensemble des gates »| Gate | Source | Bloquant |
|---|---|---|
| Public files guard | git ls-files filtrage | oui |
| Public docs guard | scripts/check-public-docs.mjs | oui |
| Docs link check | scripts/check-doc-links.mjs | oui |
| DCO sign-off | tim-actions/dco | oui |
| Secret scan | gitleaks | oui |
| ShellCheck | shellcheck sur scripts/*.sh | oui |
| Lint | eslint --max-warnings=0 | oui |
| Architecture boundaries | scripts/check-architecture-boundaries.mjs | oui |
| Line-count | scripts/check-line-counts.mjs | oui |
| Typecheck | tsc --noEmit | oui |
| Tests unitaires | vitest run | oui |
| Build | npm run build | oui |
| License check | scripts/check-licenses.mjs | oui |
| SBOM | cyclonedx-npm | oui |
| OSSF Scorecard | scorecard-action (hebdo) | non bloquant, mesure posture |
Public files guard
Section intitulée « Public files guard »Refuse les fichiers internes dans l’index Git :
.input/(atelier privé, gitignored).claude/(config Claude Code, gitignored sauf exceptions)AGENTS.md,CLAUDE.md(guides internes — exclus du dépôt public parscripts/init-public-repo.sh).agents/,.codex/,.gitnexus/(état local)
Si un de ces fichiers apparaît dans git ls-files, le job échoue.
Public docs guard
Section intitulée « Public docs guard »scripts/check-public-docs.mjs analyse tous les .md sous docs/ (+ racine README*, ROADMAP, SECURITY, CONTRIBUTING) :
- Noms de fichier interdits : motifs
AGENT-*(saufAGENT-INSTALL),AUDITOR-*,DISPATCH-*. - Contenu interdit : références aux briefs de dispatch internes, aux dossiers d’anciens chantiers WIP retirés, et autres artefacts d’orchestration interne.
Pour faire passer : retirer/renommer les fichiers contrevenants, ou supprimer la mention textuelle.
Docs link check
Section intitulée « Docs link check »scripts/check-doc-links.mjs valide les liens markdown :
- Chaque lien markdown inline doit pointer vers un fichier existant.
- Chaque lien avec ancre doit pointer vers une section existante dans le fichier cible.
- Les URL externes (
http://,https://,mailto:) sont ignorées.
Pour faire passer : corriger ou retirer les liens cassés. Les mentions de fichiers à venir doivent être en code simple, pas en lien actif.
DCO sign-off
Section intitulée « DCO sign-off »Chaque commit doit avoir une ligne Signed-off-by: Nom <email> (équivalent git commit -s). Le DCO atteste que vous avez le droit de soumettre la contribution sous la licence du projet.
Pour faire passer :
- Toujours utiliser
git commit -s(créer un alias si besoin). - Si commit oublié :
git commit --amend -spour le dernier, ougit rebase -i HEAD~N --signoffpour plusieurs.
Secret scan (gitleaks)
Section intitulée « Secret scan (gitleaks) »gitleaks/gitleaks-action scanne les commits PR pour détecter clés API, tokens, mots de passe. Faux positif → ajouter une entrée dans .gitleaksignore.
Architecture boundaries
Section intitulée « Architecture boundaries »scripts/check-architecture-boundaries.mjs valide que les imports respectent les frontières définies dans ADR 0001. Toute violation (core/ qui importe adapters/, etc.) bloque la CI.
Line-count
Section intitulée « Line-count »scripts/check-line-counts.mjs refuse les fichiers monolithiques au-dessus du seuil (typiquement 1000-1500 lignes selon le type). Force le découpage en modules cohésifs.
License check
Section intitulée « License check »scripts/check-licenses.mjs vérifie que toutes les dépendances utilisent des licences compatibles avec Apache 2.0 (le projet). Les copyleft non autorisées (GPL, AGPL) sont refusées.
cyclonedx-npm génère un Software Bill of Materials pour la racine, l’UI et cortex-lite. Validé en CI, distribué avec les releases.
OSSF Scorecard
Section intitulée « OSSF Scorecard »Mesure hebdomadaire (lundi) de la posture supply-chain (signature, dépendances, hygiène). Non bloquant — score affiché publiquement sur la GitHub Security tab.
Voir aussi
Section intitulée « Voir aussi »- Scripts en détail : ../reference/scripts-ci
- ADR architecture hexagonale : ../../adr/0001-architecture-hexagonale.md
- ADR distribution GitHub : ../../adr/0004-distribution-github-only.md