@damenor/agent-docs 0.1.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 +115 -0
- package/dist/index.js +568 -0
- package/package.json +53 -0
- package/templates/base/AGENTS.md +177 -0
- package/templates/base/CHANGELOG.md +86 -0
- package/templates/base/README.md +110 -0
- package/templates/base/docs/CONTEXT.md +111 -0
- package/templates/base/docs/README.md +131 -0
- package/templates/base/docs/adr/TEMPLATE.md +83 -0
- package/templates/modules/agents/.agents/agents/doc-designer.md +56 -0
- package/templates/modules/agents/.agents/agents/doc-maintainer.md +54 -0
- package/templates/modules/agents/.agents/agents/doc-reviewer.md +80 -0
- package/templates/modules/agents/.agents/agents/doc-writer.md +66 -0
- package/templates/modules/agents/.agents/agents/reviewer.md +138 -0
- package/templates/modules/agents/.agents/skills/doc-design/SKILL.md +359 -0
- package/templates/modules/agents/.agents/skills/doc-design/references/design-system-format.md +550 -0
- package/templates/modules/agents/.agents/skills/doc-maintain/SKILL.md +345 -0
- package/templates/modules/agents/.agents/skills/doc-maintain/references/triggers.md +311 -0
- package/templates/modules/agents/.agents/skills/doc-review/SKILL.md +324 -0
- package/templates/modules/agents/.agents/skills/doc-review/references/health-checklist.md +290 -0
- package/templates/modules/agents/.agents/skills/doc-scaffold/SKILL.md +277 -0
- package/templates/modules/agents/.agents/skills/doc-scaffold/references/diataxis-quick-ref.md +149 -0
- package/templates/modules/agents/.agents/skills/doc-write/SKILL.md +414 -0
- package/templates/modules/agents/.agents/skills/doc-write/references/adr-format.md +194 -0
- package/templates/modules/agents/.agents/skills/doc-write/references/diataxis-patterns.md +351 -0
- package/templates/modules/ci/.github/workflows/docs-check.yml +94 -0
- package/templates/modules/design/docs/DESIGN.md +253 -0
- package/templates/modules/explanation/docs/explanation/agent-flow.md +15 -0
- package/templates/modules/explanation/docs/explanation/architecture.md +138 -0
- package/templates/modules/guides/docs/guides/deployment.md +189 -0
- package/templates/modules/guides/docs/guides/runbooks/TEMPLATE.md +86 -0
- package/templates/modules/guides/docs/guides/troubleshooting.md +65 -0
- package/templates/modules/operations/docs/operations/README.md +115 -0
- package/templates/modules/product/docs/product/overview.md +90 -0
- package/templates/modules/product/docs/roadmap.md +80 -0
- package/templates/modules/reference/docs/reference/api.md +131 -0
- package/templates/modules/reference/docs/reference/code-style.md +275 -0
- package/templates/modules/reference/docs/reference/configuration.md +117 -0
- package/templates/modules/reference/docs/reference/infrastructure.md +191 -0
- package/templates/modules/tutorials/docs/tutorials/environment-setup.md +212 -0
- package/templates/modules/tutorials/docs/tutorials/first-task.md +246 -0
- package/templates/modules/tutorials/docs/tutorials/quick-start.md +146 -0
- package/templates/shared/.editorconfig +20 -0
- package/templates/shared/.markdownlint.json +14 -0
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@damenor/agent-docs",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "CLI para generar documentación profesional para proyectos con agentes AI",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"create-docs": "dist/index.js",
|
|
8
|
+
"agent-docs": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"templates"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"dev": "tsup --watch",
|
|
16
|
+
"build": "tsup",
|
|
17
|
+
"start": "node dist/index.js",
|
|
18
|
+
"typecheck": "tsc --noEmit"
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=18.0.0"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@clack/prompts": "^0.10.0",
|
|
25
|
+
"picocolors": "^1.1.1"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/node": "^22.19.17",
|
|
29
|
+
"tsup": "^8.4.0",
|
|
30
|
+
"typescript": "^5.7.0",
|
|
31
|
+
"vitest": "4.1.5"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"cli",
|
|
35
|
+
"documentation",
|
|
36
|
+
"ai-agents",
|
|
37
|
+
"template",
|
|
38
|
+
"diataxis",
|
|
39
|
+
"adr",
|
|
40
|
+
"scaffold",
|
|
41
|
+
"docs"
|
|
42
|
+
],
|
|
43
|
+
"author": "damenordev",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://github.com/damenordev/doc-projects.git"
|
|
48
|
+
},
|
|
49
|
+
"homepage": "https://github.com/damenordev/doc-projects#readme",
|
|
50
|
+
"bugs": {
|
|
51
|
+
"url": "https://github.com/damenordev/doc-projects/issues"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: "{{PROJECT_NAME}}"
|
|
3
|
+
stack: "{{TECH_STACK}}"
|
|
4
|
+
created: "2025-01-01"
|
|
5
|
+
updated: "2026-05-07"
|
|
6
|
+
status: active
|
|
7
|
+
type: agent-protocol
|
|
8
|
+
tags: [agents, protocolo, operativo, ia]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# AGENTS.md — Protocolo Operativo
|
|
12
|
+
|
|
13
|
+
Reglas que TODO agente de IA debe seguir al trabajar en este proyecto. Guía extendida: `docs/internal/agent-guide.md`.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## STOP — Lee esto ANTES de hacer nada
|
|
18
|
+
|
|
19
|
+
1. **TRIAGE**: Clasifica la tarea (SMALL/MEDIUM/LARGE). No saltes este paso.
|
|
20
|
+
2. **LEE**: Lee la documentación indicada en la tabla ANTES de escribir código.
|
|
21
|
+
3. **PREGUNTA**: Si hay ambigüedad, haz TODAS las preguntas en UN solo mensaje.
|
|
22
|
+
4. **NO IMPLEMENTES** sin seguir el protocolo completo (MEDIUM/LARGE).
|
|
23
|
+
5. **@reviewer**: Invoca ANTES de marcar la tarea como completada (MEDIUM/LARGE).
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Triage de tarea
|
|
28
|
+
|
|
29
|
+
Antes de ejecutar el protocolo, clasificar la tarea:
|
|
30
|
+
|
|
31
|
+
| Tamaño | Criterio | Protocolo |
|
|
32
|
+
|--------|----------|-----------|
|
|
33
|
+
| **SMALL** | ≤2 archivos, <50 líneas | Leer CONTEXT.md → implementar → lint → done |
|
|
34
|
+
| **MEDIUM** | 3-10 archivos, feature moderada | Protocolo completo (sin subdelegación) |
|
|
35
|
+
| **LARGE** | Multi-día, arquitectural | Protocolo completo + ADR + subdelegación |
|
|
36
|
+
|
|
37
|
+
**Ejemplos**: SMALL = fix typo, cambiar color, corregir import. MEDIUM = nuevo endpoint, nuevo componente, nuevo servicio simple. LARGE = sistema de auth, integración con provider externo, sistema de notificaciones multi-canal.
|
|
38
|
+
|
|
39
|
+
Si empiezas SMALL y la tarea crece → escalar a MEDIUM.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Stack y convenciones
|
|
44
|
+
|
|
45
|
+
### Stack
|
|
46
|
+
- **Frontend**: [framework y versión — ej. {{FRAMEWORK}}]
|
|
47
|
+
- **Backend**: [framework y versión — ej. {{FRAMEWORK}}]
|
|
48
|
+
- **Base de datos**: [tipo y versión — ej. {{TECH_STACK}}]
|
|
49
|
+
- **CI/CD**: [plataforma — ej. {{TECH_STACK}}]
|
|
50
|
+
|
|
51
|
+
### Detección automática de stack
|
|
52
|
+
|
|
53
|
+
Si el stack no está rellenado arriba, el agente debe detectarlo:
|
|
54
|
+
|
|
55
|
+
| Archivo detectado | Ecosistema | Comandos probables |
|
|
56
|
+
|-------------------|------------|--------------------|
|
|
57
|
+
| `package.json` | Node.js (npm/pnpm/yarn) | `npm run dev`, `npm run build` |
|
|
58
|
+
| `requirements.txt` / `pyproject.toml` | Python (pip/poetry) | `python manage.py runserver`, `pytest` |
|
|
59
|
+
| `go.mod` | Go | `go run .`, `go test ./...` |
|
|
60
|
+
| `Cargo.toml` | Rust | `cargo run`, `cargo test` |
|
|
61
|
+
| `pom.xml` / `build.gradle` | Java/Kotlin | `mvn spring-boot:run`, `gradle bootRun` |
|
|
62
|
+
|
|
63
|
+
### Convenios obligatorios
|
|
64
|
+
1. **Idioma**: Código en **inglés**. Comentarios y docs en **español**.
|
|
65
|
+
2. **Nombramiento**: [convención de nombres — ej. camelCase variables/funciones, PascalCase componentes]
|
|
66
|
+
3. **Estructura**: [convención — ej. feature-based folders]
|
|
67
|
+
4. **Testing**: Todo código nuevo DEBE incluir tests.
|
|
68
|
+
5. **Linting**: Pasar `npm run lint` sin errores antes de completar.
|
|
69
|
+
6. **Commits**: Conventional Commits en español: `tipo(alcance): descripción`.
|
|
70
|
+
7. **Seguridad**: Nunca commitear secrets. Usar variables de entorno.
|
|
71
|
+
8. **Dependencias**: No añadir sin justificación. Si se añade → documentar en ADR.
|
|
72
|
+
9. **Accesibilidad**: Todo componente UI cumple WCAG 2.1 AA.
|
|
73
|
+
|
|
74
|
+
### Comandos
|
|
75
|
+
|
|
76
|
+
| Comando | Uso |
|
|
77
|
+
|---------|-----|
|
|
78
|
+
| `npm run dev` | Desarrollo con hot-reload |
|
|
79
|
+
| `npm run build` | Build producción |
|
|
80
|
+
| `npm run test` | Tests unitarios e integración |
|
|
81
|
+
| `npm run test:e2e` | Tests end-to-end |
|
|
82
|
+
| `npm run lint` | Linter (debe pasar sin errores) |
|
|
83
|
+
| `npm run typecheck` | Verificación de tipos |
|
|
84
|
+
|
|
85
|
+
> **Detalle completo** de convenciones de git, commits, PRs y testing en [`docs/dev-workflow.md`](docs/dev-workflow.md).
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## ANTES de cada tarea (MEDIUM/LARGE)
|
|
90
|
+
|
|
91
|
+
### 1. Leer docs según tipo de tarea
|
|
92
|
+
|
|
93
|
+
| Tipo de tarea | Documentación a leer primero |
|
|
94
|
+
|---------------|------------------------------|
|
|
95
|
+
| Cualquier tarea | `docs/CONTEXT.md` |
|
|
96
|
+
| Feature nueva | `docs/roadmap.md`, `docs/explanation/architecture.md`, ADRs relevantes |
|
|
97
|
+
| Bug/UI/Estilo | `docs/DESIGN.md`, `docs/CONTEXT.md` |
|
|
98
|
+
| API/Backend | `docs/reference/api.md`, `docs/reference/configuration.md` |
|
|
99
|
+
| Deploy/Infra | `docs/guides/deployment.md`, `docs/reference/infrastructure.md` |
|
|
100
|
+
| Arquitectura | `docs/explanation/architecture.md`, `docs/adr/` (todos) |
|
|
101
|
+
|
|
102
|
+
### 2. Verificar ADRs existentes
|
|
103
|
+
|
|
104
|
+
Buscar en `docs/adr/` antes de tomar decisiones:
|
|
105
|
+
- **Existe ADR aceptado** → SEGUIRLO. No reinventar.
|
|
106
|
+
- **Contradice lo que vas a hacer** → Plantear discusión antes.
|
|
107
|
+
- **No existe** → Evaluar si merece ADR (ver criterio y ejemplos en [`docs/adr/TEMPLATE.md`](docs/adr/TEMPLATE.md)).
|
|
108
|
+
|
|
109
|
+
### 3. Verificar CONTEXT.md
|
|
110
|
+
|
|
111
|
+
Si la tarea usa términos que no están en `docs/CONTEXT.md` → preparar para actualizar al terminar.
|
|
112
|
+
|
|
113
|
+
Si `CONTEXT.md` tiene `completeness < 50%` → prioridad: completar CONTEXT.md antes de implementar features.
|
|
114
|
+
|
|
115
|
+
### 4. Preguntar si hay ambigüedad
|
|
116
|
+
|
|
117
|
+
Si después de leer la documentación hay ambigüedad → **batch TODAS las preguntas en un solo mensaje**. Cada pregunta con opciones cuando sea posible. No preguntar una por una.
|
|
118
|
+
|
|
119
|
+
No preguntes si la tarea está clara, es implementación estándar, o la info está en los docs.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## DESPUÉS de cada tarea (MEDIUM/LARGE)
|
|
124
|
+
|
|
125
|
+
### Árbol post-tarea
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
¿Tomaste una decisión?
|
|
129
|
+
├── Arquitectónica → docs/adr/ (ADR formal)
|
|
130
|
+
├── Implementación no obvia → JSDoc + docs/adr/ai-decisions.md
|
|
131
|
+
└── No → siguiente
|
|
132
|
+
¿Términos nuevos del dominio? → docs/CONTEXT.md
|
|
133
|
+
¿Endpoints cambiados? → docs/reference/api.md
|
|
134
|
+
¿UI/UX cambiada? → docs/DESIGN.md
|
|
135
|
+
¿Deploy a producción? → CHANGELOG.md + docs/guides/deployment.md
|
|
136
|
+
¿Feature completado? → docs/roadmap.md
|
|
137
|
+
¿Gotcha descubierto? → docs/guides/troubleshooting.md
|
|
138
|
+
¿Refactor de patrones? → Revisar architecture.md y ADRs
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
> **Guía extendida** con diagramas y ejemplos en [`docs/internal/agent-guide.md`](docs/internal/agent-guide.md).
|
|
142
|
+
> **Alternativa**: Invocar skill `doc-maintain` para detectar cambios y sugerir actualizaciones automáticamente.
|
|
143
|
+
|
|
144
|
+
**Regla de oro**: Si cambias el código, cambias la documentación.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Quality Gate — @reviewer (MEDIUM/LARGE)
|
|
149
|
+
|
|
150
|
+
**ANTES de completar**, invocar `@reviewer` para verificar:
|
|
151
|
+
- ✅ Code style conforme a convenciones
|
|
152
|
+
- ✅ Sin duplicación — usa componentes/utilidades existentes
|
|
153
|
+
- ✅ Sigue la arquitectura del proyecto y respeta ADRs
|
|
154
|
+
- ✅ Sin vulnerabilidades de seguridad
|
|
155
|
+
- ✅ Tests incluidos para código nuevo
|
|
156
|
+
- ✅ Documentación actualizada
|
|
157
|
+
- ✅ Sin problemas de performance evidentes
|
|
158
|
+
|
|
159
|
+
- **❌ BLOQUEANTE** → arreglar antes de completar.
|
|
160
|
+
- **⚠️ SUGERIDO** → recomendado pero no bloquea.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Subdelegación
|
|
165
|
+
|
|
166
|
+
Instrucciones mínimas al subagente:
|
|
167
|
+
> Lee AGENTS.md y sigue el protocolo completo. Tarea: [descripción]. Docs relevantes: [lista].
|
|
168
|
+
|
|
169
|
+
No repitas convenciones — ya están en AGENTS.md. Ver ejemplo completo en `docs/internal/agent-guide.md`.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Skills y agentes disponibles
|
|
174
|
+
|
|
175
|
+
- **Skills**: `doc-scaffold`, `doc-write`, `doc-design`, `doc-review`, `doc-maintain` — ver `.agents/skills/`
|
|
176
|
+
- **Agentes**: `@reviewer` (quality gate), `@doc-writer`, `@doc-reviewer`, `@doc-designer`, `@doc-maintainer` — ver `.agents/agents/`
|
|
177
|
+
- **Guía extendida**: `docs/internal/agent-guide.md`
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
created: "2025-01-01"
|
|
3
|
+
status: active
|
|
4
|
+
type: changelog
|
|
5
|
+
tags: [changelog, cambios, versiones]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Changelog
|
|
9
|
+
|
|
10
|
+
Todos los cambios notables de este proyecto se documentarán en este archivo.
|
|
11
|
+
|
|
12
|
+
El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/),
|
|
13
|
+
y este proyecto adhiere a [Versionado Semántico](https://semver.org/lang/es/).
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## [Sin publicar]
|
|
18
|
+
|
|
19
|
+
<!--
|
|
20
|
+
Sección para cambios que ya están en main pero que aún no se publican.
|
|
21
|
+
Mover las entradas aquí al momento de hacer un release.
|
|
22
|
+
-->
|
|
23
|
+
|
|
24
|
+
### Añadido
|
|
25
|
+
- `TEMPLATE-README.md` con instrucciones paso a paso para usar este template.
|
|
26
|
+
- `.editorconfig` para formato consistente entre editores.
|
|
27
|
+
- `.markdownlint.json` para linting de archivos Markdown.
|
|
28
|
+
- `.github/workflows/docs-check.yml` — CI que verifica frontmatter, archivos vacíos, links rotos y completeness de CONTEXT.md.
|
|
29
|
+
- Tabla de detección automática de stack en `AGENTS.md` (soporte multi-lenguaje: Node, Python, Go, Rust, Java).
|
|
30
|
+
- Diagramas Mermaid en `architecture.md` y `agent-guide.md` (reemplazan ASCII art).
|
|
31
|
+
- Cross-references entre archivos para reducir duplicación interna.
|
|
32
|
+
|
|
33
|
+
### Cambiado
|
|
34
|
+
- `agent-flow.md` fusionado en `agent-guide.md` — el archivo original redirige.
|
|
35
|
+
- `DESIGN.md` — bloque YAML ahora indica explícitamente que son valores de ejemplo.
|
|
36
|
+
- `AGENTS.md` — criterio ADR referencia `TEMPLATE.md` en vez de duplicarlo.
|
|
37
|
+
- `doc-maintain` skill — checklist post-tarea referencia `AGENTS.md` en vez de duplicar.
|
|
38
|
+
- `doc-scaffold` skill — detección de stack ahora referencia tabla de `AGENTS.md`.
|
|
39
|
+
|
|
40
|
+
### Corregido
|
|
41
|
+
- Bug de caracteres chinos en `docs/README.md` ("命名" → "nomenclatura").
|
|
42
|
+
|
|
43
|
+
### Cambiado
|
|
44
|
+
<!-- Cambios en funcionalidad existente. Ejemplo: - Se actualizó el flujo de registro para incluir verificación por email. -->
|
|
45
|
+
|
|
46
|
+
### Corregido
|
|
47
|
+
<!-- Corrección de bugs. Ejemplo: - Se corrigió error 500 al enviar formularios con caracteres especiales. -->
|
|
48
|
+
|
|
49
|
+
### Eliminado
|
|
50
|
+
<!-- Funcionalidades eliminadas. Ejemplo: - Se eliminó el endpoint deprecated /api/v1/users. -->
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## [0.1.0] - 2025-01-15
|
|
55
|
+
|
|
56
|
+
### Añadido
|
|
57
|
+
- Inicialización del proyecto con estructura base.
|
|
58
|
+
- Configuración de CI/CD pipeline.
|
|
59
|
+
- Documentación completa del proyecto (ver `docs/`).
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
<!--
|
|
64
|
+
GUÍA DE FORMATO:
|
|
65
|
+
|
|
66
|
+
Tipos de cambios permitidos:
|
|
67
|
+
|
|
68
|
+
- **Añadido**: para funcionalidades nuevas.
|
|
69
|
+
- **Cambiado**: para cambios en funcionalidad existente.
|
|
70
|
+
- **Deprecado**: para funcionalidades que serán eliminadas en futuras versiones.
|
|
71
|
+
- **Eliminado**: para funcionalidades eliminadas en esta versión.
|
|
72
|
+
- **Corregido**: para corrección de bugs.
|
|
73
|
+
- **Seguridad**: para correcciones de vulnerabilidades.
|
|
74
|
+
|
|
75
|
+
Reglas:
|
|
76
|
+
|
|
77
|
+
1. Cada versión tiene su fecha en formato YYYY-MM-DD.
|
|
78
|
+
2. La sección "Sin publicar" siempre está primero.
|
|
79
|
+
3. Los enlaces de comparación van al final del archivo.
|
|
80
|
+
4. Una entrada por cambio, prefijada con "- ".
|
|
81
|
+
5. Ordenar cambios: Añadido > Cambiado > Deprecado > Eliminado > Corregido > Seguridad.
|
|
82
|
+
6. Actualizar al momento de deploy (no al momento de codear).
|
|
83
|
+
-->
|
|
84
|
+
|
|
85
|
+
[0.1.0]: https://github.com/org/{{PROJECT_NAME}}/releases/tag/v0.1.0
|
|
86
|
+
<!-- [Sin publicar]: https://github.com/org/{{PROJECT_NAME}}/compare/v0.1.0...HEAD -->
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
created: "2025-01-01"
|
|
3
|
+
status: active
|
|
4
|
+
type: project-overview
|
|
5
|
+
tags: [readme, proyecto, índice]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# {{PROJECT_NAME}}
|
|
9
|
+
|
|
10
|
+
> [Una línea que describe qué hace este proyecto y para quién. Ejemplo: "Portal web corporativo para la gestión de trámites internos del sector finanzas."]
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Inicio rápido
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Clonar el repositorio
|
|
18
|
+
git clone https://github.com/org/{{PROJECT_NAME}} && cd [NOMBRE_DEL_PROYECTO]
|
|
19
|
+
|
|
20
|
+
# Instalar dependencias
|
|
21
|
+
[comando de instalación]
|
|
22
|
+
|
|
23
|
+
# Iniciar servidor de desarrollo
|
|
24
|
+
[comando de dev]
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
El proyecto debería estar disponible en `http://localhost:3000`.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Mapa de documentación
|
|
32
|
+
|
|
33
|
+
Toda la documentación detallada vive en [`docs/`](docs/README.md).
|
|
34
|
+
|
|
35
|
+
| Sección | Qué encontrarás | Ir a |
|
|
36
|
+
|---------|-----------------|------|
|
|
37
|
+
| Producto | Visión, roadmap, stakeholders | [`docs/product/`](docs/product/overview.md) |
|
|
38
|
+
| Tutoriales | Quick start, setup, primera tarea | [`docs/tutorials/`](docs/tutorials/quick-start.md) |
|
|
39
|
+
| Guías | Deploy, troubleshooting, runbooks | [`docs/guides/`](docs/guides/deployment.md) |
|
|
40
|
+
| Referencia | API, configuración, infraestructura | [`docs/reference/`](docs/reference/api.md) |
|
|
41
|
+
| Explicación | Arquitectura, decisiones (ADRs) | [`docs/explanation/`](docs/explanation/architecture.md) |
|
|
42
|
+
| Operaciones | Monitoreo, incidentes, SLAs | [`docs/operations/`](docs/operations/README.md) |
|
|
43
|
+
|
|
44
|
+
Archivos clave en la raíz:
|
|
45
|
+
|
|
46
|
+
- [`AGENTS.md`](AGENTS.md) — Protocolo operativo para agentes de IA
|
|
47
|
+
- [`CHANGELOG.md`](CHANGELOG.md) — Registro de cambios del proyecto
|
|
48
|
+
- [`docs/CONTEXT.md`](docs/CONTEXT.md) — Vocabulario y lenguaje del dominio
|
|
49
|
+
- [`docs/DESIGN.md`](docs/DESIGN.md) — Sistema de diseño (colores, tipografía, componentes)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Comandos
|
|
54
|
+
|
|
55
|
+
| Comando | Descripción |
|
|
56
|
+
|---------|-------------|
|
|
57
|
+
| `[npm run dev]` | Inicia el servidor de desarrollo con hot-reload |
|
|
58
|
+
| `[npm run build]` | Genera la build de producción |
|
|
59
|
+
| `[npm run test]` | Ejecuta la suite de tests |
|
|
60
|
+
| `[npm run lint]` | Ejecuta el linter y el formateador |
|
|
61
|
+
| `[npm run test:e2e]` | Ejecuta tests end-to-end |
|
|
62
|
+
|
|
63
|
+
> **Fuente de verdad**: [`AGENTS.md`](AGENTS.md) § Comandos. Actualizar ahí primero.
|
|
64
|
+
|
|
65
|
+
## Arquitectura
|
|
66
|
+
|
|
67
|
+
Para entender cómo está construido el proyecto, leer [`docs/explanation/architecture.md`](docs/explanation/architecture.md).
|
|
68
|
+
|
|
69
|
+
Resumen rápido:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
[DIAGRAMA SIMPLIFICADO DE LA ARQUITECTURA]
|
|
73
|
+
|
|
74
|
+
Cliente (Browser)
|
|
75
|
+
↓
|
|
76
|
+
[Frontend Framework]
|
|
77
|
+
↓
|
|
78
|
+
[API / Backend]
|
|
79
|
+
↓
|
|
80
|
+
[Base de datos]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Las decisiones de arquitectura se documentan como ADRs en [`docs/adr/`](docs/adr/TEMPLATE.md).
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Stack
|
|
88
|
+
|
|
89
|
+
| Capa | Tecnología | Versión |
|
|
90
|
+
|------|-----------|---------|
|
|
91
|
+
| Frontend | [framework] | [versión] |
|
|
92
|
+
| Backend | [framework] | [versión] |
|
|
93
|
+
| Base de datos | [tipo] | [versión] |
|
|
94
|
+
| CI/CD | [plataforma] | — |
|
|
95
|
+
| Hosting | [proveedor] | — |
|
|
96
|
+
| Lenguaje | [lenguaje] | [versión] |
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Contribuir
|
|
101
|
+
|
|
102
|
+
1. Lee [`docs/dev-workflow.md`](docs/dev-workflow.md) para el flujo de trabajo interno.
|
|
103
|
+
2. Lee [`AGENTS.md`](AGENTS.md) si trabajas con agentes de IA.
|
|
104
|
+
3. Lee [`docs/tutorials/first-task.md`](docs/tutorials/first-task.md) para tu primera contribución.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Licencia
|
|
109
|
+
|
|
110
|
+
[TIPO DE LICENCIA — Ejemplo: Privada. Todos los derechos reservados.]
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
created: "2025-01-01"
|
|
3
|
+
updated: "2025-01-01"
|
|
4
|
+
status: active
|
|
5
|
+
completeness: "15%"
|
|
6
|
+
type: domain-language
|
|
7
|
+
tags: [contexto, dominio, vocabulario, glosario]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# CONTEXT.md — Lenguaje del Dominio
|
|
11
|
+
|
|
12
|
+
Este archivo define el vocabulario compartido que se usa en este proyecto. Todo término de negocio o concepto clave del dominio debe estar documentado aquí.
|
|
13
|
+
|
|
14
|
+
Si un término aparece en el código, la documentación o las conversaciones del equipo y NO está en este archivo, es un gap que debe cubrirse.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Lenguaje del dominio
|
|
19
|
+
|
|
20
|
+
### Entidades principales
|
|
21
|
+
|
|
22
|
+
| Término | Definición | Ejemplo de uso | Equivalente técnico |
|
|
23
|
+
|---------|-----------|----------------|-------------------|
|
|
24
|
+
| **[Término 1]** | [Qué es, en una oración, desde la perspectiva del negocio] | "El [término] se vence el viernes." | `[nombre_en_codigo]` |
|
|
25
|
+
| **[Término 2]** | [Qué es, en una oración, desde la perspectiva del negocio] | "Cada [término] puede tener múltiples [otro término]." | `[nombre_en_codigo]` |
|
|
26
|
+
| **[Término 3]** | [Qué es, en una oración, desde la perspectiva del negocio] | "El sistema genera un [término] automáticamente." | `[nombre_en_codigo]` |
|
|
27
|
+
|
|
28
|
+
### Estados y flujos
|
|
29
|
+
|
|
30
|
+
| Término | Significa | Transiciones posibles |
|
|
31
|
+
|---------|-----------|----------------------|
|
|
32
|
+
| **[Estado A]** | [Qué significa este estado en términos de negocio] | → [Estado B], → [Estado C] |
|
|
33
|
+
| **[Estado B]** | [Qué significa este estado en términos de negocio] | → [Estado C] |
|
|
34
|
+
| **[Estado C]** | [Estado final — qué implica] | — |
|
|
35
|
+
|
|
36
|
+
### Roles y permisos
|
|
37
|
+
|
|
38
|
+
| Rol | Quién es | Qué puede hacer |
|
|
39
|
+
|-----|----------|----------------|
|
|
40
|
+
| **[Rol 1]** | [Descripción del perfil de usuario] | [Lista de permisos clave] |
|
|
41
|
+
| **[Rol 2]** | [Descripción del perfil de usuario] | [Lista de permisos clave] |
|
|
42
|
+
| **Admin** | Administrador del sistema con acceso total | Gestiona usuarios, configuración global, y puede asumir cualquier rol |
|
|
43
|
+
|
|
44
|
+
### Términos de negocio
|
|
45
|
+
|
|
46
|
+
| Término | Definición | Notas |
|
|
47
|
+
|---------|-----------|-------|
|
|
48
|
+
| **[Término de negocio]** | [Definición desde la perspectiva del negocio, no técnica] | [Contexto adicional o advertencias] |
|
|
49
|
+
| **[Otro término]** | [Definición] | [Ejemplo: "No confundir con [término similar]. Ver [otra sección]."] |
|
|
50
|
+
|
|
51
|
+
### Términos técnicos internos
|
|
52
|
+
|
|
53
|
+
| Término | Definición | Por qué existe |
|
|
54
|
+
|---------|-----------|----------------|
|
|
55
|
+
| **[Término técnico]** | [Qué es y cómo se usa en este proyecto específicamente] | [Motivo por el que se introdujo o contexto de la decisión] |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Relaciones entre conceptos
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
[Entidad 1] ─── 1:N ───→ [Entidad 2]
|
|
63
|
+
└──→ [Entidad 3] (a través de [Entidad 4])
|
|
64
|
+
|
|
65
|
+
[Rol 1] ─── puede ───→ [Acción A] sobre [Entidad 1]
|
|
66
|
+
└──→ [Acción B] sobre [Entidad 2]
|
|
67
|
+
|
|
68
|
+
[Estado A] ──→ [Estado B] ──→ [Estado C] ──→ [Estado D]
|
|
69
|
+
└──→ [Estado E] (reversión)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Ejemplo de diálogo usando el dominio
|
|
75
|
+
|
|
76
|
+
Este ejemplo muestra cómo se usa el vocabulario en una conversación real del equipo:
|
|
77
|
+
|
|
78
|
+
> **Product Manager**: "El cliente necesita que los [Término 1] en estado [Estado A] se puedan convertir automáticamente en [Término 2] cuando pasen a [Estado B]."
|
|
79
|
+
>
|
|
80
|
+
> **Developer**: "Entendido. ¿Esa conversación aplica para todos los [Rol 1] o solo para los que tienen permiso de [acción]?"
|
|
81
|
+
>
|
|
82
|
+
> **Product Manager**: "Solo para [Rol 1]. Los [Rol 2] solo ven el [Término 1] pero no pueden convertirlo."
|
|
83
|
+
>
|
|
84
|
+
> **Developer**: "Perfecto. Voy a añadir un botón de conversión en la vista de [Término 1] para [Rol 1], visible solo cuando esté en [Estado A]. ¿El [Término 2] resultante empieza en [Estado C]?"
|
|
85
|
+
>
|
|
86
|
+
> **Product Manager**: "Sí, empieza en [Estado C] y necesita aprobación de un [Rol 2] para pasar a [Estado D]."
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Ambigüedades flagadas
|
|
91
|
+
|
|
92
|
+
Estos términos tienen significados que podrían confundirse. Prestar atención al contexto:
|
|
93
|
+
|
|
94
|
+
| Término | Confusión posible | Aclaración |
|
|
95
|
+
|---------|-------------------|-----------|
|
|
96
|
+
| **[Término ambiguo]** | Se podría confundir con [otro término] | En este proyecto significa [definición precisa]. No es lo mismo que [otro término]. |
|
|
97
|
+
| **[Otro término ambiguo]** | Significa cosas distintas según el contexto | Cuando dice "[término]" en el contexto de [área 1] significa [X]. En el contexto de [área 2] significa [Y]. |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Cómo actualizar este archivo
|
|
102
|
+
|
|
103
|
+
Cuando se añada un nuevo término al dominio:
|
|
104
|
+
|
|
105
|
+
1. Identificar si es una **entidad**, un **estado**, un **rol**, un **término de negocio** o un **término técnico**.
|
|
106
|
+
2. Añadirlo en la sección correspondiente con: definición, ejemplo de uso, y equivalente técnico.
|
|
107
|
+
3. Si tiene relaciones con otras entidades, actualizar el diagrama de relaciones.
|
|
108
|
+
4. Si es ambiguo o se confunde con otro término, añadirlo en "Ambigüedades flagadas".
|
|
109
|
+
5. Si se introdujo un nuevo estado o flujo, actualizar la tabla de estados.
|
|
110
|
+
|
|
111
|
+
**Regla**: Todo término que aparezca en código, APIs, UI o conversaciones del equipo DEBE estar aquí. Si no está, es un bug de documentación.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
created: "2025-01-01"
|
|
3
|
+
status: active
|
|
4
|
+
type: doc-map
|
|
5
|
+
tags: [documentación, índice, mapa, diátaxis]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Mapa de Documentación
|
|
9
|
+
|
|
10
|
+
Este directorio contiene **toda la documentación** del proyecto, organizada siguiendo el framework Diátaxis.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Estructura de directorios
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
docs/
|
|
18
|
+
├── README.md # ← ESTE ARCHIVO. Mapa y reglas de la documentación.
|
|
19
|
+
├── CONTEXT.md # Vocabulario y lenguaje del dominio.
|
|
20
|
+
├── DESIGN.md # Sistema de diseño (colores, tipografía, componentes).
|
|
21
|
+
├── roadmap.md # Planificación y estado de features.
|
|
22
|
+
├── dev-workflow.md # Convenciones internas de desarrollo.
|
|
23
|
+
│
|
|
24
|
+
├── product/ # CONTEXTO DE PRODUCTO
|
|
25
|
+
│ └── overview.md # Visión, usuarios, valor, métricas.
|
|
26
|
+
│
|
|
27
|
+
├── tutorials/ # APRENDER — Orientados a aprendizaje
|
|
28
|
+
│ ├── quick-start.md # Arrancar el proyecto en 15 minutos.
|
|
29
|
+
│ ├── environment-setup.md # Configurar el entorno de desarrollo.
|
|
30
|
+
│ └── first-task.md # Hacer tu primera contribución end-to-end.
|
|
31
|
+
│
|
|
32
|
+
├── guides/ # APLICAR — Orientados a tareas
|
|
33
|
+
│ ├── deployment.md # Cómo hacer deploy a cada entorno.
|
|
34
|
+
│ ├── troubleshooting.md # Problemas comunes y soluciones.
|
|
35
|
+
│ └── runbooks/ # Runbooks para incidentes.
|
|
36
|
+
│ └── TEMPLATE.md # Plantilla para crear runbooks nuevos.
|
|
37
|
+
│
|
|
38
|
+
├── reference/ # CONSULTAR — Información objetiva
|
|
39
|
+
│ ├── api.md # Referencia completa de la API.
|
|
40
|
+
│ ├── code-style.md # Convenciones de código (naming, imports, etc.)
|
|
41
|
+
│ ├── configuration.md # Variables de entorno y configuración.
|
|
42
|
+
│ └── infrastructure.md # Entornos, URLs, acceso, CI/CD.
|
|
43
|
+
│
|
|
44
|
+
├── explanation/ # ENTENDER — Orientados a comprensión
|
|
45
|
+
│ ├── agent-flow.md # → Redirige a docs/internal/agent-guide.md
|
|
46
|
+
│ └── architecture.md # Cómo y por qué está diseñado el sistema.
|
|
47
|
+
│
|
|
48
|
+
├── adr/ # DECISIONES — Architecture Decision Records
|
|
49
|
+
│ ├── TEMPLATE.md # Plantilla para crear ADRs nuevos.
|
|
50
|
+
│ └── 0001-record-architecture-decisions.md # Meta-ADR: por qué usamos ADRs.
|
|
51
|
+
│
|
|
52
|
+
└── operations/ # OPERACIONES — Monitoreo e incidentes
|
|
53
|
+
└── README.md # Hub de operaciones: SLAs, monitoreo, post-mortems.
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Clasificación Diátaxis
|
|
59
|
+
|
|
60
|
+
La documentación se organiza en cuatro cuadrantes según su propósito:
|
|
61
|
+
|
|
62
|
+
| Carpeta | Cuadrante | Propósito | Se lee cuando... |
|
|
63
|
+
|---------|-----------|-----------|------------------|
|
|
64
|
+
| `tutorials/` | **Aprender** | Guías paso a paso para aprender haciendo | "Quiero aprender cómo funciona esto" |
|
|
65
|
+
| `guides/` | **Aplicar** | Instrucciones para completar una tarea específica | "Necesito hacer X, ¿cómo?" |
|
|
66
|
+
| `reference/` | **Consultar** | Información técnica objetiva y completa | "¿Cuáles son los parámetros de esta función?" |
|
|
67
|
+
| `explanation/` | **Entender** | Contexto, porqués, decisiones de diseño | "¿Por qué se diseñó así?" |
|
|
68
|
+
|
|
69
|
+
Archivos transversales que no pertenecen a un cuadrante:
|
|
70
|
+
|
|
71
|
+
| Archivo | Propósito |
|
|
72
|
+
|---------|-----------|
|
|
73
|
+
| `CONTEXT.md` | Define el vocabulario compartido del dominio. Se consulta constantemente. |
|
|
74
|
+
| `DESIGN.md` | Sistema de diseño visual. Referencia para todo cambio de UI. |
|
|
75
|
+
| `roadmap.md` | Estado de features y planificación. Se actualiza con cada sprint. |
|
|
76
|
+
| `dev-workflow.md` | Convenciones internas: git, commits, PRs, code review. |
|
|
77
|
+
| `product/` | Contexto de negocio: visión, usuarios, stakeholders, métricas. |
|
|
78
|
+
| `adr/` | Registro de decisiones técnicas. Se consulta antes de tomar decisiones. |
|
|
79
|
+
| `operations/` | Monitoreo, incidentes, SLAs. Se consulta durante y después de incidentes. |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Reglas de crecimiento
|
|
84
|
+
|
|
85
|
+
La documentación crece orgánicamente. **No crear archivos vacíos "por si acaso".**
|
|
86
|
+
|
|
87
|
+
### Cuándo crear un archivo nuevo
|
|
88
|
+
|
|
89
|
+
| Se crea cuando... | Dónde va | Tipo |
|
|
90
|
+
|-------------------|----------|------|
|
|
91
|
+
| Hay un nuevo tutorial paso a paso que no existe | `tutorials/` | Aprender |
|
|
92
|
+
| Hay una tarea operativa recurrente sin guía | `guides/` | Aplicar |
|
|
93
|
+
| Hay un componente/servicio nuevo que consultar | `reference/` | Consultar |
|
|
94
|
+
| Hay un concepto que necesita explicación de fondo | `explanation/` | Entender |
|
|
95
|
+
| Hay una decisión técnica con trade-offs | `adr/` | Decisión |
|
|
96
|
+
| Hay un incidente recurrente que necesita pasos fijos | `guides/runbooks/` | Runbook |
|
|
97
|
+
|
|
98
|
+
### Cuándo NO crear un archivo
|
|
99
|
+
|
|
100
|
+
- Si la información ya existe en otro lado → **enlazar, no duplicar**.
|
|
101
|
+
- Si es un "TODO" sin contenido real → **no crear el archivo hasta tener contenido**.
|
|
102
|
+
- Si la información cambia constantemente → **mejor ponerla en código (ej. config en `.env.example`)**.
|
|
103
|
+
|
|
104
|
+
### Reglas de nomenclatura
|
|
105
|
+
|
|
106
|
+
- **Tutoriales**: Verbos en infinitivo, descriptivos. Ej. `quick-start.md`, `environment-setup.md`.
|
|
107
|
+
- **Guías**: Sustantivos que describan la tarea. Ej. `deployment.md`, `troubleshooting.md`.
|
|
108
|
+
- **Referencia**: Sustantivos del sistema. Ej. `api.md`, `configuration.md`, `infrastructure.md`.
|
|
109
|
+
- **Explicación**: Conceptos amplios. Ej. `architecture.md`, `auth-flow.md`.
|
|
110
|
+
- **ADRs**: Numerados. Ej. `0001-record-architecture-decisions.md`.
|
|
111
|
+
- **Runbooks**: Nombre del incidente/servicio. Ej. `database-connection-timeout.md`.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Convenciones de formato
|
|
116
|
+
|
|
117
|
+
1. **Todo archivo** tiene YAML frontmatter con `created`, `status`, `type`, `tags`.
|
|
118
|
+
2. **Todo archivo** empieza con un H1 (`#`) con el título del documento.
|
|
119
|
+
3. **Contenido en español**, términos técnicos y nombres de archivos en inglés.
|
|
120
|
+
4. **Enlaces relativos** entre archivos de documentación (no absolutos).
|
|
121
|
+
5. **Una fuente de verdad**: cada dato vive en UN archivo. En los demás, enlazar.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Mantenimiento
|
|
126
|
+
|
|
127
|
+
La documentación se mantiene actualizada siguiendo el protocolo definido en [`AGENTS.md`](../AGENTS.md). Después de cada tarea, verificar la checklist post-tarea para actualizar los archivos afectados.
|
|
128
|
+
|
|
129
|
+
Para auditar el estado de la documentación, usar la skill `doc-review`.
|
|
130
|
+
|
|
131
|
+
Para validación automática en CI, ver [`.github/workflows/docs-check.yml`](../.github/workflows/docs-check.yml).
|