@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,351 +1,372 @@
1
1
  ---
2
- created: "2024-01-15"
2
+ created: '2024-01-15'
3
3
  status: active
4
4
  type: reference
5
- tags: [diataxis, patrones, documentacion, escritura]
5
+ tags: [diataxis, patterns, documentation, writing]
6
6
  ---
7
7
 
8
- # Diátaxis — Patrones Detallados por Tipo
8
+ # Diátaxis — Detailed Patterns by Type
9
9
 
10
- ## Patrones de Tutorial
10
+ ## Tutorial Patterns
11
11
 
12
- ### Estructura canónica
12
+ ### Canonical structure
13
13
 
14
14
  ```markdown
15
- # [Verbo + objeto del aprendizaje]
15
+ # [Verb + learning object]
16
16
 
17
- ## Qué vas a construir
18
- [Resultado tangible que el lector obtendrá]
17
+ ## What you'll build
19
18
 
20
- ## Prerequisitos
21
- [Lista exacta: software, conocimientos, acceso]
19
+ [Tangible result the reader will obtain]
22
20
 
23
- ## Paso 1: [Acción concreta en infinitivo]
24
- [Instrucciones paso a paso]
25
- [Código completo y ejecutable]
21
+ ## Prerequisites
22
+
23
+ [Exact list: software, knowledge, access]
24
+
25
+ ## Step 1: [Concrete action in infinitive]
26
+
27
+ [Step by step instructions]
28
+ [Complete and executable code]
26
29
 
27
30
  ### ✅ Verificación
31
+
28
32
  [Comando o acción para confirmar que funciona]
29
33
 
30
34
  ## Paso N: ...
31
35
 
32
36
  ## Resumen
37
+
33
38
  [Qué se aprendió]
34
39
  [Próximos pasos sugeridos]
35
40
  ```
36
41
 
37
- ### Tono
42
+ ### Tone
38
43
 
39
- - **Didáctico y paciente**: No asumir conocimiento previo del tema
40
- - **Un concepto a la vez**: Cada paso introduce UNA cosa nueva
41
- - **Alentador**: Mostrar progreso visible y frecuentemente
42
- - **Concreto**: Usar ejemplos específicos, no abstractos
44
+ - **Didactic and patient**: Don't assume prior knowledge of the topic
45
+ - **One concept at a time**: Each step introduces ONE new thing
46
+ - **Encouraging**: Show visible progress frequently
47
+ - **Concrete**: Use specific examples, not abstract ones
43
48
 
44
- ### Longitud
49
+ ### Length
45
50
 
46
- - **Ideal**: 500-1500 palabras
47
- - **Máximo**: 2000 palabrassi es más, dividir en tutoriales secuenciales
48
- - **Mínimo**: 300 palabrassi es menos, probablemente es un how-to
51
+ - **Ideal**: 500-1500 words
52
+ - **Maximum**: 2000 wordsif longer, split into sequential tutorials
53
+ - **Minimum**: 300 wordsif shorter, it's probably a how-to
49
54
 
50
- ### Cuándo escribir un tutorial
55
+ ### When to write a tutorial
51
56
 
52
- - Un usuario nuevo necesita aprender una habilidad fundamental
53
- - Hay un flujo de onboarding que nadie ha documentado
54
- - Un concepto clave se enseña repetidamente a nuevas personas
57
+ - A new user needs to learn a fundamental skill
58
+ - There's an onboarding flow no one has documented
59
+ - A key concept is taught repeatedly to new people
55
60
 
56
- ### Ejemplo concreto
61
+ ### Concrete example
57
62
 
