skraft-config
Initialise et édite
skraft-config.json— le fichier de paramètres repository-wide dont la clé centrale estdepthTier, le dial de rigueur qui gouverne la variante TDD, les seuils de mutation, le nombre de lentilles de revue et la porte Gherkin dans chaque phase du pipeline.
Quand l’utiliser
- Lors de l’initialisation d’un nouveau dépôt SKRAFT (
configure skraft,skraft-config init) - Pour modifier le niveau de rigueur du dépôt (
set depth tier,change strictness) - Une seule fois par dépôt —
depthTierest une décision repository, pas un choix par tâche - Jamais pour les paramètres par tâche — ceux-ci vivent dans
state.jsonvia le CLI d’état
Contrat d’entrée
- Accès en lecture/écriture à la racine du dépôt
- Choix du
depthTierconfirmé avec l’utilisateur (oucomprehensivepar défaut) SKRAFT_CONFIG_ROOToptionnel pour surcharger le répertoire de base
Contrat de sortie
skraft-config.jsoncréé ou mis à jour à la racine du dépôtdepthTierpersisté parmi{basic, standard, comprehensive, custom}depthTierRationalepersisté si le tier choisi descend en dessous decomprehensive- Confirmation affichée à l’utilisateur, p.ex.
Repo depth tier set to 'standard' (was comprehensive).
Invariants
- Déterminisme S7 — toute lecture et écriture d’une clé gouvernée passe par
config.mjs; ne jamais éditerskraft-config.jsonmanuellement pourdepthTier/depthTierRationale comprehensivepar défaut — toute réduction exige une décision explicite avec rationale- Séquence A9 obligatoire — init → choose → set → verify ; ne pas sauter l’étape de vérification
- Clés inconnues rejetées —
config.mjs setretourne exit code 3 pour toute clé non gouvernée customnon géré parconfig.mjs set—customDepthest un champ structuré édité directement- Sauvegarde atomique — le CLI préserve les champs non gouvernés et sauvegarde avant d’écrire
Pourquoi cette forme
Un fichier de configuration repository-wide évite la dérive silencieuse du niveau de qualité entre les runs. Passer le depthTier par contexte de dispatch (plutôt que laisser chaque agent lire le fichier) garantit la cohérence et l’auditabilité.
« The goal of software architecture is to minimize the human resources required to build and maintain the required system. » — Martin, R. C., Clean Architecture, 2017.
La séparation entre paramètres repository (skraft-config.json) et paramètres par tâche (state.json) suit le principe de responsabilité unique : chaque fichier a exactement un propriétaire et un périmètre.
Customisation autorisée
- Choix du
depthTier(basic,standard,custom) avec rationale (L1) customDepthpar porte lorsquedepthTier: custom— édité directement dansskraft-config.json(L2)SKRAFT_CONFIG_ROOTpour pointer vers un répertoire de base différent (L1)
Voir aussi
- skraft-difficulty-routing — Routage 3 axes à la sortie de DISCOVER ; table des tiers de profondeur
- craft-discipline — Discipline d’artisanat logiciel qui s’appuie sur les invariants du pipeline