@saulwade/swl-ses 2.6.1 → 2.8.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.
Files changed (268) hide show
  1. package/CLAUDE.md +14 -2
  2. package/README.md +65 -18
  3. package/agentes/_intent-spec.md +73 -73
  4. package/agentes/_propose-step.md +90 -90
  5. package/bin/swl-ses.js +10 -0
  6. package/comandos/swl/brainstorm.md +1 -0
  7. package/comandos/swl/briefing.md +119 -119
  8. package/comandos/swl/contribuir.md +233 -233
  9. package/comandos/swl/deuda-codigo.md +97 -97
  10. package/comandos/swl/mcp-status.md +1 -0
  11. package/gateway/lib/event-channel.js +191 -191
  12. package/habilidades/agent-deep-links/SKILL.md +148 -148
  13. package/habilidades/backend-async-postgres-testing/SKILL.md +216 -216
  14. package/habilidades/backend-error-design/SKILL.md +221 -221
  15. package/habilidades/backend-production-resilience/SKILL.md +288 -288
  16. package/habilidades/calidad-anti-patrones-universales/SKILL.md +105 -1
  17. package/habilidades/calidad-contract-testing/SKILL.md +165 -165
  18. package/habilidades/calidad-mutation-testing/SKILL.md +25 -1
  19. package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
  20. package/habilidades/ci-cd-pipelines/SKILL.md +5 -1
  21. package/habilidades/css-moderno/SKILL.md +7 -1
  22. package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
  23. package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
  24. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
  25. package/habilidades/extractor-de-aprendizajes/SKILL.md +5 -1
  26. package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
  27. package/habilidades/harness-claude-code/SKILL.md +3 -2
  28. package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
  29. package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
  30. package/habilidades/perfil-usuario/SKILL.md +200 -200
  31. package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
  32. package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -166
  33. package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -85
  34. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
  35. package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
  36. package/habilidades/proceso-dynamic-workflows/SKILL.md +60 -0
  37. package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
  38. package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
  39. package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
  40. package/habilidades/proceso-modular-split/SKILL.md +256 -256
  41. package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
  42. package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
  43. package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
  44. package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
  45. package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
  46. package/hooks/calidad-pre-commit.js +159 -10
  47. package/hooks/ciclo-evolucion-subagente.js +26 -26
  48. package/hooks/ciclo-evolucion.js +26 -26
  49. package/hooks/contexto-subagente.js +68 -68
  50. package/hooks/lib/auto-consolidator.js +335 -335
  51. package/hooks/lib/ciclo-evolucion.js +47 -47
  52. package/hooks/lib/deep-links.js +185 -185
  53. package/hooks/lib/error-classifier.js +308 -308
  54. package/hooks/lib/notificacion-formato.js +45 -11
  55. package/hooks/lib/provenance-tracker.js +191 -191
  56. package/hooks/lib/raiz-proyecto.js +35 -4
  57. package/hooks/lib/resource-quota.js +122 -122
  58. package/hooks/lib/retry-jitter.js +165 -165
  59. package/hooks/lib/security-net.js +201 -201
  60. package/hooks/lib/skill-auditor.js +588 -588
  61. package/hooks/lib/sync-status.js +228 -228
  62. package/hooks/lib/taint-tracker.js +107 -107
  63. package/hooks/lib/text-similarity.js +241 -241
  64. package/hooks/lib/toon-compressor.js +245 -245
  65. package/hooks/notificacion-telegram.js +5 -11
  66. package/hooks/session-briefing.js +12 -4
  67. package/instintos/autonomia.yaml +27 -27
  68. package/instintos/prompt-appendices.yaml +57 -57
  69. package/llms.txt +1 -1
  70. package/manifiestos/agent-output-schemas.json +57 -57
  71. package/manifiestos/canonical-hashes.json +662 -0
  72. package/manifiestos/harness-ir.json +47536 -0
  73. package/manifiestos/hooks-config.json +469 -469
  74. package/manifiestos/invariantes-criticos.json +30 -30
  75. package/manifiestos/policy-bundle.json +2065 -0
  76. package/manifiestos/policy-corpus-w2.json +3926 -0
  77. package/manifiestos/runtime-adapters-core3.json +208 -0
  78. package/manifiestos/runtime-conformance.json +139 -0
  79. package/manifiestos/skills-lock.json +43 -43
  80. package/package.json +2 -2
  81. package/plantillas/auditor-veto-template.md +105 -105
  82. package/plantillas/github-workflows/release-please.yml +44 -44
  83. package/plantillas/github-workflows/swl-ci.yml +107 -107
  84. package/plantillas/github-workflows/swl-security.yml +51 -51
  85. package/plugin.json +2 -2
  86. package/reglas/accesibilidad.md +10 -10
  87. package/reglas/auditorias-documentales-estructurales.md +7 -7
  88. package/reglas/cloud-infra.md +8 -8
  89. package/reglas/consultar-vault-primero.md +195 -195
  90. package/reglas/git-workflow.md +1 -0
  91. package/reglas/hooks.md +6 -6
  92. package/reglas/intent-engineering.md +218 -218
  93. package/reglas/markitdown.md +8 -8
  94. package/reglas/monitor-ci.md +12 -0
  95. package/reglas/patrones.md +6 -6
  96. package/reglas/testing.md +7 -7
  97. package/reglas/tests-cleanup.md +224 -224
  98. package/schemas/agent-message.schema.json +73 -73
  99. package/schemas/agent-output-implementacion.schema.json +114 -114
  100. package/schemas/agent-output-planificacion.schema.json +150 -150
  101. package/schemas/agent-output-review.schema.json +98 -98
  102. package/schemas/diary-entry.schema.json +112 -112
  103. package/schemas/gate-state.schema.json +76 -0
  104. package/schemas/harness-ir.schema.json +369 -0
  105. package/schemas/hook-profiles.schema.json +54 -54
  106. package/schemas/hooks-config.schema.json +89 -89
  107. package/schemas/legacy-gates.schema.json +45 -0
  108. package/schemas/modulos.schema.json +38 -38
  109. package/schemas/perfiles.schema.json +36 -36
  110. package/schemas/plugin.schema.json +77 -77
  111. package/schemas/policy-bundle.schema.json +140 -0
  112. package/schemas/policy-enforcement.schema.json +117 -0
  113. package/schemas/policy-operation.schema.json +261 -0
  114. package/schemas/runtime-adapter.schema.json +176 -0
  115. package/schemas/runtime-build-attestation.schema.json +100 -0
  116. package/schemas/runtime-conformance.schema.json +239 -0
  117. package/schemas/runtime-diagnostic.schema.json +395 -0
  118. package/schemas/skill-evals.schema.json +119 -119
  119. package/schemas/skill-frontmatter.schema.json +245 -245
  120. package/schemas/w4-certification-request.schema.json +72 -0
  121. package/schemas/w4-certification-verdict.schema.json +224 -0
  122. package/schemas/w4-corpus.schema.json +172 -0
  123. package/schemas/w4-mutation-report.schema.json +116 -0
  124. package/schemas/w4-replay-result.schema.json +164 -0
  125. package/schemas/w4-scoring-report.schema.json +89 -0
  126. package/scripts/audit-tools/audit-history.js +330 -330
  127. package/scripts/audit-tools/bundle-tracker.js +290 -290
  128. package/scripts/audit-tools/canary-monitor.js +352 -352
  129. package/scripts/audit-tools/code-profiler.js +605 -605
  130. package/scripts/audit-tools/dep-doctor.js +320 -320
  131. package/scripts/audit-tools/env-validator.js +206 -206
  132. package/scripts/audit-tools/lib/fs-walk.js +48 -48
  133. package/scripts/audit-tools/lib/output.js +23 -23
  134. package/scripts/audit-tools/migration-checker.js +392 -392
  135. package/scripts/audit-tools/pentest-scanner.js +1436 -1436
  136. package/scripts/bootstrap-instintos.js +3 -0
  137. package/scripts/cli/aprobar-plan.js +73 -73
  138. package/scripts/cli/briefing.js +23 -23
  139. package/scripts/cli/ciclo-evolucion.js +26 -26
  140. package/scripts/cli/derivar-feature-list.js +25 -25
  141. package/scripts/cli/detectar-host.js +27 -27
  142. package/scripts/cli/diary-entry.js +69 -69
  143. package/scripts/cli/execution-state.js +18 -18
  144. package/scripts/cli/gateway-notify.js +41 -41
  145. package/scripts/cli/liberar-fase.js +42 -42
  146. package/scripts/cli/mark-evolved.js +56 -56
  147. package/scripts/cli/metricas-dora.js +26 -26
  148. package/scripts/cli/near-duplicate.js +55 -55
  149. package/scripts/cli/notificaciones.js +123 -123
  150. package/scripts/cli/propose-step.js +29 -29
  151. package/scripts/cli/schedule-parse.js +19 -19
  152. package/scripts/cli/sugerir-modelo.js +20 -20
  153. package/scripts/cli/verificar-plan.js +36 -36
  154. package/scripts/cli/verificar-trazabilidad.js +35 -35
  155. package/scripts/comandos/install-asistido.js +8 -7
  156. package/scripts/configurar-branch-protection.js +418 -418
  157. package/scripts/detectar-aprendizajes-duplicados.js +151 -151
  158. package/scripts/doctor.js +61 -36
  159. package/scripts/generar-checklists-consolidados.js +273 -273
  160. package/scripts/generar-claims-runtime.js +1342 -0
  161. package/scripts/generar-harness-ir.js +257 -0
  162. package/scripts/generar-inventario.js +52 -54
  163. package/scripts/generar-policy-bundle.js +202 -0
  164. package/scripts/instalador.js +26 -7
  165. package/scripts/lib/approval-receipts.js +190 -0
  166. package/scripts/lib/artefactos-python.js +43 -43
  167. package/scripts/lib/benchmark-metrics.js +160 -160
  168. package/scripts/lib/budget-enforcer.js +252 -252
  169. package/scripts/lib/certificacion-loop-state.js +421 -0
  170. package/scripts/lib/ci-reader.js +193 -193
  171. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +56 -0
  172. package/scripts/lib/clasificar-directorio.js +92 -0
  173. package/scripts/lib/contadores-inventario.js +217 -217
  174. package/scripts/lib/detectar-host-swl.js +175 -175
  175. package/scripts/lib/detectar-runtime.js +29 -20
  176. package/scripts/lib/detectar-stack-detallado.js +307 -307
  177. package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
  178. package/scripts/lib/detector-reglas-duplicadas.js +220 -220
  179. package/scripts/lib/eval-metrics-store.js +218 -218
  180. package/scripts/lib/eval-quality.js +171 -171
  181. package/scripts/lib/eval-schemas.js +144 -144
  182. package/scripts/lib/eval-self-correct.js +106 -106
  183. package/scripts/lib/eval-validator.js +185 -185
  184. package/scripts/lib/evidence-verifier.js +192 -0
  185. package/scripts/lib/evidencia-release.js +322 -322
  186. package/scripts/lib/frontmatter-canonico.js +509 -0
  187. package/scripts/lib/gate-engine.js +871 -0
  188. package/scripts/lib/gate-hooks-requires.js +249 -249
  189. package/scripts/lib/gate-licencias.js +212 -212
  190. package/scripts/lib/git-config-preflight.js +48 -0
  191. package/scripts/lib/git-metricas.js +257 -257
  192. package/scripts/lib/harness-ir.js +778 -0
  193. package/scripts/lib/harness-source-snapshot.js +309 -0
  194. package/scripts/lib/integrity-ledger.js +1147 -0
  195. package/scripts/lib/jaccard-similarity.js +98 -98
  196. package/scripts/lib/legacy-gate-migration.js +324 -0
  197. package/scripts/lib/limpiar-basura-global.js +45 -2
  198. package/scripts/lib/longmemeval-runner.js +125 -125
  199. package/scripts/lib/metricas-dora.js +204 -204
  200. package/scripts/lib/notificaciones-telegram.js +1 -0
  201. package/scripts/lib/npm-version.js +1 -0
  202. package/scripts/lib/paquetes-conocidos.js +50 -50
  203. package/scripts/lib/plan-lock.js +61 -13
  204. package/scripts/lib/policy-broker.js +338 -0
  205. package/scripts/lib/policy-bundle.js +342 -0
  206. package/scripts/lib/policy-context-provider.js +310 -0
  207. package/scripts/lib/policy-contract.js +479 -0
  208. package/scripts/lib/policy-verifier-utils.js +65 -0
  209. package/scripts/lib/pr-analyzer.js +399 -399
  210. package/scripts/lib/principal-verifier.js +178 -0
  211. package/scripts/lib/prompt-builder.js +264 -264
  212. package/scripts/lib/resolver-plan-fase.js +37 -37
  213. package/scripts/lib/rrf-fusion.js +175 -175
  214. package/scripts/lib/runtime-adapter-contract.js +267 -0
  215. package/scripts/lib/runtime-artifact-verifier.js +426 -0
  216. package/scripts/lib/runtime-build-attestation.js +127 -0
  217. package/scripts/lib/runtime-bundle-installer.js +586 -0
  218. package/scripts/lib/runtime-compiler.js +327 -0
  219. package/scripts/lib/runtime-conformance.js +202 -0
  220. package/scripts/lib/runtime-doctor-core3.js +567 -0
  221. package/scripts/lib/runtime-doctor-input.js +59 -0
  222. package/scripts/lib/runtime-operation-adapter.js +267 -0
  223. package/scripts/lib/schema-version.js +164 -164
  224. package/scripts/lib/semantic-search.js +252 -252
  225. package/scripts/lib/signed-envelope.js +545 -0
  226. package/scripts/lib/single-use-store.js +359 -0
  227. package/scripts/lib/skills-externas.js +31 -0
  228. package/scripts/lib/transformadores/codex.js +15 -8
  229. package/scripts/lib/transformadores/gemini.js +79 -5
  230. package/scripts/lib/w4-attestation-adapter.js +158 -0
  231. package/scripts/lib/w4-canario.js +337 -0
  232. package/scripts/lib/w4-claims.js +182 -0
  233. package/scripts/lib/w4-corpus-generador.js +542 -0
  234. package/scripts/lib/w4-gate-c5.js +115 -0
  235. package/scripts/lib/w4-harness-bajo-prueba.js +155 -0
  236. package/scripts/lib/w4-matriz-combos.js +55 -0
  237. package/scripts/lib/w4-motor-mutacion.js +1348 -0
  238. package/scripts/lib/w4-motor-replay.js +735 -0
  239. package/scripts/lib/w4-pin-origen.js +54 -0
  240. package/scripts/lib/w4-publicar-request.js +132 -0
  241. package/scripts/lib/w4-revocacion.js +62 -0
  242. package/scripts/lib/w4-runtimes-core3.js +38 -0
  243. package/scripts/lib/w4-scorer-certificacion.js +692 -0
  244. package/scripts/lib/w4-superficie-candidato.js +49 -0
  245. package/scripts/lib/w4-veredicto.js +452 -0
  246. package/scripts/lib/w4-verificar-veredicto.js +302 -0
  247. package/scripts/limpiar-artefactos-python.js +131 -131
  248. package/scripts/migrar-csv-a-array.js +168 -168
  249. package/scripts/migrar-fase-dominio.js +200 -200
  250. package/scripts/migrar-gates-legacy.js +108 -0
  251. package/scripts/publicar-certification-request.js +115 -0
  252. package/scripts/runtime-doctor.js +107 -0
  253. package/scripts/tui/componentes/selector-multi.js +189 -189
  254. package/scripts/tui/componentes/selector-unico.js +158 -158
  255. package/scripts/tui/ejecutores.js +375 -375
  256. package/scripts/tui/lib/colores.js +129 -129
  257. package/scripts/tui/lib/render.js +264 -264
  258. package/scripts/tui/lib/teclas.js +113 -113
  259. package/scripts/tui/pantallas/install-wizard.js +12 -7
  260. package/scripts/tui/pantallas/menu-principal.js +52 -52
  261. package/scripts/tui/pantallas/progreso.js +274 -274
  262. package/scripts/tui/pantallas/resumen.js +132 -132
  263. package/scripts/validar-userland-vacio.js +110 -110
  264. package/scripts/verificar-aislamiento-swl-eval.js +87 -0
  265. package/scripts/verificar-empaquetado-downstream.js +375 -0
  266. package/scripts/verificar-loop-constructor.js +215 -0
  267. package/scripts/verificar-trazabilidad.js +13 -6
  268. package/scripts/verificar-veredicto-real.js +84 -0