58
- ```markdown
63
+ ````markdown
59
64
  ---
60
- created: "2024-03-10"
65
+ created: '2024-03-10'
61
66
  status: active
62
67
  type: tutorial
63
68
  tags: [onboarding, api, express]
64
69
  ---
65
70
 
66
- # Crear tu primer endpoint con Express
71
+ # Create your first endpoint with Express
72
+
73
+ ## What you'll build
67
74
 
68
- ## Qué vas a construir
69
- Un endpoint GET /api/health que responda con el estado del servidor.
75
+ A GET /api/health endpoint that responds with the server status.
70
76
 
71
- ## Prerequisitos
72
- - Node.js 18+ instalado
73
- - Editor de código
77
+ ## Prerequisites
78
+
79
+ - Node.js 18+ installed
80
+ - Code editor
74
81
  - Terminal
75
82
 
76
- ## Paso 1: Inicializar el proyecto
83
+ ## Step 1: Initialize the project
77
84
 
78
- Crea una carpeta nueva e inicializa el proyecto:
85
+ Create a new folder and initialize the project:
79
86
 
80
- \`\`\`bash
81
- mkdir mi-api && cd mi-api
87
+ ```bash
88
+ mkdir my-api && cd my-api
82
89
  npm init -y
83
90
  npm install express
84
- \`\`\`
91
+ ```
92
+ ````
85
93
 
86
- ### ✅ Verificación
87
- Deberías ver `node_modules/` y `package.json` en la carpeta.
94
+ ### ✅ Verification
95
+
96
+ You should see `node_modules/` and `package.json` in the folder.
88
97
 
89
- ## Paso 2: Crear el servidor
98
+ ## Step 2: Create the server
90
99
 
91
- Crea `index.js`:
100
+ Create `index.js`:
92
101
 
93
- \`\`\`javascript
94
- const express = require('express');
95
- const app = express();
102
+ ```javascript
103
+ const express = require('express')
104
+ const app = express()
96
105
 
97
106
  app.get('/api/health', (req, res) => {
98
- res.json({ status: 'ok', timestamp: new Date().toISOString() });
99
- });
107
+ res.json({ status: 'ok', timestamp: new Date().toISOString() })
108
+ })
100
109
 
101
110
  app.listen(3000, () => {
102
- console.log('Servidor corriendo en http://localhost:3000');
103
- });
104
- \`\`\`
111
+ console.log('Server running at http://localhost:3000')
112
+ })
113
+ ```
105
114
 
106
- ### ✅ Verificación
107
- Ejecuta `node index.js` y abre `http://localhost:3000/api/health` en el navegador.
108
- Deberías ver `{"status":"ok","timestamp":"..."}`.
115
+ ### ✅ Verification
109
116
 
110
- ## Resumen
111
- Aprendiste a crear un servidor Express con un endpoint GET.
112
- Próximo paso: [[tutorials/add-database]] para conectar una base de datos.
113
- ```
117
+ Run `node index.js` and open `http://localhost:3000/api/health` in your browser.
118
+ You should see `{"status":"ok","timestamp":"..."}`.
119
+
120
+ ## Summary
121
+
122
+ You learned to create an Express server with a GET endpoint.
123
+ Next step: [[tutorials/add-database]] to connect a database.
124
+
125
+ ````
114
126
 
115
- ### Anti-patrones de tutorial
127
+ ### Tutorial anti-patterns
116
128
 
117
- | Anti-patrón | Por qué es malo | Qué hacer en su lugar |
129
+ | Anti-pattern | Why it's bad | What to do instead |
118
130
  |-------------|----------------|----------------------|
119
- | Explicar teoría antes de practicar | Aburre al principiante | Explicar MIENTRAS se hace |
120
- | Saltarse pasos de verificación | El lector se pierde sin saberlo | Verificar después de CADA paso |
121
- | Asumir conocimiento previo | Frustra al principiante | Listar prerequisitos explícitos |
122
- | Código incompleto o seudo-código | No se puede ejecutar | Código SIEMPRE completo y ejecutable |
123
- | Cubrir múltiples temas | Satura al lector | Un tutorial = un tema |
124
- | Enlaces a docs externas para lo básico | Interrumpe el flujo | Incluir todo lo necesario inline |
131
+ | Explaining theory before practice | Bores the beginner | Explain WHILE doing |
132
+ | Skipping verification steps | The reader gets lost without knowing | Verify after EACH step |
133
+ | Assuming prior knowledge | Frustrates the beginner | List prerequisites explicitly |
134
+ | Incomplete or pseudo-code | Cannot be executed | Code ALWAYS complete and executable |
135
+ | Covering multiple topics | Saturates the reader | One tutorial = one topic |
136
+ | External docs links for basics | Interrupts flow | Include everything inline |
125
137
 
126
138
  ---
