@damenor/agent-docs 0.1.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +65 -29
  2. package/dist/index.js +3848 -217
  3. package/package.json +5 -2
  4. package/templates/modules/agents/.agents/agents/doc-designer.md +39 -37
  5. package/templates/modules/agents/.agents/agents/doc-maintainer.md +35 -35
  6. package/templates/modules/agents/.agents/agents/doc-reviewer.md +55 -46
  7. package/templates/modules/agents/.agents/agents/doc-writer.md +34 -33
  8. package/templates/modules/agents/.agents/agents/reviewer.md +114 -100
  9. package/templates/modules/agents/.agents/skills/doc-design/SKILL.md +176 -174
  10. package/templates/modules/agents/.agents/skills/doc-design/references/design-system-format.md +241 -247
  11. package/templates/modules/agents/.agents/skills/doc-maintain/SKILL.md +61 -51
  12. package/templates/modules/agents/.agents/skills/doc-maintain/references/triggers.md +171 -165
  13. package/templates/modules/agents/.agents/skills/doc-review/SKILL.md +39 -34
  14. package/templates/modules/agents/.agents/skills/doc-review/references/health-checklist.md +115 -112
  15. package/templates/modules/agents/.agents/skills/doc-scaffold/SKILL.md +19 -12
  16. package/templates/modules/agents/.agents/skills/doc-scaffold/references/diataxis-quick-ref.md +110 -110
  17. package/templates/modules/agents/.agents/skills/doc-write/SKILL.md +47 -18
  18. package/templates/modules/agents/.agents/skills/doc-write/references/adr-format.md +99 -93
  19. package/templates/modules/agents/.agents/skills/doc-write/references/diataxis-patterns.md +221 -200
  20. package/templates/base/AGENTS.md +0 -177
  21. package/templates/base/CHANGELOG.md +0 -86
  22. package/templates/base/README.md +0 -105
  23. package/templates/base/docs/CONTEXT.md +0 -111
  24. package/templates/base/docs/README.md +0 -131
  25. package/templates/base/docs/adr/TEMPLATE.md +0 -83
  26. package/templates/modules/design/docs/DESIGN.md +0 -253
  27. package/templates/modules/explanation/docs/explanation/agent-flow.md +0 -15
  28. package/templates/modules/explanation/docs/explanation/architecture.md +0 -138
  29. package/templates/modules/guides/docs/guides/deployment.md +0 -189
  30. package/templates/modules/guides/docs/guides/runbooks/TEMPLATE.md +0 -86
  31. package/templates/modules/guides/docs/guides/troubleshooting.md +0 -65
  32. package/templates/modules/operations/docs/operations/README.md +0 -115
  33. package/templates/modules/product/docs/product/overview.md +0 -90
  34. package/templates/modules/product/docs/roadmap.md +0 -80
  35. package/templates/modules/reference/docs/reference/api.md +0 -131
  36. package/templates/modules/reference/docs/reference/code-style.md +0 -275
  37. package/templates/modules/reference/docs/reference/configuration.md +0 -117
  38. package/templates/modules/reference/docs/reference/infrastructure.md +0 -191
  39. package/templates/modules/tutorials/docs/tutorials/environment-setup.md +0 -212
  40. package/templates/modules/tutorials/docs/tutorials/first-task.md +0 -246
  41. package/templates/modules/tutorials/docs/tutorials/quick-start.md +0 -146