@@ -10,8 +10,7 @@ description: >
10
10
  Cargar cuando el usuario reporte "se acabó la cuota", se prepare una
11
11
  sesión Opus larga (>2h), se planifique adopción de MCP servers, o se
12
12
  detecte context-rot recurrente.
13
- version: "1.0.6"
14
- evolved: false
13
+ version: "1.0.7"
15
14
  herramientasPermitidas: [Read]
16
15
  exclusiones:
17
16
  - "No cargar para teoría general de context-rot y compactación — usar `compactacion-contexto`. Este skill cubre operación day-to-day del harness Claude Code; aquel cubre principios de gestión de contexto independientes de la herramienta."
@@ -283,6 +282,8 @@ Sin observar la métrica, no puedes optimizarla.
283
282
  - **`child_process.spawn(cmd, args, { env: {} })` REEMPLAZA el env del padre con vacío, NO hereda** [CONFIRMADO 2026-05-18]: el cliente MCP de Claude Code (y el de Cursor) lee `mcpServers.X.env` del config JSON y lo pasa literal al spawn. Si la config tiene `"env": {}` explícito, el binario hijo arranca SIN ninguna variable de entorno del padre — rompe la herencia de apiKeys que viven en HKCU/registry. Síntoma: MCP server da `40101 Authorization required` aunque `setx OBSIDIAN_API_KEY` esté correcto en HKCU y curl con esa key responda HTTP 200 al plugin. Causa: Node `child_process.spawn` con `env: {}` ≠ sin `env` option. Solución: **OMITIR la clave `env` por completo en el JSON** (no dejarla vacía). Verificado empíricamente con `spawn(binario, [], { /* sin env */ })` → binario heredó `OBSIDIAN_API_KEY`; `spawn(binario, [], { env: {} })` → binario sin env. El patch SWL para Python (`scripts/lib/mcp_config.py::build_stdio_env`) merge `os.environ + overrides` para corregir el mismo síntoma en el lado Python.