127
139
 
128
- ## Patrones de How-to
140
+ ## How-to Patterns
129
141
 
130
- ### Estructura canónica
142
+ ### Canonical structure
131
143
 
132
144
  ```markdown
133
- # Cómo [resolver problema específico]
145
+ # How to [solve specific problem]
134
146
 
135
- ## Cuándo usar esto
136
- [1-3 líneas: escenario donde aplica esta guía]
147
+ ## When to use this
148
+ [1-3 lines: scenario where this guide applies]
137
149
 
138
- ## Pasos
139
- 1. [Acción directa]
140
- 2. [Acción directa]
150
+ ## Steps
151
+ 1. [Direct action]
152
+ 2. [Direct action]
141
153
  ...
142
154
 
143
- ## Resultado esperado
144
- [Qué se obtiene al final]
145
- ```
155
+ ## Expected result
156
+ [What you get at the end]
157
+ ````
146
158
 
147
- ### Tono
159
+ ### Tone
148
160
 
149
- - **Directo**: Al grano, sin preámbulos
150
- - **Asume conocimiento**: El lector ya conoce el sistema
151
- - **Práctico**: Pasos concretos, no explicaciones teóricas
152
- - **Sin justificación**: No explicar por qué si el lector pregunta por qué, necesita una explicación, no un how-to
161
+ - **Direct**: Straight to the point, no preamble
162
+ - **Assumes knowledge**: The reader already knows the system
163
+ - **Practical**: Concrete steps, not theoretical explanations
164
+ - **No justification**: Don't explain whyif the reader asks why, they need an explanation, not a how-to
153
165
 
154
- ### Cuándo dividir un how-to
166
+ ### When to split a how-to
155
167
 
156
- - Más de 10 pasosdividir en how-tos más específicos
157
- - Cubre más de un problemaun how-to por problema
158
- - Tiene secciones de explicación extraer la explicación a explanation/
168
+ - More than 10 stepssplit into more specific how-tos
169
+ - Covers more than one problemone how-to per problem
170
+ - Has explanation sectionsextract explanation to explanation/
159
171
 
160
- ### Ejemplo concreto
172
+ ### Concrete example
161
173
 
162
- ```markdown
174
+ ````markdown
163
175
  ---
164
- created: "2024-03-10"
176
+ created: '2024-03-10'
165
177
  status: active
166
178
  type: how-to
167
179
  tags: [auth, jwt, middleware]
168
180
  ---
169
181
 
170
- # Cómo agregar autenticación JWT a una API existente
182
+ # How to add JWT authentication to an existing API
183
+
184
+ ## When to use this
171
185
 
172
- ## Cuándo usar esto
173
- Cuando tienes una API Express funcionando y necesitas proteger endpoints con JWT.
186
+ When you have a working Express API and need to protect endpoints with JWT.
174
187
 
175
- ## Pasos
188
+ ## Steps
176
189
 
177
- 1. Instalar dependencias:
190
+ 1. Install dependencies:
178
191
 
179
- \`\`\`bash
192
+ ```bash
180
193
  npm install jsonwebtoken bcryptjs
181
- \`\`\`
194
+ ```
195
+ ````
182
196
 
183
- 2. Crear middleware de auth en `src/middleware/auth.js`:
197
+ 2. Create auth middleware at `src/middleware/auth.js`:
184
198
 
185
- \`\`\`javascript
186
- const jwt = require('jsonwebtoken');
199
+ ```javascript
200
+ const jwt = require('jsonwebtoken')
187
201
 
188
202
  function authMiddleware(req, res, next) {
189
- const token = req.headers.authorization?.split(' ')[1];
190
- if (!token) return res.status(401).json({ error: 'Token requerido' });
203
+ const token = req.headers.authorization?.split(' ')[1]
204
+ if (!token) return res.status(401).json({ error: 'Token required' })
191
205
 
192
206
  try {
193
- req.user = jwt.verify(token, process.env.JWT_SECRET);
194
- next();
207
+ req.user = jwt.verify(token, process.env.JWT_SECRET)
208
+ next()
195
209
  } catch {
196
- res.status(401).json({ error: 'Token inválido' });
210
+ res.status(401).json({ error: 'Invalid token' })
197
211
  }
198
212
  }
