@saulwade/swl-ses 2.4.1 → 2.4.2
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 +2 -1
- package/README.md +1 -1
- package/habilidades/harness-claude-code/SKILL.md +2 -1
- package/habilidades/tdd-workflow/SKILL.md +3 -1
- package/manifiestos/canonical-hashes.json +328 -0
- package/manifiestos/skills-lock.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/reglas/arreglar-al-detectar.md +16 -0
- package/reglas/pruebas.md +7 -3
- package/scripts/actualizar.js +253 -254
- package/scripts/doctor.js +25 -17
- package/scripts/lib/detectar-runtime.js +58 -0
- package/scripts/lib/hooks-settings.js +40 -3
- package/scripts/tui/pantallas/inspect.js +175 -173
- package/scripts/tui/pantallas/uninstall-wizard.js +210 -208
- package/scripts/tui/pantallas/update-wizard.js +234 -232
- package/scripts/tui/pantallas/welcome.js +189 -187
package/CLAUDE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# CLAUDE.md — @saulwade/swl-ses v2.4.
|
|
1
|
+
# CLAUDE.md — @saulwade/swl-ses v2.4.2
|
|
2
2
|
|
|
3
3
|
## Reglas de máxima prioridad (aplican SIEMPRE, sin excepción)
|
|
4
4
|
|
|
@@ -63,6 +63,7 @@ NUNCA asumir, sugerir como hecho consumado, ni escribir en ADRs/manifiestos/CHAN
|
|
|
63
63
|
- **Sin `console.log` en producción** — excepto en `scripts/`, `bin/`, `hooks/`, `gateway/` (CLIs y daemons)
|
|
64
64
|
- **Nombre completo del paquete en npx**: todo mensaje del installer/docs usa `npx -y @saulwade/swl-ses@latest <comando>`. **NUNCA** `npx swl-ses@latest <comando>` sin el scope `@saulwade/` — eso resuelve al paquete legacy DEPRECATED (v5.13.1) que aún existe en npm tras el rebrand de 2026-04-30. El `@latest` es indispensable: sin él npx reutiliza la primera versión cacheada y el usuario corre código viejo sin saberlo. El `-y` evita la prompt de confirmación en CI/scripts
|
|
65
65
|
- **Fixtures `secret`/`token` en tests deben ser en español** (`secreto`, `tokenBearer`, `clave-test`). El hook `calidad-pre-commit.js` matchea `\bsecret\s*[=:]\s*["'][^"'\s]{4,}["']` y `\btoken\s*[=:]\s*["'][^"'\s]{8,}["']` — `const secret = "valor"` se bloquea como credencial hardcodeada aunque sea fixture legítimo. Renombrar a español elude el regex sin bypass (alternativas reconocidas por el hook: `placeholder`, `example`, `fake_`, `dummy_`, `os.environ`/`process.env`). Coherente con regla global de idioma. Origen: PR #11 sesión 2026-05-13
|
|
66
|
+
- **Scopes de runtime SIEMPRE vía `scopesReales()` de `scripts/lib/detectar-runtime.js`** — NUNCA el patrón manual `[runtime.global, path.resolve(runtime.local)]`: desde el HOME el local relativo resuelve al global propio (duplicados) o al de OTRO runtime (scope "proyecto" fantasma — el local de OpenClaude es el global de Claude Code; un uninstall de ese fantasma borraría el global). 8 sitios corregidos el 2026-07-03 (doctor ×5, actualizar ×2, TUI ×4)
|
|
66
67
|
- **`git add archivo && git commit -m "..."` en un solo comando bash NO actualiza el index antes del PreToolUse hook**: el hook `calidad-pre-commit.js` evalúa el contenido staged previo al `&&`, no el actualizado en la misma línea. Síntoma: commit bloqueado por contenido que ya corregiste vía Write/Edit pero seguía staged en versión antigua. Fix: separar en dos calls Bash (`git add archivo` → ver resultado → `git commit -m "..."`). NUNCA usar `--no-verify` para bypassear. Origen: PR #11 sesión 2026-05-13
|
|
67
68
|
- **Secretos compartidos entre clientes MCP viven como variables de entorno persistentes del SO, NO en archivos JSON** [v2 — 2026-05-18]: un MCP usado desde Cursor + Claude Code + VS Code tiene un config JSON POR cliente; duplicar `OBSIDIAN_API_KEY` en N archivos genera drift al regenerar la apiKey. Patrón: `setx OBSIDIAN_API_KEY <key>` (o `[Environment]::SetEnvironmentVariable(..., "User")` en PS7) → escribe a `HKCU\Environment` → todos los clientes la heredan al spawnear el binario. Los JSON OMITEN la clave `env` por completo (NO `env: {}` vacío — pasa literal a `child_process.spawn` y REEMPLAZA el env del padre, rompiendo la herencia). Regenerar apiKey = un `setx` + reiniciar clientes, sin tocar JSONs. Origen: 2026-05-18, 6h de errores 40101 por 3 configs descoordinados.
|
|
68
69
|
|
package/README.md
CHANGED
|
@@ -10,7 +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.
|
|
13
|
+
version: "1.0.3"
|
|
14
14
|
evolved: false
|
|
15
15
|
herramientasPermitidas: [Read]
|
|
16
16
|
exclusiones:
|
|
@@ -266,6 +266,7 @@ Sin observar la métrica, no puedes optimizarla.
|
|
|
266
266
|
|
|
267
267
|
## Gotchas / Errores comunes no obvios
|
|
268
268
|
|
|
269
|
+
- **El payload de los hooks PostToolUse NO trae `model` ni `usage` — pero `transcript_path` SÍ viene y contiene ambos**: un hook que necesite el contexto real o el modelo activo no debe estimarlos por heurística (un contador de invocaciones × tokens promedio divergió >2x del contexto real y nunca se corregía tras `/compact` — caso swl-ses 2026-07-03). Fuente exacta: leer la cola del JSONL de `transcript_path`, tomar el último mensaje `type: 'assistant'` del hilo principal (filtrar `isSidechain: true` — los subagentes tienen OTRO context window) y sumar `usage.input_tokens + cache_read_input_tokens + cache_creation_input_tokens` = tamaño exacto del contexto de esa llamada; `message.model` da el modelo real. Tras `/compact` la siguiente entrada refleja el contexto compactado — la medición se auto-corrige sin resets.
|
|
269
270
|
- **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1` aplicado por default a todos los proyectos**: causa truncado de contexto en sesiones que sí requieren 1M (análisis masivo de codebase, refactor cross-module). Causa: tomar la recomendación del artículo como universal. Solución: aplicar SOLO en proyectos donde se observe context bloat real. Para análisis profundos, dejar el default 1M.
|
|
270
271
|
- **Sub-agentes Sonnet/Haiku que delegan al padre Opus pidiendo "más razonamiento"**: el padre acaba haciendo el trabajo que se quería offloadear. Causa: spec del sub-agente vaga. Solución: el padre debe hacer una spec clara con criterios de aceptación; sub-agentes solo escalan si encuentran tradeoff arquitectónico explícito, no por dificultad genérica.
|
|
271
272
|
- **`/clear` mid-session destruye el plan en curso**: usuario pierde el roadmap acumulado. Causa: confundir `/clear` con `/compact`. Solución: `/compact` resume manteniendo conocimiento; `/clear` empieza desde cero. Antes de `/clear`, escribir un handoff a `.planning/COMPACTACION.md` con `/swl:compactar`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tdd-workflow
|
|
3
3
|
description: Flujo completo de Test-Driven Development. Ciclo RED (el test falla) → GREEN (implementación mínima) → REFACTOR (limpieza). Incluye cobertura mínima obligatoria, tests de frontera, factories, fixtures y estrategias para diferentes tipos de código (APIs, services, componentes Angular).
|
|
4
|
-
version: "1.2.
|
|
4
|
+
version: "1.2.3"
|
|
5
5
|
herramientasPermitidas: [Read, Bash]
|
|
6
6
|
evolvable: true # default para skill estandar
|
|
7
7
|
exclusiones:
|
|
@@ -339,6 +339,8 @@ pytest --cov=src/services --cov-fail-under=90
|
|
|
339
339
|
|
|
340
340
|
## Gotchas / Errores comunes no obvios
|
|
341
341
|
|
|
342
|
+
**Tests que dependen de que N llamadas caigan en el MISMO segundo (IDs con timestamp, sufijos de colisión) son flaky por frontera de segundo — congelar el reloj**: si el SUT genera identificadores tipo `tipo-YYMMDD-HHMMSS` y el test llama 3 veces esperando sufijos de colisión `-2`/`-3`, cruzar el límite de segundo entre llamadas hace que la 3ª obtenga timestamp nuevo sin colisión — falla intermitente que puede tumbar un `npm publish` (caso real swl-ses 2026-07-03: `loop-telemetry`). Causa: el SUT toma el reloj de pared internamente; el test no controla el tiempo. Fix (Node): `t.mock.timers.enable({ apis: ['Date'], now: new Date('2026-01-01T12:00:00Z') })` de `node:test` — el equivalente a freezegun; se restaura solo al terminar el test. En Python: `freezegun.freeze_time`. NUNCA "reintentar el test" ni ampliar ventanas: congelar el reloj hace la colisión determinista por construcción.
|
|
343
|
+
|
|
342
344
|
**El ciclo TDD se rompe cuando el test en fase RED pasa sin implementación porque la función ya existe con otro nombre en el módulo y Python la importa silenciosamente desde un namespace diferente**: escribir `from app.services import calcular_descuento` en el test cuando `calcular_descuento` ya existe en `app.utils` (importada en `__init__.py`) hace que el test pase en RED sin error, invalidando el ciclo. Causa: los imports con `from app.services import *` en `__init__.py` pueden re-exportar funciones de submódulos, haciendo que el test encuentre una implementación inesperada. Fix: verificar con `python -c "from app.services import calcular_descuento; print(calcular_descuento.__module__)"` que el símbolo viene del módulo correcto. Usar imports explícitos en los tests (`from app.services.descuentos import calcular_descuento`) en lugar de imports de paquete.
|
|
343
345
|
|
|
344
346
|
**`pytest.mark.asyncio` con `asyncio_mode = "auto"` en `pytest.ini` hace que fixtures síncronos que retornan coroutines sean llamados sin `await`, causando que el fixture entregue un objeto coroutine en lugar del valor esperado**: un fixture `def cliente_premium(db_session)` que retorna `ClienteFactory.build(tipo="premium")` funciona, pero si accidentalmente se define como `async def cliente_premium(db_session)` y se usa en un test síncrono, pytest lo trata como fixture síncrono y el test recibe el objeto coroutine. Causa: la mezcla de fixtures `async def` y `def` en el mismo `conftest.py` con `asyncio_mode = "auto"` puede crear comportamientos inesperados dependiendo de la versión de `pytest-asyncio`. Fix: en proyectos async, definir TODOS los fixtures relevantes como `async def` explícitamente y verificar que el test use `@pytest.mark.asyncio` o tenga el modo auto configurado correctamente.
|
|
@@ -2944,5 +2944,333 @@
|
|
|
2944
2944
|
"reglas/usar-context7.md": "8e3d3a051e2a53e02b98c54af3f95a95e0695fb99e5d6d50792da5d6b2c28861",
|
|
2945
2945
|
"reglas/usar-sistema-swl.md": "00fe741ca5d64d2e57fee0245333618cbb1d212e6aea74f47b64e2340dfbc6c6",
|
|
2946
2946
|
"reglas/verificar-citas-normativas.md": "6e0697c4a38d3a2c55b7f0cf26193fe3bb246b901d93ce4f4bd7b8c297982140"
|
|
2947
|
+
},
|
|
2948
|
+
"2.4.2": {
|
|
2949
|
+
"agentes/_intent-spec.md": "58df2403a0ebc66d487423732080e615698325f300b98fd9f7734fb4ae55a6a2",
|
|
2950
|
+
"agentes/_propose-step.md": "298c946f947b557088cedb3fd2631fda756a91510a39e0a3c95a9610e6d3eeba",
|
|
2951
|
+
"agentes/accesibilidad-wcag-swl.md": "24006fae669fb20fe10af9940fad32f787eadf0ac29ae098d9c987c9e51021ad",
|
|
2952
|
+
"agentes/arquitecto-swl.md": "48993081af28f19a390f2729d4f3824abe6a7ac8b6c4c73e6547b149b249dac0",
|
|
2953
|
+
"agentes/auto-evolucion-swl.md": "7d8a5c0b146f09514247679eb376adebb3f4d11ceab28b792160ce0eac2ffbc5",
|
|
2954
|
+
"agentes/backend-api-swl.md": "07b1038b8f3477ec16d0c41f293138c44c1803bd36862e65f5f785850f95fa6d",
|
|
2955
|
+
"agentes/backend-csharp-swl.md": "3237e94e41884d70b0b010a818dc7e3e38d59b766106601e29dd8f43f1838411",
|
|
2956
|
+
"agentes/backend-go-swl.md": "17d689bd29eff9192eed64cf54f0d1799c473b8ecec24c086a529bf1da93c6b3",
|
|
2957
|
+
"agentes/backend-java-swl.md": "17aa34a8cb86cb47b7cad84c44c57e1228473188baf522b67baa717ea93f1590",
|
|
2958
|
+
"agentes/backend-node-swl.md": "b4e5cf9ca3bc98b5aaa4d1edff17743efaf5266af3b1233170514f7597b26a4b",
|
|
2959
|
+
"agentes/backend-python-swl.md": "cd33ba8a571a72ccc6dea2da175fc6049b5ad8c86de8ffafab79d271d55add69",
|
|
2960
|
+
"agentes/backend-rust-swl.md": "fdb2bb491a00a60e6ab20671be4a4e7e837f452d47e2952493435d6e32752426",
|
|
2961
|
+
"agentes/backend-workers-swl.md": "e35e478e38d6c1a51f633eef6c7c2ca467243c7366347ec4e45022fea031485c",
|
|
2962
|
+
"agentes/cloud-infra-swl.md": "7cef2e280776379fc589c0e3e33627c07a2e1a5c19ea4036ccf7bf350966193d",
|
|
2963
|
+
"agentes/consolidador-swl.md": "7d6ced625a3d899350de33dd5727cd3c89c3a63da8901d78495b8ccec8464e92",
|
|
2964
|
+
"agentes/datos-swl.md": "6badad02ef75811cdaac90ee7ee580dd68a2d9fbbaad7749c9669d90f458f63c",
|
|
2965
|
+
"agentes/depurador-swl.md": "27eeae99f4b3f26860c18949e7fb7ea7537995845f6bec8dbfe54897407cbc0f",
|
|
2966
|
+
"agentes/devops-ci-swl.md": "84d3c84010b9b47ca332e0e6f0d5da17375a25fef8ddbc85638e0e6ab56d756d",
|
|
2967
|
+
"agentes/disenador-ui-swl.md": "031d87e99b87e576454d40f48ee32677bc17aee68e155db866ef8a6d56918557",
|
|
2968
|
+
"agentes/documentador-swl.md": "80abaadcbb752e868776e6548904732e9212398be7a45df83b0636bd16531bd3",
|
|
2969
|
+
"agentes/frontend-angular-swl.md": "4a5ce572812ef5f67547413be9edfb3667a0791ebcdfbb807ed708e5bba02748",
|
|
2970
|
+
"agentes/frontend-css-swl.md": "4a8ab0555d5fa6c95abea8e734f93d964010c28d63377de89c7e282754fe2222",
|
|
2971
|
+
"agentes/frontend-react-swl.md": "b15d0d13e09e21aa1f17ea57f182aa1fcd88aa9a6fc4c5b0d7938570d66de2fd",
|
|
2972
|
+
"agentes/frontend-swl.md": "d05c83c133512338e6bdd2523d974fbbfa48d62358d0523e76981c22c4c9ea8a",
|
|
2973
|
+
"agentes/frontend-tailwind-swl.md": "2ebe3f459d93e4465dbdd31f56f4e5d7c22f828fba4cf118c5db2711e25e0371",
|
|
2974
|
+
"agentes/gh-fix-ci-swl.md": "7008df8ca61be881af33673d85ef2e16c32d9909dfb2aa846a1ef1cadf58ddcb",
|
|
2975
|
+
"agentes/implementador-swl.md": "d840aa432b157293378c0bd364637e44764fa8db2b133786fd8e8937dfd84628",
|
|
2976
|
+
"agentes/investigador-swl.md": "20f28f81926f59f3dd2f0805e5459259ebd6249568a0f2c6616687186266a90a",
|
|
2977
|
+
"agentes/investigador-ux-swl.md": "73b1c3324f1213d5d6e88c584b54c5a7c310838b55ed137a0a80d279210545c5",
|
|
2978
|
+
"agentes/llm-apps-swl.md": "82f1a30ec60f3ce4c151635eacc93da4ae123c6ca07d0c010c3778471c633624",
|
|
2979
|
+
"agentes/migrador-swl.md": "bd40365cc17a4096c3c8139c29cb11298f4ee24a54b415dd24294ce45b39024d",
|
|
2980
|
+
"agentes/mobile-android-swl.md": "8c177f66b7a78c81f26b49c54aba65a7f9803e4902158ef2f7827f6ccd03f06f",
|
|
2981
|
+
"agentes/mobile-cross-swl.md": "77ecc39fdb88f17a44e2e703fa7f0ba5887e1dd840b3590a11bdc019ece4fc58",
|
|
2982
|
+
"agentes/mobile-ios-swl.md": "e8234ee3647ff774ba278587c3e0bb85823b6d604f03799ea415826e4a13a8e5",
|
|
2983
|
+
"agentes/mobile-testing-swl.md": "86d8d5f407d5d2d439f0154087dac6c383e74d4af0a3aa8c4487ad902ca67f0f",
|
|
2984
|
+
"agentes/nemesis-auditor-swl.md": "ef0eddf5936a6b0f4169b694c0f759e6d4d1ef4824e10739cd09330eece3731c",
|
|
2985
|
+
"agentes/notificador-swl.md": "1c80b64a83bc104723b4eb892cd591afb8386846cf630fec1cecf251f861d212",
|
|
2986
|
+
"agentes/observabilidad-swl.md": "860cc205da0dcb2eeb481d493e5b6d635d085c4c70e9d3e3e8a9a1a1c2049fc2",
|
|
2987
|
+
"agentes/orquestador-swl.md": "d3167c6eb3de4e84e387f46047d4ba6e4eece32f29a4dc88614a27f80f09f3b0",
|
|
2988
|
+
"agentes/pagos-swl.md": "2a20b5526897d09e003e2d64f024a5b4ba31e0d42504ba2356705af376d95c10",
|
|
2989
|
+
"agentes/perfilador-usuario-swl.md": "9db8999e9a15c95c818cd5cbbc955153ce2e12cea2d5065ed31e118e4a31709e",
|
|
2990
|
+
"agentes/planificador-swl.md": "3c20b17b8de75581c15eb5639a9aa2b7cf5ec485a87a517138c01825432a57a0",
|
|
2991
|
+
"agentes/producto-prd-swl.md": "57f0f702256000ddfed77c6232354ee73ebb5a59d0ff7e9aab3f7fa9b14a4dbf",
|
|
2992
|
+
"agentes/red-team-swl.md": "84bd31dd7796c6f376b3418a795677f23fa63a2968df57c9059d1a68dc9e015d",
|
|
2993
|
+
"agentes/release-manager-swl.md": "7e8ca0f3191f825638d1bcd75dd0b7996feb194fac22233414b65afa772bae38",
|
|
2994
|
+
"agentes/rendimiento-swl.md": "24069e09a91f635a39455edc3c65cc20ef8818e6f7c2edfc3f6c8439c620c0bd",
|
|
2995
|
+
"agentes/resolutor-build-swl.md": "0dfd520bc67556745b68c083c436687d2418dcfc46b53cf2730f865330fa121b",
|
|
2996
|
+
"agentes/revisor-angular-swl.md": "b013fcf9af9f53072aabaecd9c1d9f8947a9330a1981e0962c6963a2bce5bea0",
|
|
2997
|
+
"agentes/revisor-codigo-swl.md": "1cbdb0eaed0fadb05f7aa07fd2cc236a747503f9044ef2990f110af8867d049b",
|
|
2998
|
+
"agentes/revisor-csharp-swl.md": "11802e8bde11f499412e71f31f0b42f4fa66b587d62247297e99e2f4050268d9",
|
|
2999
|
+
"agentes/revisor-go-swl.md": "1038cad186ea7db2d47eb86be4c41d72216ef41202fd11260f3d24a2c77490d6",
|
|
3000
|
+
"agentes/revisor-java-swl.md": "1dc3bc9d311cee4d15c16307765a7db26ee0c4c36086be3d16a4e0ba31c3f61d",
|
|
3001
|
+
"agentes/revisor-kotlin-swl.md": "050ac7f903fb02b087e5cec730d637404a44384b21f1632e147c2f5f5b1c9933",
|
|
3002
|
+
"agentes/revisor-nextjs-swl.md": "d04b77677e8d27749aed527f3f86228e8add00e4f05bda3289fe006188d90c5b",
|
|
3003
|
+
"agentes/revisor-php-swl.md": "f15a13fd11e64ddfab59af4886c947c410624f8c083bde7cc3f1bde0208e3769",
|
|
3004
|
+
"agentes/revisor-react-swl.md": "c39ac757c529fc84633edd47bdaceba2dcbcb2a9f9c2bc65b8dfcc8cd8eb441b",
|
|
3005
|
+
"agentes/revisor-rust-swl.md": "f84c36d280a3b57d141538ef7e9fd47013695c6563add05d30e852e41df6ad7f",
|
|
3006
|
+
"agentes/revisor-seguridad-swl.md": "7418ee59f51d9b13eecc5035365b4a36589ebdcb4e79b736138c9f7c62c50b1a",
|
|
3007
|
+
"agentes/revisor-swift-swl.md": "fd5275103beadf5694826738ff1e33a80aaca94c197921aabf1cddc4e0fd8b24",
|
|
3008
|
+
"agentes/revisor-typescript-swl.md": "ce1a1d1780248cfba579cee0177fcb38d679e9a65152efad60723ac08053f252",
|
|
3009
|
+
"agentes/sre-swl.md": "29275c226c49d4a5c0fd00dba3088c2ed8d8c94376dbfe5619559d75e616cc7a",
|
|
3010
|
+
"agentes/tdd-qa-swl.md": "965a53422d4895c4686d7c1811f1c528e0191e0cafabdfc8c85e3d5c604eea37",
|
|
3011
|
+
"comandos/swl/actualizar.md": "f117df8229b10ecdf28a136e911df0379625f6600d86a56e2ab671c704204105",
|
|
3012
|
+
"comandos/swl/adoptar-proyecto.md": "4d1c06dffc7d91294db76290230508f876bc6b4c85a7d832fba3b9da56ddd9a1",
|
|
3013
|
+
"comandos/swl/aprender.md": "4423090d813aa16a3de3ae86af57b17c24fce9b4250e158609003217bfed533d",
|
|
3014
|
+
"comandos/swl/aprobar-plan.md": "72b7c4e5ba033ad2ed18db589eca9e24cebc40bb2f26676fb2f02e4e9a4a194e",
|
|
3015
|
+
"comandos/swl/auditar-deps.md": "6fbe283ce326f90f09fa812c7e4f56b4debcb46ad1aebb4cf0856eed8ffff46c",
|
|
3016
|
+
"comandos/swl/autoresearch.md": "8964576a5bf2f2ad3119a692192c46e6f84338b758f80f8b5e9415df73f3a3f8",
|
|
3017
|
+
"comandos/swl/ayuda.md": "320dcfbb40522468b7e3358937d7e33287ffd56254a1815b12151af8266d742a",
|
|
3018
|
+
"comandos/swl/brainstorm.md": "81379eddb6194314ca9192842ea3012dbd8ed5d13dec5453541da6a0ddd3fa67",
|
|
3019
|
+
"comandos/swl/briefing.md": "a5d330736de160c9cf7da208921066c8a170ede310c4748000af331d5c4d9ecc",
|
|
3020
|
+
"comandos/swl/checkpoint.md": "91af22712265c8945c224718d0287ac21efad8aced174cea1a0a6c4cc7c70c91",
|
|
3021
|
+
"comandos/swl/claudemd.md": "5bae75e77485989f9d9ff09f597fe0010db912e8c34187be6e459b0bbc09c9f1",
|
|
3022
|
+
"comandos/swl/compactar.md": "06baecf464627a45481813bb204dadd560fa45a8a09a2bc47480e6dc0f8cd9f7",
|
|
3023
|
+
"comandos/swl/configurar-ci.md": "270afa4a951f83207def79bc8423e5de8b781c21c08aab4bcefc75a2e591c71f",
|
|
3024
|
+
"comandos/swl/contexto.md": "0e664d1d84f995eed4e02925e88c4b137f8f2892193d3be050a5a581443ade76",
|
|
3025
|
+
"comandos/swl/contribuir.md": "37fd17e3dc8cd8b51a0997df66c527eeb41f92abcd63ef032a5da8df4f70ed0f",
|
|
3026
|
+
"comandos/swl/crear-skill.md": "6689efac053de2c80f05182f34c8ddb7ec4f81dba9f3479166cf7bf9f003d71b",
|
|
3027
|
+
"comandos/swl/cron.md": "414d88ea3af453b90386421e1f569cd720b3414afd049afe96fff085d9870667",
|
|
3028
|
+
"comandos/swl/deuda-codigo.md": "b65cad0f234dcb348f3f403828e79ace57ee1a39084e3d79e4dadc6c41e1ba1d",
|
|
3029
|
+
"comandos/swl/discutir-fase.md": "637cd79469c1239db700d8db09c6106ed90a28304c3cd00d5046420ff45119fc",
|
|
3030
|
+
"comandos/swl/ejecutar-fase.md": "eea239bc28a7c8566c3337496e7cef04997585f6061cdc152a1fe7a7f4850f29",
|
|
3031
|
+
"comandos/swl/evaluar-skill.md": "544a3b79d4e219bed22cdd266ebdbb91906f6ff71f5987f7ef5723cf39f7d5af",
|
|
3032
|
+
"comandos/swl/evolucionar.md": "62c0b06930d3b9d8cb876f6bc84a0a919d2193c69e6c2df7b89860c54b08b845",
|
|
3033
|
+
"comandos/swl/exportar-vault.md": "23156a79b69e2d85e0e5039dac3f1692780c3ac91ba6c1f715302b8e6eaed26c",
|
|
3034
|
+
"comandos/swl/gateway.md": "a995dfb3f3423ed01f541c26770ec4c4a9baab659e8f4e4b5bfea0b29adbdecc",
|
|
3035
|
+
"comandos/swl/inbox.md": "d688b03288a55a30666a8481a9a6f9563840f7a06c7c365c50f72c064d058370",
|
|
3036
|
+
"comandos/swl/instalar.md": "530925d89ada0503f39fb8af8fc2370e048003c830db3885033d1a8550112474",
|
|
3037
|
+
"comandos/swl/instintos.md": "34557efe6c7afcb843714c87b0b6f1c107285f0e081c7b158f4907746b78719a",
|
|
3038
|
+
"comandos/swl/mapear-codebase.md": "bc831928549709c2aefb7cd3bea04266f813bedffb961b893ee4012e4231fac0",
|
|
3039
|
+
"comandos/swl/mcp-status.md": "42d8e4169d1d8b49ba11c84fabe0615b213c9e6f3655a5a84cf726558098bc6f",
|
|
3040
|
+
"comandos/swl/modelo.md": "471b47f907836d8069570b94a9cf39c8dd91fcf85d6107329db353e63a3438ff",
|
|
3041
|
+
"comandos/swl/nemesis.md": "37ce36153d46cd666412c35ed65f296676f2db4375c4060edd4a04b2e1d95cf7",
|
|
3042
|
+
"comandos/swl/notificaciones.md": "34da7d2c298160a85a3c5d64ea9ac6c4e060ec1be3ca1a4e3f8124c31cfb0d1f",
|
|
3043
|
+
"comandos/swl/nuevo-proyecto.md": "bc6171a2103f03a4160aacdb9f8a6ecf741a8378dcdd72af0f7c235f8442fb66",
|
|
3044
|
+
"comandos/swl/planear-fase.md": "fb6a224a6a7d005ca0d0846cfc86e2c33560ab0a76a244c089b41f68dfe27da2",
|
|
3045
|
+
"comandos/swl/plugins.md": "03f5703ab400612bd36f6f65ba7bf0a4ecb9795435580ba5de2020c860a9200b",
|
|
3046
|
+
"comandos/swl/predecir.md": "15bcb5eff373b8c787cb13501d1e0f9e873a58bb36e36e7d56195d9849319429",
|
|
3047
|
+
"comandos/swl/reflect-skills.md": "b15e5ae63267d67eeef260092fb0f4b8dab210544bdf60053b0f86923b961ddb",
|
|
3048
|
+
"comandos/swl/release.md": "fe33d65910719e5f9ff24fe3ddb677a2744fea15db9f30baebc5e95d63ca558b",
|
|
3049
|
+
"comandos/swl/revisar-impacto.md": "662ee411af7b63671eff5a910de4a24ea7971c87241d8648cd6fb6c2403668e0",
|
|
3050
|
+
"comandos/swl/revisar.md": "7b17679c0cadd2fca7a015c302459f7ca127dcae02a74c990cddcddcb4c15f85",
|
|
3051
|
+
"comandos/swl/sesiones.md": "6674e6f488f0f308d53d099c8c5347d2fdf7729edb4d6ac855488e0cd93a3c0e",
|
|
3052
|
+
"comandos/swl/skill-search.md": "e0dc8622080ec56da2b98c1ca9f44771daf2d8870fc620edc7ea64a28b7594a5",
|
|
3053
|
+
"comandos/swl/status.md": "bd37faf3aeadc6c2e58523ee5ca4f4126705682572c3b748a8843db06efd6c85",
|
|
3054
|
+
"comandos/swl/verificar.md": "748b57c9a3b9f53eaa6cc2f1cc2692af646caf0d2e0403077b246800613b78c9",
|
|
3055
|
+
"comandos/swl/wiki.md": "68ae8163fa8493ff5d01b8ab281f18ae0939981cc2a88ec3b759f83efc6dfac4",
|
|
3056
|
+
"habilidades/accesibilidad-a11y/SKILL.md": "500372c367122b4d06e04254326a19b196e29d1d7d760b7a4873f136ee19a4ab",
|
|
3057
|
+
"habilidades/agent-browser/SKILL.md": "77cc3d490439ad9a3df02d6b44c45af4436c24768e8f4554ed09b57af1bb0d57",
|
|
3058
|
+
"habilidades/agent-deep-links/SKILL.md": "4fb8150dc13c0d07381701d110c259a452d6b04f981b08e0478e24c38ea9dcab",
|
|
3059
|
+
"habilidades/agentes-como-servicio/SKILL.md": "91e14245d031bfec52b657931fa370fb161f4ae7a7743bc73325f8a420861be6",
|
|
3060
|
+
"habilidades/ai-runtime-security/SKILL.md": "820e59760f7ef29761ffd9d75677e638a5df16fba8ee9fa16813f8e4a6a0828c",
|
|
3061
|
+
"habilidades/angular-avanzado/SKILL.md": "9002c549e1c5aa00726d35a332a1760192927856871e1f7b18c949075da0fc3b",
|
|
3062
|
+
"habilidades/angular-moderno/SKILL.md": "b769f81111ecf114e37e19e7a848aa9ba3e77f5b91bfa8399c7f14c1ddbed11c",
|
|
3063
|
+
"habilidades/api-rest-diseno/SKILL.md": "22898f30ca8e2aa696f9a75f58829eb4d8e7f5e4eb303ee8a981cc93406d9d02",
|
|
3064
|
+
"habilidades/aprender-de-git-diff/SKILL.md": "5be6d2288a3522833935e48d160f27c40e2695d0930869f25bca73a121ba2eb0",
|
|
3065
|
+
"habilidades/aprendizaje-continuo/SKILL.md": "bdb2323bf7d00997e7899931d4af6ed05ca85fe70be2dc27620c39c14db1ba25",
|
|
3066
|
+
"habilidades/async-python/SKILL.md": "7ebecd6741bc522214bc0ad2e1c29277d174d9e12b4436e66a2e34a88a2bf843",
|
|
3067
|
+
"habilidades/auth-patrones/SKILL.md": "796ddc3ab468b10d1ba8b767fc24b167368c975475d62fc3b5d2523fe28292ea",
|
|
3068
|
+
"habilidades/auto-evolucion-protocolo/SKILL.md": "d31d508d7bec1ed266e03f5cef60e1f11b661e45f7b4f43f77b06333e211ed1b",
|
|
3069
|
+
"habilidades/autoresearch/SKILL.md": "8ae3bc7530d405fc56556a761f4d3591855e79ed69078551e1ea884741fba244",
|
|
3070
|
+
"habilidades/azure-cloud/SKILL.md": "8ae0d4822703c197d25785d23ab37e844788d437b202d08503b00b296da84f76",
|
|
3071
|
+
"habilidades/backend-async-postgres-testing/SKILL.md": "6f400277bb86ccede57f647303a8e46963d591040686e1f59eb34eed5e1f801d",
|
|
3072
|
+
"habilidades/backend-error-design/SKILL.md": "3be8263e2f2a5682ff2243088bbdc9ae7e5e7df59495d39d6fed4ba246e641dc",
|
|
3073
|
+
"habilidades/backend-mcp-servidor/SKILL.md": "1db631547e77b61894d5329931369fc8271c03a1383e444117be8d9763481f83",
|
|
3074
|
+
"habilidades/backend-production-resilience/SKILL.md": "c2a4c429a370421833701e7e8d74d9413d21bf014ae45985c8c6d7259fc1a5ff",
|
|
3075
|
+
"habilidades/benchmark-memoria/SKILL.md": "d2974eef1b2f96af911d342b212b3b4affeb24a1fcbf97db9943d156de282f8c",
|
|
3076
|
+
"habilidades/brainstorming/SKILL.md": "dd2044784fa2cf1726d1a46b309717111249386c717545bbce5e78ddd7484cb1",
|
|
3077
|
+
"habilidades/browser-interaction-patterns/SKILL.md": "3a5ed2f97ad531fdd01d3ffe011e9bdf307e72b614d7372219d789d978164a8e",
|
|
3078
|
+
"habilidades/browser-research-domains/SKILL.md": "a5d16612a06cf24b13802543f789dae4a4a1c161af820edcb939f09278b7b81b",
|
|
3079
|
+
"habilidades/build-errors-cpp/SKILL.md": "048d45d249a15fbc35aa31222bdc9618e5aec2719bf856a59ac84e7fa273cd6f",
|
|
3080
|
+
"habilidades/build-errors-csharp/SKILL.md": "0ca5f92455a11a3c1185fea09b7a0cdd0d8270fe37ac7832688fe2757ea98ff0",
|
|
3081
|
+
"habilidades/build-errors-go/SKILL.md": "5564a566719d5f32fdb8e452624fdddeab118f9afde4b471ff8615e2a6d6ba5e",
|
|
3082
|
+
"habilidades/build-errors-java/SKILL.md": "40191e6120fe98d55dfdbac67350dd112810baba6ffcfc2902ae687e350fbe53",
|
|
3083
|
+
"habilidades/build-errors-kotlin/SKILL.md": "60e3033c492597b62e5359930f95a706a0c679f9a8ca52467eaebe011c826da1",
|
|
3084
|
+
"habilidades/build-errors-nextjs/SKILL.md": "1893d7452af514a8676279cc082fdef3790d136b2334429a7e3f1f668ea87343",
|
|
3085
|
+
"habilidades/build-errors-php/SKILL.md": "398391c87885aa52654e27066b5bdb2bd3c8e3e68eecd939df02b3367df9c21f",
|
|
3086
|
+
"habilidades/build-errors-python/SKILL.md": "73f65c7456c21216fde3c2df3c31a1cb5ec1999e79d9c917afd1bc11eb1bcecb",
|
|
3087
|
+
"habilidades/build-errors-rust/SKILL.md": "6192378e69787658fada7f3e191fe54b1401e234a50f943701c6b088bf509a51",
|
|
3088
|
+
"habilidades/build-errors-swift/SKILL.md": "fabc54050e42abbfdf3402b887b628c47dd0acc37062a8ceaf4494720f7797c7",
|
|
3089
|
+
"habilidades/build-errors-typescript/SKILL.md": "d0372ad6d5e6cfaa5ef487622b947a7ed4797b4cb94cc309be79c9857694b370",
|
|
3090
|
+
"habilidades/calidad-anti-patrones-universales/SKILL.md": "5047fc360759b8d894b3e5c20a344cae46562c8131267c5a59f9d8f8839ef178",
|
|
3091
|
+
"habilidades/calidad-contract-testing/SKILL.md": "dc91fc323fa1f721a5957ad72f5403987c8e49ee0dc059e987bb131e4492f292",
|
|
3092
|
+
"habilidades/calidad-mutation-testing/SKILL.md": "aa8e10f5b4bc8ed9c2faefb55d5db881f5009537e11c6b12eedd4e07dc25eabc",
|
|
3093
|
+
"habilidades/changelog-generator/SKILL.md": "192e17bd2fb16d1769a2497bcd2ef150dfd34a7872474cf340ce43d1a55a6a7d",
|
|
3094
|
+
"habilidades/checklist-calidad/SKILL.md": "4bd1ebfeaf36032cd8078900f60de8a77f55a3a5bbbacec132eab52aadb88fb7",
|
|
3095
|
+
"habilidades/checklist-seguridad/SKILL.md": "839b133a97677b0e9675776a99b6a6351133b65fd99ad6d851dbd84073996348",
|
|
3096
|
+
"habilidades/checkpoints-verificacion/SKILL.md": "58fd866b5bec6bb8c06c1a179a4c4cc90f3c55b5b578296f3af15254f44da02b",
|
|
3097
|
+
"habilidades/ci-cd-pipelines/SKILL.md": "a5a3ccaa688401b1730e972d77f435581315590299d23856ad5434780873cc80",
|
|
3098
|
+
"habilidades/cloud-aws/SKILL.md": "ec428fbc973830351543f7cbfa30bad6785c1f0f30bf3f194effcac5985beadc",
|
|
3099
|
+
"habilidades/compactacion-contexto/SKILL.md": "76a2fe8be6a5a58ae18e982bb1c1e6dfb7ed0b42e9c2733da1e7467d424e70e9",
|
|
3100
|
+
"habilidades/contenedores-docker/SKILL.md": "1c9542639dfd8bc2590bc8476ee029f44d707e769ea4d86b0f6f836e428cb070",
|
|
3101
|
+
"habilidades/context-builder/SKILL.md": "4a90f85c5f6e664171552d39dce55b9bd1ccd92eaf52913f41d71899dc096b32",
|
|
3102
|
+
"habilidades/control-profundidad/SKILL.md": "5fa212558af44aa4831f0faba3e2c87c77cd5b4bac3d3e194360c8fac40ac4bd",
|
|
3103
|
+
"habilidades/csharp-experto/SKILL.md": "8e8dcdbe80dfdecdcf125e4f466b1e09a8414e471367dc0e108c4c02198acd80",
|
|
3104
|
+
"habilidades/csharp-patrones/SKILL.md": "6886137e008f73cdd5740daead367058a0bdd1b9dacdda8b1b8d0386216dd3cf",
|
|
3105
|
+
"habilidades/csharp-testing/SKILL.md": "af5ddd9b89d3c35151fc4e45add2900fca10f3ab27b6ca29bd0a0e70c74d0df4",
|
|
3106
|
+
"habilidades/css-moderno/SKILL.md": "9ec83d8a94a9347aadd0437af5454e88f1684d5b0f7e2b1089433571ccb5ba84",
|
|
3107
|
+
"habilidades/datos-etl/SKILL.md": "a4f2b3228ab8a93d82aa9aee2a3662ed51ea858b0fb05d3e9345c12f5965a8cf",
|
|
3108
|
+
"habilidades/dbml-experto/SKILL.md": "bf43ba9e88b6f91db799fb7d1a30bfe0e973456804d8f851203c1d5e67d58505",
|
|
3109
|
+
"habilidades/dependencias-auditoria/SKILL.md": "6f6907bfa8facfd5ca9fa44f0eee05484fc7e0cb66ae09b8ac209013de0c95f2",
|
|
3110
|
+
"habilidades/deprecacion-migracion/SKILL.md": "e10a61c5b3ce9703b7fd3d06dbac0b35f89b3f8b91055d8420eefafa3541ff9c",
|
|
3111
|
+
"habilidades/design-tokens/SKILL.md": "b3bab149fe65f9e4a3a720775e1a7fc0032740487434f9012f2960fd8acff158",
|
|
3112
|
+
"habilidades/devsecops-pipeline-security/SKILL.md": "97ab5382c4a803af0b4c0aaf664911695bc1e6c85f910821325acc3f51bc53bb",
|
|
3113
|
+
"habilidades/diagrama-arquitectura/SKILL.md": "1771d492438f0fa0d6b3c81cad6e8dc88410698ac7014cf809172906b62ed906",
|
|
3114
|
+
"habilidades/discutir-fase/SKILL.md": "fa6928ee4569259f0e907008d3dd251a66ddc99c391f60ce3bab7d346e10e125",
|
|
3115
|
+
"habilidades/diseno-herramientas-agente/SKILL.md": "416bcf1e4955ac9ba65ff6c122e142c123b7db340aa58dde3ae203cb819ad641",
|
|
3116
|
+
"habilidades/diseno-responsivo/SKILL.md": "6aa294c3b201a6bb256acb111e0230ff414c270bcd16d12540a0230855e4f235",
|
|
3117
|
+
"habilidades/django-experto/SKILL.md": "8dea1bac9c2cf000d95127740c790958aba5e10fd8bbed99a9dcdd9ce2f93e04",
|
|
3118
|
+
"habilidades/doc-sync/SKILL.md": "c49b6304941b229d12abd2a83550e7c988edf087deccceef3d1bc96ec11119b4",
|
|
3119
|
+
"habilidades/doubt-driven-review/SKILL.md": "8a0ae42479d7f2396e4e77a97996828391efdf7b8b11f90af6f0f65615a20c58",
|
|
3120
|
+
"habilidades/drift-detection/SKILL.md": "d4ebac36efbd93bcf4487542151812242730da85cf2724a80b1522589813b9a1",
|
|
3121
|
+
"habilidades/ejecutar-fase/SKILL.md": "d4b03003484f7d4986e5418f40f58da72be849026e8f7603c81eb24d77515646",
|
|
3122
|
+
"habilidades/ejecutar-task-iterativo/SKILL.md": "af59419363aaec817a7f32470802c73df0c206d1506f22e6f94f5d6096b4056b",
|
|
3123
|
+
"habilidades/estilo-sin-ai-isms/SKILL.md": "a581d82dedba9bbb73927b5f69006421a28c75958d5e6cf7f3fb069b5c95613d",
|
|
3124
|
+
"habilidades/estructura-proyecto-claude/SKILL.md": "34ecc86fa8b4ef58a9485842d52ae967810e87bf6ac4793d28274d1c73b74182",
|
|
3125
|
+
"habilidades/eval-framework/SKILL.md": "18edc007967aea17a9dcb051dc9c75dd999d96d0c0255d91947c254255bcd2e1",
|
|
3126
|
+
"habilidades/evaluacion-agentes/SKILL.md": "17c08cfae68e423507851a1baabd54edcd6f58e6e2a93ea5250cf81943174035",
|
|
3127
|
+
"habilidades/event-driven/SKILL.md": "fa7627b0178403702200b9e6501c401ccd537481c1e88742bdb7054052f28c42",
|
|
3128
|
+
"habilidades/extraccion-documentos/SKILL.md": "3af2c23b4d1019d5c3cf0f7c98fad7f253d863ad04dade2c23da816c49d74bc9",
|
|
3129
|
+
"habilidades/extractor-de-aprendizajes/SKILL.md": "feaa6adda35c9b04f5134511ce39e9559657b994a4e15b03d4052f7a1bdadcb0",
|
|
3130
|
+
"habilidades/fastapi-experto/SKILL.md": "d657e80b9edc733966c44c3755cca3ca19a825243cd0bff6eaab4bc046a963b2",
|
|
3131
|
+
"habilidades/feynman-auditor-swl/SKILL.md": "7fb1e239d7096f9d58b88d77acd08afba9ceccab8316ec0808dd6463866c530a",
|
|
3132
|
+
"habilidades/filament-admin/SKILL.md": "252ff3fe05c08a42b1e44c09d4806f16d28d26c7fdfe156aa217c9380f36f4c0",
|
|
3133
|
+
"habilidades/frontend-avanzado/SKILL.md": "4e7c8b402da138a56890a745fc508e77a2d549ff7e37467344efbc07692db28c",
|
|
3134
|
+
"habilidades/gcp-cloud/SKILL.md": "d4f4db699f9cea2ae9fefc7c7b4acc88d8272cb9f41137c8728eec52c17ea9d1",
|
|
3135
|
+
"habilidades/generacion-mermaid/SKILL.md": "8cd0f8ec045ab25f9dd9d52402f816f61ebb24a02223028325bfd6edd6275c3f",
|
|
3136
|
+
"habilidades/git-worktrees-paralelo/SKILL.md": "90120d9554df3e32419e41e8b13825fe0e8aa46f67f093d93737f39b4b52151d",
|
|
3137
|
+
"habilidades/go-experto/SKILL.md": "acde2520a9927b6557741fd37254e9852e481f48dbcd5041832008a23fe2f626",
|
|
3138
|
+
"habilidades/go-patrones/SKILL.md": "5bd991417068df614191b7583dab3e3d8761d66e74fad885572a62ea98a1bbf2",
|
|
3139
|
+
"habilidades/go-testing/SKILL.md": "b8e31b72b7ef52df10cccae2aa99691ef3ddf7211c1af7909de5d168465e0300",
|
|
3140
|
+
"habilidades/graphql-experto/SKILL.md": "f8a70a0cd0a888aa43d4c3bdebc8142e8cb2b37df228f9ed3dbccdab9022f6aa",
|
|
3141
|
+
"habilidades/guardrail-semantico/SKILL.md": "000bc86759c68222a35c65d1fd4bba495e9f8aba9fd48dafd186ac2e378a98fe",
|
|
3142
|
+
"habilidades/harness-claude-code/SKILL.md": "4750f6d0154647bbecd7e471a3e1526e6599f79fbf92c2930fb5dc87acfa9e5a",
|
|
3143
|
+
"habilidades/iam-secretos/SKILL.md": "6245a62b3c51e4e9b2caab710d06709e656a2ed84fb9a6de491b6c4767aad890",
|
|
3144
|
+
"habilidades/infra-github-actions/SKILL.md": "19a85aca305cbb90bc106f61d4de3f945f5b70ac890ae6f60301b6b4091e3462",
|
|
3145
|
+
"habilidades/instalar-sistema/SKILL.md": "1ebc8c043514eefaebed586a622247bb58477bf67da90a250db579fd63d5f44e",
|
|
3146
|
+
"habilidades/java-experto/SKILL.md": "cf545788d601fd10a0153e46b8aff67b5f8af0ebc2a753117337e4288faf27bf",
|
|
3147
|
+
"habilidades/java-patrones/SKILL.md": "76d387de2566bd79663a0b2fbfe36b49e4505635167844a4c3c4ce5012de8f64",
|
|
3148
|
+
"habilidades/java-testing/SKILL.md": "5cfc5aa4c86b347023a4c3ed96130b5cc706f8aaa6fa78ad71afbddfa4e6127b",
|
|
3149
|
+
"habilidades/kotlin-compose/SKILL.md": "71c35fef252d475b60908341797ad5c10c4a007225334bda5821843a17013c59",
|
|
3150
|
+
"habilidades/kotlin-experto/SKILL.md": "f1973adbb2614e6dc42521abc6fec17ff9441faac200d48388e9aa333bda7124",
|
|
3151
|
+
"habilidades/kotlin-testing/SKILL.md": "225e23c552dea40f46f8f2bfac7bf91c73e16ff05de59e828645b006963e5021",
|
|
3152
|
+
"habilidades/kubernetes-orquestacion/SKILL.md": "4b06e923d1f95a5dd32f113389798eee660a1b1baafae3722bebbc61dabe9f3b",
|
|
3153
|
+
"habilidades/langchain-langraph/SKILL.md": "f8e5c6242a81849a9d19a4e5a6bbf8d6cf0c5a77737a9f62881b5bf72f953fde",
|
|
3154
|
+
"habilidades/legacy-code-rescue/SKILL.md": "9cf5e64ed05a9ed03cfd10685042350994313a17fc7b2b62bd5cdcfd29ff1fce",
|
|
3155
|
+
"habilidades/likec4-experto/SKILL.md": "0dc5eb07a5413bdba2205c9b577d00dc978d0bc540f526abc9536cf4aa5ef055",
|
|
3156
|
+
"habilidades/manejo-errores/SKILL.md": "1c230410505f57e4e3125ef26116a3e72edb13ed63136517c0ef4a712245c9d6",
|
|
3157
|
+
"habilidades/mapear-codebase/SKILL.md": "b0bcec7dfb20591de7bf77ca8c09f734ddbc7c07e19429691c4cd881090dfbf6",
|
|
3158
|
+
"habilidades/memoria-busqueda/SKILL.md": "606e0cdb920166733462dc108fd87e6cce1d173b0b7a9f115fda4f9dd088312e",
|
|
3159
|
+
"habilidades/meta-skills-estandar/SKILL.md": "15ceff006f42b517486126eb84a7283bdc3d97bd4bbd870b057784059304df9d",
|
|
3160
|
+
"habilidades/microservicios/SKILL.md": "9bcc75168a97fc2f43ab6f08fe21985ebdcb4771d1150746254439042f1af5ce",
|
|
3161
|
+
"habilidades/mobile-flutter/SKILL.md": "4364d61c4bf6bf02e29a7a2c2942475ab71a0ae9df6d9eb2de9f774132da562e",
|
|
3162
|
+
"habilidades/mobile-react-native/SKILL.md": "97d47a359e7f4b6d2ef833e4e1b904bc9d3905e8b4676b4a5aadef1a1d7082d2",
|
|
3163
|
+
"habilidades/mongodb-experto/SKILL.md": "924eb3779c5a7f6de7517397d42ea7ca16c550e534a712524c49f1cc7bf8b7e9",
|
|
3164
|
+
"habilidades/monitoring-alertas/SKILL.md": "641d42946c1eebf8ae42b273f150d2257cbbfdd649f3135bfa282774016aefa8",
|
|
3165
|
+
"habilidades/nemesis-evaluacion-json/SKILL.md": "34c9b9b763706632f5741a5267e8b474a6c6666a685112a7ebd864ea4a077af9",
|
|
3166
|
+
"habilidades/nemesis-redistribuir/SKILL.md": "b2ed30b2f2c57239f0bc1a228da14e4d7d3256bbd5f577a44bb6a035042093c1",
|
|
3167
|
+
"habilidades/nestjs-experto/SKILL.md": "adaace2a47e5b6f40801d751fa5e7197f2ecb84da94942b10562520c944df0cc",
|
|
3168
|
+
"habilidades/nextjs-experto/SKILL.md": "fa0305930d2ef7d3ae5ee60f015de1486163c3e7ee58f76e6b447f62eb3fa59f",
|
|
3169
|
+
"habilidades/nextjs-patrones/SKILL.md": "d97850fb296d80965f995fd4f709c3cbeb5cf01ef0c1da775bcb022c65f0ea0b",
|
|
3170
|
+
"habilidades/nextjs-testing/SKILL.md": "30d1bc2a006c8da886b9cfcd43c28b52159fdd6cf63101296785edbc90099d88",
|
|
3171
|
+
"habilidades/node-experto/SKILL.md": "44705c5fa9615e1ddc86f62b4cf3041d183f08f11fe134695a8b5cf5a00f5cc8",
|
|
3172
|
+
"habilidades/notificaciones-multicanal/SKILL.md": "d707ca749ce1d73066e99dc25fe7905b7dd0ea99059549e28de3a5af2ff37bb8",
|
|
3173
|
+
"habilidades/nuevo-proyecto/SKILL.md": "7593c1eccc8622d8d6b071a6d39ba33a978c0859320413789d037440d3b04ad8",
|
|
3174
|
+
"habilidades/orquestacion-async/SKILL.md": "ef6db48bb8220f9c5ab3ddfb4a289ddda0ac25d4990b6fc879bbe32a2bdc390a",
|
|
3175
|
+
"habilidades/paid-media-tracking/SKILL.md": "e64605bd9958fb20b40c6b22d9071d12d7227b33bb051dc47d14042fcec7b5a0",
|
|
3176
|
+
"habilidades/patrones-python/SKILL.md": "b1ef79daf505cb7790f93bb1db694ac35bb542a2a4603717de74d2533e9ef52e",
|
|
3177
|
+
"habilidades/perfil-usuario/SKILL.md": "6887b812f57b357ef289e6f66efe17e4e92b4ce4458e5492a8f7b426fdd08deb",
|
|
3178
|
+
"habilidades/performance-baseline/SKILL.md": "a471b230da1fe20ab0b36a1495b4c2e2dd17c5b8bab02e2a464dff290ef21044",
|
|
3179
|
+
"habilidades/php-experto/SKILL.md": "f366a8fffb9088b1b84bad8dbcc3a396fc4c83750bef61ca952be282d8d5fd76",
|
|
3180
|
+
"habilidades/php-patrones/SKILL.md": "238265a70101654dd983e186e9399d62e63152beb22ff120bd4738d4015486b6",
|
|
3181
|
+
"habilidades/php-testing/SKILL.md": "79172361b329873593ed14ade150a6660e403c78f87dd9a1fbdd1135a3682d3d",
|
|
3182
|
+
"habilidades/planear-fase/SKILL.md": "252d4c6da07c4b90f4fcccc5f91b2a178da72c0dc5a7214883d302709520c8a1",
|
|
3183
|
+
"habilidades/postgresql-experto/SKILL.md": "3943a191fd4ace75136cd82985f3ca337c941b35f01828850d6487d22181ce9a",
|
|
3184
|
+
"habilidades/prevencion-racionalizacion/SKILL.md": "3978236740c4861b879270993d423f1f0d3e5adf3cd29de40a1db026f95b2da2",
|
|
3185
|
+
"habilidades/prevencion-sobreingenieria/SKILL.md": "747566a77da85a851ad9e14e4f1a839df9873bdcc44d92963df2c9deb6ca604d",
|
|
3186
|
+
"habilidades/privacy-memoria/SKILL.md": "747e3a4b43faf68c5491226b28b7bc447e85a257d0a1cf9e8be09f426a3400f5",
|
|
3187
|
+
"habilidades/proceso-autoverificacion-evidencias/SKILL.md": "92be7ce4fbda1f241a556738a7eeeeb784f0ba1eb6a6eeca927a4c0d43ff17d3",
|
|
3188
|
+
"habilidades/proceso-confianza-pre-implementacion/SKILL.md": "a4df4d11e1bb56ce92212dc5cfb2801aed2fbc68afe8b200a695b757e9823b4d",
|
|
3189
|
+
"habilidades/proceso-ddia-fundamentos/SKILL.md": "b51e2a2f71e220c0fc2557ec7e425ff6505dfc31a9720a6c6a0d0e8cb0b51baf",
|
|
3190
|
+
"habilidades/proceso-ddia-streaming/SKILL.md": "59ae94da3e656871416c0b47944bf4fae02215c4d3cf7e2f826f206483341515",
|
|
3191
|
+
"habilidades/proceso-debate-adversarial/SKILL.md": "0a9fe26d605c8891fde6a0372a57c8575ee36bd0b74db72d2a1e9e0a18a768d9",
|
|
3192
|
+
"habilidades/proceso-discovery-machote/SKILL.md": "8b6de90ddc971dbdf9d86745792d0149e8d44de5b3c24e9b1399ff643f146972",
|
|
3193
|
+
"habilidades/proceso-dynamic-workflows/SKILL.md": "56b4410405d6060f8a0bcc28736799eead5748b208a7a1abc5a8eca1d2e540c8",
|
|
3194
|
+
"habilidades/proceso-intent-engineering/SKILL.md": "38cfc73217d54b61e93685dd7bf5f5cb6433e1fc6bccbc0f5a076764ada0418d",
|
|
3195
|
+
"habilidades/proceso-modular-split/SKILL.md": "2ede321545b53721ddeda31f186843d97274b9adbd52f52ca33cb8db143b4ad2",
|
|
3196
|
+
"habilidades/prompt-engineering/SKILL.md": "b104ef8326950f0b456b115d2a83d6c67a085ff235db9d410bd5e9c913fe5db4",
|
|
3197
|
+
"habilidades/protocolo-revision-swl/SKILL.md": "456232d1ca1f40fae9dd51fb6da1a9aefec641a93450688e32df4884a67097e8",
|
|
3198
|
+
"habilidades/rag-arquitectura/SKILL.md": "163dc5a65dbfd38935a0d0388338c35898fdd095d33bce671b7fdc349f1f0d1b",
|
|
3199
|
+
"habilidades/rails-experto/SKILL.md": "c80d012804c070bcaf3b6b7a749f67d6f7b5bfa9a32246a743ecca5a494c34e7",
|
|
3200
|
+
"habilidades/react-experto/SKILL.md": "90ab3df1f9e2b590362bd0088d3f1e700b22f40e15adee85f814adbfbad4255d",
|
|
3201
|
+
"habilidades/react-optimizacion/SKILL.md": "4d26faf586b2404db7e48b59548eb33cd41bb0163af966886a83b733afac1f8a",
|
|
3202
|
+
"habilidades/redis-experto/SKILL.md": "bd78eb53366e6f3da5c79017ac3942a1b2b0d38b56671aa506d054aef1d1a7e7",
|
|
3203
|
+
"habilidades/reducir-entropia/SKILL.md": "8152a0de3c5d5406e3ce5bdeb1530119a31f5788fabdd671e2d2f1e73475d2f8",
|
|
3204
|
+
"habilidades/release-semver/SKILL.md": "94bc804b5e51352777d08afc60636cece5bbf76d6d2d5e3bed66acca15b604a0",
|
|
3205
|
+
"habilidades/rust-experto/SKILL.md": "79a2591d50678b72fecdf07b713c3ddbfcecef28667ef28eec0daa9c78b8a18c",
|
|
3206
|
+
"habilidades/rust-patrones/SKILL.md": "c58a1b9467aa9d3056e066a997908ba876c65a0fdae8697f2d36f3569a3acc2a",
|
|
3207
|
+
"habilidades/rust-testing/SKILL.md": "fee2f695d0be176d1cfaff207933969e983782beb075d681baa4ee9b9a0b0031",
|
|
3208
|
+
"habilidades/seguridad-skills-ia/SKILL.md": "af5988b859e7336bb59da30c9380e34240e6cb829f463f6761854a7c427305df",
|
|
3209
|
+
"habilidades/sql-optimizacion/SKILL.md": "2fb04e9aa1154d5ff44eea5dbcd578561ce79649c96fd04f21e4bcb4b5dc8688",
|
|
3210
|
+
"habilidades/sre-patrones/SKILL.md": "96caebd46b0c1e38b6671c0dcd115e454425da180ead5765e5d88ca39b5e8f57",
|
|
3211
|
+
"habilidades/state-inconsistency-auditor-swl/SKILL.md": "7abcac8e33415db401b4ec6358a49d629524f2e2dcdffbe1fa8d8ce681153fba",
|
|
3212
|
+
"habilidades/stripe-pagos/SKILL.md": "0a2398ab2ea456a401315cc7bd10bc75efbe7ddc7d2578e0ade4b550ba7bbb99",
|
|
3213
|
+
"habilidades/structured-outputs/SKILL.md": "b60c51314b01ace68bd9091b10e5063ea119cb86c5da742d44918c61c2f06c01",
|
|
3214
|
+
"habilidades/swift-experto/SKILL.md": "e7eb701f8e97e249f34ab086a50f32acc7b73f1e3173f2f630f67d1f8ddca02e",
|
|
3215
|
+
"habilidades/swift-patrones/SKILL.md": "9317a34e80dfd3725be11b96d4daf3b7a5dc99a931edcd1b8a9bf93683e23ce7",
|
|
3216
|
+
"habilidades/swift-testing/SKILL.md": "97d0fe9334f8da9d84898eeab5d718a8ab061c5f1b84cb3fa9f29d4ff4c608e4",
|
|
3217
|
+
"habilidades/swl-claudemd/SKILL.md": "0cecf17c5394f61fb81ed72b0faa90490fcc03077b1d981476da85952c220e70",
|
|
3218
|
+
"habilidades/swl-dashboard/SKILL.md": "9ad0da0013e428c80664e80ebdfaabff49aa6d976834175f7c2f9c1dd5ee2800",
|
|
3219
|
+
"habilidades/swl-markitdown/SKILL.md": "6d8fd5e59e8ce3f94877cecdd34c83ffee0bcd90ad51bdad809fa77ce1d6a841",
|
|
3220
|
+
"habilidades/swl-revisar-impacto/SKILL.md": "bff7589944a4304046d0e812ba829b21871be080d39bdfe7cc76b112ce74fe53",
|
|
3221
|
+
"habilidades/tailwind-experto/SKILL.md": "42a2bb9f48ee73aff928053de1f7635dba5d3360da18df516c2d03ed4b30ed21",
|
|
3222
|
+
"habilidades/tdd-workflow/SKILL.md": "b67f3467a755a131809e7698f782e128d77e8f8d0f345da7e325041353e6b543",
|
|
3223
|
+
"habilidades/terraform-experto/SKILL.md": "be89eb4d2e14fdab3cb005c5dd46548171c9b783088e87e26f403908cec9a49c",
|
|
3224
|
+
"habilidades/testing-python/SKILL.md": "858eca33f9e1189ff94399b19e9835919ca190c51c1f1fa49531cf56fd2965a4",
|
|
3225
|
+
"habilidades/threat-model-lite/SKILL.md": "5809eda4d3ddf9f8b78689eb21f9f13dcdadd1eab2d801838f1fa02580690f55",
|
|
3226
|
+
"habilidades/tracing-processor/SKILL.md": "caa8f914453b4bc5edd75ebcac32a3633967237d9201eb9fb58223432caac3d5",
|
|
3227
|
+
"habilidades/tracking-measurement/SKILL.md": "f846c543a9eeb1442cbdbebaaa195fdeff2bd6acec1902620bc31308899f7e8a",
|
|
3228
|
+
"habilidades/typescript-avanzado/SKILL.md": "698088688f40116f1f82470933f5fbe1afe79ff1d45a4ac17d86619f95f481bd",
|
|
3229
|
+
"habilidades/typescript-diagnosticos/SKILL.md": "798a564878c60f567082cc87e45d0924494d1790892d613a1a825605f6e4a298",
|
|
3230
|
+
"habilidades/ux-diseno/SKILL.md": "e1bf67fa394905cdc89eb9ac21a47393f4cfe6cea57f0105e40ec5f0bba10b90",
|
|
3231
|
+
"habilidades/validacion-ci-sistema/SKILL.md": "9862d2e4bc00dc85156227592d60a0be1f1a2d1feab4d6ed28fa9510834bf66b",
|
|
3232
|
+
"habilidades/verificacion-evidencia/SKILL.md": "4f88c6872b95c250f8ec27fd57e05da1e6650acf3eeda9a411dc1493073a9da7",
|
|
3233
|
+
"habilidades/verificar-trabajo/SKILL.md": "22fe8740b1bde2aba898be558968feb1a51cbaf968b30255c8b84c9d2fe5bb4f",
|
|
3234
|
+
"habilidades/web-fetcher-routing/SKILL.md": "06d6e3b1a880732a9b0584e1e4c98488e81d0863d53ef3be3eaa147116e2c203",
|
|
3235
|
+
"habilidades/wiki-conocimiento/SKILL.md": "59870d616701f90265fe7d5695ec744390dcd0875ebd989309cf37e3a34aba87",
|
|
3236
|
+
"habilidades/wireframes-flujos/SKILL.md": "7655d0941b5a6ac0d922517b349ff71a4febdb09ca4c8f7c09c6183ddff23743",
|
|
3237
|
+
"habilidades/workflow-claude-code/SKILL.md": "179e4c4e6ee657bbc2632bded91ed11e96d7edeab402be1e72a5394764767c69",
|
|
3238
|
+
"reglas/accesibilidad.md": "21914b99f001d3bfc38a39f609bbafe4c58846d3617fea68a7156a29dc58d9f6",
|
|
3239
|
+
"reglas/analisis-previo-tareas-grandes.md": "1c4e98c21a8ca762fa7671596f94a79a31da47e1eec5f0d318325f5b56a0d958",
|
|
3240
|
+
"reglas/analizar-directorios-antes-de-escribir.md": "a9bfbc46de3477f51a3746dbc466019541597bc00fef2eba8d06ddfe5dcdb6c5",
|
|
3241
|
+
"reglas/api-diseno.md": "51502fc461db962bf8da67c78fca9a4665e49058f91b5acba46d4f0bcddfa11b",
|
|
3242
|
+
"reglas/arquitectura.md": "171fc565fcb382cc80693fd8d89874e47b9f83c68af31d6bf5b3b5ed5f806d9c",
|
|
3243
|
+
"reglas/arreglar-al-detectar.md": "e2089d48eba9059a9567be7b93050b0c378f08637a4aaf411882ae450024d2f0",
|
|
3244
|
+
"reglas/auditorias-documentales-estructurales.md": "1cf2c6f30a34fd15c5197d121f77339fa787ce5da4d34a9c5ae14b333bcae7ae",
|
|
3245
|
+
"reglas/brevedad-output.md": "094b981711cef8b6111db47d0a79260f48f773f6582927a235d74fabb062489f",
|
|
3246
|
+
"reglas/cloud-infra.md": "eb46c31abfa0f000408d7552b1bf1d67acc8f98daaac7f5286fee8b5935ac71b",
|
|
3247
|
+
"reglas/consultar-vault-primero.md": "19c751d1ff2752000d5bde8ce503f5afc14c34c8e997df9c8d9dd02b7ab41ae1",
|
|
3248
|
+
"reglas/debatir-antes-de-aceptar.md": "75de5eeb6f738183bbd7a1ab1b124454db30ba79d1dca35ada3525e030b6d2ed",
|
|
3249
|
+
"reglas/docs.md": "708d80d99e0403147bd88609689159cf015034fbb0a47b3b3cd95be037b5f2b0",
|
|
3250
|
+
"reglas/estilo-codigo.md": "fa7672b16d458b6219a813238fd18a166bc2316b9f72ce880bfa4dbe223f8f31",
|
|
3251
|
+
"reglas/fragmentos-compartidos.md": "8dc096ff475b4292373b3906ad4b82a04c4b68394d8f96e6697466924da19928",
|
|
3252
|
+
"reglas/git-coauthor.md": "1f1733d13866771d86bc15f55f5009330b3e274fa31f9a241b226c3888f6fd57",
|
|
3253
|
+
"reglas/git-workflow.md": "112f0f0cb3648fa782ff2e9801dc3b718c86e6fefe1b771511e83e2e28bef8e7",
|
|
3254
|
+
"reglas/gobernanza.md": "51d089be0010c5aaa75dd55620600b0c65df813249a31ba2387160b7981f22d8",
|
|
3255
|
+
"reglas/hooks.md": "66d010b169e7617aa50b28c29f9d8e0ad22379c08b79ba357978bd7c32eeece6",
|
|
3256
|
+
"reglas/intent-engineering.md": "2f6795ec03ced68725ac0ee830d96d9259c418dafd80d1782ddc6db42634388d",
|
|
3257
|
+
"reglas/markitdown.md": "0cfb395b9a4ed704767b5b4eab90f5f2bffba14ec80be189918f32d781abd330",
|
|
3258
|
+
"reglas/memoria-consolidada.md": "c640388be5ab5ff5f85b4d4871d58e3e3d3fb600398c2c6d60fbb9947a6d8f33",
|
|
3259
|
+
"reglas/monitor-ci.md": "a22628c6072002204df6dbb5faa69aa217ae835fe2d06062a4ee50f224085c81",
|
|
3260
|
+
"reglas/patrones.md": "d70e9fd42674c03b1dd9d21f5d69188332ba6a7a5b80134580110c812e8cf710",
|
|
3261
|
+
"reglas/performance.md": "63597cffcb5a009c42a3b2030abac116a5dc6fa4526dd9c2d5a62ad59b1c21b5",
|
|
3262
|
+
"reglas/pruebas.md": "eb139cd7dce77fb97f0fe331064ff8ef79632b0dcefb252739280c2c53ad30d1",
|
|
3263
|
+
"reglas/registro-componentes-nuevos.md": "42b1d16a1bf57ce52b7a2715fc3acff78e683ab3851ba7a71e30d0b9cff36903",
|
|
3264
|
+
"reglas/seguridad-agentes.md": "8c35d7e0b5d11310cc46883457a42c1516986f247dc93ec5be5ae415cd97df25",
|
|
3265
|
+
"reglas/seguridad.md": "c4a847e2d7ff25502cace204a548311cc9e8ea9e2d2f8061123d50372661004a",
|
|
3266
|
+
"reglas/sesiones-paralelas.md": "f645c8da45ea2ca7e8b14bef865a475e8718c98c0fddc48a8e2d4c477b76a572",
|
|
3267
|
+
"reglas/sin-duplicacion-reglas-globales.md": "e9d4a753b0448112f9c97ff787710cf3648ade72a51fa712396296dbe480bbcd",
|
|
3268
|
+
"reglas/skills-estandar.md": "68bb4adc0c9ccab26955013672fa1d1a86edc87c703355b74656669c74c03c2a",
|
|
3269
|
+
"reglas/testing.md": "e0e85a952dbf5598b49ccc540cc41d332b29355aedd3d20f0252febe1e2e4faa",
|
|
3270
|
+
"reglas/tests-cleanup.md": "07c0d2344c7937b480deeeeca83f9b2e31de904a17d41fcfffbce555b933c690",
|
|
3271
|
+
"reglas/usar-code-review-graph.md": "5b76480debf58d747e68f1a26a787f567beaaa2af028d6dfd57a6f8da22e33ec",
|
|
3272
|
+
"reglas/usar-context7.md": "8e3d3a051e2a53e02b98c54af3f95a95e0695fb99e5d6d50792da5d6b2c28861",
|
|
3273
|
+
"reglas/usar-sistema-swl.md": "00fe741ca5d64d2e57fee0245333618cbb1d212e6aea74f47b64e2340dfbc6c6",
|
|
3274
|
+
"reglas/verificar-citas-normativas.md": "6e0697c4a38d3a2c55b7f0cf26193fe3bb246b901d93ce4f4bd7b8c297982140"
|
|
2947
3275
|
}
|
|
2948
3276
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saulwade/swl-ses",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con 60 agentes, 182 habilidades, 45 comandos, 77 reglas y 49 hooks. Soporta 11 lenguajes y 7 runtimes: Claude Code, OpenClaude, OpenCode, Gemini CLI, Cursor, Codex CLI (soporte completo); GitHub Copilot (soporte parcial). 100% en espanol (Mexico). Multi-target install (--target CSV / --all-runtimes), autoconfig MCP en Cursor/Codex con --with-mcp, agentes Codex en TOML, hooks Cursor (17 eventos) y Codex (6 eventos). Gateway bidireccional con relay Telegram y auditoria profunda Nemesis con loop evaluator-optimizer opt-in (ADR-0021) y 8 tools ejecutables. v1.8.0 unifica los directorios runtime de .planning/ al ingles (evolution/, auto-evolution/, user-profile/, archive/), manteniendo fases/ en espanol, con guard validar-planning-paths y allowlist canonica (ADR-0031). Hereda de v1.7.4: skill calidad-anti-patrones-universales + scripts/lib/pr-analyzer.js + 3 sub-secciones en estilo-sin-ai-isms.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"swl-ses": "bin/swl-ses.js",
|
package/plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swl-ses",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.2",
|
|
4
4
|
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot. 60 agentes, 182 habilidades, 45 comandos, 77 reglas y 49 hooks. 76 librerias. 11 lenguajes. Soporta Claude Code, Copilot, OpenCode, Codex y Gemini CLI. Loop evaluator-optimizer en /swl:nemesis (ADR-0021). v1.8.0 unifica los directorios runtime de .planning/ al ingles (evolution/, auto-evolution/, user-profile/, archive/), manteniendo fases/ en espanol, con guard validar-planning-paths y allowlist canonica (ADR-0031). Hereda de v1.7.4: skill calidad-anti-patrones-universales + scripts/lib/pr-analyzer.js + 3 sub-secciones en estilo-sin-ai-isms.",
|
|
5
5
|
"author": "Saul Wade Leon",
|
|
6
6
|
"license": "MIT",
|
|
@@ -57,6 +57,22 @@ principio:
|
|
|
57
57
|
- Si encuentras código adyacente que se quedó obsoleto por un refactor previo,
|
|
58
58
|
actualizarlo. No dejar deuda residual.
|
|
59
59
|
|
|
60
|
+
### Fix de clase, no de instancia (barrido por patrón obligatorio)
|
|
61
|
+
|
|
62
|
+
- Si el bug corregido es un PATRÓN (regex incompleto, umbral mal calibrado,
|
|
63
|
+
construcción de path repetida, gate copy-pasteado) y no un typo puntual,
|
|
64
|
+
el MISMO turno incluye un `grep` de todos los hermanos del patrón en el
|
|
65
|
+
codebase y su corrección — o el registro explícito de por qué no aplica.
|
|
66
|
+
- Arreglar solo la instancia que falló deja a los gemelos esperando el peor
|
|
67
|
+
momento para reventar. Evidencia doble (2026-07-03, swl-ses): se corrigió
|
|
68
|
+
el gate de reloj de un test sin barrer la clase → su gemelo tumbó el
|
|
69
|
+
`npm publish` de v2.4.0 horas después (bump de coordinación innecesario);
|
|
70
|
+
se corrigió el scope fantasma en el doctor sin barrer → quedaron 7 sitios
|
|
71
|
+
más con el mismo patrón, incluido un uninstall-wizard que ofrecía borrar
|
|
72
|
+
la instalación global de Claude Code.
|
|
73
|
+
- Es la aplicación a FIXES del "sweep por patrón" que
|
|
74
|
+
`verificar-citas-normativas.md § Familia 2` ya exige para reportes.
|
|
75
|
+
|
|
60
76
|
### Al detectar un error ajeno al trabajo actual
|
|
61
77
|
|
|
62
78
|
- NO bypassear (excluir tests del glob, comentar checks, `|| true`,
|
package/reglas/pruebas.md
CHANGED
|
@@ -86,9 +86,13 @@ Reglas del AAA:
|
|
|
86
86
|
latencia en un test:
|
|
87
87
|
- **Warm-up**: descartar las primeras iteraciones (cold-start de JIT/FS-cache).
|
|
88
88
|
- **N ≥ 50 muestras** para un p95 estable.
|
|
89
|
-
- **Umbral
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
- **Umbral de ORDEN DE MAGNITUD (5-10× del presupuesto)**: el "≥2×" que esta
|
|
90
|
+
regla recomendaba resultó corto en la práctica — bajo la carga de
|
|
91
|
+
`npm publish` (suite + smoke + disco simultáneos) el 2× reventó DOS veces
|
|
92
|
+
(p95=208ms vs gate 200 en v2.3.x; p95=531ms vs gate 400=2× tumbó el publish
|
|
93
|
+
v2.4.0 y forzó un republish de coordinación, 2026-07-03). El gate bloqueante
|
|
94
|
+
solo debe atrapar regresiones de orden de magnitud; el presupuesto fino se
|
|
95
|
+
OBSERVA en el p95 impreso en el mensaje del assert, nunca se asevera duro.
|
|
92
96
|
- **Mejor aún**: medir-y-avisar (benchmark/log) FUERA de la suite bloqueante;
|
|
93
97
|
el gate duro detecta regresión, no afina el SLA.
|
|
94
98
|
|