284
283
  - **MCP server devuelve auth error con apiKey correcta en disco → el proceso vivo arrancó con apiKey vieja** [CONFIRMADO 2026-05-18]: aunque `~/.cursor/mcp.json` y `~/.claude/settings.json` tengan la apiKey actual del plugin, los procesos del binario MCP (ej. `mcp-obsidian.exe`) que ya están corriendo retuvieron la apiKey del momento de su spawn. Síntoma: actualizar JSONs no soluciona 40101. Solución: `taskkill /F /IM mcp-obsidian.exe /T` (Windows) o `pkill mcp-obsidian` (Unix) + **quit total del cliente parent** (Cursor.exe / claude.exe) — no basta reload de ventana. Al reabrir, el cliente respawnea el binario con env actual. Verificar con `ps -W | grep mcp-obsidian` que solo haya procesos con timestamp posterior al reinicio.
285
284
  - **Cursor y Claude Code CLI dentro de Cursor son clientes MCP DISTINTOS con procesos independientes** [CONFIRMADO 2026-05-18]: cuando se ejecuta Claude Code CLI en una terminal embebida de Cursor, hay DOS procesos del binario MCP corriendo simultáneamente — uno por cliente. Cada uno lee SU PROPIA config: Cursor lee `~/.cursor/mcp.json`, Claude Code CLI lee `~/.claude/settings.json` + `<proyecto>/.claude/settings.local.json`. Una apiKey actualizada en uno no propaga al otro. Síntoma observado: el agente AI de Cursor responde MCP OK pero Claude Code CLI da 40101 (o viceversa). Solución: usar variable de entorno persistente del SO (`setx OBSIDIAN_API_KEY` → HKCU\Environment) como single source of truth y dejar configs JSON sin clave `env` para heredar del padre. Cada regeneración de apiKey requiere un solo `setx` + reiniciar Cursor (que reinicia ambos clientes).