199
213
 
200
- module.exports = authMiddleware;
201
- \`\`\`
214
+ module.exports = authMiddleware
215
+ ```
202
216
 
203
- 3. Proteger endpoints:
217
+ 3. Protect endpoints:
204
218
 
205
- \`\`\`javascript
219
+ ```javascript
206
220
  const auth = require('./middleware/auth');
207
221
  app.get('/api/profile', auth, (req, res) => { ... });
208
- \`\`\`
209
-
210
- ## Resultado esperado
211
- Los endpoints protegidos requieren un JWT válido en el header `Authorization: Bearer <token>`.
212
222
  ```
213
223
 
214
- ### Anti-patrones de how-to
224
+ ## Expected result
225
+
226
+ Protected endpoints require a valid JWT in the `Authorization: Bearer <token>` header.
227
+
228
+ ````
229
+
230
+ ### How-to anti-patterns
215
231
 
216
- | Anti-patrón | Por qué es malo | Qué hacer en su lugar |
232
+ | Anti-pattern | Why it's bad | What to do instead |
217
233
  |-------------|----------------|----------------------|
218
- | Explicar conceptos básicos | El lector ya debería saberlo | Link a tutorial si necesita base |
219
- | Narrativa o storytelling | No es lo que busca el lector | Pasos directos y enumerados |
220
- | Múltiples soluciones alternativas | Confunde al lector | Una solución, la mejor práctica |
221
- | Prerequisitos extensos | Si necesita mucho setup, es un tutorial | Simplificar o link a tutorial |
222
- | "Opcionalmente puedes..." | Genera incertidumbre | Un camino claro |
234
+ | Explaining basic concepts | The reader should already know | Link to tutorial if needed |
235
+ | Narrative or storytelling | Not what the reader is looking for | Direct, numbered steps |
236
+ | Multiple alternative solutions | Confuses the reader | One solution, best practice |
237
+ | Extensive prerequisites | If it needs lots of setup, it's a tutorial | Simplify or link to tutorial |
238
+ | "Optionally you can..." | Creates uncertainty | One clear path |
223
239
 
224
240
  ---
225
241
 
226
- ## Patrones de Referencia
242
+ ## Reference Patterns
227
243
 
228
- ### Estructura canónica
244
+ ### Canonical structure
229
245
 
230
246
  ```markdown
231
- # [Nombre del sistema/API/interfaz]
247
+ # [System/API/interface name]
232
248
 
233
- ## [Sección principal]
249
+ ## [Main section]
234
250
 
235
- | Parámetro | Tipo | Requerido | Descripción | Default |
251
+ | Parameter | Type | Required | Description | Default |
236
252
  |-----------|------|-----------|-------------|---------|
237
253
  | ... | ... | ... | ... | ... |
238
254
 
239
- ## Códigos de respuesta
255
+ ## Response codes
240
256
 
241
- | Código | Significado | Cuándo se retorna |
257
+ | Code | Meaning | When returned |
242
258
  |--------|------------|-------------------|
243
259
  | ... | ... | ... |
244
260
 
245
- ## Ejemplos
246
- [Un ejemplo mínimo por cada caso de uso principal]
247
- ```
261
+ ## Examples
262
+ [One minimal example per main use case]
263
+ ````
248
264
 
249
- ### Tono
265
+ ### Tone
250
266
 
251
- - **Neutral y factual**: Sin opiniones, sin narrativa
252
- - **Estructurado**: Tablas > listas > prosa
253
- - **Completo**: Incluir TODOS los parámetros, TODOS los casos
254
- - **Sin explicaciones**: Si necesita explicarse, linkear a explanation/
267
+ - **Neutral and factual**: No opinions, no narrative
268
+ - **Structured**: Tables > lists > prose
269
+ - **Complete**: Include ALL parameters, ALL cases
270
+ - **No explanations**: If it needs explaining, link to explanation/
255
271
 
256
- ### Pistas para auto-generación
272
+ ### Auto-generation tips
257
273
 
258
- Si el código tiene:
259
- - **OpenAPI/Swagger**: Generar referencia desde el spec
260
- - **TypeScript interfaces**: Extraer tipos y comentarios JSDoc
261
- - **JSON Schema**: Usar el schema como base
262
- - **CLI con `--help`**: Capturar la salida completa
274
+ If the code has:
263
275
 
