@damenor/agent-docs 0.1.2 → 0.4.0
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.
- package/README.md +65 -29
- package/dist/index.js +3834 -217
- package/package.json +5 -2
- package/templates/modules/agents/.agents/agents/doc-designer.md +39 -37
- package/templates/modules/agents/.agents/agents/doc-maintainer.md +35 -35
- package/templates/modules/agents/.agents/agents/doc-reviewer.md +55 -46
- package/templates/modules/agents/.agents/agents/doc-writer.md +34 -33
- package/templates/modules/agents/.agents/agents/reviewer.md +114 -100
- package/templates/modules/agents/.agents/skills/doc-design/SKILL.md +176 -174
- package/templates/modules/agents/.agents/skills/doc-design/references/design-system-format.md +241 -247
- package/templates/modules/agents/.agents/skills/doc-maintain/SKILL.md +61 -51
- package/templates/modules/agents/.agents/skills/doc-maintain/references/triggers.md +171 -165
- package/templates/modules/agents/.agents/skills/doc-review/SKILL.md +39 -34
- package/templates/modules/agents/.agents/skills/doc-review/references/health-checklist.md +115 -112
- package/templates/modules/agents/.agents/skills/doc-scaffold/SKILL.md +19 -12
- package/templates/modules/agents/.agents/skills/doc-scaffold/references/diataxis-quick-ref.md +110 -110
- package/templates/modules/agents/.agents/skills/doc-write/SKILL.md +44 -16
- package/templates/modules/agents/.agents/skills/doc-write/references/adr-format.md +99 -93
- package/templates/modules/agents/.agents/skills/doc-write/references/diataxis-patterns.md +221 -200
- package/templates/base/AGENTS.md +0 -177
- package/templates/base/CHANGELOG.md +0 -86
- package/templates/base/README.md +0 -105
- package/templates/base/docs/CONTEXT.md +0 -111
- package/templates/base/docs/README.md +0 -131
- package/templates/base/docs/adr/TEMPLATE.md +0 -83
- package/templates/modules/design/docs/DESIGN.md +0 -253
- package/templates/modules/explanation/docs/explanation/agent-flow.md +0 -15
- package/templates/modules/explanation/docs/explanation/architecture.md +0 -138
- package/templates/modules/guides/docs/guides/deployment.md +0 -189
- package/templates/modules/guides/docs/guides/runbooks/TEMPLATE.md +0 -86
- package/templates/modules/guides/docs/guides/troubleshooting.md +0 -65
- package/templates/modules/operations/docs/operations/README.md +0 -115
- package/templates/modules/product/docs/product/overview.md +0 -90
- package/templates/modules/product/docs/roadmap.md +0 -80
- package/templates/modules/reference/docs/reference/api.md +0 -131
- package/templates/modules/reference/docs/reference/code-style.md +0 -275
- package/templates/modules/reference/docs/reference/configuration.md +0 -117
- package/templates/modules/reference/docs/reference/infrastructure.md +0 -191
- package/templates/modules/tutorials/docs/tutorials/environment-setup.md +0 -212
- package/templates/modules/tutorials/docs/tutorials/first-task.md +0 -246
- 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.
|