285
+ - **Un comando encadenado con `&&` donde un paso intermedio es bloqueado por un hook de risk-scoring aborta TODO el resto en silencio** (caso real 2026-07-17): `rm -rf <dir-scratch> && git add .gitignore && git status` — el `rm -rf` fue bloqueado por el hook de risk-scoring (score 0.65 > umbral), y como bash corta la cadena `&&` en el primer fallo, el `git add .gitignore` nunca se ejecutó. El `git status` final tampoco corrió, así que no había señal inmediata de que el segundo paso se hubiera saltado — solo se detectó al revisar el estado real del working tree y notar que `.gitignore` seguía sin stage. Regla: cuando cualquier paso de una cadena `&&` puede ser bloqueado por un hook (destructivo, escritura fuera de scope, comando de alto riesgo), correr los pasos como llamadas Bash separadas — nunca asumir que los pasos posteriores corrieron solo porque el tool call "se completó".
286
+ - **Un timeout de Bash en tu propia verificación NO es evidencia de que el fix falló**: tras corregir un bug de aislamiento en un motor de mutation testing (F32-T07), dos intentos de reproducir la corrida completa vía `node -e` con timeout de 2 y 5 minutos expiraron sin dar resultado — pero eso mide el tiempo de la corrida real (56 min para 2275 mutantes), no la corrección del fix. Tratar el timeout como "no pude confirmarlo, quizá sigue roto" habría sido un falso negativo. La verificación correcta ante un timeout: leer el diff exacto del fix, correr el test de regresión específico por una vía alternativa que no dependa del runner que dio timeout (aquí: `require()` + `--test-name-pattern` en vez de `node --test`), y correr la suite completa (rápida) en vez de forzar la reproducción lenta. Un timeout es una limitación del método de verificación elegido, no del artefacto verificado — cambiar de método antes de degradar la confianza en el fix.
286
287
 