264
- ### Qué incluir siempre
276
+ - **OpenAPI/Swagger**: Generate reference from the spec
277
+ - **TypeScript interfaces**: Extract types and JSDoc comments
278
+ - **JSON Schema**: Use the schema as base
279
+ - **CLI with `--help`**: Capture the complete output
265
280
 
266
- - Todos los parámetros/props/campos con tipo y descripción
267
- - Valores por defecto
268
- - Valores permitidos (enums)
269
- - Restricciones (min, max, formato)
270
- - Códigos de error
271
- - Ejemplos mínimos por cada caso principal
281
+ ### What to always include
272
282
 
273
- ### Anti-patrones de referencia
283
+ - All parameters/props/fields with type and description
284
+ - Default values
285
+ - Allowed values (enums)
286
+ - Constraints (min, max, format)
287
+ - Error codes
288
+ - Minimal examples per main case
274
289
 
275
- | Anti-patrón | Por qué es malo | Qué hacer en su lugar |
276
- |-------------|----------------|----------------------|
277
- | Prosa narrativa | La referencia debe ser consultable | Tablas y listas |
278
- | Ejemplos sin contexto | No se sabe cuándo usar cada uno | Un ejemplo por caso de uso |
279
- | Parámetros parciales | El lector no puede confiar en la doc | Documentar TODO o indicar qué falta |
280
- | Explicar el porqué | No es el lugar | Link a explanation/ |
281
- | Obviar edge cases | Sorprende al lector | Documentar todos los casos |
290
+ ### Reference anti-patterns
291
+
292
+ | Anti-pattern | Why it's bad | What to do instead |
293
+ | ------------------------ | ----------------------------- | --------------------------------------- |
294
+ | Narrative prose | Reference should be scannable | Tables and lists |
295
+ | Examples without context | Don't know when to use each | One example per use case |
296
+ | Partial parameters | Reader can't trust the doc | Document ALL or indicate what's missing |
297
+ | Explaining why | Not the place | Link to explanation/ |
298
+ | Ignoring edge cases | Surprises the reader | Document all cases |
282
299
 
283
300
  ---
284
301
 
285
- ## Patrones de Explicación
302
+ ## Explanation Patterns
286
303
 
287
- ### Estructura canónica
304
+ ### Canonical structure
288
305
 
289
306
  ```markdown
290
- # [Tema o pregunta que se responde]
307
+ # [Topic or question being answered]
308
+
309
+ ## Context
291
310
 
292
- ## Contexto
293
- [Por qué existe, qué problema aborda]
311
+ [Why it exists, what problem it addresses]
294
312
 
295
- ## Cómo funciona
296
- [Vista general conceptual — sin código]
313
+ ## How it works
297
314
 
298
- ## Alternativas consideradas
299
- [Qué otras opciones existían]
315
+ [Conceptual overview — without code]
300
316
 
301
- ## Implicaciones
302
- [Qué significa para el presente y futuro]
317
+ ## Alternatives considered
318
+
319
+ [What other options existed]
320
+
321
+ ## Implications
322
+
323
+ [What it means for the present and future]
303
324
  ```
304
325
 
305
- ### Tono
326
+ ### Tone
306
327
 
307
- - **Discursivo y analítico**: Como una conversación con un colega experto
308
- - **Conectivo**: Relacionar con otros conceptos, ADRs, decisiones
309
- - **Histórico**: Contar la historia de por qué se llegó aquí
310
- - **Sin código** (o mínimo): El foco es el entendimiento, no la implementación
328
+ - **Discursive and analytical**: Like a conversation with an expert colleague
329
+ - **Connective**: Relate to other concepts, ADRs, decisions
330
+ - **Historical**: Tell the story of how we got here
331
+ - **No code** (or minimal): Focus is understanding, not implementation
311
332
 
312
- ### Cuándo es necesaria una explicación
333
+ ### When an explanation is needed
313
334
 
