Constitución de Ingeniería
Resumen
Una carta portátil de práctica de ingeniería, descompuesta en habilidades enfocadas. Esta habilidad es el índice: establece los principios inviolables y te enruta a la habilidad específica para tu tarea. El razonamiento completo reside en references/engineering-constitution.md, empaquetado junto a este SKILL.md para que viaje con la habilidad dondequiera que esté instalada.
Idea central: La ingeniería de software es programación integrada a lo largo del tiempo. Optimiza para el sistema de larga duración — operarlo, cambiarlo de forma segura, recuperarlo cuando se rompe — no para el primer despliegue.
Los Ocho Principios Inviolables
- Entender antes de construir. Sin código antes de un diseño aprobado.
- Registrar cada decisión con su justificación — y lo que rechazaste.
- Las pruebas son un control, no una formalidad — y el cambio de comportamiento es primero la prueba. Una prueba fallida es información, nunca se edita. El cambio estructural, en cambio, está condicionado a que la suite existente pase sin editar.
- YAGNI, sin piedad.
- Automatiza lo repetible.
- La ingeniería de software es programación integrada a lo largo del tiempo.
- Una regla no aplicada es una sugerencia. Vincula las reglas a herramientas o etiquétalas como juicio del revisor.
- Las instrucciones explícitas del usuario están por encima de este documento. Precedencia: Usuario → Constitución → valores predeterminados de la herramienta.
¿Qué Habilidad Necesito?
Nivel 1 — universal (aplica a todo proyecto):
| Tu tarea | Habilidad |
|---|---|
| Comenzar una funcionalidad, convertir una idea en una especificación/plan | designing-before-building |
| Se tomó una decisión; escribirla (ADR, índice, ideas diferidas) | recording-decisions |
| Hacer commits, escribir mensajes, lanzamientos automatizados | conventional-commits-and-releases |
| Escribir/cambiar pruebas; reglas de permisos/roles; una prueba se rompió en una refactorización | tests-as-a-control |
| Escribir o refactorizar código; estructurar un cambio; decisiones DRY | change-hygiene-and-code-craft |
| Construir UI, componentes, estilos, accesibilidad | interface-craft-and-accessibility |
| CI, ganchos pre-push, ejecutores de tareas, puertas de fusión | merge-gates-and-automation |
| Registro, métricas, trazas, comprobaciones de salud, SLO, alertas | observability-and-slos |
| Entrada no confiable, secretos, autenticación, dependencias, modelado de amenazas | defense-in-depth-security |
| Rutas críticas, paginación, N+1, endpoints de listas, interfaces públicas | performance-and-scale |
| Planificar un despliegue, reversión o incidente/postmortem | resilience-and-deploy-safety |
Nivel 2 — específico del stack (cargar solo cuando la herramienta/tema está presente):
| Tu tarea | Habilidad |
|---|---|
| PostgreSQL, PostGraphile, RLS, archivos SQL, la ruta app→GraphQL→DB | postgres-postgraphile-rls-and-sql |
| Consultas GraphQL compartidas entre UI y pruebas; pruebas de contrato de ruta/esquema | graphql-contract-testing |
| Cambio de esquema con datos que deben sobrevivir — migraciones, rellenado | zero-downtime-migrations |
| Desplegar en Kubernetes/AKS, secretos en la nube, despliegue progresivo, entornos por PR | cloud-delivery-aks |
Cómo se Aplican Estas Habilidades a un Proyecto Nuevo
- El Nivel 1 viaja sin cambios. Cada habilidad por encima de la línea aplica a cualquier proyecto — aplicación web, pipeline, CLI, biblioteca.
- El Nivel 2 es intercambiable. Cuando el stack difiere, las habilidades de Nivel 2 no se activarán (sus descripciones son específicas del stack) y sustituyes equivalentes. Los principios que implementan (una ruta de datos, aplicación final baja, costuras de contrato, despliegues reversibles) siguen vigentes.
- Escala según el ciclo de vida. Un proyecto pre-lanzamiento o solo local aplica migraciones de cero tiempo de inactividad, canary y proceso de incidente formal como escribe-la-regla-ahora, activa-en-desencadenador. Indica el modo del proyecto en su primer registro de decisión.
Bandera Roja
Si estás a punto de escribir código, hacer commit, desplegar o cambiar una prueba y no has consultado la habilidad relevante anterior — detente y cárgala primero. La constitución anula el hábito predeterminado (Principio 7); el hábito es lo que está corrigiendo.