# PRINCIPIO: DOCUMENTACIÓN PRIMERO **Versión:** 1.0.0 **Fecha:** 2025-12-08 **Tipo:** Principio Fundamental - HERENCIA OBLIGATORIA **Aplica a:** TODOS los agentes sin excepción --- ## DECLARACIÓN DEL PRINCIPIO ``` ╔══════════════════════════════════════════════════════════════════════╗ ║ ║ ║ DOCUMENTACIÓN PRIMERO, IMPLEMENTACIÓN DESPUÉS ║ ║ ║ ║ "Si no está documentado, no existe." ║ ║ "Si contradice la documentación, está mal." ║ ║ ║ ╚══════════════════════════════════════════════════════════════════════╝ ``` --- ## REGLA EN 3 PASOS ``` PASO 1: ANTES DE IMPLEMENTAR ───────────────────────────── Consultar docs/ para entender: - ¿Qué dice la documentación sobre esto? - ¿Hay especificaciones o diseños? - ¿Hay ADRs relacionados? PASO 2: SI HAY CAMBIO DE DISEÑO ───────────────────────────── Actualizar docs/ PRIMERO: - Documentar el nuevo diseño - Crear ADR si es decisión arquitectónica - Actualizar especificaciones PASO 3: IMPLEMENTAR ───────────────────────────── Solo entonces escribir código: - Seguir lo documentado - Referenciar docs/ en comentarios si aplica ``` --- ## FLUJO VISUAL ``` ┌─────────────────────┐ │ TAREA NUEVA │ └──────────┬──────────┘ │ ▼ ┌─────────────────────┐ │ ¿Consulté docs/? │──── NO ────► CONSULTAR DOCS/ PRIMERO └──────────┬──────────┘ │ SÍ ▼ ┌─────────────────────┐ │ ¿Hay contradicción? │──── SÍ ────► ACTUALIZAR DOCS/ PRIMERO └──────────┬──────────┘ │ NO ▼ ┌─────────────────────┐ │ ¿Falta documentar? │──── SÍ ────► DOCUMENTAR PRIMERO └──────────┬──────────┘ │ NO ▼ ┌─────────────────────┐ │ IMPLEMENTAR │ └─────────────────────┘ ``` --- ## DOCUMENTACIÓN A CONSULTAR ### Antes de CUALQUIER tarea: ```yaml Obligatorio: - docs/00-vision-general/ # Visión y alcance - docs/95-guias-desarrollo/ # Estándares y convenciones - docs/97-adr/ # Decisiones arquitectónicas Si aplica: - docs/01-fase-*/ # Especificaciones por fase - docs/modulos/{modulo}/ # Especificaciones del módulo - orchestration/inventarios/ # Estado actual del proyecto ``` ### Para cada tipo de tarea: ```yaml Database: - @GUIAS/database/ (si existe) - @ADR (decisiones de BD) Backend: - @GUIAS_BE/DTO-CONVENTIONS.md - @GUIAS_BE/API-CONVENTIONS.md - @ADR Frontend: - @GUIAS_FE/TYPES-CONVENTIONS.md - @GUIAS_FE/COMPONENT-PATTERNS.md - @ADR ``` --- ## CUÁNDO ACTUALIZAR DOCS/ PRIMERO | Situación | Acción | |-----------|--------| | Nueva feature no documentada | Documentar diseño antes de implementar | | Cambio de arquitectura | Crear ADR antes de implementar | | Contradicción docs/ vs realidad | Actualizar docs/ (si realidad es correcta) | | Nueva convención | Documentar en guías antes de usar | | Nuevo módulo/schema | Documentar estructura antes de crear | --- ## CUÁNDO NO APLICA ```yaml Excepciones (no requiere actualizar docs/ primero): - Bug fixes menores (solo corrección, no cambio de diseño) - Refactors internos (misma funcionalidad) - Actualizaciones de dependencias - Corrección de typos en código PERO siempre aplica: - Consultar docs/ para entender el contexto - Documentar en traza lo realizado - Actualizar inventarios si hay cambios estructurales ``` --- ## CONSECUENCIAS DE IGNORAR ESTE PRINCIPIO ``` ❌ Código que contradice documentación → Confusión, bugs, deuda técnica ❌ Features no documentadas → Nadie sabe qué hace ni por qué ❌ Implementar sin consultar docs/ → Duplicados, inconsistencias, trabajo rehecho ❌ Cambiar arquitectura sin ADR → Decisiones perdidas, errores repetidos ``` --- ## CHECKLIST RÁPIDO ``` Antes de escribir código: [ ] Consulté docs/ relevantes [ ] No hay contradicción con lo documentado [ ] Si hay cambio de diseño, actualicé docs/ primero Al terminar: [ ] Código sigue lo documentado [ ] Actualicé inventarios [ ] Documenté en traza ``` --- ## REFERENCIAS SIMCO - **@DOCUMENTAR** - Cómo documentar correctamente - **@VALIDAR** - Validación de coherencia docs/código - **@BUSCAR** - Cómo encontrar documentación --- **Este principio es OBLIGATORIO y NO puede ser ignorado por ningún agente.** --- **Versión:** 1.0.0 | **Sistema:** SIMCO | **Tipo:** Principio Fundamental