Brouillon à relire par Paul
Ce texte est un brouillon. Paul Perigault le relira et le réécrira avant publication.
ADR-0001 — Dépôt dédié, paquets npm et exécution déléguée
- Statut : accepté
- Date : 2026-10-20
- Contexte de référence :
docs/kickoff.md(kickoff + addenda),docs/research-report.md
Contexte
Le design system de paulperigault.fr devait d’abord vivre dans un dossier du portfolio, calqué
sur worker/ (rapport §4). Le kickoff en fait un vrai produit : réutilisable par d’autres sites,
y compris non Astro, versionné et publié.
Décision
- Dépôt dédié
PaulPerigault/design-system, monorepo npm workspaces, cinq paquets publiés sous@paulperigault(tokens,css,astro,guards,create) et une appapps/docs. Dépendances à sens unique :tokens ← css ← astro;guardsetcreatesans dépendance d’exécution vers les autres. - Consommation par import du paquet (semver) ;
ejectreste l’exception (copie verrouillée parpp-ds.lock.json).registry.jsonau schéma shadcn sert de métadonnées. - Registre npmjs public, publication uniquement par le workflow
release(trusted publishing OIDC, provenance automatique), jamais depuis un poste (prepublishOnly). - Infrastructure du dépôt en IaC dans la brique
infra/githubdu portfolio (dépôt adopté par blocsimport), Pages et DNS des docs dansinfra/; l’applyreste au propriétaire. - Exécution déléguée : un dispatcher Node testé (
tools/agents/) lance chaque tâche atomique dans un worktree isolé, par Kiro en headless (sessionkiro-cli login, aucun secret), contrôle l’acceptation et la propriété des fichiers, et journalise le routage.
Conséquences
- Le portfolio consommera des versions publiées (dist-tag
nextpour les préversions) ; un garde-fou refuse toute dépendancefile:/link:surmain. - La couleur (
color,contrast) vit danstokens(D-001), parce que le générateur en a besoin. - Le contrôle de propriété est la garantie finale :
--sandboxn’existe pas dans kiro-cli 2.32 et le bac à sable de Claude Code n’a pas fonctionné sur ce poste (D-002, D-005).
Alternatives écartées
- Dossier
design-system/dans le portfolio (rapport) : pas de réutilisation hors du site. - GitHub Packages : son registre npm exige un jeton même pour installer un paquet public, ce qui
casse
npx @paulperigault/create.