## Directivas SIMCO v3.7.0 - Estandarizacion de Documentacion (7) - SIMCO-DOCUMENTACION-PROYECTO.md - SIMCO-NOMENCLATURA.md - SIMCO-ESTRUCTURA-DOCS.md - SIMCO-INVENTARIOS.md - SIMCO-TESTING.md - SIMCO-MIGRACIONES-BD.md - SIMCO-INTEGRACIONES-EXTERNAS.md ## Directivas SIMCO v3.8.0 - Mantenimiento de Documentacion (2) - SIMCO-MANTENIMIENTO-DOCUMENTACION.md - SIMCO-SINCRONIZACION-BD.md ## Templates (4) - TEMPLATE-INVENTARIO-PROYECTO.md - TEMPLATE-INTEGRACION-EXTERNA.md - TEMPLATE-MODULO-ESTANDAR.md - TEMPLATE-DEPRECACION.md ## Checklists (6) - CHECKLIST-DOCUMENTACION-PROYECTO.md - CHECKLIST-INVENTARIOS.md - CHECKLIST-NOMENCLATURA.md - CHECKLIST-MANTENIMIENTO-DOCS.md - CHECKLIST-SINCRONIZACION-BD.md - _MAP.md ## Perfil de Agente (1) - PERFIL-DOCUMENTATION-MAINTAINER.md ## Indices - INDICE-DIRECTIVAS-WORKSPACE.yml actualizado a v3.8.0 ## Submodulos actualizados (14) - gamilit, erp-core, michangarrito, template-saas - erp-suite, erp-construccion, erp-clinicas - erp-mecanicas-diesel, erp-retail, erp-vidrio-templado - trading-platform, betting-analytics - inmobiliaria-analytics, platform_marketing_content Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
371 lines
8.1 KiB
Markdown
371 lines
8.1 KiB
Markdown
# TEMPLATE: Inventario de Proyecto
|
|
|
|
**Version:** 1.0.0
|
|
**Proposito:** Template para crear inventarios YAML estandarizados
|
|
**Referencia:** SIMCO-INVENTARIOS.md
|
|
**Creado:** 2026-01-10
|
|
|
|
---
|
|
|
|
## Instrucciones de Uso
|
|
|
|
1. Copiar la seccion del tipo de inventario que necesita
|
|
2. Guardar con el nombre apropiado (MASTER_INVENTORY.yml, etc.)
|
|
3. Reemplazar todos los placeholders `{...}`
|
|
4. Eliminar secciones opcionales que no apliquen
|
|
5. Validar con `yamllint` antes de commitear
|
|
|
|
---
|
|
|
|
## MASTER_INVENTORY.yml
|
|
|
|
```yaml
|
|
# MASTER_INVENTORY.yml
|
|
# Proyecto: {nombre_proyecto}
|
|
# Version: {SEMVER}
|
|
# Actualizado: {YYYY-MM-DD}
|
|
|
|
metadata:
|
|
proyecto: "{nombre_proyecto}"
|
|
tipo: "{Standalone|Suite|Suite-Core|Vertical}"
|
|
version: "{X.Y.Z}"
|
|
updated: "{YYYY-MM-DD}"
|
|
descripcion: "{Descripcion breve del proyecto}"
|
|
|
|
resumen:
|
|
progreso_mvp: "{N}%"
|
|
story_points_completados: {N}
|
|
story_points_totales: {N}
|
|
tareas_completadas: {N}
|
|
tareas_totales: {N}
|
|
cobertura_tests: "{N}%"
|
|
|
|
fases:
|
|
- nombre: "Fase 1 - {Nombre}"
|
|
codigo: "{F1}"
|
|
estado: "{completado|en_progreso|pendiente}"
|
|
progreso: "{N}%"
|
|
fecha_inicio: "{YYYY-MM-DD}"
|
|
fecha_fin: "{YYYY-MM-DD}"
|
|
epicas: {N}
|
|
story_points: {N}
|
|
|
|
- nombre: "Fase 2 - {Nombre}"
|
|
codigo: "{F2}"
|
|
estado: "{completado|en_progreso|pendiente}"
|
|
progreso: "{N}%"
|
|
fecha_inicio: "{YYYY-MM-DD}"
|
|
fecha_fin: "{YYYY-MM-DD}"
|
|
epicas: {N}
|
|
story_points: {N}
|
|
|
|
epicas:
|
|
- codigo: "{EAI-001|MGN-001}"
|
|
nombre: "{Nombre de la epica}"
|
|
fase: "{F1}"
|
|
estado: "{completado|en_progreso|pendiente|documentado}"
|
|
progreso: "{N}%"
|
|
story_points: {N}
|
|
stories: {N}
|
|
prioridad: "{P0|P1|P2|P3}"
|
|
|
|
aplicaciones:
|
|
backend:
|
|
- servicio: "{nombre_servicio}"
|
|
ruta: "{apps/backend}"
|
|
puerto: {NNNN}
|
|
estado: "{activo|inactivo|desarrollo}"
|
|
framework: "{NestJS|Express|FastAPI}"
|
|
version: "{X.Y.Z}"
|
|
|
|
frontend:
|
|
- servicio: "{nombre_portal}"
|
|
ruta: "{apps/frontend-portal}"
|
|
puerto: {NNNN}
|
|
estado: "{activo|inactivo|desarrollo}"
|
|
framework: "{React|Next.js|Vue}"
|
|
version: "{X.Y.Z}"
|
|
|
|
database:
|
|
- nombre: "{nombre_bd}"
|
|
tipo: "{PostgreSQL|MySQL|MongoDB}"
|
|
host: "{localhost|docker}"
|
|
puerto: {NNNN}
|
|
schemas: {N}
|
|
estado: "{activo|inactivo}"
|
|
|
|
integraciones:
|
|
- nombre: "{Nombre Integracion}"
|
|
proveedor: "{Proveedor}"
|
|
tipo: "{pagos|auth|notificaciones|storage}"
|
|
estado: "{activo|configurado|pendiente}"
|
|
documentacion: "{ruta/al/documento.md}"
|
|
|
|
# Opcional: changelog
|
|
changelog:
|
|
- version: "{X.Y.Z}"
|
|
fecha: "{YYYY-MM-DD}"
|
|
cambios:
|
|
- "{Cambio 1}"
|
|
- "{Cambio 2}"
|
|
```
|
|
|
|
---
|
|
|
|
## DATABASE_INVENTORY.yml
|
|
|
|
```yaml
|
|
# DATABASE_INVENTORY.yml
|
|
# Proyecto: {nombre_proyecto}
|
|
# Version: {SEMVER}
|
|
# Actualizado: {YYYY-MM-DD}
|
|
|
|
metadata:
|
|
proyecto: "{nombre_proyecto}"
|
|
tipo: "DATABASE"
|
|
version: "{X.Y.Z}"
|
|
updated: "{YYYY-MM-DD}"
|
|
motor: "{PostgreSQL|MySQL}"
|
|
version_motor: "{15.x|8.x}"
|
|
host: "{localhost}"
|
|
puerto: {5432|3306}
|
|
|
|
resumen:
|
|
total_schemas: {N}
|
|
total_tablas: {N}
|
|
total_funciones: {N}
|
|
total_triggers: {N}
|
|
total_indices: {N}
|
|
rls_habilitado: {true|false}
|
|
|
|
schemas:
|
|
- nombre: "{schema_name}"
|
|
descripcion: "{Descripcion del schema}"
|
|
estado: "{implementado|parcial|pendiente}"
|
|
|
|
tablas:
|
|
- nombre: "{nombre_tabla}"
|
|
columnas: {N}
|
|
indices: {N}
|
|
foreign_keys: {N}
|
|
estado: "{implementada|pendiente}"
|
|
rls: {true|false}
|
|
descripcion: "{Descripcion breve}"
|
|
|
|
- nombre: "{nombre_tabla_2}"
|
|
columnas: {N}
|
|
indices: {N}
|
|
foreign_keys: {N}
|
|
estado: "{implementada|pendiente}"
|
|
rls: {true|false}
|
|
|
|
funciones:
|
|
- nombre: "{nombre_funcion}"
|
|
tipo: "{scalar|table|trigger}"
|
|
parametros: {N}
|
|
descripcion: "{Que hace la funcion}"
|
|
|
|
triggers:
|
|
- nombre: "{nombre_trigger}"
|
|
tabla: "{tabla_asociada}"
|
|
evento: "{INSERT|UPDATE|DELETE|TRUNCATE}"
|
|
timing: "{BEFORE|AFTER|INSTEAD OF}"
|
|
funcion: "{nombre_funcion_trigger}"
|
|
|
|
vistas:
|
|
- nombre: "{nombre_vista}"
|
|
schema: "{schema}"
|
|
dependencias:
|
|
- "{tabla1}"
|
|
- "{tabla2}"
|
|
descripcion: "{Proposito de la vista}"
|
|
|
|
migraciones:
|
|
ultima: "{YYYYMMDDHHMMSS}"
|
|
pendientes: {N}
|
|
historial:
|
|
- id: "{YYYYMMDDHHMMSS}"
|
|
descripcion: "{Descripcion de la migracion}"
|
|
fecha: "{YYYY-MM-DD}"
|
|
autor: "{nombre/equipo}"
|
|
rollback_probado: {true|false}
|
|
```
|
|
|
|
---
|
|
|
|
## BACKEND_INVENTORY.yml
|
|
|
|
```yaml
|
|
# BACKEND_INVENTORY.yml
|
|
# Proyecto: {nombre_proyecto}
|
|
# Version: {SEMVER}
|
|
# Actualizado: {YYYY-MM-DD}
|
|
|
|
metadata:
|
|
proyecto: "{nombre_proyecto}"
|
|
tipo: "BACKEND"
|
|
version: "{X.Y.Z}"
|
|
updated: "{YYYY-MM-DD}"
|
|
framework: "{NestJS|Express|FastAPI}"
|
|
lenguaje: "{TypeScript|Python}"
|
|
node_version: "{20.x}"
|
|
|
|
resumen:
|
|
total_modulos: {N}
|
|
total_controllers: {N}
|
|
total_services: {N}
|
|
total_endpoints: {N}
|
|
cobertura_tests: "{N}%"
|
|
|
|
modulos:
|
|
- nombre: "{nombre_modulo}"
|
|
ruta: "{src/modules/nombre}"
|
|
estado: "{implementado|parcial|pendiente}"
|
|
controllers: {N}
|
|
services: {N}
|
|
dtos: {N}
|
|
entities: {N}
|
|
descripcion: "{Descripcion breve del modulo}"
|
|
|
|
endpoints:
|
|
- metodo: "{GET|POST|PUT|DELETE|PATCH}"
|
|
ruta: "/api/v1/{recurso}"
|
|
descripcion: "{Que hace el endpoint}"
|
|
auth: {true|false}
|
|
roles: ["{admin}", "{user}"]
|
|
version: "{v1}"
|
|
|
|
- metodo: "{POST}"
|
|
ruta: "/api/v1/{recurso}"
|
|
descripcion: "{Descripcion}"
|
|
auth: {true|false}
|
|
roles: ["{admin}"]
|
|
|
|
shared:
|
|
- tipo: "{constants|dto|guards|pipes|decorators|interfaces}"
|
|
archivos: {N}
|
|
ruta: "{src/shared/tipo}"
|
|
|
|
guards:
|
|
- nombre: "{NombreGuard}"
|
|
ruta: "{src/shared/guards/nombre.guard.ts}"
|
|
proposito: "{Que protege}"
|
|
|
|
tests:
|
|
unit:
|
|
archivos: {N}
|
|
cobertura: "{N}%"
|
|
comando: "npm run test"
|
|
integration:
|
|
archivos: {N}
|
|
cobertura: "{N}%"
|
|
comando: "npm run test:integration"
|
|
e2e:
|
|
archivos: {N}
|
|
comando: "npm run test:e2e"
|
|
```
|
|
|
|
---
|
|
|
|
## FRONTEND_INVENTORY.yml
|
|
|
|
```yaml
|
|
# FRONTEND_INVENTORY.yml
|
|
# Proyecto: {nombre_proyecto}
|
|
# Version: {SEMVER}
|
|
# Actualizado: {YYYY-MM-DD}
|
|
|
|
metadata:
|
|
proyecto: "{nombre_proyecto}"
|
|
tipo: "FRONTEND"
|
|
version: "{X.Y.Z}"
|
|
updated: "{YYYY-MM-DD}"
|
|
framework: "{React|Next.js|Vue}"
|
|
lenguaje: "{TypeScript|JavaScript}"
|
|
ui_library: "{MUI|TailwindCSS|ChakraUI}"
|
|
|
|
resumen:
|
|
total_aplicaciones: {N}
|
|
total_paginas: {N}
|
|
total_componentes: {N}
|
|
total_hooks: {N}
|
|
total_stores: {N}
|
|
cobertura_tests: "{N}%"
|
|
|
|
aplicaciones:
|
|
- nombre: "{nombre_app}"
|
|
ruta: "{apps/frontend-nombre}"
|
|
puerto: {NNNN}
|
|
estado: "{activo|desarrollo|pendiente}"
|
|
descripcion: "{Portal para que tipo de usuario}"
|
|
|
|
paginas:
|
|
- nombre: "{NombrePagina}"
|
|
ruta: "/{ruta}"
|
|
componentes: {N}
|
|
estado: "{implementada|parcial|pendiente}"
|
|
auth: {true|false}
|
|
roles: ["{admin}", "{user}"]
|
|
descripcion: "{Proposito de la pagina}"
|
|
|
|
- nombre: "{OtraPagina}"
|
|
ruta: "/{otra-ruta}"
|
|
componentes: {N}
|
|
estado: "{implementada|pendiente}"
|
|
auth: {true|false}
|
|
|
|
componentes:
|
|
shared:
|
|
- nombre: "{NombreComponente}"
|
|
ruta: "{src/components/shared/Nombre}"
|
|
tipo: "{UI|Layout|Form|Data|Feedback}"
|
|
reutilizable: {true|false}
|
|
props: {N}
|
|
|
|
features:
|
|
- nombre: "{NombreComponente}"
|
|
feature: "{feature_name}"
|
|
ruta: "{src/components/features/feature/Nombre}"
|
|
|
|
hooks:
|
|
- nombre: "{useNombreHook}"
|
|
ruta: "{src/hooks/useNombreHook}"
|
|
proposito: "{Que hace el hook}"
|
|
dependencias: ["{otro_hook}"]
|
|
|
|
stores:
|
|
- nombre: "{nombreStore}"
|
|
ruta: "{src/stores/nombreStore}"
|
|
tipo: "{Zustand|Redux|Context}"
|
|
descripcion: "{Que estado maneja}"
|
|
|
|
tests:
|
|
unit:
|
|
archivos: {N}
|
|
cobertura: "{N}%"
|
|
component:
|
|
archivos: {N}
|
|
cobertura: "{N}%"
|
|
e2e:
|
|
archivos: {N}
|
|
herramienta: "{Playwright|Cypress}"
|
|
```
|
|
|
|
---
|
|
|
|
## Validacion
|
|
|
|
Antes de commitear, validar con:
|
|
|
|
```bash
|
|
# Validar sintaxis YAML
|
|
yamllint orchestration/inventarios/*.yml
|
|
|
|
# Verificar estructura basica
|
|
cat orchestration/inventarios/MASTER_INVENTORY.yml | yq '.metadata'
|
|
```
|
|
|
|
---
|
|
|
|
**Referencia:** SIMCO-INVENTARIOS.md
|