Constitution d'Ingénierie
Vue d'ensemble
Une charte portable des pratiques d'ingénierie, décomposée en compétences ciblées. Cette compétence est l'index : elle énonce les principes inviolables et vous achemine vers la compétence spécifique à votre tâche. Le raisonnement complet se trouve dans references/engineering-constitution.md, fourni avec ce SKILL.md afin qu'il voyage avec la compétence où qu'elle soit installée.
Idée centrale : Le génie logiciel, c'est de la programmation intégrée dans le temps. Optimisez pour le système durable — son exploitation, sa modification sécurisée, sa récupération en cas de panne — pas le premier déploiement.
Les Huit Principes Inviolables
- Comprendre avant de construire. Pas de code sans conception approuvée.
- Enregistrer chaque décision avec sa justification — et ce que vous avez rejeté.
- Les tests sont un contrôle, pas une formalité — et un changement de comportement se fait test-first. Un test qui échoue est une information, jamais éditée. Un changement structurel est au contraire conditionné par le passage de la suite existante sans modification.
- YAGNI, sans pitié.
- Automatiser le répétable.
- Le génie logiciel, c'est de la programmation intégrée dans le temps.
- Une règle non appliquée n'est qu'une suggestion. Liez les règles à des outils ou étiquetez-les comme soumises au jugement du relecteur.
- Les instructions explicites de l'utilisateur priment sur ce document. Priorité : Utilisateur → Constitution → valeurs par défaut de l'outil.
Quelle Compétence Ai-Je Besoin ?
Niveau 1 — universel (s'applique à tout projet) :
| Votre tâche | Compétence |
|---|---|
| Démarrer une fonctionnalité, transformer une idée en spécification/plan | designing-before-building |
| Une décision a été prise ; la consigner (ADR, index, idées différées) | recording-decisions |
| Commiter, rédiger des messages, releases automatisées | conventional-commits-and-releases |
| Écrire/modifier des tests ; règles de permission/rôle ; un test cassé lors d'un refactoring | tests-as-a-control |
| Écrire ou refactoriser du code ; structurer un changement ; décisions DRY | change-hygiene-and-code-craft |
| Construire l'UI, les composants, le style, l'accessibilité | interface-craft-and-accessibility |
| CI, hooks pre-push, exécuteurs de tâches, portes de merge | merge-gates-and-automation |
| Logging, métriques, tracing, checks de santé, SLOs, alertes | observability-and-slos |
| Entrées non fiables, secrets, auth, dépendances, modélisation des menaces | defense-in-depth-security |
| Chemins chauds, pagination, N+1, endpoints de liste, interfaces publiques | performance-and-scale |
| Planifier un déploiement, un rollback, ou un incident/post-mortem | resilience-and-deploy-safety |
Niveau 2 — spécifique à la pile (charger uniquement si l'outillage/le sujet est présent) :
| Votre tâche | Compétence |
|---|---|
| PostgreSQL, PostGraphile, RLS, fichiers SQL, le chemin app → GraphQL → DB | postgres-postgraphile-rls-and-sql |
| Requêtes GraphQL partagées entre UI et tests ; tests de contrat route/schéma | graphql-contract-testing |
| Changement de schéma avec des données qui doivent survivre — migrations, backfills | zero-downtime-migrations |
| Déploiement sur Kubernetes/AKS, secrets cloud, déploiement progressif, environnements par PR | cloud-delivery-aks |
Comment ces Compétences s'Appliquent à un Nouveau Projet
- Le Niveau 1 voyage inchangé. Chaque compétence ci-dessus s'applique à tout projet — application web, pipeline, CLI, bibliothèque.
- Le Niveau 2 est interchangeable. Lorsque la pile est différente, les compétences de Niveau 2 ne se déclenchent pas (leurs descriptions sont spécifiques à la pile) et vous les remplacez par des équivalents. Les principes qu'elles implémentent (chemin de données unique, application finale basse, coutures de contrat, déploiements réversibles) restent valables.
- S'adapter au cycle de vie. Un projet en pré-lancement ou purement local applique les migrations sans temps d'arrêt, le canary et le processus d'incident formel comme écrire-la-règle-maintenant, activer-sur-déclencheur. Indiquez le mode du projet dans son premier enregistrement de décision.
Drapeau Rouge
Si vous êtes sur le point d'écrire du code, de commiter, de déployer ou de modifier un test et que vous n'avez pas consulté la compétence pertinente ci-dessus — arrêtez-vous et chargez-la d'abord. La constitution remplace l'habitude par défaut (Principe 7) ; c'est contre l'habitude qu'elle corrige.