314
- - Un ADR necesita más contexto del que cabe en 1-3 oraciones
315
- - Un concepto se referencia en múltiples how-tos/tutoriales y merece su propio espacio
316
- - Alguien preguntó "¿por qué hicimos esto así?" más de una vez
317
- - Hay confusión recurrente sobre un tema
335
+ - An ADR needs more context than 1-3 sentences can provide
336
+ - A concept is referenced across multiple how-tos/tutorials and deserves its own space
337
+ - Someone asked "why did we do it this way?" more than once
338
+ - There's recurring confusion about a topic
318
339
 
319
- ### Vinculación con ADRs
340
+ ### Linking with ADRs
320
341
 
321
342
  ```markdown
322
- Para la decisión formal, ver [[ADR-003-event-sourcing]].
323
- Este documento explica el contexto y las implicaciones en mayor detalle.
343
+ For the formal decision, see [[ADR-003-event-sourcing]].
344
+ This document explains the context and implications in greater detail.
324
345
  ```
325
346
 
326
- ### Anti-patrones de explicación
347
+ ### Explanation anti-patterns
327
348
 
328
- | Anti-patrón | Por qué es malo | Qué hacer en su lugar |
329
- |-------------|----------------|----------------------|
330
- | Instrucciones paso a paso | Eso es un tutorial o how-to | Enfocarse en el porqué |
331
- | Listar todas las opciones de config | Eso es referencia | Explicar la lógica detrás |
332
- | Sin contexto histórico | Pierde el valor de la explicación | Incluir cómo se llegó ahí |
333
- | Demasiado abstracto | No ayuda a entender | Usar analogías concretas |
334
- | Repetir el ADR palabra por palabra | No agrega valor | Expandir con contexto y matices |
349
+ | Anti-pattern | Why it's bad | What to do instead |
350
+ | -------------------------- | ------------------------------ | ------------------------------- |
351
+ | Step-by-step instructions | That's a tutorial or how-to | Focus on why |
352
+ | Listing all config options | That's reference | Explain the logic behind |
353
+ | No historical context | Loses the value of explanation | Include how we got here |
354
+ | Too abstract | Doesn't help understanding | Use concrete analogies |
355
+ | Repeating the ADR verbatim | Adds no value | Expand with context and nuances |
335
356
 
336
357
  ---
337
358
 
338
- ## Anti-patrones Transversales
359
+ ## Cross-cutting Anti-patterns
339
360
 
340
- ### Anti-patrones que aplican a TODOS los tipos
361
+ ### Anti-patterns that apply to ALL types
341
362
 
342
- | Anti-patrón | Descripción | Solución |
343
- |-------------|-------------|----------|
344
- | **Documento camaleón** | Intenta ser dos tipos a la vez | Un doc = un tipo. Separar. |
345
- | **Contenido placeholder** | "TODO: agregar contenido" | Escribir contenido real o no crear |
346
- | **Sin frontmatter** | Archivo sin metadatos YAML | Siempre incluir frontmatter |
347
- | **Sin fecha** | No se sabe cuándo se creó | Siempre incluir `created` |
348
- | **Términos sin definir** | Jerga sin referencia a CONTEXT.md | Definir o linkear |
349
- | **Enlaces rotos** | Referencias a archivos que no existen | Verificar antes de publicar |
350
- | **Contenido duplicado** | Misma info en múltiples archivos | Referenciar, no duplicar |
351
- | **Sin verificación** | No hay forma de saber si está actualizado | Incluir `last-reviewed` en frontmatter |
363
+ | Anti-pattern | Description | Solution |
364
+ | ----------------------- | -------------------------------------- | -------------------------------------- |
365
+ | **Chameleon document** | Tries to be two types at once | One doc = one type. Separate. |
366
+ | **Placeholder content** | "TODO: add content" | Write real content or don't create |
367
+ | **No frontmatter** | File without YAML metadata | Always include frontmatter |
368
+ | **No date** | Don't know when it was created | Always include `created` |
369
+ | **Undefined terms** | Jargon without reference to CONTEXT.md | Define or link |
370
+ | **Broken links** | References to non-existent files | Verify before publishing |
371
+ | **Duplicate content** | Same info in multiple files | Reference, don't duplicate |
372
+ | **No verification** | No way to know if it's updated | Include `last-reviewed` in frontmatter |