@saulwade/swl-ses 2.5.1 → 2.5.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 +1 -1
- package/README.md +1 -1
- package/llms.txt +1 -1
- package/manifiestos/canonical-hashes.json +330 -0
- package/manifiestos/skills-lock.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/evidencia-valor.js +14 -6
- package/scripts/field-report.js +17 -1
- package/scripts/instalar-git-hook.js +8 -1
- package/scripts/lib/evidencia-valor.js +42 -3
- package/scripts/tui/index.js +10 -1
- package/scripts/tui/pantallas/inspect.js +1 -1
- package/scripts/tui/pantallas/install-wizard.js +21 -8
- package/scripts/tui/pantallas/uninstall-wizard.js +1 -1
- package/scripts/tui/pantallas/update-wizard.js +1 -1
- package/scripts/tui/pantallas/welcome.js +1 -2
package/CLAUDE.md
CHANGED
package/README.md
CHANGED
package/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# swl-ses (@saulwade/swl-ses)
|
|
2
2
|
|
|
3
|
-
> Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo), distribuido como paquete npm y plugin de Claude Code. 61 agentes, 181 habilidades, 47 comandos, 37 reglas base y 49 hooks. Soporta 11 lenguajes y 7 runtimes (Claude Code, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot). Versión 2.5.
|
|
3
|
+
> Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo), distribuido como paquete npm y plugin de Claude Code. 61 agentes, 181 habilidades, 47 comandos, 37 reglas base y 49 hooks. Soporta 11 lenguajes y 7 runtimes (Claude Code, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot). Versión 2.5.2.
|
|
4
4
|
|
|
5
5
|
Archivo generado por `node scripts/generar-inventario.js` — no editar a mano. Las cifras se sincronizan con INVENTARIO.md en cada regeneración.
|
|
6
6
|
|
|
@@ -4261,5 +4261,335 @@
|
|
|
4261
4261
|
"reglas/usar-context7.md": "cb8ed33b421d06e6e4e6d4de44acd6fe810f84369ef66f91111cf88ffd0457a3",
|
|
4262
4262
|
"reglas/usar-sistema-swl.md": "c33a267ee995a958fc2a590686acf297bcd75ed3bd5eb0533ec4da55e2893051",
|
|
4263
4263
|
"reglas/verificar-citas-normativas.md": "51ca9c6c2d3bb653c2da792aea61054442fcb8bef25eb29cd7e491adb2ceb8e3"
|
|
4264
|
+
},
|
|
4265
|
+
"2.5.2": {
|
|
4266
|
+
"agentes/_intent-spec.md": "58df2403a0ebc66d487423732080e615698325f300b98fd9f7734fb4ae55a6a2",
|
|
4267
|
+
"agentes/_propose-step.md": "298c946f947b557088cedb3fd2631fda756a91510a39e0a3c95a9610e6d3eeba",
|
|
4268
|
+
"agentes/abogado-diablo-swl.md": "9a22a7b545f6b1e95df949568373a58bd31878ec6a16c2a1bc5ef38f74e09238",
|
|
4269
|
+
"agentes/accesibilidad-wcag-swl.md": "24006fae669fb20fe10af9940fad32f787eadf0ac29ae098d9c987c9e51021ad",
|
|
4270
|
+
"agentes/arquitecto-swl.md": "48993081af28f19a390f2729d4f3824abe6a7ac8b6c4c73e6547b149b249dac0",
|
|
4271
|
+
"agentes/auto-evolucion-swl.md": "7d8a5c0b146f09514247679eb376adebb3f4d11ceab28b792160ce0eac2ffbc5",
|
|
4272
|
+
"agentes/backend-api-swl.md": "97939a5dcef33b178946ca4b35f9676280ccb6c1bd297bf9d443a38315180392",
|
|
4273
|
+
"agentes/backend-csharp-swl.md": "3237e94e41884d70b0b010a818dc7e3e38d59b766106601e29dd8f43f1838411",
|
|
4274
|
+
"agentes/backend-go-swl.md": "17d689bd29eff9192eed64cf54f0d1799c473b8ecec24c086a529bf1da93c6b3",
|
|
4275
|
+
"agentes/backend-java-swl.md": "17aa34a8cb86cb47b7cad84c44c57e1228473188baf522b67baa717ea93f1590",
|
|
4276
|
+
"agentes/backend-node-swl.md": "634d1d57564ef44991cfbbb4a6428956e0a23b3f1d945a50a235b68b7eaa1ba5",
|
|
4277
|
+
"agentes/backend-python-swl.md": "b6eaf68a738b0e5ae6d6613954b3181d46fad942ba4bdc8d309fd5c792d015d0",
|
|
4278
|
+
"agentes/backend-rust-swl.md": "fdb2bb491a00a60e6ab20671be4a4e7e837f452d47e2952493435d6e32752426",
|
|
4279
|
+
"agentes/backend-workers-swl.md": "e35e478e38d6c1a51f633eef6c7c2ca467243c7366347ec4e45022fea031485c",
|
|
4280
|
+
"agentes/cloud-infra-swl.md": "7cef2e280776379fc589c0e3e33627c07a2e1a5c19ea4036ccf7bf350966193d",
|
|
4281
|
+
"agentes/consolidador-swl.md": "7d6ced625a3d899350de33dd5727cd3c89c3a63da8901d78495b8ccec8464e92",
|
|
4282
|
+
"agentes/datos-swl.md": "6a81b554260edf409d1ae855d9bf4a9a00e3a9f2f111b3433e556345e5529b96",
|
|
4283
|
+
"agentes/depurador-swl.md": "27eeae99f4b3f26860c18949e7fb7ea7537995845f6bec8dbfe54897407cbc0f",
|
|
4284
|
+
"agentes/devops-ci-swl.md": "84d3c84010b9b47ca332e0e6f0d5da17375a25fef8ddbc85638e0e6ab56d756d",
|
|
4285
|
+
"agentes/disenador-ui-swl.md": "031d87e99b87e576454d40f48ee32677bc17aee68e155db866ef8a6d56918557",
|
|
4286
|
+
"agentes/documentador-swl.md": "80abaadcbb752e868776e6548904732e9212398be7a45df83b0636bd16531bd3",
|
|
4287
|
+
"agentes/frontend-angular-swl.md": "4a5ce572812ef5f67547413be9edfb3667a0791ebcdfbb807ed708e5bba02748",
|
|
4288
|
+
"agentes/frontend-css-swl.md": "4a8ab0555d5fa6c95abea8e734f93d964010c28d63377de89c7e282754fe2222",
|
|
4289
|
+
"agentes/frontend-react-swl.md": "b15d0d13e09e21aa1f17ea57f182aa1fcd88aa9a6fc4c5b0d7938570d66de2fd",
|
|
4290
|
+
"agentes/frontend-swl.md": "d05c83c133512338e6bdd2523d974fbbfa48d62358d0523e76981c22c4c9ea8a",
|
|
4291
|
+
"agentes/frontend-tailwind-swl.md": "2ebe3f459d93e4465dbdd31f56f4e5d7c22f828fba4cf118c5db2711e25e0371",
|
|
4292
|
+
"agentes/gh-fix-ci-swl.md": "ac670180c562a98aaeaec87e48034652c8d52af6ed8eca7813f3c8a39e4977a0",
|
|
4293
|
+
"agentes/implementador-swl.md": "9d1f1d71ec843bbbd31623cfdf0104b2fe05fd78269f33692a008b6ce4ebf584",
|
|
4294
|
+
"agentes/investigador-swl.md": "20f28f81926f59f3dd2f0805e5459259ebd6249568a0f2c6616687186266a90a",
|
|
4295
|
+
"agentes/investigador-ux-swl.md": "73b1c3324f1213d5d6e88c584b54c5a7c310838b55ed137a0a80d279210545c5",
|
|
4296
|
+
"agentes/llm-apps-swl.md": "86ea63545d97375447b012ee26369422d2115af3b20585c9749543dfe1811264",
|
|
4297
|
+
"agentes/migrador-swl.md": "bd40365cc17a4096c3c8139c29cb11298f4ee24a54b415dd24294ce45b39024d",
|
|
4298
|
+
"agentes/mobile-android-swl.md": "8c177f66b7a78c81f26b49c54aba65a7f9803e4902158ef2f7827f6ccd03f06f",
|
|
4299
|
+
"agentes/mobile-cross-swl.md": "77ecc39fdb88f17a44e2e703fa7f0ba5887e1dd840b3590a11bdc019ece4fc58",
|
|
4300
|
+
"agentes/mobile-ios-swl.md": "e8234ee3647ff774ba278587c3e0bb85823b6d604f03799ea415826e4a13a8e5",
|
|
4301
|
+
"agentes/mobile-testing-swl.md": "86d8d5f407d5d2d439f0154087dac6c383e74d4af0a3aa8c4487ad902ca67f0f",
|
|
4302
|
+
"agentes/nemesis-auditor-swl.md": "ef0eddf5936a6b0f4169b694c0f759e6d4d1ef4824e10739cd09330eece3731c",
|
|
4303
|
+
"agentes/notificador-swl.md": "78e68755e266977c93f8e4c9b119c62a2824c9928d64695d7de720144101547f",
|
|
4304
|
+
"agentes/observabilidad-swl.md": "860cc205da0dcb2eeb481d493e5b6d635d085c4c70e9d3e3e8a9a1a1c2049fc2",
|
|
4305
|
+
"agentes/orquestador-swl.md": "d3167c6eb3de4e84e387f46047d4ba6e4eece32f29a4dc88614a27f80f09f3b0",
|
|
4306
|
+
"agentes/pagos-swl.md": "2a20b5526897d09e003e2d64f024a5b4ba31e0d42504ba2356705af376d95c10",
|
|
4307
|
+
"agentes/perfilador-usuario-swl.md": "9db8999e9a15c95c818cd5cbbc955153ce2e12cea2d5065ed31e118e4a31709e",
|
|
4308
|
+
"agentes/planificador-swl.md": "3c20b17b8de75581c15eb5639a9aa2b7cf5ec485a87a517138c01825432a57a0",
|
|
4309
|
+
"agentes/producto-prd-swl.md": "04610ec4ebd7709afb6a618003a9e81f051c723a6bceacd012fc786ed0a98616",
|
|
4310
|
+
"agentes/red-team-swl.md": "84bd31dd7796c6f376b3418a795677f23fa63a2968df57c9059d1a68dc9e015d",
|
|
4311
|
+
"agentes/release-manager-swl.md": "7e8ca0f3191f825638d1bcd75dd0b7996feb194fac22233414b65afa772bae38",
|
|
4312
|
+
"agentes/rendimiento-swl.md": "24069e09a91f635a39455edc3c65cc20ef8818e6f7c2edfc3f6c8439c620c0bd",
|
|
4313
|
+
"agentes/resolutor-build-swl.md": "502333f6fccc9a0f614ebc3d18e687a0fa10674a1e1c45f31be05af62c8e501f",
|
|
4314
|
+
"agentes/revisor-angular-swl.md": "b013fcf9af9f53072aabaecd9c1d9f8947a9330a1981e0962c6963a2bce5bea0",
|
|
4315
|
+
"agentes/revisor-codigo-swl.md": "73a615c62c9dcb14002bc9f4a51b80742c9fad29dd65714dbf1dfc7b2e13905a",
|
|
4316
|
+
"agentes/revisor-csharp-swl.md": "11802e8bde11f499412e71f31f0b42f4fa66b587d62247297e99e2f4050268d9",
|
|
4317
|
+
"agentes/revisor-go-swl.md": "1038cad186ea7db2d47eb86be4c41d72216ef41202fd11260f3d24a2c77490d6",
|
|
4318
|
+
"agentes/revisor-java-swl.md": "1dc3bc9d311cee4d15c16307765a7db26ee0c4c36086be3d16a4e0ba31c3f61d",
|
|
4319
|
+
"agentes/revisor-kotlin-swl.md": "050ac7f903fb02b087e5cec730d637404a44384b21f1632e147c2f5f5b1c9933",
|
|
4320
|
+
"agentes/revisor-nextjs-swl.md": "d04b77677e8d27749aed527f3f86228e8add00e4f05bda3289fe006188d90c5b",
|
|
4321
|
+
"agentes/revisor-php-swl.md": "f15a13fd11e64ddfab59af4886c947c410624f8c083bde7cc3f1bde0208e3769",
|
|
4322
|
+
"agentes/revisor-react-swl.md": "c39ac757c529fc84633edd47bdaceba2dcbcb2a9f9c2bc65b8dfcc8cd8eb441b",
|
|
4323
|
+
"agentes/revisor-rust-swl.md": "f84c36d280a3b57d141538ef7e9fd47013695c6563add05d30e852e41df6ad7f",
|
|
4324
|
+
"agentes/revisor-seguridad-swl.md": "7418ee59f51d9b13eecc5035365b4a36589ebdcb4e79b736138c9f7c62c50b1a",
|
|
4325
|
+
"agentes/revisor-swift-swl.md": "fd5275103beadf5694826738ff1e33a80aaca94c197921aabf1cddc4e0fd8b24",
|
|
4326
|
+
"agentes/revisor-typescript-swl.md": "ce1a1d1780248cfba579cee0177fcb38d679e9a65152efad60723ac08053f252",
|
|
4327
|
+
"agentes/sre-swl.md": "9d2c4af8966cad8acbaad95aecae2284096df3faa126f11e9716e83a8f08fc7c",
|
|
4328
|
+
"agentes/tdd-qa-swl.md": "965a53422d4895c4686d7c1811f1c528e0191e0cafabdfc8c85e3d5c604eea37",
|
|
4329
|
+
"comandos/swl/actualizar.md": "f117df8229b10ecdf28a136e911df0379625f6600d86a56e2ab671c704204105",
|
|
4330
|
+
"comandos/swl/adoptar-proyecto.md": "1791d295edd993a01a17c107b8565e3d4126785993caa56c2ef6b6db9834e0b0",
|
|
4331
|
+
"comandos/swl/aprender.md": "4423090d813aa16a3de3ae86af57b17c24fce9b4250e158609003217bfed533d",
|
|
4332
|
+
"comandos/swl/aprobar-plan.md": "72b7c4e5ba033ad2ed18db589eca9e24cebc40bb2f26676fb2f02e4e9a4a194e",
|
|
4333
|
+
"comandos/swl/auditar-deps.md": "6fbe283ce326f90f09fa812c7e4f56b4debcb46ad1aebb4cf0856eed8ffff46c",
|
|
4334
|
+
"comandos/swl/autoresearch.md": "8964576a5bf2f2ad3119a692192c46e6f84338b758f80f8b5e9415df73f3a3f8",
|
|
4335
|
+
"comandos/swl/ayuda.md": "320dcfbb40522468b7e3358937d7e33287ffd56254a1815b12151af8266d742a",
|
|
4336
|
+
"comandos/swl/brainstorm.md": "81379eddb6194314ca9192842ea3012dbd8ed5d13dec5453541da6a0ddd3fa67",
|
|
4337
|
+
"comandos/swl/briefing.md": "a5d330736de160c9cf7da208921066c8a170ede310c4748000af331d5c4d9ecc",
|
|
4338
|
+
"comandos/swl/checkpoint.md": "91af22712265c8945c224718d0287ac21efad8aced174cea1a0a6c4cc7c70c91",
|
|
4339
|
+
"comandos/swl/claudemd.md": "5bae75e77485989f9d9ff09f597fe0010db912e8c34187be6e459b0bbc09c9f1",
|
|
4340
|
+
"comandos/swl/compactar.md": "06baecf464627a45481813bb204dadd560fa45a8a09a2bc47480e6dc0f8cd9f7",
|
|
4341
|
+
"comandos/swl/configurar-ci.md": "ba7b25d80146b38bb4b81885673438fbc2aa72531781046a04781bb9c99d1732",
|
|
4342
|
+
"comandos/swl/contexto.md": "0e664d1d84f995eed4e02925e88c4b137f8f2892193d3be050a5a581443ade76",
|
|
4343
|
+
"comandos/swl/contribuir.md": "37fd17e3dc8cd8b51a0997df66c527eeb41f92abcd63ef032a5da8df4f70ed0f",
|
|
4344
|
+
"comandos/swl/crear-skill.md": "6689efac053de2c80f05182f34c8ddb7ec4f81dba9f3479166cf7bf9f003d71b",
|
|
4345
|
+
"comandos/swl/cron.md": "414d88ea3af453b90386421e1f569cd720b3414afd049afe96fff085d9870667",
|
|
4346
|
+
"comandos/swl/deuda-codigo.md": "b65cad0f234dcb348f3f403828e79ace57ee1a39084e3d79e4dadc6c41e1ba1d",
|
|
4347
|
+
"comandos/swl/discutir-fase.md": "5f691cf22cede099fb98edaa27ae6628c25777102ad21427cb601846a38cdc50",
|
|
4348
|
+
"comandos/swl/ejecutar-fase.md": "eea239bc28a7c8566c3337496e7cef04997585f6061cdc152a1fe7a7f4850f29",
|
|
4349
|
+
"comandos/swl/evaluar-skill.md": "544a3b79d4e219bed22cdd266ebdbb91906f6ff71f5987f7ef5723cf39f7d5af",
|
|
4350
|
+
"comandos/swl/evolucionar.md": "62c0b06930d3b9d8cb876f6bc84a0a919d2193c69e6c2df7b89860c54b08b845",
|
|
4351
|
+
"comandos/swl/exportar-vault.md": "23156a79b69e2d85e0e5039dac3f1692780c3ac91ba6c1f715302b8e6eaed26c",
|
|
4352
|
+
"comandos/swl/fix.md": "061929a8131024ea213e633c93b26c761392f5ecca9bf7772d46d6f148c2c55f",
|
|
4353
|
+
"comandos/swl/gateway.md": "a995dfb3f3423ed01f541c26770ec4c4a9baab659e8f4e4b5bfea0b29adbdecc",
|
|
4354
|
+
"comandos/swl/inbox.md": "d688b03288a55a30666a8481a9a6f9563840f7a06c7c365c50f72c064d058370",
|
|
4355
|
+
"comandos/swl/instalar.md": "530925d89ada0503f39fb8af8fc2370e048003c830db3885033d1a8550112474",
|
|
4356
|
+
"comandos/swl/instintos.md": "34557efe6c7afcb843714c87b0b6f1c107285f0e081c7b158f4907746b78719a",
|
|
4357
|
+
"comandos/swl/mapear-codebase.md": "bc831928549709c2aefb7cd3bea04266f813bedffb961b893ee4012e4231fac0",
|
|
4358
|
+
"comandos/swl/mcp-status.md": "42d8e4169d1d8b49ba11c84fabe0615b213c9e6f3655a5a84cf726558098bc6f",
|
|
4359
|
+
"comandos/swl/modelo.md": "471b47f907836d8069570b94a9cf39c8dd91fcf85d6107329db353e63a3438ff",
|
|
4360
|
+
"comandos/swl/nemesis.md": "37ce36153d46cd666412c35ed65f296676f2db4375c4060edd4a04b2e1d95cf7",
|
|
4361
|
+
"comandos/swl/notificaciones.md": "34da7d2c298160a85a3c5d64ea9ac6c4e060ec1be3ca1a4e3f8124c31cfb0d1f",
|
|
4362
|
+
"comandos/swl/nuevo-proyecto.md": "adece543737d10ac6ad99d8cb2d1d89a7eca43126a650ec513ef672cfcf52d50",
|
|
4363
|
+
"comandos/swl/planear-fase.md": "fb6a224a6a7d005ca0d0846cfc86e2c33560ab0a76a244c089b41f68dfe27da2",
|
|
4364
|
+
"comandos/swl/plugins.md": "03f5703ab400612bd36f6f65ba7bf0a4ecb9795435580ba5de2020c860a9200b",
|
|
4365
|
+
"comandos/swl/predecir.md": "ca4b95967825d12f9e86b250704c187d161b227bf12b9701bfe2b90744996e95",
|
|
4366
|
+
"comandos/swl/reflect-skills.md": "b15e5ae63267d67eeef260092fb0f4b8dab210544bdf60053b0f86923b961ddb",
|
|
4367
|
+
"comandos/swl/release.md": "fe33d65910719e5f9ff24fe3ddb677a2744fea15db9f30baebc5e95d63ca558b",
|
|
4368
|
+
"comandos/swl/revisar-impacto.md": "662ee411af7b63671eff5a910de4a24ea7971c87241d8648cd6fb6c2403668e0",
|
|
4369
|
+
"comandos/swl/revisar.md": "7b17679c0cadd2fca7a015c302459f7ca127dcae02a74c990cddcddcb4c15f85",
|
|
4370
|
+
"comandos/swl/seguridad.md": "b249a1dea25b2cb7ce43bb2199b07bde57387db13c0bcb2b646a617c007d611f",
|
|
4371
|
+
"comandos/swl/sesiones.md": "6674e6f488f0f308d53d099c8c5347d2fdf7729edb4d6ac855488e0cd93a3c0e",
|
|
4372
|
+
"comandos/swl/skill-search.md": "e0dc8622080ec56da2b98c1ca9f44771daf2d8870fc620edc7ea64a28b7594a5",
|
|
4373
|
+
"comandos/swl/status.md": "9aa6eb0e9bbf5e12d5cf5df5c6aed3b6faecc75196cd5a46d55aac457a28465e",
|
|
4374
|
+
"comandos/swl/verificar.md": "748b57c9a3b9f53eaa6cc2f1cc2692af646caf0d2e0403077b246800613b78c9",
|
|
4375
|
+
"comandos/swl/wiki.md": "68ae8163fa8493ff5d01b8ab281f18ae0939981cc2a88ec3b759f83efc6dfac4",
|
|
4376
|
+
"habilidades/accesibilidad-a11y/SKILL.md": "500372c367122b4d06e04254326a19b196e29d1d7d760b7a4873f136ee19a4ab",
|
|
4377
|
+
"habilidades/agent-browser/SKILL.md": "77cc3d490439ad9a3df02d6b44c45af4436c24768e8f4554ed09b57af1bb0d57",
|
|
4378
|
+
"habilidades/agent-deep-links/SKILL.md": "4fb8150dc13c0d07381701d110c259a452d6b04f981b08e0478e24c38ea9dcab",
|
|
4379
|
+
"habilidades/agentes-como-servicio/SKILL.md": "91e14245d031bfec52b657931fa370fb161f4ae7a7743bc73325f8a420861be6",
|
|
4380
|
+
"habilidades/ai-runtime-security/SKILL.md": "820e59760f7ef29761ffd9d75677e638a5df16fba8ee9fa16813f8e4a6a0828c",
|
|
4381
|
+
"habilidades/angular-avanzado/SKILL.md": "9002c549e1c5aa00726d35a332a1760192927856871e1f7b18c949075da0fc3b",
|
|
4382
|
+
"habilidades/angular-moderno/SKILL.md": "b769f81111ecf114e37e19e7a848aa9ba3e77f5b91bfa8399c7f14c1ddbed11c",
|
|
4383
|
+
"habilidades/api-rest-diseno/SKILL.md": "22898f30ca8e2aa696f9a75f58829eb4d8e7f5e4eb303ee8a981cc93406d9d02",
|
|
4384
|
+
"habilidades/aprender-de-git-diff/SKILL.md": "5be6d2288a3522833935e48d160f27c40e2695d0930869f25bca73a121ba2eb0",
|
|
4385
|
+
"habilidades/aprendizaje-continuo/SKILL.md": "8ea665d256ef1aae364b895c60e7dc193d10ea2d123833b464d54ac01c8658e6",
|
|
4386
|
+
"habilidades/async-python/SKILL.md": "7ebecd6741bc522214bc0ad2e1c29277d174d9e12b4436e66a2e34a88a2bf843",
|
|
4387
|
+
"habilidades/auth-patrones/SKILL.md": "796ddc3ab468b10d1ba8b767fc24b167368c975475d62fc3b5d2523fe28292ea",
|
|
4388
|
+
"habilidades/auto-evolucion-protocolo/SKILL.md": "d31d508d7bec1ed266e03f5cef60e1f11b661e45f7b4f43f77b06333e211ed1b",
|
|
4389
|
+
"habilidades/autoresearch/SKILL.md": "8ae3bc7530d405fc56556a761f4d3591855e79ed69078551e1ea884741fba244",
|
|
4390
|
+
"habilidades/azure-cloud/SKILL.md": "8ae0d4822703c197d25785d23ab37e844788d437b202d08503b00b296da84f76",
|
|
4391
|
+
"habilidades/backend-async-postgres-testing/SKILL.md": "6f400277bb86ccede57f647303a8e46963d591040686e1f59eb34eed5e1f801d",
|
|
4392
|
+
"habilidades/backend-error-design/SKILL.md": "3be8263e2f2a5682ff2243088bbdc9ae7e5e7df59495d39d6fed4ba246e641dc",
|
|
4393
|
+
"habilidades/backend-mcp-servidor/SKILL.md": "1db631547e77b61894d5329931369fc8271c03a1383e444117be8d9763481f83",
|
|
4394
|
+
"habilidades/backend-production-resilience/SKILL.md": "c2a4c429a370421833701e7e8d74d9413d21bf014ae45985c8c6d7259fc1a5ff",
|
|
4395
|
+
"habilidades/benchmark-memoria/SKILL.md": "d2974eef1b2f96af911d342b212b3b4affeb24a1fcbf97db9943d156de282f8c",
|
|
4396
|
+
"habilidades/brainstorming/SKILL.md": "dd2044784fa2cf1726d1a46b309717111249386c717545bbce5e78ddd7484cb1",
|
|
4397
|
+
"habilidades/browser-interaction-patterns/SKILL.md": "3a5ed2f97ad531fdd01d3ffe011e9bdf307e72b614d7372219d789d978164a8e",
|
|
4398
|
+
"habilidades/browser-research-domains/SKILL.md": "a5d16612a06cf24b13802543f789dae4a4a1c161af820edcb939f09278b7b81b",
|
|
4399
|
+
"habilidades/build-errors-cpp/SKILL.md": "048d45d249a15fbc35aa31222bdc9618e5aec2719bf856a59ac84e7fa273cd6f",
|
|
4400
|
+
"habilidades/build-errors-csharp/SKILL.md": "0ca5f92455a11a3c1185fea09b7a0cdd0d8270fe37ac7832688fe2757ea98ff0",
|
|
4401
|
+
"habilidades/build-errors-go/SKILL.md": "5564a566719d5f32fdb8e452624fdddeab118f9afde4b471ff8615e2a6d6ba5e",
|
|
4402
|
+
"habilidades/build-errors-java/SKILL.md": "40191e6120fe98d55dfdbac67350dd112810baba6ffcfc2902ae687e350fbe53",
|
|
4403
|
+
"habilidades/build-errors-kotlin/SKILL.md": "60e3033c492597b62e5359930f95a706a0c679f9a8ca52467eaebe011c826da1",
|
|
4404
|
+
"habilidades/build-errors-nextjs/SKILL.md": "1893d7452af514a8676279cc082fdef3790d136b2334429a7e3f1f668ea87343",
|
|
4405
|
+
"habilidades/build-errors-php/SKILL.md": "398391c87885aa52654e27066b5bdb2bd3c8e3e68eecd939df02b3367df9c21f",
|
|
4406
|
+
"habilidades/build-errors-python/SKILL.md": "73f65c7456c21216fde3c2df3c31a1cb5ec1999e79d9c917afd1bc11eb1bcecb",
|
|
4407
|
+
"habilidades/build-errors-rust/SKILL.md": "6192378e69787658fada7f3e191fe54b1401e234a50f943701c6b088bf509a51",
|
|
4408
|
+
"habilidades/build-errors-swift/SKILL.md": "fabc54050e42abbfdf3402b887b628c47dd0acc37062a8ceaf4494720f7797c7",
|
|
4409
|
+
"habilidades/build-errors-typescript/SKILL.md": "d0372ad6d5e6cfaa5ef487622b947a7ed4797b4cb94cc309be79c9857694b370",
|
|
4410
|
+
"habilidades/calidad-anti-patrones-universales/SKILL.md": "5047fc360759b8d894b3e5c20a344cae46562c8131267c5a59f9d8f8839ef178",
|
|
4411
|
+
"habilidades/calidad-contract-testing/SKILL.md": "dc91fc323fa1f721a5957ad72f5403987c8e49ee0dc059e987bb131e4492f292",
|
|
4412
|
+
"habilidades/calidad-mutation-testing/SKILL.md": "aa8e10f5b4bc8ed9c2faefb55d5db881f5009537e11c6b12eedd4e07dc25eabc",
|
|
4413
|
+
"habilidades/changelog-generator/SKILL.md": "192e17bd2fb16d1769a2497bcd2ef150dfd34a7872474cf340ce43d1a55a6a7d",
|
|
4414
|
+
"habilidades/checklist-calidad/SKILL.md": "4bd1ebfeaf36032cd8078900f60de8a77f55a3a5bbbacec132eab52aadb88fb7",
|
|
4415
|
+
"habilidades/checklist-seguridad/SKILL.md": "839b133a97677b0e9675776a99b6a6351133b65fd99ad6d851dbd84073996348",
|
|
4416
|
+
"habilidades/checkpoints-verificacion/SKILL.md": "58fd866b5bec6bb8c06c1a179a4c4cc90f3c55b5b578296f3af15254f44da02b",
|
|
4417
|
+
"habilidades/ci-cd-pipelines/SKILL.md": "a5a3ccaa688401b1730e972d77f435581315590299d23856ad5434780873cc80",
|
|
4418
|
+
"habilidades/cloud-aws/SKILL.md": "ec428fbc973830351543f7cbfa30bad6785c1f0f30bf3f194effcac5985beadc",
|
|
4419
|
+
"habilidades/compactacion-contexto/SKILL.md": "76a2fe8be6a5a58ae18e982bb1c1e6dfb7ed0b42e9c2733da1e7467d424e70e9",
|
|
4420
|
+
"habilidades/contenedores-docker/SKILL.md": "1c9542639dfd8bc2590bc8476ee029f44d707e769ea4d86b0f6f836e428cb070",
|
|
4421
|
+
"habilidades/context-builder/SKILL.md": "4a90f85c5f6e664171552d39dce55b9bd1ccd92eaf52913f41d71899dc096b32",
|
|
4422
|
+
"habilidades/control-profundidad/SKILL.md": "5fa212558af44aa4831f0faba3e2c87c77cd5b4bac3d3e194360c8fac40ac4bd",
|
|
4423
|
+
"habilidades/csharp-experto/SKILL.md": "8e8dcdbe80dfdecdcf125e4f466b1e09a8414e471367dc0e108c4c02198acd80",
|
|
4424
|
+
"habilidades/csharp-patrones/SKILL.md": "6886137e008f73cdd5740daead367058a0bdd1b9dacdda8b1b8d0386216dd3cf",
|
|
4425
|
+
"habilidades/csharp-testing/SKILL.md": "af5ddd9b89d3c35151fc4e45add2900fca10f3ab27b6ca29bd0a0e70c74d0df4",
|
|
4426
|
+
"habilidades/css-moderno/SKILL.md": "9ec83d8a94a9347aadd0437af5454e88f1684d5b0f7e2b1089433571ccb5ba84",
|
|
4427
|
+
"habilidades/datos-etl/SKILL.md": "a4f2b3228ab8a93d82aa9aee2a3662ed51ea858b0fb05d3e9345c12f5965a8cf",
|
|
4428
|
+
"habilidades/dbml-experto/SKILL.md": "bf43ba9e88b6f91db799fb7d1a30bfe0e973456804d8f851203c1d5e67d58505",
|
|
4429
|
+
"habilidades/dependencias-auditoria/SKILL.md": "6f6907bfa8facfd5ca9fa44f0eee05484fc7e0cb66ae09b8ac209013de0c95f2",
|
|
4430
|
+
"habilidades/deprecacion-migracion/SKILL.md": "e10a61c5b3ce9703b7fd3d06dbac0b35f89b3f8b91055d8420eefafa3541ff9c",
|
|
4431
|
+
"habilidades/design-tokens/SKILL.md": "b3bab149fe65f9e4a3a720775e1a7fc0032740487434f9012f2960fd8acff158",
|
|
4432
|
+
"habilidades/devsecops-pipeline-security/SKILL.md": "97ab5382c4a803af0b4c0aaf664911695bc1e6c85f910821325acc3f51bc53bb",
|
|
4433
|
+
"habilidades/diagrama-arquitectura/SKILL.md": "1771d492438f0fa0d6b3c81cad6e8dc88410698ac7014cf809172906b62ed906",
|
|
4434
|
+
"habilidades/discutir-fase/SKILL.md": "bf00fabdc8c1559e0e03dc0ae68054ae5433b82d213717d87d518431b5a64e67",
|
|
4435
|
+
"habilidades/diseno-herramientas-agente/SKILL.md": "416bcf1e4955ac9ba65ff6c122e142c123b7db340aa58dde3ae203cb819ad641",
|
|
4436
|
+
"habilidades/diseno-responsivo/SKILL.md": "6aa294c3b201a6bb256acb111e0230ff414c270bcd16d12540a0230855e4f235",
|
|
4437
|
+
"habilidades/django-experto/SKILL.md": "8dea1bac9c2cf000d95127740c790958aba5e10fd8bbed99a9dcdd9ce2f93e04",
|
|
4438
|
+
"habilidades/doc-sync/SKILL.md": "12a1a665f00b8ba0d4762930d78336a37ca006c68ff1e737ba2116d46efce4d8",
|
|
4439
|
+
"habilidades/doubt-driven-review/SKILL.md": "658499f654e257bd4632380d249c72ce2d3765d3f2c5d9e7999d1d2054f79ee9",
|
|
4440
|
+
"habilidades/drift-detection/SKILL.md": "d4ebac36efbd93bcf4487542151812242730da85cf2724a80b1522589813b9a1",
|
|
4441
|
+
"habilidades/ejecutar-fase/SKILL.md": "d4b03003484f7d4986e5418f40f58da72be849026e8f7603c81eb24d77515646",
|
|
4442
|
+
"habilidades/ejecutar-task-iterativo/SKILL.md": "af59419363aaec817a7f32470802c73df0c206d1506f22e6f94f5d6096b4056b",
|
|
4443
|
+
"habilidades/estilo-sin-ai-isms/SKILL.md": "a581d82dedba9bbb73927b5f69006421a28c75958d5e6cf7f3fb069b5c95613d",
|
|
4444
|
+
"habilidades/estructura-proyecto-claude/SKILL.md": "cc5081068b343d95fb0c932a1ade7ea051328f76535046dd8c2dd7d89367bc74",
|
|
4445
|
+
"habilidades/eval-framework/SKILL.md": "18edc007967aea17a9dcb051dc9c75dd999d96d0c0255d91947c254255bcd2e1",
|
|
4446
|
+
"habilidades/evaluacion-agentes/SKILL.md": "17c08cfae68e423507851a1baabd54edcd6f58e6e2a93ea5250cf81943174035",
|
|
4447
|
+
"habilidades/event-driven/SKILL.md": "fa7627b0178403702200b9e6501c401ccd537481c1e88742bdb7054052f28c42",
|
|
4448
|
+
"habilidades/extraccion-documentos/SKILL.md": "3af2c23b4d1019d5c3cf0f7c98fad7f253d863ad04dade2c23da816c49d74bc9",
|
|
4449
|
+
"habilidades/extractor-de-aprendizajes/SKILL.md": "feaa6adda35c9b04f5134511ce39e9559657b994a4e15b03d4052f7a1bdadcb0",
|
|
4450
|
+
"habilidades/fastapi-experto/SKILL.md": "d657e80b9edc733966c44c3755cca3ca19a825243cd0bff6eaab4bc046a963b2",
|
|
4451
|
+
"habilidades/feynman-auditor-swl/SKILL.md": "7fb1e239d7096f9d58b88d77acd08afba9ceccab8316ec0808dd6463866c530a",
|
|
4452
|
+
"habilidades/frontend-avanzado/SKILL.md": "4e7c8b402da138a56890a745fc508e77a2d549ff7e37467344efbc07692db28c",
|
|
4453
|
+
"habilidades/gcp-cloud/SKILL.md": "d4f4db699f9cea2ae9fefc7c7b4acc88d8272cb9f41137c8728eec52c17ea9d1",
|
|
4454
|
+
"habilidades/generacion-mermaid/SKILL.md": "8cd0f8ec045ab25f9dd9d52402f816f61ebb24a02223028325bfd6edd6275c3f",
|
|
4455
|
+
"habilidades/git-worktrees-paralelo/SKILL.md": "90120d9554df3e32419e41e8b13825fe0e8aa46f67f093d93737f39b4b52151d",
|
|
4456
|
+
"habilidades/go-experto/SKILL.md": "acde2520a9927b6557741fd37254e9852e481f48dbcd5041832008a23fe2f626",
|
|
4457
|
+
"habilidades/go-patrones/SKILL.md": "5bd991417068df614191b7583dab3e3d8761d66e74fad885572a62ea98a1bbf2",
|
|
4458
|
+
"habilidades/go-testing/SKILL.md": "b8e31b72b7ef52df10cccae2aa99691ef3ddf7211c1af7909de5d168465e0300",
|
|
4459
|
+
"habilidades/graphql-experto/SKILL.md": "f8a70a0cd0a888aa43d4c3bdebc8142e8cb2b37df228f9ed3dbccdab9022f6aa",
|
|
4460
|
+
"habilidades/guardrail-semantico/SKILL.md": "000bc86759c68222a35c65d1fd4bba495e9f8aba9fd48dafd186ac2e378a98fe",
|
|
4461
|
+
"habilidades/harness-claude-code/SKILL.md": "a4dd5cab18aae210a058cdeb067a15080248248787564d037db23436e37dd6e0",
|
|
4462
|
+
"habilidades/iam-secretos/SKILL.md": "6245a62b3c51e4e9b2caab710d06709e656a2ed84fb9a6de491b6c4767aad890",
|
|
4463
|
+
"habilidades/infra-github-actions/SKILL.md": "19a85aca305cbb90bc106f61d4de3f945f5b70ac890ae6f60301b6b4091e3462",
|
|
4464
|
+
"habilidades/instalar-sistema/SKILL.md": "91d1f71d7652dd7a8c497838354ad0134e462a013d1d78c2a3ac3b78e528fd4b",
|
|
4465
|
+
"habilidades/java-experto/SKILL.md": "cf545788d601fd10a0153e46b8aff67b5f8af0ebc2a753117337e4288faf27bf",
|
|
4466
|
+
"habilidades/java-patrones/SKILL.md": "76d387de2566bd79663a0b2fbfe36b49e4505635167844a4c3c4ce5012de8f64",
|
|
4467
|
+
"habilidades/java-testing/SKILL.md": "5cfc5aa4c86b347023a4c3ed96130b5cc706f8aaa6fa78ad71afbddfa4e6127b",
|
|
4468
|
+
"habilidades/kotlin-compose/SKILL.md": "71c35fef252d475b60908341797ad5c10c4a007225334bda5821843a17013c59",
|
|
4469
|
+
"habilidades/kotlin-experto/SKILL.md": "f1973adbb2614e6dc42521abc6fec17ff9441faac200d48388e9aa333bda7124",
|
|
4470
|
+
"habilidades/kotlin-testing/SKILL.md": "225e23c552dea40f46f8f2bfac7bf91c73e16ff05de59e828645b006963e5021",
|
|
4471
|
+
"habilidades/kubernetes-orquestacion/SKILL.md": "4b06e923d1f95a5dd32f113389798eee660a1b1baafae3722bebbc61dabe9f3b",
|
|
4472
|
+
"habilidades/langchain-langraph/SKILL.md": "f8e5c6242a81849a9d19a4e5a6bbf8d6cf0c5a77737a9f62881b5bf72f953fde",
|
|
4473
|
+
"habilidades/legacy-code-rescue/SKILL.md": "9cf5e64ed05a9ed03cfd10685042350994313a17fc7b2b62bd5cdcfd29ff1fce",
|
|
4474
|
+
"habilidades/likec4-experto/SKILL.md": "0dc5eb07a5413bdba2205c9b577d00dc978d0bc540f526abc9536cf4aa5ef055",
|
|
4475
|
+
"habilidades/manejo-errores/SKILL.md": "1c230410505f57e4e3125ef26116a3e72edb13ed63136517c0ef4a712245c9d6",
|
|
4476
|
+
"habilidades/mapear-codebase/SKILL.md": "b0bcec7dfb20591de7bf77ca8c09f734ddbc7c07e19429691c4cd881090dfbf6",
|
|
4477
|
+
"habilidades/memoria-busqueda/SKILL.md": "606e0cdb920166733462dc108fd87e6cce1d173b0b7a9f115fda4f9dd088312e",
|
|
4478
|
+
"habilidades/meta-reglas-extendido/SKILL.md": "28eff34384fc397140cd4e9218779745eded189275d561713c4662d125ad5fbc",
|
|
4479
|
+
"habilidades/meta-skills-estandar/SKILL.md": "05de8248e0eae78f83e1970e30e83d84c633727162538c6304a7a287bc2d6985",
|
|
4480
|
+
"habilidades/microservicios/SKILL.md": "9bcc75168a97fc2f43ab6f08fe21985ebdcb4771d1150746254439042f1af5ce",
|
|
4481
|
+
"habilidades/mobile-flutter/SKILL.md": "4364d61c4bf6bf02e29a7a2c2942475ab71a0ae9df6d9eb2de9f774132da562e",
|
|
4482
|
+
"habilidades/mobile-react-native/SKILL.md": "97d47a359e7f4b6d2ef833e4e1b904bc9d3905e8b4676b4a5aadef1a1d7082d2",
|
|
4483
|
+
"habilidades/mongodb-experto/SKILL.md": "924eb3779c5a7f6de7517397d42ea7ca16c550e534a712524c49f1cc7bf8b7e9",
|
|
4484
|
+
"habilidades/monitoring-alertas/SKILL.md": "641d42946c1eebf8ae42b273f150d2257cbbfdd649f3135bfa282774016aefa8",
|
|
4485
|
+
"habilidades/nemesis-evaluacion-json/SKILL.md": "34c9b9b763706632f5741a5267e8b474a6c6666a685112a7ebd864ea4a077af9",
|
|
4486
|
+
"habilidades/nemesis-redistribuir/SKILL.md": "b2ed30b2f2c57239f0bc1a228da14e4d7d3256bbd5f577a44bb6a035042093c1",
|
|
4487
|
+
"habilidades/nestjs-experto/SKILL.md": "adaace2a47e5b6f40801d751fa5e7197f2ecb84da94942b10562520c944df0cc",
|
|
4488
|
+
"habilidades/nextjs-experto/SKILL.md": "fa0305930d2ef7d3ae5ee60f015de1486163c3e7ee58f76e6b447f62eb3fa59f",
|
|
4489
|
+
"habilidades/nextjs-patrones/SKILL.md": "d97850fb296d80965f995fd4f709c3cbeb5cf01ef0c1da775bcb022c65f0ea0b",
|
|
4490
|
+
"habilidades/nextjs-testing/SKILL.md": "30d1bc2a006c8da886b9cfcd43c28b52159fdd6cf63101296785edbc90099d88",
|
|
4491
|
+
"habilidades/node-experto/SKILL.md": "44705c5fa9615e1ddc86f62b4cf3041d183f08f11fe134695a8b5cf5a00f5cc8",
|
|
4492
|
+
"habilidades/notificaciones-multicanal/SKILL.md": "d707ca749ce1d73066e99dc25fe7905b7dd0ea99059549e28de3a5af2ff37bb8",
|
|
4493
|
+
"habilidades/nuevo-proyecto/SKILL.md": "8b07d548b6dabe945674ca4571f53146265737ae9241f2903cfc5ef00287f92a",
|
|
4494
|
+
"habilidades/orquestacion-async/SKILL.md": "ef6db48bb8220f9c5ab3ddfb4a289ddda0ac25d4990b6fc879bbe32a2bdc390a",
|
|
4495
|
+
"habilidades/patrones-python/SKILL.md": "b1ef79daf505cb7790f93bb1db694ac35bb542a2a4603717de74d2533e9ef52e",
|
|
4496
|
+
"habilidades/perfil-usuario/SKILL.md": "6887b812f57b357ef289e6f66efe17e4e92b4ce4458e5492a8f7b426fdd08deb",
|
|
4497
|
+
"habilidades/performance-baseline/SKILL.md": "a471b230da1fe20ab0b36a1495b4c2e2dd17c5b8bab02e2a464dff290ef21044",
|
|
4498
|
+
"habilidades/php-experto/SKILL.md": "4bfe0222719b2f0c699391155063fd8f1093b2e4f1bc229bc24eafc6c3cbe142",
|
|
4499
|
+
"habilidades/php-patrones/SKILL.md": "238265a70101654dd983e186e9399d62e63152beb22ff120bd4738d4015486b6",
|
|
4500
|
+
"habilidades/php-testing/SKILL.md": "79172361b329873593ed14ade150a6660e403c78f87dd9a1fbdd1135a3682d3d",
|
|
4501
|
+
"habilidades/planear-fase/SKILL.md": "252d4c6da07c4b90f4fcccc5f91b2a178da72c0dc5a7214883d302709520c8a1",
|
|
4502
|
+
"habilidades/postgresql-experto/SKILL.md": "3943a191fd4ace75136cd82985f3ca337c941b35f01828850d6487d22181ce9a",
|
|
4503
|
+
"habilidades/prevencion-racionalizacion/SKILL.md": "3978236740c4861b879270993d423f1f0d3e5adf3cd29de40a1db026f95b2da2",
|
|
4504
|
+
"habilidades/prevencion-sobreingenieria/SKILL.md": "747566a77da85a851ad9e14e4f1a839df9873bdcc44d92963df2c9deb6ca604d",
|
|
4505
|
+
"habilidades/privacy-memoria/SKILL.md": "747e3a4b43faf68c5491226b28b7bc447e85a257d0a1cf9e8be09f426a3400f5",
|
|
4506
|
+
"habilidades/proceso-autoverificacion-evidencias/SKILL.md": "92be7ce4fbda1f241a556738a7eeeeb784f0ba1eb6a6eeca927a4c0d43ff17d3",
|
|
4507
|
+
"habilidades/proceso-confianza-pre-implementacion/SKILL.md": "a4df4d11e1bb56ce92212dc5cfb2801aed2fbc68afe8b200a695b757e9823b4d",
|
|
4508
|
+
"habilidades/proceso-ddia-fundamentos/SKILL.md": "b51e2a2f71e220c0fc2557ec7e425ff6505dfc31a9720a6c6a0d0e8cb0b51baf",
|
|
4509
|
+
"habilidades/proceso-ddia-streaming/SKILL.md": "59ae94da3e656871416c0b47944bf4fae02215c4d3cf7e2f826f206483341515",
|
|
4510
|
+
"habilidades/proceso-debate-adversarial/SKILL.md": "0a9fe26d605c8891fde6a0372a57c8575ee36bd0b74db72d2a1e9e0a18a768d9",
|
|
4511
|
+
"habilidades/proceso-discovery-machote/SKILL.md": "8b6de90ddc971dbdf9d86745792d0149e8d44de5b3c24e9b1399ff643f146972",
|
|
4512
|
+
"habilidades/proceso-dynamic-workflows/SKILL.md": "56b4410405d6060f8a0bcc28736799eead5748b208a7a1abc5a8eca1d2e540c8",
|
|
4513
|
+
"habilidades/proceso-ingenieria-requerimientos/SKILL.md": "ca484be02f9706450f063d26ac6fd180bb63fc74bf3f53d7549933bae6991ac9",
|
|
4514
|
+
"habilidades/proceso-intent-engineering/SKILL.md": "38cfc73217d54b61e93685dd7bf5f5cb6433e1fc6bccbc0f5a076764ada0418d",
|
|
4515
|
+
"habilidades/proceso-modular-split/SKILL.md": "2ede321545b53721ddeda31f186843d97274b9adbd52f52ca33cb8db143b4ad2",
|
|
4516
|
+
"habilidades/prompt-engineering/SKILL.md": "b104ef8326950f0b456b115d2a83d6c67a085ff235db9d410bd5e9c913fe5db4",
|
|
4517
|
+
"habilidades/protocolo-revision-swl/SKILL.md": "456232d1ca1f40fae9dd51fb6da1a9aefec641a93450688e32df4884a67097e8",
|
|
4518
|
+
"habilidades/rag-arquitectura/SKILL.md": "163dc5a65dbfd38935a0d0388338c35898fdd095d33bce671b7fdc349f1f0d1b",
|
|
4519
|
+
"habilidades/rails-experto/SKILL.md": "c80d012804c070bcaf3b6b7a749f67d6f7b5bfa9a32246a743ecca5a494c34e7",
|
|
4520
|
+
"habilidades/react-experto/SKILL.md": "90ab3df1f9e2b590362bd0088d3f1e700b22f40e15adee85f814adbfbad4255d",
|
|
4521
|
+
"habilidades/react-optimizacion/SKILL.md": "4d26faf586b2404db7e48b59548eb33cd41bb0163af966886a83b733afac1f8a",
|
|
4522
|
+
"habilidades/redis-experto/SKILL.md": "bd78eb53366e6f3da5c79017ac3942a1b2b0d38b56671aa506d054aef1d1a7e7",
|
|
4523
|
+
"habilidades/reducir-entropia/SKILL.md": "8152a0de3c5d5406e3ce5bdeb1530119a31f5788fabdd671e2d2f1e73475d2f8",
|
|
4524
|
+
"habilidades/release-semver/SKILL.md": "94bc804b5e51352777d08afc60636cece5bbf76d6d2d5e3bed66acca15b604a0",
|
|
4525
|
+
"habilidades/rust-experto/SKILL.md": "79a2591d50678b72fecdf07b713c3ddbfcecef28667ef28eec0daa9c78b8a18c",
|
|
4526
|
+
"habilidades/rust-patrones/SKILL.md": "c58a1b9467aa9d3056e066a997908ba876c65a0fdae8697f2d36f3569a3acc2a",
|
|
4527
|
+
"habilidades/rust-testing/SKILL.md": "fee2f695d0be176d1cfaff207933969e983782beb075d681baa4ee9b9a0b0031",
|
|
4528
|
+
"habilidades/seguridad-skills-ia/SKILL.md": "af5988b859e7336bb59da30c9380e34240e6cb829f463f6761854a7c427305df",
|
|
4529
|
+
"habilidades/sql-optimizacion/SKILL.md": "2fb04e9aa1154d5ff44eea5dbcd578561ce79649c96fd04f21e4bcb4b5dc8688",
|
|
4530
|
+
"habilidades/sre-patrones/SKILL.md": "96caebd46b0c1e38b6671c0dcd115e454425da180ead5765e5d88ca39b5e8f57",
|
|
4531
|
+
"habilidades/state-inconsistency-auditor-swl/SKILL.md": "7abcac8e33415db401b4ec6358a49d629524f2e2dcdffbe1fa8d8ce681153fba",
|
|
4532
|
+
"habilidades/stripe-pagos/SKILL.md": "0a2398ab2ea456a401315cc7bd10bc75efbe7ddc7d2578e0ade4b550ba7bbb99",
|
|
4533
|
+
"habilidades/structured-outputs/SKILL.md": "b60c51314b01ace68bd9091b10e5063ea119cb86c5da742d44918c61c2f06c01",
|
|
4534
|
+
"habilidades/swift-experto/SKILL.md": "e7eb701f8e97e249f34ab086a50f32acc7b73f1e3173f2f630f67d1f8ddca02e",
|
|
4535
|
+
"habilidades/swift-patrones/SKILL.md": "9317a34e80dfd3725be11b96d4daf3b7a5dc99a931edcd1b8a9bf93683e23ce7",
|
|
4536
|
+
"habilidades/swift-testing/SKILL.md": "97d0fe9334f8da9d84898eeab5d718a8ab061c5f1b84cb3fa9f29d4ff4c608e4",
|
|
4537
|
+
"habilidades/swl-claudemd/SKILL.md": "0cecf17c5394f61fb81ed72b0faa90490fcc03077b1d981476da85952c220e70",
|
|
4538
|
+
"habilidades/swl-dashboard/SKILL.md": "9ad0da0013e428c80664e80ebdfaabff49aa6d976834175f7c2f9c1dd5ee2800",
|
|
4539
|
+
"habilidades/swl-markitdown/SKILL.md": "6d8fd5e59e8ce3f94877cecdd34c83ffee0bcd90ad51bdad809fa77ce1d6a841",
|
|
4540
|
+
"habilidades/swl-revisar-impacto/SKILL.md": "bff7589944a4304046d0e812ba829b21871be080d39bdfe7cc76b112ce74fe53",
|
|
4541
|
+
"habilidades/tailwind-experto/SKILL.md": "42a2bb9f48ee73aff928053de1f7635dba5d3360da18df516c2d03ed4b30ed21",
|
|
4542
|
+
"habilidades/tdd-workflow/SKILL.md": "b67f3467a755a131809e7698f782e128d77e8f8d0f345da7e325041353e6b543",
|
|
4543
|
+
"habilidades/terraform-experto/SKILL.md": "be89eb4d2e14fdab3cb005c5dd46548171c9b783088e87e26f403908cec9a49c",
|
|
4544
|
+
"habilidades/testing-python/SKILL.md": "858eca33f9e1189ff94399b19e9835919ca190c51c1f1fa49531cf56fd2965a4",
|
|
4545
|
+
"habilidades/threat-model-lite/SKILL.md": "5809eda4d3ddf9f8b78689eb21f9f13dcdadd1eab2d801838f1fa02580690f55",
|
|
4546
|
+
"habilidades/tracing-processor/SKILL.md": "caa8f914453b4bc5edd75ebcac32a3633967237d9201eb9fb58223432caac3d5",
|
|
4547
|
+
"habilidades/typescript-avanzado/SKILL.md": "698088688f40116f1f82470933f5fbe1afe79ff1d45a4ac17d86619f95f481bd",
|
|
4548
|
+
"habilidades/typescript-diagnosticos/SKILL.md": "798a564878c60f567082cc87e45d0924494d1790892d613a1a825605f6e4a298",
|
|
4549
|
+
"habilidades/ux-diseno/SKILL.md": "e1bf67fa394905cdc89eb9ac21a47393f4cfe6cea57f0105e40ec5f0bba10b90",
|
|
4550
|
+
"habilidades/validacion-ci-sistema/SKILL.md": "9862d2e4bc00dc85156227592d60a0be1f1a2d1feab4d6ed28fa9510834bf66b",
|
|
4551
|
+
"habilidades/verificacion-evidencia/SKILL.md": "4f88c6872b95c250f8ec27fd57e05da1e6650acf3eeda9a411dc1493073a9da7",
|
|
4552
|
+
"habilidades/verificar-trabajo/SKILL.md": "22fe8740b1bde2aba898be558968feb1a51cbaf968b30255c8b84c9d2fe5bb4f",
|
|
4553
|
+
"habilidades/web-fetcher-routing/SKILL.md": "06d6e3b1a880732a9b0584e1e4c98488e81d0863d53ef3be3eaa147116e2c203",
|
|
4554
|
+
"habilidades/wiki-conocimiento/SKILL.md": "59870d616701f90265fe7d5695ec744390dcd0875ebd989309cf37e3a34aba87",
|
|
4555
|
+
"habilidades/wireframes-flujos/SKILL.md": "7655d0941b5a6ac0d922517b349ff71a4febdb09ca4c8f7c09c6183ddff23743",
|
|
4556
|
+
"habilidades/workflow-claude-code/SKILL.md": "179e4c4e6ee657bbc2632bded91ed11e96d7edeab402be1e72a5394764767c69",
|
|
4557
|
+
"reglas/accesibilidad.md": "21914b99f001d3bfc38a39f609bbafe4c58846d3617fea68a7156a29dc58d9f6",
|
|
4558
|
+
"reglas/analisis-previo-tareas-grandes.md": "d0d6b6675e6af79acfaabdada0560e50d43e9632970966dcea617fb53b69d75b",
|
|
4559
|
+
"reglas/analizar-directorios-antes-de-escribir.md": "588ca1a538b075163512b243d016f191e1050db9f7cc78c0590e92f8bf91a0cb",
|
|
4560
|
+
"reglas/api-diseno.md": "7d703f898a113c273e7404b95441afb66c87784d5973bc6149675a63226bc71f",
|
|
4561
|
+
"reglas/arquitectura.md": "ad3fa4c4e9ec9dae8c6065fb041993bde56377022ec015e7ccbaea3b9a352bd6",
|
|
4562
|
+
"reglas/arreglar-al-detectar.md": "5332d76fba3efc3979dda90a8efa8bb715833aa424e5954cb9687fd63c2085ae",
|
|
4563
|
+
"reglas/auditorias-documentales-estructurales.md": "1cf2c6f30a34fd15c5197d121f77339fa787ce5da4d34a9c5ae14b333bcae7ae",
|
|
4564
|
+
"reglas/brevedad-output.md": "094b981711cef8b6111db47d0a79260f48f773f6582927a235d74fabb062489f",
|
|
4565
|
+
"reglas/cloud-infra.md": "eb46c31abfa0f000408d7552b1bf1d67acc8f98daaac7f5286fee8b5935ac71b",
|
|
4566
|
+
"reglas/consultar-vault-primero.md": "19c751d1ff2752000d5bde8ce503f5afc14c34c8e997df9c8d9dd02b7ab41ae1",
|
|
4567
|
+
"reglas/debatir-antes-de-aceptar.md": "f5d8b498238fb87dbc985b82889af4bee88f81709d5034446056c9885bac9c32",
|
|
4568
|
+
"reglas/docs.md": "29ea33a5b097f5a0f5c7b779af02ef0d0d71c9c3960918798ea8121f1fb65f51",
|
|
4569
|
+
"reglas/estilo-codigo.md": "655741422b6f74caf4b54c6a0be28f7b9445d4011ea32fe9a65c58781fd305b1",
|
|
4570
|
+
"reglas/fragmentos-compartidos.md": "4002f0e16378b071aefafa1717179e52874244ee973085c71d1b6d1302f5102a",
|
|
4571
|
+
"reglas/git-coauthor.md": "1f1733d13866771d86bc15f55f5009330b3e274fa31f9a241b226c3888f6fd57",
|
|
4572
|
+
"reglas/git-workflow.md": "9d7c4312ac3d8ab4f8f5a667ec8f067496f531375c285f50cc4c4e760e580432",
|
|
4573
|
+
"reglas/gobernanza.md": "5280106f8d475358bf92c08ef74ba483440e63a4d5b8deb8f60f4116126adae0",
|
|
4574
|
+
"reglas/hooks.md": "66d010b169e7617aa50b28c29f9d8e0ad22379c08b79ba357978bd7c32eeece6",
|
|
4575
|
+
"reglas/intent-engineering.md": "2f6795ec03ced68725ac0ee830d96d9259c418dafd80d1782ddc6db42634388d",
|
|
4576
|
+
"reglas/markitdown.md": "0cfb395b9a4ed704767b5b4eab90f5f2bffba14ec80be189918f32d781abd330",
|
|
4577
|
+
"reglas/memoria-consolidada.md": "dddb566f829e192fe28edcbb53da5b9720c7a1c70b62615571ff8950381ad708",
|
|
4578
|
+
"reglas/monitor-ci.md": "a22628c6072002204df6dbb5faa69aa217ae835fe2d06062a4ee50f224085c81",
|
|
4579
|
+
"reglas/patrones.md": "d70e9fd42674c03b1dd9d21f5d69188332ba6a7a5b80134580110c812e8cf710",
|
|
4580
|
+
"reglas/performance.md": "0d2506b516984728c346b65fbc319d30e4a8157d7ea6fa34cdf5403cc0e7b6c3",
|
|
4581
|
+
"reglas/pruebas.md": "75f97384f7306a7afb043167701a4163068a7c0e0d7cb6bf4fe60ff5cf6a8247",
|
|
4582
|
+
"reglas/registro-componentes-nuevos.md": "42b1d16a1bf57ce52b7a2715fc3acff78e683ab3851ba7a71e30d0b9cff36903",
|
|
4583
|
+
"reglas/seguridad-agentes.md": "606162508959b2f673e2382cd53fd0b1039b7551e0d2ee60d573426b6578c73f",
|
|
4584
|
+
"reglas/seguridad.md": "403a398328121936cb7c34deaded7300c8741ee0e3dd54e8b4a38d9c4d936b40",
|
|
4585
|
+
"reglas/sesiones-paralelas.md": "ecb98b47870d53ff6b79421e5db4a7c2ed189a8d63e9e3c671888d3ec220b7de",
|
|
4586
|
+
"reglas/sin-duplicacion-reglas-globales.md": "7bd1695a81cd5f1bd673a617cd05e7612070e8817e226a71ab80102454de0b79",
|
|
4587
|
+
"reglas/skills-estandar.md": "aa0f096fc34dde87a7f15bed79837e57d7102da2fc1022e8e39026b028f907d8",
|
|
4588
|
+
"reglas/testing.md": "e0e85a952dbf5598b49ccc540cc41d332b29355aedd3d20f0252febe1e2e4faa",
|
|
4589
|
+
"reglas/tests-cleanup.md": "07c0d2344c7937b480deeeeca83f9b2e31de904a17d41fcfffbce555b933c690",
|
|
4590
|
+
"reglas/usar-code-review-graph.md": "a8e39c9e0dd2485079e7685a8094865711ee423ba05517b88960c8f908541d17",
|
|
4591
|
+
"reglas/usar-context7.md": "cb8ed33b421d06e6e4e6d4de44acd6fe810f84369ef66f91111cf88ffd0457a3",
|
|
4592
|
+
"reglas/usar-sistema-swl.md": "c33a267ee995a958fc2a590686acf297bcd75ed3bd5eb0533ec4da55e2893051",
|
|
4593
|
+
"reglas/verificar-citas-normativas.md": "51ca9c6c2d3bb653c2da792aea61054442fcb8bef25eb29cd7e491adb2ceb8e3"
|
|
4264
4594
|
}
|
|
4265
4595
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saulwade/swl-ses",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con 61 agentes, 181 habilidades, 47 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.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot. 61 agentes, 181 habilidades, 47 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",
|
|
@@ -18,11 +18,14 @@
|
|
|
18
18
|
|
|
19
19
|
const { panelEvidencia } = require('./lib/evidencia-valor.js');
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Contrato del CLI (bin/swl-ses.js): exportar UNA función(opciones) sin
|
|
23
|
+
* efectos al require. Violarlo = "modulo is not a function" tras imprimir
|
|
24
|
+
* el panel (caso real: SIGM, 2026-07-09).
|
|
25
|
+
*/
|
|
26
|
+
function valor(opciones = {}) {
|
|
27
|
+
const json = !!opciones.json;
|
|
28
|
+
const ventanaDias = parseInt(opciones.dias, 10) || 30;
|
|
26
29
|
|
|
27
30
|
const p = panelEvidencia(process.cwd(), { ventanaDias });
|
|
28
31
|
|
|
@@ -90,4 +93,9 @@ function main() {
|
|
|
90
93
|
console.log('Compartir agregados con el autor (opt-in): swl-ses field-report — ver docs/evidencia-valor.md');
|
|
91
94
|
}
|
|
92
95
|
|
|
93
|
-
|
|
96
|
+
module.exports = valor;
|
|
97
|
+
|
|
98
|
+
if (require.main === module) {
|
|
99
|
+
const { parsearOpciones } = require('./lib/parsear-opciones.js');
|
|
100
|
+
valor(parsearOpciones(process.argv.slice(2)));
|
|
101
|
+
}
|
package/scripts/field-report.js
CHANGED
|
@@ -196,4 +196,20 @@ function generarReporte() {
|
|
|
196
196
|
console.log(`\n> Generado por \`node scripts/field-report.js\``);
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
|
|
199
|
+
function fieldReport(opciones = {}) {
|
|
200
|
+
DAYS = parseInt(opciones.days || opciones.dias, 10) || 0;
|
|
201
|
+
PROJECT = opciones.project || null;
|
|
202
|
+
OUTPUT = opciones.output || 'md';
|
|
203
|
+
generarReporte();
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
module.exports = fieldReport;
|
|
207
|
+
|
|
208
|
+
if (require.main === module) {
|
|
209
|
+
const args = process.argv.slice(2).reduce((acc, arg) => {
|
|
210
|
+
const [k, v] = arg.replace(/^--/, '').split('=');
|
|
211
|
+
acc[k] = v || true;
|
|
212
|
+
return acc;
|
|
213
|
+
}, {});
|
|
214
|
+
fieldReport(args);
|
|
215
|
+
}
|
|
@@ -119,4 +119,11 @@ function main() {
|
|
|
119
119
|
|
|
120
120
|
if (require.main === module) main();
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
// Contrato del CLI (bin/swl-ses.js): el export default es UNA función que el
|
|
123
|
+
// bin invoca como modulo(opciones); main re-lee process.argv, que en la
|
|
124
|
+
// invocación vía bin ya trae los flags. Los named exports se preservan como
|
|
125
|
+
// propiedades para los tests existentes.
|
|
126
|
+
module.exports = main;
|
|
127
|
+
module.exports.instalar = instalar;
|
|
128
|
+
module.exports.MARCADOR = MARCADOR;
|
|
129
|
+
module.exports.LINEA_CHECK = LINEA_CHECK;
|
|
@@ -44,9 +44,31 @@ const TIPOS_INTERVENCION = new Set([
|
|
|
44
44
|
|
|
45
45
|
// ─── 1. Intercepciones (nudges.jsonl) ────────────────────────────────────────
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Diagnóstico de POR QUÉ no hay telemetría: los hooks solo se registran a
|
|
49
|
+
* nivel PROYECTO (ADR-0009 — un install --global copia los archivos pero NO
|
|
50
|
+
* los registra en ~/.claude/settings.json, para no correr 49 hooks en cada
|
|
51
|
+
* sesión de cualquier proyecto). Sin registro local, nudges.jsonl y
|
|
52
|
+
* skill-metrics.json jamás aparecerán — el panel debe decir CÓMO activarlo,
|
|
53
|
+
* no solo "no disponible" (reporte de campo SIGM, 2026-07-09).
|
|
54
|
+
*/
|
|
55
|
+
function hooksRegistradosEnProyecto(raiz) {
|
|
56
|
+
try {
|
|
57
|
+
const s = JSON.parse(fs.readFileSync(path.join(raiz, '.claude', 'settings.json'), 'utf8'));
|
|
58
|
+
return Object.values(s.hooks || {}).some(m => Array.isArray(m) && m.length > 0);
|
|
59
|
+
} catch { return false; }
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const HINT_ACTIVACION = 'hooks sin registrar a nivel proyecto (el install --global no los registra por diseño, ADR-0009) — activar con: npx -y @saulwade/swl-ses@latest install --target claude --perfil core (SIN --global, en la raíz del proyecto)';
|
|
63
|
+
|
|
47
64
|
function leerNudges(raiz, { ventanaDias = 30, hoy = new Date() } = {}) {
|
|
48
65
|
const ruta = path.join(raiz, '.planning', 'evolution', 'nudges.jsonl');
|
|
49
|
-
if (!fs.existsSync(ruta))
|
|
66
|
+
if (!fs.existsSync(ruta)) {
|
|
67
|
+
const razon = hooksRegistradosEnProyecto(raiz)
|
|
68
|
+
? 'sin nudges.jsonl aún (hooks registrados; se acumula con el uso de sesiones)'
|
|
69
|
+
: HINT_ACTIVACION;
|
|
70
|
+
return { disponible: false, razon, eventos: [] };
|
|
71
|
+
}
|
|
50
72
|
const corte = hoy.getTime() - ventanaDias * DIA_MS;
|
|
51
73
|
const eventos = [];
|
|
52
74
|
for (const linea of fs.readFileSync(ruta, 'utf8').split(/\r?\n/)) {
|
|
@@ -102,6 +124,10 @@ function presionDefectos(raiz, { ventanaDias = 30, hoy = new Date(), git = ejecu
|
|
|
102
124
|
|
|
103
125
|
// Escape aproximado: fixes con fecha POSTERIOR a la última verificación de
|
|
104
126
|
// fase (VERIFICACION.md más reciente). Sin fases verificadas → no aplica.
|
|
127
|
+
// La fecha se toma de GIT (autoría del último commit que tocó el archivo),
|
|
128
|
+
// no del mtime del filesystem: tras un clone/checkout todos los archivos
|
|
129
|
+
// comparten el mtime de la operación y el proxy daba falso negativo
|
|
130
|
+
// (reporte de campo SIGM, 2026-07-09). Fallback a mtime fuera de git.
|
|
105
131
|
let escapes = { disponible: false, razon: 'sin VERIFICACION.md en .planning/fases/ (proyecto sin ciclo GSD verificado)' };
|
|
106
132
|
try {
|
|
107
133
|
const dirFases = path.join(raiz, '.planning', 'fases');
|
|
@@ -109,7 +135,15 @@ function presionDefectos(raiz, { ventanaDias = 30, hoy = new Date(), git = ejecu
|
|
|
109
135
|
if (fs.existsSync(dirFases)) {
|
|
110
136
|
for (const fase of fs.readdirSync(dirFases)) {
|
|
111
137
|
const v = path.join(dirFases, fase, 'VERIFICACION.md');
|
|
112
|
-
if (fs.existsSync(v))
|
|
138
|
+
if (!fs.existsSync(v)) continue;
|
|
139
|
+
let fecha = 0;
|
|
140
|
+
try {
|
|
141
|
+
const rel = path.relative(raiz, v);
|
|
142
|
+
const ct = parseInt(git(raiz, ['log', '-1', '--format=%ct', '--', rel]).trim(), 10);
|
|
143
|
+
if (Number.isFinite(ct) && ct > 0) fecha = ct * 1000;
|
|
144
|
+
} catch { /* fuera de git o archivo sin commits → fallback mtime */ }
|
|
145
|
+
if (fecha === 0) fecha = fs.statSync(v).mtimeMs;
|
|
146
|
+
ultimaVerificacion = Math.max(ultimaVerificacion, fecha);
|
|
113
147
|
}
|
|
114
148
|
}
|
|
115
149
|
if (ultimaVerificacion > 0) {
|
|
@@ -152,7 +186,12 @@ function doraCi(raiz, { ventanaDias = 30, hoy = new Date() } = {}) {
|
|
|
152
186
|
|
|
153
187
|
function usoSistema(raiz) {
|
|
154
188
|
const ruta = path.join(raiz, '.planning', 'skill-metrics.json');
|
|
155
|
-
if (!fs.existsSync(ruta))
|
|
189
|
+
if (!fs.existsSync(ruta)) {
|
|
190
|
+
const razon = hooksRegistradosEnProyecto(raiz)
|
|
191
|
+
? 'sin skill-metrics.json aún (hooks registrados; se acumula con el uso de skills)'
|
|
192
|
+
: HINT_ACTIVACION;
|
|
193
|
+
return { disponible: false, razon };
|
|
194
|
+
}
|
|
156
195
|
try {
|
|
157
196
|
// Forma real: { version, entries: [{skill, estado, timestamp}, ...] }
|
|
158
197
|
// (eventos individuales del hook telemetria-skill-routing) — agregamos aquí.
|
package/scripts/tui/index.js
CHANGED
|
@@ -118,7 +118,16 @@ async function _flujoInstall() {
|
|
|
118
118
|
}
|
|
119
119
|
return { ok: false };
|
|
120
120
|
}
|
|
121
|
-
|
|
121
|
+
// Multi-runtime: una corrida del instalador por runtime marcado en el paso 1.
|
|
122
|
+
const targets = w.opciones.targets && w.opciones.targets.length > 0
|
|
123
|
+
? w.opciones.targets
|
|
124
|
+
: [w.opciones.target];
|
|
125
|
+
let ultimo = { ok: true };
|
|
126
|
+
for (const target of targets) {
|
|
127
|
+
ultimo = await ejecutarInstall({ ...w.opciones, target });
|
|
128
|
+
if (!ultimo.ok) return ultimo; // reporta el runtime que falló, sin continuar a ciegas
|
|
129
|
+
}
|
|
130
|
+
return ultimo;
|
|
122
131
|
}
|
|
123
132
|
|
|
124
133
|
async function _flujoUpdate() {
|
|
@@ -23,7 +23,7 @@ const teclas = require('../lib/teclas');
|
|
|
23
23
|
const { colores, semantico, iconos } = require('../lib/colores');
|
|
24
24
|
|
|
25
25
|
function _cargarDatosInstalaciones() {
|
|
26
|
-
let detectarRuntimes, cargarEstado;
|
|
26
|
+
let detectarRuntimes, scopesReales, cargarEstado;
|
|
27
27
|
try {
|
|
28
28
|
({ detectarRuntimes, scopesReales } = require('../../lib/detectar-runtime'));
|
|
29
29
|
({ cargarEstado } = require('../../lib/estado'));
|
|
@@ -170,7 +170,7 @@ function pantallaPreview(opciones, perfiles) {
|
|
|
170
170
|
render.escribirEn(3, 3, colores.dim('Revisa antes de confirmar:'));
|
|
171
171
|
|
|
172
172
|
const filas = [
|
|
173
|
-
['Runtime',
|
|
173
|
+
['Runtime(s)', (opciones.targets || [opciones.target]).join(', ')],
|
|
174
174
|
['Perfil', opciones.profile],
|
|
175
175
|
['Scope', opciones.global ? 'global (~/.claude)' : 'proyecto (./.claude)'],
|
|
176
176
|
['With MCP', opciones.with_mcp ? 'sí' : 'no'],
|
|
@@ -243,13 +243,25 @@ async function ejecutarWizardInstall() {
|
|
|
243
243
|
return { exito: false, error: 'No se pudo cargar manifiestos/perfiles.json' };
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
-
// 1. Runtime
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
246
|
+
// 1. Runtime(s) — multiselección: instala en varios runtimes en una corrida
|
|
247
|
+
// (fix 2026-07-09: era selector único; el flujo multi-runtime obligaba a
|
|
248
|
+
// repetir el wizard completo por cada runtime).
|
|
249
|
+
let targets = null;
|
|
250
|
+
let tituloPaso1 = 'Paso 1/6 — ¿En qué runtime(s) instalas SWL? (espacio para marcar)';
|
|
251
|
+
for (;;) {
|
|
252
|
+
targets = await selectorMulti({ titulo: tituloPaso1, items: RUNTIMES });
|
|
253
|
+
if (targets === null) return { exito: false, cancelado: true };
|
|
254
|
+
if (targets.length > 0) break;
|
|
255
|
+
// no-TTY: selectorMulti resuelve [] al instante — re-preguntar sería un
|
|
256
|
+
// spin infinito en caliente (colgó la suite 2.7h el 2026-07-09). Default:
|
|
257
|
+
// primer runtime, igual que hacía el selector único.
|
|
258
|
+
if (!render.ES_TTY || !process.stdin.isTTY) {
|
|
259
|
+
targets = [RUNTIMES[0].valor];
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
tituloPaso1 = 'Paso 1/6 — Marca AL MENOS un runtime con espacio (Esc para cancelar)';
|
|
263
|
+
}
|
|
264
|
+
const target = targets[0]; // compat: preview/ejecutores leen .target
|
|
253
265
|
|
|
254
266
|
// 2. Perfil
|
|
255
267
|
const profile = await selectorUnico({
|
|
@@ -287,6 +299,7 @@ async function ejecutarWizardInstall() {
|
|
|
287
299
|
|
|
288
300
|
const opciones = {
|
|
289
301
|
target,
|
|
302
|
+
targets,
|
|
290
303
|
profile,
|
|
291
304
|
global: scope === 'global',
|
|
292
305
|
with_mcp: flagsSeleccionados.includes('with-mcp'),
|
|
@@ -21,7 +21,7 @@ const teclas = require('../lib/teclas');
|
|
|
21
21
|
const { colores, semantico, iconos } = require('../lib/colores');
|
|
22
22
|
|
|
23
23
|
function _cargarInstalaciones() {
|
|
24
|
-
let detectarRuntimes, cargarEstado;
|
|
24
|
+
let detectarRuntimes, scopesReales, cargarEstado;
|
|
25
25
|
try {
|
|
26
26
|
({ detectarRuntimes, scopesReales } = require('../../lib/detectar-runtime'));
|
|
27
27
|
({ cargarEstado } = require('../../lib/estado'));
|
|
@@ -40,7 +40,7 @@ const CATEGORIAS = [
|
|
|
40
40
|
// ---------------------------------------------------------------------------
|
|
41
41
|
|
|
42
42
|
function _detectarInstalaciones() {
|
|
43
|
-
let detectarRuntimes, cargarEstado;
|
|
43
|
+
let detectarRuntimes, scopesReales, cargarEstado;
|
|
44
44
|
try {
|
|
45
45
|
({ detectarRuntimes, scopesReales } = require('../../lib/detectar-runtime'));
|
|
46
46
|
({ cargarEstado } = require('../../lib/estado'));
|
|
@@ -33,8 +33,7 @@ const SUBTITULO = 'Sistema de ingeniería de software auto-evolutivo multi-runti
|
|
|
33
33
|
* No falla si la lib no está disponible — devuelve array vacío.
|
|
34
34
|
*/
|
|
35
35
|
function detectarInstalaciones() {
|
|
36
|
-
let detectarRuntimes;
|
|
37
|
-
let cargarEstado;
|
|
36
|
+
let detectarRuntimes, scopesReales, cargarEstado;
|
|
38
37
|
try {
|
|
39
38
|
({ detectarRuntimes, scopesReales } = require('../../lib/detectar-runtime'));
|
|
40
39
|
({ cargarEstado } = require('../../lib/estado'));
|