@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.
- package/CLAUDE.md +14 -2
- package/README.md +65 -18
- package/agentes/_intent-spec.md +73 -73
- package/agentes/_propose-step.md +90 -90
- package/bin/swl-ses.js +10 -0
- package/comandos/swl/brainstorm.md +1 -0
- package/comandos/swl/briefing.md +119 -119
- package/comandos/swl/contribuir.md +233 -233
- package/comandos/swl/deuda-codigo.md +97 -97
- package/comandos/swl/mcp-status.md +1 -0
- package/gateway/lib/event-channel.js +191 -191
- package/habilidades/agent-deep-links/SKILL.md +148 -148
- package/habilidades/backend-async-postgres-testing/SKILL.md +216 -216
- package/habilidades/backend-error-design/SKILL.md +221 -221
- package/habilidades/backend-production-resilience/SKILL.md +288 -288
- package/habilidades/calidad-anti-patrones-universales/SKILL.md +105 -1
- package/habilidades/calidad-contract-testing/SKILL.md +165 -165
- package/habilidades/calidad-mutation-testing/SKILL.md +25 -1
- package/habilidades/checklist-seguridad/recursos/stride-cobertura.md +60 -60
- package/habilidades/ci-cd-pipelines/SKILL.md +5 -1
- package/habilidades/css-moderno/SKILL.md +7 -1
- package/habilidades/diagrama-arquitectura/assets/template.html +276 -276
- package/habilidades/doubt-driven-review/recursos/EXAMPLES.md +130 -130
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +57 -57
- package/habilidades/extractor-de-aprendizajes/SKILL.md +5 -1
- package/habilidades/feynman-auditor-swl/recursos/preguntas-language-agnostic.md +108 -108
- package/habilidades/harness-claude-code/SKILL.md +3 -2
- package/habilidades/meta-skills-estandar/recursos/convencion-examples.md +93 -93
- package/habilidades/patrones-python/recursos/patrones-avanzados.md +469 -469
- package/habilidades/perfil-usuario/SKILL.md +200 -200
- package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -580
- package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -166
- package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -85
- package/habilidades/proceso-ddia-streaming/SKILL.md +231 -231
- package/habilidades/proceso-discovery-machote/SKILL.md +157 -157
- package/habilidades/proceso-dynamic-workflows/SKILL.md +60 -0
- package/habilidades/proceso-dynamic-workflows/recursos/template-adversarial-verify.js +65 -65
- package/habilidades/proceso-dynamic-workflows/recursos/template-triage.js +65 -65
- package/habilidades/proceso-intent-engineering/SKILL.md +269 -269
- package/habilidades/proceso-modular-split/SKILL.md +256 -256
- package/habilidades/state-inconsistency-auditor-swl/recursos/coupled-state-patterns.md +147 -147
- package/habilidades/swl-claudemd/recursos/contrato-aprender.md +83 -83
- package/habilidades/swl-claudemd/recursos/duplicacion-reglas-globales.md +85 -85
- package/habilidades/swl-claudemd/recursos/plantillas-init.md +94 -94
- package/habilidades/tdd-workflow/recursos/gherkin-bdd.md +111 -111
- package/hooks/calidad-pre-commit.js +159 -10
- package/hooks/ciclo-evolucion-subagente.js +26 -26
- package/hooks/ciclo-evolucion.js +26 -26
- package/hooks/contexto-subagente.js +68 -68
- package/hooks/lib/auto-consolidator.js +335 -335
- package/hooks/lib/ciclo-evolucion.js +47 -47
- package/hooks/lib/deep-links.js +185 -185
- package/hooks/lib/error-classifier.js +308 -308
- package/hooks/lib/notificacion-formato.js +45 -11
- package/hooks/lib/provenance-tracker.js +191 -191
- package/hooks/lib/raiz-proyecto.js +35 -4
- package/hooks/lib/resource-quota.js +122 -122
- package/hooks/lib/retry-jitter.js +165 -165
- package/hooks/lib/security-net.js +201 -201
- package/hooks/lib/skill-auditor.js +588 -588
- package/hooks/lib/sync-status.js +228 -228
- package/hooks/lib/taint-tracker.js +107 -107
- package/hooks/lib/text-similarity.js +241 -241
- package/hooks/lib/toon-compressor.js +245 -245
- package/hooks/notificacion-telegram.js +5 -11
- package/hooks/session-briefing.js +12 -4
- package/instintos/autonomia.yaml +27 -27
- package/instintos/prompt-appendices.yaml +57 -57
- package/llms.txt +1 -1
- package/manifiestos/agent-output-schemas.json +57 -57
- package/manifiestos/canonical-hashes.json +662 -0
- package/manifiestos/harness-ir.json +47536 -0
- package/manifiestos/hooks-config.json +469 -469
- package/manifiestos/invariantes-criticos.json +30 -30
- package/manifiestos/policy-bundle.json +2065 -0
- package/manifiestos/policy-corpus-w2.json +3926 -0
- package/manifiestos/runtime-adapters-core3.json +208 -0
- package/manifiestos/runtime-conformance.json +139 -0
- package/manifiestos/skills-lock.json +43 -43
- package/package.json +2 -2
- package/plantillas/auditor-veto-template.md +105 -105
- package/plantillas/github-workflows/release-please.yml +44 -44
- package/plantillas/github-workflows/swl-ci.yml +107 -107
- package/plantillas/github-workflows/swl-security.yml +51 -51
- package/plugin.json +2 -2
- package/reglas/accesibilidad.md +10 -10
- package/reglas/auditorias-documentales-estructurales.md +7 -7
- package/reglas/cloud-infra.md +8 -8
- package/reglas/consultar-vault-primero.md +195 -195
- package/reglas/git-workflow.md +1 -0
- package/reglas/hooks.md +6 -6
- package/reglas/intent-engineering.md +218 -218
- package/reglas/markitdown.md +8 -8
- package/reglas/monitor-ci.md +12 -0
- package/reglas/patrones.md +6 -6
- package/reglas/testing.md +7 -7
- package/reglas/tests-cleanup.md +224 -224
- package/schemas/agent-message.schema.json +73 -73
- package/schemas/agent-output-implementacion.schema.json +114 -114
- package/schemas/agent-output-planificacion.schema.json +150 -150
- package/schemas/agent-output-review.schema.json +98 -98
- package/schemas/diary-entry.schema.json +112 -112
- package/schemas/gate-state.schema.json +76 -0
- package/schemas/harness-ir.schema.json +369 -0
- package/schemas/hook-profiles.schema.json +54 -54
- package/schemas/hooks-config.schema.json +89 -89
- package/schemas/legacy-gates.schema.json +45 -0
- package/schemas/modulos.schema.json +38 -38
- package/schemas/perfiles.schema.json +36 -36
- package/schemas/plugin.schema.json +77 -77
- package/schemas/policy-bundle.schema.json +140 -0
- package/schemas/policy-enforcement.schema.json +117 -0
- package/schemas/policy-operation.schema.json +261 -0
- package/schemas/runtime-adapter.schema.json +176 -0
- package/schemas/runtime-build-attestation.schema.json +100 -0
- package/schemas/runtime-conformance.schema.json +239 -0
- package/schemas/runtime-diagnostic.schema.json +395 -0
- package/schemas/skill-evals.schema.json +119 -119
- package/schemas/skill-frontmatter.schema.json +245 -245
- package/schemas/w4-certification-request.schema.json +72 -0
- package/schemas/w4-certification-verdict.schema.json +224 -0
- package/schemas/w4-corpus.schema.json +172 -0
- package/schemas/w4-mutation-report.schema.json +116 -0
- package/schemas/w4-replay-result.schema.json +164 -0
- package/schemas/w4-scoring-report.schema.json +89 -0
- package/scripts/audit-tools/audit-history.js +330 -330
- package/scripts/audit-tools/bundle-tracker.js +290 -290
- package/scripts/audit-tools/canary-monitor.js +352 -352
- package/scripts/audit-tools/code-profiler.js +605 -605
- package/scripts/audit-tools/dep-doctor.js +320 -320
- package/scripts/audit-tools/env-validator.js +206 -206
- package/scripts/audit-tools/lib/fs-walk.js +48 -48
- package/scripts/audit-tools/lib/output.js +23 -23
- package/scripts/audit-tools/migration-checker.js +392 -392
- package/scripts/audit-tools/pentest-scanner.js +1436 -1436
- package/scripts/bootstrap-instintos.js +3 -0
- package/scripts/cli/aprobar-plan.js +73 -73
- package/scripts/cli/briefing.js +23 -23
- package/scripts/cli/ciclo-evolucion.js +26 -26
- package/scripts/cli/derivar-feature-list.js +25 -25
- package/scripts/cli/detectar-host.js +27 -27
- package/scripts/cli/diary-entry.js +69 -69
- package/scripts/cli/execution-state.js +18 -18
- package/scripts/cli/gateway-notify.js +41 -41
- package/scripts/cli/liberar-fase.js +42 -42
- package/scripts/cli/mark-evolved.js +56 -56
- package/scripts/cli/metricas-dora.js +26 -26
- package/scripts/cli/near-duplicate.js +55 -55
- package/scripts/cli/notificaciones.js +123 -123
- package/scripts/cli/propose-step.js +29 -29
- package/scripts/cli/schedule-parse.js +19 -19
- package/scripts/cli/sugerir-modelo.js +20 -20
- package/scripts/cli/verificar-plan.js +36 -36
- package/scripts/cli/verificar-trazabilidad.js +35 -35
- package/scripts/comandos/install-asistido.js +8 -7
- package/scripts/configurar-branch-protection.js +418 -418
- package/scripts/detectar-aprendizajes-duplicados.js +151 -151
- package/scripts/doctor.js +61 -36
- package/scripts/generar-checklists-consolidados.js +273 -273
- package/scripts/generar-claims-runtime.js +1342 -0
- package/scripts/generar-harness-ir.js +257 -0
- package/scripts/generar-inventario.js +52 -54
- package/scripts/generar-policy-bundle.js +202 -0
- package/scripts/instalador.js +26 -7
- package/scripts/lib/approval-receipts.js +190 -0
- package/scripts/lib/artefactos-python.js +43 -43
- package/scripts/lib/benchmark-metrics.js +160 -160
- package/scripts/lib/budget-enforcer.js +252 -252
- package/scripts/lib/certificacion-loop-state.js +421 -0
- package/scripts/lib/ci-reader.js +193 -193
- package/scripts/lib/ciclo-autonomo/yaml-instintos.js +56 -0
- package/scripts/lib/clasificar-directorio.js +92 -0
- package/scripts/lib/contadores-inventario.js +217 -217
- package/scripts/lib/detectar-host-swl.js +175 -175
- package/scripts/lib/detectar-runtime.js +29 -20
- package/scripts/lib/detectar-stack-detallado.js +307 -307
- package/scripts/lib/detector-autoduplicacion-intra-archivo.js +234 -234
- package/scripts/lib/detector-reglas-duplicadas.js +220 -220
- package/scripts/lib/eval-metrics-store.js +218 -218
- package/scripts/lib/eval-quality.js +171 -171
- package/scripts/lib/eval-schemas.js +144 -144
- package/scripts/lib/eval-self-correct.js +106 -106
- package/scripts/lib/eval-validator.js +185 -185
- package/scripts/lib/evidence-verifier.js +192 -0
- package/scripts/lib/evidencia-release.js +322 -322
- package/scripts/lib/frontmatter-canonico.js +509 -0
- package/scripts/lib/gate-engine.js +871 -0
- package/scripts/lib/gate-hooks-requires.js +249 -249
- package/scripts/lib/gate-licencias.js +212 -212
- package/scripts/lib/git-config-preflight.js +48 -0
- package/scripts/lib/git-metricas.js +257 -257
- package/scripts/lib/harness-ir.js +778 -0
- package/scripts/lib/harness-source-snapshot.js +309 -0
- package/scripts/lib/integrity-ledger.js +1147 -0
- package/scripts/lib/jaccard-similarity.js +98 -98
- package/scripts/lib/legacy-gate-migration.js +324 -0
- package/scripts/lib/limpiar-basura-global.js +45 -2
- package/scripts/lib/longmemeval-runner.js +125 -125
- package/scripts/lib/metricas-dora.js +204 -204
- package/scripts/lib/notificaciones-telegram.js +1 -0
- package/scripts/lib/npm-version.js +1 -0
- package/scripts/lib/paquetes-conocidos.js +50 -50
- package/scripts/lib/plan-lock.js +61 -13
- package/scripts/lib/policy-broker.js +338 -0
- package/scripts/lib/policy-bundle.js +342 -0
- package/scripts/lib/policy-context-provider.js +310 -0
- package/scripts/lib/policy-contract.js +479 -0
- package/scripts/lib/policy-verifier-utils.js +65 -0
- package/scripts/lib/pr-analyzer.js +399 -399
- package/scripts/lib/principal-verifier.js +178 -0
- package/scripts/lib/prompt-builder.js +264 -264
- package/scripts/lib/resolver-plan-fase.js +37 -37
- package/scripts/lib/rrf-fusion.js +175 -175
- package/scripts/lib/runtime-adapter-contract.js +267 -0
- package/scripts/lib/runtime-artifact-verifier.js +426 -0
- package/scripts/lib/runtime-build-attestation.js +127 -0
- package/scripts/lib/runtime-bundle-installer.js +586 -0
- package/scripts/lib/runtime-compiler.js +327 -0
- package/scripts/lib/runtime-conformance.js +202 -0
- package/scripts/lib/runtime-doctor-core3.js +567 -0
- package/scripts/lib/runtime-doctor-input.js +59 -0
- package/scripts/lib/runtime-operation-adapter.js +267 -0
- package/scripts/lib/schema-version.js +164 -164
- package/scripts/lib/semantic-search.js +252 -252
- package/scripts/lib/signed-envelope.js +545 -0
- package/scripts/lib/single-use-store.js +359 -0
- package/scripts/lib/skills-externas.js +31 -0
- package/scripts/lib/transformadores/codex.js +15 -8
- package/scripts/lib/transformadores/gemini.js +79 -5
- package/scripts/lib/w4-attestation-adapter.js +158 -0
- package/scripts/lib/w4-canario.js +337 -0
- package/scripts/lib/w4-claims.js +182 -0
- package/scripts/lib/w4-corpus-generador.js +542 -0
- package/scripts/lib/w4-gate-c5.js +115 -0
- package/scripts/lib/w4-harness-bajo-prueba.js +155 -0
- package/scripts/lib/w4-matriz-combos.js +55 -0
- package/scripts/lib/w4-motor-mutacion.js +1348 -0
- package/scripts/lib/w4-motor-replay.js +735 -0
- package/scripts/lib/w4-pin-origen.js +54 -0
- package/scripts/lib/w4-publicar-request.js +132 -0
- package/scripts/lib/w4-revocacion.js +62 -0
- package/scripts/lib/w4-runtimes-core3.js +38 -0
- package/scripts/lib/w4-scorer-certificacion.js +692 -0
- package/scripts/lib/w4-superficie-candidato.js +49 -0
- package/scripts/lib/w4-veredicto.js +452 -0
- package/scripts/lib/w4-verificar-veredicto.js +302 -0
- package/scripts/limpiar-artefactos-python.js +131 -131
- package/scripts/migrar-csv-a-array.js +168 -168
- package/scripts/migrar-fase-dominio.js +200 -200
- package/scripts/migrar-gates-legacy.js +108 -0
- package/scripts/publicar-certification-request.js +115 -0
- package/scripts/runtime-doctor.js +107 -0
- package/scripts/tui/componentes/selector-multi.js +189 -189
- package/scripts/tui/componentes/selector-unico.js +158 -158
- package/scripts/tui/ejecutores.js +375 -375
- package/scripts/tui/lib/colores.js +129 -129
- package/scripts/tui/lib/render.js +264 -264
- package/scripts/tui/lib/teclas.js +113 -113
- package/scripts/tui/pantallas/install-wizard.js +12 -7
- package/scripts/tui/pantallas/menu-principal.js +52 -52
- package/scripts/tui/pantallas/progreso.js +274 -274
- package/scripts/tui/pantallas/resumen.js +132 -132
- package/scripts/validar-userland-vacio.js +110 -110
- package/scripts/verificar-aislamiento-swl-eval.js +87 -0
- package/scripts/verificar-empaquetado-downstream.js +375 -0
- package/scripts/verificar-loop-constructor.js +215 -0
- package/scripts/verificar-trazabilidad.js +13 -6
- 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.
|
|
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.
|