@@ -1,86 +0,0 @@
1
- ---
2
- created: "2026-05-07"
3
- updated: "2026-05-07"
4
- status: active
5
- type: how-to
6
- tags: [ops, runbooks, template]
7
- ---
8
-
9
- # Template de Runbook
10
-
11
- > [!info] Cuándo crear un runbook
12
- > Crea un runbook cuando un proceso operativo se repite o cuando necesitas documentar pasos para resolver un incidente específico. Guárdalo en `docs/guides/runbooks/`.
13
-
14
- ## Nombre del Runbook
15
-
16
- **Tipo**: [operativo | incidente | mantenimiento]
17
- **Severidad**: [baja | media | alta | crítica]
18
- **Frecuencia**: [diario | semanal | mensual | bajo demanda]
19
-
20
- ## Contexto
21
-
22
- ¿Qué es este proceso? ¿Por qué existe? ¿Cuándo se ejecuta?
23
-
24
- ## Síntomas / Triggers
25
-
26
- ¿Qué indica que hay que ejecutar este runbook?
27
-
28
- - Síntoma 1
29
- - Síntoma 2
30
- - Alerta de monitoring que lo dispara
31
-
32
- ## Prerrequisitos
33
-
34
- - [ ] Acceso a [sistema/servidor]
35
- - [ ] Permisos de [rol]
36
- - [ ] Herramientas: [lista]
37
-
38
- ## Pasos
39
-
40
- ### Paso 1: [Título del paso]
41
-
42
- **Acción**: Descripción clara de qué hacer
43
- **Comando** (si aplica):
44
- ```bash
45
- comando-aquí
46
- ```
47
- **Verificación**: Cómo confirmar que el paso salió bien
48
-
49
- ### Paso 2: [Título del paso]
50
-
51
- **Acción**: Descripción clara
52
- **Comando**:
53
- ```bash
54
- siguiente-comando
55
- ```
56
- **Verificación**: Qué esperar
57
-
58
- ### Paso N: Verificación final
59
-
60
- Confirmar que el proceso se completó exitosamente:
61
-
62
- - [ ] Check 1
63
- - [ ] Check 2
64
-
65
- ## Rollback
66
-
67
- Si algo sale mal, cómo revertir:
68
-
69
- 1. Paso de rollback 1
70
- 2. Paso de rollback 2
71
-
72
- ## Escalación
73
-
74
- Si no puedes resolver:
75
-
76
- | Nivel | Contacto | Cuándo escalar |
77
- |---------|----------------------|------------------------------------|
78
- | L1 | [Equipo/dev] | Si los pasos del runbook fallan |
79
- | L2 | [Tech lead] | Si el problema requiere acceso especial |
80
- | L3 | [CTO/Infra lead] | Si hay riesgo de pérdida de datos |
81
-
82
- ## Notas
83
-
84
- - Cualquier consideración especial
85
- - Lecciones aprendidas de ejecuciones anteriores
86
- - Enlaces a ADRs o docs relacionados
@@ -1,65 +0,0 @@
1
- ---
2
- created: "2026-05-07"
3
- updated: "2026-05-07"
4
- status: active
5
- type: how-to
6
- tags: [ops, troubleshooting, debugging]
7
- ---
8
-
9
- # Troubleshooting
10
-
11
- Problemas comunes encontrados durante el desarrollo y sus soluciones.
12
-
13
- > [!tip] Cómo usar esta guía
14
- > Busca tu problema en la tabla o por las secciones. Si encuentras un problema nuevo y lo resuelves, añádelo aquí para que el próximo developer no pierda tiempo.
15
-
16
- ## Problemas de Entorno
17
-
18
- | Problema | Causa probable | Solución |
19
- |----------|---------------|----------|
20
- | `npm install` falla con EACCES | Permisos de npm global | Usa `nvm` o reinstala Node con permisos correctos |
21
- | `command not found: node` | Node no instalado o no en PATH | Instala con `nvm install --lts` y reinicia terminal |
22
- | Puerto 3000 ocupado | Otro proceso usando el puerto | `lsof -i :3000` (macOS) o `netstat -ano | findstr :3000` (Windows) y mata el proceso |
23
- | Variables de entorno no cargadas | Falta archivo `.env` | Copia `.env.example` a `.env` y configura los valores |
24
-
25
- ## Problemas de Build
26
-
27
- | Problema | Causa probable | Solución |
28
- |----------|---------------|----------|
29
- | Error de tipos TypeScript | Tipos incompatibles o faltantes | Ejecuta `[npm run typecheck]` para ver errores específicos |
30
- | Build falla en CI pero no local | Diferencia de entorno (Node version, deps) | Verifica que `.nvmrc` o `engines` en package.json coincida con CI |
31
- | Error "Module not found" | Dependencia no instalada o path incorrecto | `rm -rf node_modules && npm install` o verifica import paths |
32
- | Out of memory en build | Proyecto grande sin suficiente RAM | Aumenta memoria: `NODE_OPTIONS="--max-old-space-size=4096" npm run build` |
33
-
34
- ## Problemas de Runtime
35
-
36
- | Problema | Causa probable | Solución |
37
- |----------|---------------|----------|
38
- | CORS error en API calls | Backend no configurado para el origen del frontend | Verifica configuración CORS en el backend |
39
- | 401 Unauthorized | Token expirado o no enviado | Verifica que el token se envía en headers y no ha expirado |
40
- | Pantalla blanca en producción | Error JS no capturado, assets no cargan | Revisa consola del navegador, verifica que los assets se deployaron |
41
- | Hydration mismatch (SSR) | HTML server != HTML client | Verifica que no haya `Date.now()`, `Math.random()` o APIs del navegador en SSR |
42
-
43
- ## Problemas de Base de Datos
44
-
45
- | Problema | Causa probable | Solución |
46
- |----------|---------------|----------|
47
- | Connection refused | BD no arrancada o URL incorrecta | Verifica que el servicio esté corriendo y la URL en `.env` sea correcta |
48
- | Migration error | Migración pendiente o conflicto | Ejecuta migraciones pendientes o resetea la BD local |
49
- | Timeout en queries | Query ineficiente o locks | Revisa el query plan, añade índices si es necesario |
50
-
51
- ## Problemas de Git
52
-
53
- | Problema | Causa probable | Solución |
54
- |----------|---------------|----------|
55
- | Merge conflict | Cambios en mismas líneas | Resuelve manualmente: busca `<<<<<<<`, elige el correcto, elimina marcadores |
56
- | `git push` rechazado | Branch remota tiene commits nuevos | `git pull --rebase origin <branch>` y resuelve conflictos si hay |
57
- | Hook pre-commit falla | Linting o formatting falla | Ejecuta `npm run lint:fix` y vuelve a commitear |
58
-
59
- ## Cómo añadir nuevos problemas
60
-
61
- Cuando resuelvas un problema que no esté aquí:
62
-
63
- 1. Añade una fila a la tabla correspondiente
64
- 2. Incluye: problema, causa, solución
65
- 3. Si la solución es compleja, crea un how-to separado en `docs/guides/` y enlázalo aquí
@@ -1,115 +0,0 @@
1
- ---
2
- created: "2026-05-07"
3
- updated: "2026-05-07"
4
- status: active
5
- type: how-to
6
- tags: [ops, operations, monitoring, incidents, production]
7
- ---
8
-
9
- # Operaciones
10
-
11
- Centro de operaciones para el proyecto en producción.
12
-
13
- > [!warning] Solo para entornos con producción
14
- > Esta sección se crea cuando el proyecto tiene entorno de producción. Si el proyecto aún no está en producción, puedes ignorar esta sección.
15
-
16
- ## Monitorización
17
-
18
- ### Dashboards
19
-
20
- | Dashboard | URL | Qué monitoriza |
21
- |-----------|-----|----------------|
22
- | Principal | [URL] | Health checks, uptime, errores |
23
- | Rendimiento | [URL] | Latencia, throughput, recursos |
24
- | Business | [URL] | Métricas de negocio |
25
-
26
- ### Alertas Configuradas
27
-
28
- | Alerta | Severidad | Umbral | Canal de notificación |
29
- |--------|-----------|--------|-----------------------|
30
- | Servicio caído | Crítica | Health check fail > 2 min | [Slack/Email/PagerDuty] |
31
- | Error rate alto | Alta | >5% de requests con error 5xx | [Slack/Email] |
32
- | Latencia alta | Media | p95 > 2 segundos | [Slack] |
33
- | Disco lleno | Alta | >90% uso de disco | [Slack/Email] |
34
- | Certificado SSL por expirar | Media | <30 días | [Email] |
35
-
36
- ## SLAs y SLOs
37
-
38
- | Métrica | SLO | Ventana | Medición |
39
- |---------|-----|---------|----------|
40
- | Disponibilidad | 99.9% | 30 días | Uptime checks |
41
- | Latencia p95 | <500ms | 30 días | APM |
42
- | Latencia p99 | <2s | 30 días | APM |
43
- | Error rate | <0.1% | 7 días | Log aggregation |
44
- | Tiempo de respuesta API | <200ms | 30 días | Synthetic monitoring |
45
-
46
- ## Gestión de Incidentes
47
-
48
- ### Niveles de Severidad
49
-
50
- | Nivel | Definición | Ejemplo | Tiempo de respuesta |
51
- |-------|------------|---------|-------------------|
52
- | P0 - Crítico | Servicio completamente caído, afecta a todos los usuarios | Sitio no carga, BD inaccesible | <15 min |
53
- | P1 - Alto | Funcionalidad principal no funciona, afecta muchos usuarios | Login roto, checkout falla | <1 hora |
54
- | P2 - Medio | Funcionalidad secundaria afectada, workaround disponible | Búsqueda lenta, email no envía | <4 horas |
55
- | P3 - Bajo | Problema cosmético o menor | Typo, UI glitch | Próximo sprint |
56
-
57
- ### Proceso de Incidente
58
-
59
- 1. **Detección**: Alerta automática o reporte de usuario
60
- 2. **Triage**: Asignar severidad y responsable
61
- 3. **Comunicación**: Notificar al equipo en canal de incidencias
62
- 4. **Resolución**: Diagnosticar, aplicar fix, verificar
63
- 5. **Post-mortem**: Documentar qué pasó, por qué, y cómo prevenirlo
64
-
65
- ### Plantilla de Post-mortem
66
-
67
- Guardar en `docs/operations/post-mortems/YYYY-MM-DD-titulo.md`:
68
-
69
- ```markdown
70
- ## Resumen
71
- [1-2 oraciones: qué pasó, impacto, duración]
72
-
73
- ## Timeline
74
- - HH:MM - Detección
75
- - HH:MM - Investigación empieza
76
- - HH:MM - Causa raíz identificada
77
- - HH:MM - Fix aplicado
78
- - HH:MM - Servicio restaurado
79
-
80
- ## Causa Raíz
81
- [Qué causó el incidente, no qué síntomas se vieron]
82
-
83
- ## Impacto
84
- - Duración: X horas/minutos
85
- - Usuarios afectados: X
86
- - Datos perdidos: Sí/No
87
-
88
- ## Acciones Preventivas
89
- - [ ] Acción 1 — Responsable — Fecha límite
90
- - [ ] Acción 2 — Responsable — Fecha límite
91
-
92
- ## Lecciones Aprendidas
93
- [Qué aprendimos que cambie cómo trabajamos]
94
- ```
95
-
96
- ## Backups
97
-
98
- | Recurso | Frecuencia | Retención | Ubicación |
99
- |---------|-----------|-----------|-----------|
100
- | Base de datos | Diaria | 30 días | [Proveedor/Ubicación] |
101
- | Assets estáticos | En cada deploy | Últimos 10 deploys | [CDN/Storage] |
102
- | Configuración | Versionada en git | Completa | Repositorio |
103
-
104
- ## On-Call
105
-
106
- Si el proyecto tiene rotación de on-call:
107
-
108
- | Día | Responsable | Horario | Contacto |
109
- |-----|-------------|---------|----------|
110
- | Lunes | [Nombre] | 9:00 - 18:00 | [Canal contacto] |
111
- | ... | ... | ... | ... |
112
-
113
- ## Runbooks Relacionados
114
-
115
- Los runbooks operativos están en `docs/guides/runbooks/`. Cada uno documenta un procedimiento específico para resolver problemas o realizar tareas operativas.
@@ -1,90 +0,0 @@
1
- ---
2
- created: "2025-01-01"
3
- status: active
4
- type: product-context
5
- tags: [producto, visión, negocio, stakeholders, métricas]
6
- ---
7
-
8
- # Visión del Producto
9
-
10
- ## Qué es
11
-
12
- {{PROJECT_NAME}} es [descripción de una oración: qué tipo de producto es y para qué sirve]. Es un proyecto de tipo [web app / landing / portal / plataforma] orientado a [segmento: corporativo / B2B / B2C / interno].
13
-
14
- ## Por qué existe
15
-
16
- **Problema que resuelve**: [Describir el problema o necesidad que motivó la creación del proyecto. ¿Qué hacía el cliente/equipo antes? ¿Qué fricción existía?]
17
-
18
- **Oportunidad**: [Por qué ahora. Qué cambió en el mercado, la organización o la tecnología que hace que este proyecto tenga sentido en este momento.]
19
-
20
- ## Usuarios objetivo
21
-
22
- | Perfil | Quién es | Necesidad principal | Frecuencia de uso |
23
- |--------|----------|--------------------|--------------------|
24
- | **[Usuario primario]** | [Descripción: rol, contexto, nivel técnico] | [Qué viene a hacer al sistema. La tarea #1.] | [Diaria / Semanal / Mensual] |
25
- | **[Usuario secundario]** | [Descripción] | [Qué viene a hacer] | [Frecuencia] |
26
- | **[Usuario administrador]** | [Descripción] | [Gestionar configuración, usuarios, datos maestros] | [Frecuencia] |
27
-
28
- ## Valor que aporta
29
-
30
- Para cada perfil de usuario:
31
-
32
- | Usuario | Antes (sin el proyecto) | Después (con el proyecto) | Medible en |
33
- |---------|------------------------|--------------------------|-----------|
34
- | **[Perfil 1]** | [Cómo resolvía el problema antes — manual, Excel, otro sistema] | [Cómo lo resuelve ahora — automatizado, centralizado, más rápido] | [Métrica: tiempo, errores, costos] |
35
- | **[Perfil 2]** | [Situación anterior] | [Situación nueva] | [Métrica] |
36
-
37
- ## Stakeholders
38
-
39
- | Nombre / Rol | Responsabilidad en el proyecto | Decisiones que aprueba | Contacto |
40
- |-------------|-------------------------------|----------------------|----------|
41
- | **[Product Owner]** | Define prioridades y acepta entregas | Features, alcance, release dates | [email / slack] |
42
- | **[Tech Lead]** | Guía decisiones técnicas | Arquitectura, stack, deuda técnica | [email / slack] |
43
- | **[Diseñador/a]** | Define la experiencia visual y de interacción | UI/UX, design system, flujos | [email / slack] |
44
- | **[Stakeholder de negocio]** | Representa las necesidades del cliente final | Funcionalidad de negocio, priorización | [email / slack] |
45
-
46
- ## Métricas de éxito
47
-
48
- ### Métricas primarias (KPIs)
49
-
50
- | Métrica | Objetivo | Medición | Frecuencia |
51
- |---------|----------|----------|------------|
52
- | **[Métrica 1 — ej. Tasa de adopción]** | [Valor objetivo — ej. 80% de usuarios activos en 3 meses] | [Cómo se mide — ej. analytics de login] | [Mensual] |
53
- | **[Métrica 2 — ej. Tiempo de tarea]** | [Valor objetivo — ej. reducir de 30min a 5min] | [Cómo se mide] | [Semanal] |
54
-
55
- ### Métricas de calidad
56
-
57
- | Métrica | Objetivo | Medición |
58
- |---------|----------|----------|
59
- | **Uptime** | 99.9% | Monitoreo de infraestructura |
60
- | **Tiempo de carga (LCP)** | < 2.5s | Lighthouse / Web Vitals |
61
- | **Errores en producción** | < 0.1% de requests | Error tracking (Sentry, etc.) |
62
- | **Cobertura de tests** | > 80% | CI/CD pipeline |
63
-
64
- ### Métricas de satisfacción
65
-
66
- | Métrica | Objetivo | Medición |
67
- |---------|----------|----------|
68
- | **NPS / CSAT** | [Valor] | [Encuesta / feedback in-app] |
69
- | **Tickets de soporte** | Reducir X% vs. sistema anterior | Help desk |
70
-
71
- ---
72
-
73
- ## Contexto regulatorio y restricciones
74
-
75
- - **Privacidad**: [Indicar si aplica GDPR, LFPDPPP, etc. Qué datos personales se manejan.]
76
- - **Accesibilidad**: Nivel WCAG 2.1 AA como mínimo.
77
- - **Seguridad**: [Normas de seguridad corporativas. Ej. OWASP Top 10, pen testing anual.]
78
- - **Compliance**: [Otras restricciones del sector — ej. PCI DSS para pagos, SOC 2 para SaaS.]
79
-
80
- ---
81
-
82
- ## Evolución esperada
83
-
84
- Este producto está pensado para crecer en las siguientes direcciones:
85
-
86
- 1. **Corto plazo (0-3 meses)**: [MVP o versión inicial con funcionalidad core.]
87
- 2. **Mediano plazo (3-6 meses)**: [Features complementarias, integraciones.]
88
- 3. **Largo plazo (6-12 meses)**: [Escalabilidad, nuevos módulos, expansión.]
89
-
90
- Ver el detalle de features planificados en [`docs/roadmap.md`](../roadmap.md).
@@ -1,80 +0,0 @@
1
- ---
2
- created: "2025-01-01"
3
- status: active
4
- type: planning
5
- tags: [roadmap, planificación, features, backlog]
6
- ---
7
-
8
- # Roadmap
9
-
10
- ## Estado actual
11
-
12
- **Versión actual**: [versión — ej. 0.1.0]
13
- **Fase**: [Discovery / MVP / Growth / Maintenance]
14
- **Último release**: [fecha — ej. 2025-01-15]
15
- **Próximo release planificado**: [fecha o "Por definir"]
16
-
17
- Resumen del estado: [1-2 oraciones describiendo dónde está el proyecto ahora. Ej. "MVP funcional con autenticación y CRUD básico. Pendiente de integración con sistema de pagos."]
18
-
19
- ---
20
-
21
- ## Próximos features
22
-
23
- | Feature | Descripción | Prioridad | Estado | Responsable | Target |
24
- |---------|-------------|-----------|--------|-------------|--------|
25
- | [Feature 1] | [Descripción breve de qué hace y por qué] | 🔴 Alta | [Estado: Planificado / En progreso / En QA / Listo] | [Nombre o rol] | [Fecha o sprint] |
26
- | [Feature 2] | [Descripción] | 🟡 Media | [Estado] | [Responsable] | [Target] |
27
- | [Feature 3] | [Descripción] | 🟢 Baja | [Estado] | [Responsable] | [Target] |
28
-
29
- ### Detalle por feature
30
-
31
- #### [Feature 1]
32
- - **Por qué**: [Justificación de negocio o técnica.]
33
- - **Criterios de aceptación**:
34
- - [ ] [Criterio 1]
35
- - [ ] [Criterio 2]
36
- - [ ] [Criterio 3]
37
- - **Dependencias**: [Otros features, equipos, servicios externos.]
38
- - **Riesgos**: [Qué podría salir mal. Mitigación.]
39
-
40
- ---
41
-
42
- ## Backlog
43
-
44
- Ideas y features que se quieren hacer pero que no tienen fecha asignada aún.
45
-
46
- | Feature | Descripción | Fuente de la idea |
47
- |---------|-------------|------------------|
48
- | [Feature idea 1] | [Qué es y por qué sería valioso] | [Stakeholder / usuario / equipo] |
49
- | [Feature idea 2] | [Descripción] | [Fuente] |
50
- | [Feature idea 3] | [Descripción] | [Fuente] |
51
-
52
- ---
53
-
54
- ## Decisiones pendientes
55
-
56
- | Decisión | Contexto | Opciones consideradas | Plazo para decidir | Responsable |
57
- |----------|----------|----------------------|-------------------|-------------|
58
- | [Decisión 1] | [Por qué hay que tomar esta decisión. Qué pasa si no se decide.] | [Opción A, Opción B] | [Fecha] | [Quién decide] |
59
- | [Decisión 2] | [Contexto] | [Opciones] | [Fecha] | [Responsable] |
60
-
61
- ---
62
-
63
- ## Historial de releases
64
-
65
- | Versión | Fecha | Cambios principales | Notas |
66
- |---------|-------|-------------------|-------|
67
- | [0.1.0] | [2025-01-15] | Inicialización del proyecto, estructura base | Primer release |
68
- | [0.2.0] | [YYYY-MM-DD] | [Features principales del release] | [Notas adicionales] |
69
-
70
- Ver el detalle completo de cambios en [`CHANGELOG.md`](../../CHANGELOG.md).
71
-
72
- ---
73
-
74
- ## Cómo actualizar este archivo
75
-
76
- - **Al planificar un sprint**: Actualizar la tabla de "Próximos features" con prioridades y responsables.
77
- - **Al iniciar un feature**: Cambiar estado a "En progreso".
78
- - **Al completar un feature**: Cambiar estado a "Listo", mover a "Historial de releases".
79
- - **Al recibir un request nuevo**: Añadir al Backlog si no es inmediato, o a "Próximos features" si sí.
80
- - **Al tomar una decisión técnica**: Mover de "Decisiones pendientes" y crear un ADR en `docs/adr/`.
@@ -1,131 +0,0 @@
1
- ---
2
- created: "2026-05-07"
3
- updated: "2026-05-07"
4
- status: active
5
- type: reference
6
- tags: [api, reference, endpoints]
7
- ---
8
-
9
- # Referencia de API
10
-
11
- Documentación de referencia de los endpoints del proyecto.
12
-
13
- > [!tip] Convención
14
- > Si la API crece a más de 10 endpoints, convierte este archivo en una carpeta `api/` con un archivo por dominio.
15
-
16
- ## Autenticación
17
-
18
- | Método | Descripción | Header |
19
- |--------|-------------|--------|
20
- | Bearer Token | JWT enviado en header | `Authorization: Bearer <token>` |
21
-
22
- **Flujo**:
23
- 1. Cliente envía credenciales a `/auth/login`
24
- 2. Server devuelve `{ token, refreshToken }`
25
- 3. Cliente incluye `Authorization: Bearer <token>` en requests siguientes
26
- 4. Si token expira, usar refresh token en `/auth/refresh`
27
-
28
- ## Endpoints
29
-
30
- ### [Recurso]
31
-
32
- #### `GET /api/[recurso]`
33
-
34
- Lista recursos con paginación.
35
-
36
- **Headers**:
37
- | Header | Requerido | Descripción |
38
- |--------|-----------|-------------|
39
- | `Authorization` | Sí | Bearer token |
40
-
41
- **Query Parameters**:
42
- | Param | Tipo | Default | Descripción |
43
- |-------|------|---------|-------------|
44
- | `page` | number | 1 | Página actual |
45
- | `limit` | number | 20 | Items por página (max 100) |
46
- | `sort` | string | `-createdAt` | Campo de orden (`-` para desc) |
47
-
48
- **Response 200**:
49
- ```json
50
- {
51
- "data": [
52
- {
53
- "id": "string",
54
- "name": "string",
55
- "createdAt": "ISO 8601"
56
- }
57
- ],
58
- "meta": {
59
- "page": 1,
60
- "limit": 20,
61
- "total": 100
62
- }
63
- }
64
- ```
65
-
66
- #### `POST /api/[recurso]`
67
-
68
- Crea un nuevo recurso.
69
-
70
- **Body**:
71
- ```json
72
- {
73
- "name": "string (required, max 200)",
74
- "description": "string (optional)"
75
- }
76
- ```
77
-
78
- **Response 201**:
79
- ```json
80
- {
81
- "id": "string",
82
- "name": "string",
83
- "description": "string",
84
- "createdAt": "ISO 8601",
85
- "updatedAt": "ISO 8601"
86
- }
87
- ```
88
-
89
- ## Códigos de Error
90
-
91
- | Status | Código | Descripción |
92
- |--------|--------|-------------|
93
- | 400 | `VALIDATION_ERROR` | Datos de entrada inválidos |
94
- | 401 | `UNAUTHORIZED` | Token ausente o inválido |
95
- | 403 | `FORBIDDEN` | Sin permisos para el recurso |
96
- | 404 | `NOT_FOUND` | Recurso no encontrado |
97
- | 409 | `CONFLICT` | Recurso ya existe |
98
- | 422 | `UNPROCESSABLE` | Entidad no procesable |
99
- | 429 | `RATE_LIMITED` | Demasiados requests |
100
- | 500 | `INTERNAL_ERROR` | Error interno del servidor |
101
-
102
- **Formato de error**:
103
- ```json
104
- {
105
- "error": {
106
- "code": "VALIDATION_ERROR",
107
- "message": "Descripción legible del error",
108
- "details": [
109
- { "field": "name", "message": "Name is required" }
110
- ]
111
- }
112
- }
113
- ```
114
-
115
- ## Rate Limiting
116
-
117
- | Tier | Requests/minuto | Burst |
118
- |------|-----------------|-------|
119
- | Standard | 60 | 10 |
120
- | Premium | 300 | 50 |
121
-
122
- Headers de respuesta:
123
- - `X-RateLimit-Limit`: Límite por ventana
124
- - `X-RateLimit-Remaining`: Requests restantes
125
- - `X-RateLimit-Reset`: Timestamp cuando se resetea
126
-
127
- ## Versionado
128
-
129
- La API usa versionado en URL: `/api/v1/`, `/api/v2/`.
130
-
131
- Versiones anteriores se mantienen durante 6 meses después del release de una nueva versión mayor.