287
288
  ---
288
289
 
@@ -1,93 +1,93 @@
1
- # Convención `EXAMPLES.md` — recurso opcional para skills críticos
2
-
3
- Convención **opcional** para skills cuyo valor depende de ejemplos concretos
4
- con diff MAL → BIEN. Esta convención NO es retroactiva: las 63 carpetas
5
- `recursos/` existentes en `habilidades/` no se renombran. Solo aplica a:
6
-
7
- - Skills nuevos cuyo dominio se entiende mejor con ejemplos lado a lado.
8
- - Skills existentes que reciban actualización mayor y agreguen ejemplos.
9
-
10
- ---
11
-
12
- ## Cuándo aplicarla
13
-
14
- Aplicar cuando:
15
-
16
- - El skill prescribe **decisiones técnicas** o **patrones** cuyo error es
17
- sutil sin un caso concreto (ej: anti-patrones de async, gotchas de framework,
18
- decisiones arquitecturales).
19
- - El skill se beneficia de mostrar 2-4 ejemplos lado a lado: el caso aplicado
20
- correctamente vs el caso degenerado.
21
- - Los ejemplos suman > 100 líneas y meterlos en SKILL.md lo pasaría del
22
- límite de 300 líneas.
23
-
24
- NO aplicar cuando:
25
-
26
- - El skill ya tiene `recursos/` con archivos temáticos específicos
27
- (ej: `meta-skills-estandar/recursos/anti-patrones-y-leyes.md`). El nombre
28
- temático es más informativo que `EXAMPLES.md`.
29
- - El skill es un how-to procedural sin antipatrones contrastables.
30
- - El skill tiene < 80 líneas en SKILL.md y los ejemplos caben en línea.
31
-
32
- ---
33
-
34
- ## Estructura recomendada
35
-
36
- ```
37
- habilidades/<skill-name>/
38
- ├── SKILL.md
39
- └── recursos/
40
- └── EXAMPLES.md
41
- ```
42
-
43
- `SKILL.md` enlaza al final con:
44
-
45
- ```markdown
46
- Para ejemplos concretos de aplicación, ver [`recursos/EXAMPLES.md`](recursos/EXAMPLES.md).
47
- ```
48
-
49
- `EXAMPLES.md` contiene 2-4 ejemplos siguiendo el patrón:
50
-
51
- ```markdown
52
- ## Ejemplo N — [título corto del escenario]
53
-
54
- **Contexto**: [1-2 líneas]
55
-
56
- ### ❌ Sin <skill-name> (hipotético)
57
- [código o descripción del enfoque incorrecto + consecuencia observable]
58
-
59
- ### ✓ Con <skill-name>
60
- [código o descripción del enfoque correcto + por qué evita la consecuencia]
61
- ```
62
-
63
- Cierre de `EXAMPLES.md`: tabla resumen de los ejemplos con la dimensión
64
- clave que cambió (costo, tiempo, severidad de bug, etc.).
65
-
66
- ---
67
-
68
- ## Por qué OPCIONAL y no obligatoria
69
-
70
- - 63 carpetas `recursos/` ya existen con nomenclatura temática
71
- (`anti-patrones-y-leyes.md`, `frameworks-seguridad.md`,
72
- `idiomas-framework.md`). Forzar `EXAMPLES.md` rompería información
73
- semántica del nombre.
74
- - La regla core `reglas/skills-estandar.md` ya prescribe que `SKILL.md`
75
- no exceda 300 líneas y que los `recursos/` se nombren en kebab-case
76
- con sufijo `.md` — esa regla cubre el 95% de los casos.
77
- - Esta convención **complementa** la regla core para skills donde un nombre
78
- semántico genérico (`EXAMPLES.md`) comunica mejor el contenido que un
79
- nombre específico (ej: `casos-decisiones-arquitecturales.md` es más largo
80
- y menos buscable).
81
-
82
- ---
83
-
84
- ## Origen
85
-
86
- Patrón observado en repos externos analizados el 2026-05-09
87
- (`temp/agent-skills-main`, `temp/andrej-karpathy-skills-main`):
88
- varios skills críticos exponen un `EXAMPLES.md` con diffs MAL/BIEN
89
- auto-cargable como referencia rápida del agente.
90
-
91
- Adoptado en `habilidades/doubt-driven-review/recursos/EXAMPLES.md` como
92
- primera aplicación. Casos futuros: skills de decisiones arquitecturales,
93
- seguridad, debugging avanzado.
1
+ # Convención `EXAMPLES.md` — recurso opcional para skills críticos
2
+
3
+ Convención **opcional** para skills cuyo valor depende de ejemplos concretos
4
+ con diff MAL → BIEN. Esta convención NO es retroactiva: las 63 carpetas
5
+ `recursos/` existentes en `habilidades/` no se renombran. Solo aplica a:
6
+
7
+ - Skills nuevos cuyo dominio se entiende mejor con ejemplos lado a lado.
8
+ - Skills existentes que reciban actualización mayor y agreguen ejemplos.
9
+
10
+ ---
11
+
12
+ ## Cuándo aplicarla
13
+
14
+ Aplicar cuando:
15
+
16
+ - El skill prescribe **decisiones técnicas** o **patrones** cuyo error es
17
+ sutil sin un caso concreto (ej: anti-patrones de async, gotchas de framework,
18
+ decisiones arquitecturales).
19
+ - El skill se beneficia de mostrar 2-4 ejemplos lado a lado: el caso aplicado
20
+ correctamente vs el caso degenerado.
21
+ - Los ejemplos suman > 100 líneas y meterlos en SKILL.md lo pasaría del
22
+ límite de 300 líneas.
23
+
24
+ NO aplicar cuando:
25
+
26
+ - El skill ya tiene `recursos/` con archivos temáticos específicos
27
+ (ej: `meta-skills-estandar/recursos/anti-patrones-y-leyes.md`). El nombre
28
+ temático es más informativo que `EXAMPLES.md`.
29
+ - El skill es un how-to procedural sin antipatrones contrastables.
30
+ - El skill tiene < 80 líneas en SKILL.md y los ejemplos caben en línea.
31
+
32
+ ---
33
+
34
+ ## Estructura recomendada
35
+
36
+ ```
37
+ habilidades/<skill-name>/
38
+ ├── SKILL.md
39
+ └── recursos/
40
+ └── EXAMPLES.md
41
+ ```
42
+
43
+ `SKILL.md` enlaza al final con:
44
+
45
+ ```markdown
46
+ Para ejemplos concretos de aplicación, ver [`recursos/EXAMPLES.md`](recursos/EXAMPLES.md).
47
+ ```
48
+
49
+ `EXAMPLES.md` contiene 2-4 ejemplos siguiendo el patrón:
50
+
51
+ ```markdown
52
+ ## Ejemplo N — [título corto del escenario]
53
+
54
+ **Contexto**: [1-2 líneas]
55
+
56
+ ### ❌ Sin <skill-name> (hipotético)
57
+ [código o descripción del enfoque incorrecto + consecuencia observable]
58
+
59
+ ### ✓ Con <skill-name>
60
+ [código o descripción del enfoque correcto + por qué evita la consecuencia]
61
+ ```
62
+
63
+ Cierre de `EXAMPLES.md`: tabla resumen de los ejemplos con la dimensión
64
+ clave que cambió (costo, tiempo, severidad de bug, etc.).
65
+
66
+ ---
67
+
68
+ ## Por qué OPCIONAL y no obligatoria
69
+
70
+ - 63 carpetas `recursos/` ya existen con nomenclatura temática
71
+ (`anti-patrones-y-leyes.md`, `frameworks-seguridad.md`,
72
+ `idiomas-framework.md`). Forzar `EXAMPLES.md` rompería información
73
+ semántica del nombre.
74
+ - La regla core `reglas/skills-estandar.md` ya prescribe que `SKILL.md`
75
+ no exceda 300 líneas y que los `recursos/` se nombren en kebab-case
76
+ con sufijo `.md` — esa regla cubre el 95% de los casos.
77
+ - Esta convención **complementa** la regla core para skills donde un nombre
78
+ semántico genérico (`EXAMPLES.md`) comunica mejor el contenido que un
79
+ nombre específico (ej: `casos-decisiones-arquitecturales.md` es más largo
80
+ y menos buscable).
81
+
82
+ ---
83
+
84
+ ## Origen
85
+
86
+ Patrón observado en repos externos analizados el 2026-05-09
87
+ (`temp/agent-skills-main`, `temp/andrej-karpathy-skills-main`):
88
+ varios skills críticos exponen un `EXAMPLES.md` con diffs MAL/BIEN
89
+ auto-cargable como referencia rápida del agente.
90
+
91
+ Adoptado en `habilidades/doubt-driven-review/recursos/EXAMPLES.md` como
92
+ primera aplicación. Casos futuros: skills de decisiones arquitecturales,
93
+ seguridad, debugging avanzado.