@saulwade/swl-ses 2.2.1 → 2.2.3

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 CHANGED
@@ -1,4 +1,4 @@
1
- # CLAUDE.md — @saulwade/swl-ses v2.2.1
1
+ # CLAUDE.md — @saulwade/swl-ses v2.2.3
2
2
 
3
3
  ## Reglas de máxima prioridad (aplican SIEMPRE, sin excepción)
4
4
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # swl-ses v2.2.1
1
+ # swl-ses v2.2.3
2
2
 
3
3
  > El paquete anterior `@saulwadeleon/swl-software-engineering-system` está deprecado. Migrar a `@saulwade/swl-ses` (npmjs.org canónico) o `@saul-wade/swl-ses` (mirror en GitHub Packages) — el CLI `swl-ses` no cambia.
4
4
 
@@ -22,7 +22,7 @@
22
22
  * - SWL_MCP_API_KEY — Si set, requiere params._auth en cada tools/call.
23
23
  * - SWL_MCP_CACHE_TTL_MS — TTL del cache mtime-based (default 60000).
24
24
  * - SWL_MCP_METRICS — Si "1" o "true", persiste metrics en
25
- * .planning/evolucion/mcp-metrics.jsonl.
25
+ * .planning/evolution/mcp-metrics.jsonl.
26
26
  *
27
27
  * Schema versioning:
28
28
  * - Cada handler declara `schemaVersion` en su definición.
@@ -251,7 +251,7 @@ function ejecutar(inputRaw) {
251
251
  // cada sesión.
252
252
  const señalesKw = detectarKeywords(textoUsuario)
253
253
  .map(s => {
254
- const r = scanInjection(s.snippet, 'perfil-usuario/dirty.json');
254
+ const r = scanInjection(s.snippet, 'user-profile/dirty.json');
255
255
  return { ...s, _scan: r };
256
256
  })
257
257
  .filter(s => {
@@ -85,10 +85,10 @@ function hooksDisparados(sessionId) {
85
85
  try {
86
86
  const planningDir = path.join(process.cwd(), '.planning');
87
87
  const jsonlCandidatos = [
88
- ['evolucion/nudges.jsonl', 'nudge-tracker'],
89
- ['auto-evolucion/agentes.jsonl', 'auto-evolucion'],
90
- ['perfil-usuario/dirty.json', 'actualizar-perfil-usuario'],
91
- ['evolucion/metricas.json', 'metricas-evolucion'],
88
+ ['evolution/nudges.jsonl', 'nudge-tracker'],
89
+ ['auto-evolution/agentes.jsonl', 'auto-evolucion'],
90
+ ['user-profile/dirty.json', 'actualizar-perfil-usuario'],
91
+ ['evolution/metricas.json', 'metricas-evolucion'],
92
92
  ];
93
93
  for (const [rel, nombre] of jsonlCandidatos) {
94
94
  const p = path.join(planningDir, rel);
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. 60 agentes, 182 habilidades, 44 comandos, 37 reglas base y 48 hooks. Soporta 11 lenguajes y 7 runtimes (Claude Code, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot). Versión 2.2.1.
3
+ > Sistema de ingeniería de software auto-evolutivo multi-runtime polyglot (SDLC completo), distribuido como paquete npm y plugin de Claude Code. 60 agentes, 182 habilidades, 44 comandos, 37 reglas base y 48 hooks. Soporta 11 lenguajes y 7 runtimes (Claude Code, OpenClaude, OpenCode, Gemini, Cursor, Codex, Copilot). Versión 2.2.3.
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
 
@@ -652,5 +652,659 @@
652
652
  "reglas/usar-context7.md": "8e3d3a051e2a53e02b98c54af3f95a95e0695fb99e5d6d50792da5d6b2c28861",
653
653
  "reglas/usar-sistema-swl.md": "00fe741ca5d64d2e57fee0245333618cbb1d212e6aea74f47b64e2340dfbc6c6",
654
654
  "reglas/verificar-citas-normativas.md": "6e0697c4a38d3a2c55b7f0cf26193fe3bb246b901d93ce4f4bd7b8c297982140"
655
+ },
656
+ "2.2.2": {
657
+ "agentes/_intent-spec.md": "58df2403a0ebc66d487423732080e615698325f300b98fd9f7734fb4ae55a6a2",
658
+ "agentes/_propose-step.md": "298c946f947b557088cedb3fd2631fda756a91510a39e0a3c95a9610e6d3eeba",
659
+ "agentes/accesibilidad-wcag-swl.md": "106f5cb03b2c5d320d0bf7bb050198bef37667b38736d5e7b372f51a61c1aac6",
660
+ "agentes/arquitecto-swl.md": "eb0ba6651027583860de936b70ed5231f0f5d7182e39850cbfe717d9dc7e76ce",
661
+ "agentes/auto-evolucion-swl.md": "2d532afeb8bfb73f5ad67d611f9cc2047350c0c5c6ca127e5759a3cb28691470",
662
+ "agentes/backend-api-swl.md": "07f58c091f9fbc53e5591074a2cb5329b712c8b4a9e214c6ce40dca2f4d36bea",
663
+ "agentes/backend-csharp-swl.md": "36a9d93802218b3942e291d0438027d7dc2fc2c51fdf0b7ce151eb18f64e9af3",
664
+ "agentes/backend-go-swl.md": "15c8f6fcc0899530540be6055e5b1a8ad8eb9dda195321f5eb104d59507b4645",
665
+ "agentes/backend-java-swl.md": "07c8bcfaf3e0690ec6422f3221a51582b1d269872863e66f3d9c3943179a69bd",
666
+ "agentes/backend-node-swl.md": "98dc61915eea6471b0960d186c1f631f3bcb5605afcd55e5e161d7e4753220c6",
667
+ "agentes/backend-python-swl.md": "32159a5a04c6f3b019d9d51254bc42fad49b6bb74c6e34593a89f0d147d8d7b5",
668
+ "agentes/backend-rust-swl.md": "fb964bb6f18190b6a0ac2fb3cc1103179ae5b4b310ca128023e1532766aa90c8",
669
+ "agentes/backend-workers-swl.md": "14e9846d93ba48d4d58bd9d3bee44b5cef2662e593c2e2588df8c2d677d439c9",
670
+ "agentes/cloud-infra-swl.md": "3b5a02ce24a26e3b2c0dbe6bc01bd21e5a0928094c79a82a0f5b5cef6a784005",
671
+ "agentes/consolidador-swl.md": "b8afaa2b5cc077b87a3ebb622b2c1dd02d0605c8ed532f4e5252f52bb3215e70",
672
+ "agentes/datos-swl.md": "851ad67d6832b3e9ea71d50b98c223a40498f9ee39c402c07e8b3bb19d251d86",
673
+ "agentes/depurador-swl.md": "884e139b752bc5044f245a7b65d503c3c789f212a466d2d7e776ddc2c8a8069e",
674
+ "agentes/devops-ci-swl.md": "33dfc1b0c5d9d3f6d217c4f1b6846ea55927098a8061dacf9cb234919ed96039",
675
+ "agentes/disenador-ui-swl.md": "0e62cc2fccf7c6cc2507fccafab0eb09f4f20a946c83177237f260a4be690709",
676
+ "agentes/documentador-swl.md": "f5bbc173af4351c36419fb7da3fa14a0c1cacbcbde50e0cc4c681e165ab5345c",
677
+ "agentes/frontend-angular-swl.md": "a8d20ccb6eb582f308fb09537ee68a991bea1a22d8ad764b827c064e7eb8eb69",
678
+ "agentes/frontend-css-swl.md": "81ad399c4ebf8975348277aba6a63ed365412e5db35e17e912201dd7b61ac737",
679
+ "agentes/frontend-react-swl.md": "d352988d7043a8b0b4af7608c2a2859f66708119c96e133879320fe13d5c9525",
680
+ "agentes/frontend-swl.md": "660dbd920364542de70755a407a1e95e711064d0ef21bbbd3c5cb4e76a21e2f9",
681
+ "agentes/frontend-tailwind-swl.md": "11e56eb7be32c603fcba03a514de0386dfdbc98d39ea4f0ddab92520381b11ac",
682
+ "agentes/gh-fix-ci-swl.md": "5364ae760f42cfe16a9bf552e36465528b47f156188a801b052b6f0f829071a4",
683
+ "agentes/implementador-swl.md": "8a5de1543e1d00fc1b071ac6f226443bad815f4905517aaacf99278cecf57664",
684
+ "agentes/investigador-swl.md": "a656dc290eb4cb91d56b461d4e472bcba1f6c80da82db3ae0d766573bd04273a",
685
+ "agentes/investigador-ux-swl.md": "96b5275b2afd912fbbfd9a63d5cb3b8058ad4238dcc4f133244e7b11cb68c958",
686
+ "agentes/llm-apps-swl.md": "8232e80b0421291e4485467e27c886b8e4dda35e16dbaa8ed756e3129f7724cd",
687
+ "agentes/migrador-swl.md": "b214862fbbea8f5c1f00f59a39c09c89cca281c3da1340cb3af7c47c7076511c",
688
+ "agentes/mobile-android-swl.md": "1742204632ea2479e93a9f7540e6f5f1c157139393deb91d73f4bd7b87581fae",
689
+ "agentes/mobile-cross-swl.md": "a6eacaaf3fb61dab906e325d4c237134ff9cb9e012ab53dc9eb48e3f95122a73",
690
+ "agentes/mobile-ios-swl.md": "25e8407f4ceb8d8b1980363ace0ceed72cac871203a0d32872a5afc4a5a19897",
691
+ "agentes/mobile-testing-swl.md": "83045f89a391dac7ec51dbbdb62db0a256c00e6e21025ab572d68cfaaae5052a",
692
+ "agentes/nemesis-auditor-swl.md": "c23263defcac8dd5607800cce7426699356a21f01488801be635fad6fbd90f09",
693
+ "agentes/notificador-swl.md": "a72382ed8a950bc6600b075f8df1289f5b755ac93f42df368ea3b52ea5181b84",
694
+ "agentes/observabilidad-swl.md": "bb4ff6548d4bf9aa54619913f8960cc252650467cd6c0b5278adc568cdf839f7",
695
+ "agentes/orquestador-swl.md": "9b359fd3637321ee931f54ea7b9dd4b3e2e55c91284636862ad8d426e81ce87a",
696
+ "agentes/pagos-swl.md": "27a7c7b7c8fe732a7cd3e545c528cd1b3b268f3d5e4623638e64d0b3be8a99ab",
697
+ "agentes/perfilador-usuario-swl.md": "774dd268a238972a31d4f2bd9aefe7f320d72b4a7a36fc8bdecc6e9e17282eaa",
698
+ "agentes/planificador-swl.md": "898f23273c2bd0b60ed7782be377a2d1cf02834de8a3ec9ad703cbf0190c4c9d",
699
+ "agentes/producto-prd-swl.md": "27e98012a9b130ab3622cc010a37b30cb296b798db724b26be8c8b9529197c52",
700
+ "agentes/red-team-swl.md": "ac757ef1b4bc372bee6f4c05872d5f45d1636d2481a980265410aeea29c200e8",
701
+ "agentes/release-manager-swl.md": "93b3917ca8d8b3add8aba96bf24af7060533f59ff86211084059a1137fbf83f8",
702
+ "agentes/rendimiento-swl.md": "e43a4b27a3a26b526c638833b2e40d8666fab9c5ee5ea66c7a4d6bc912b5019c",
703
+ "agentes/resolutor-build-swl.md": "1c7d1f8d2e91d0b95aeda633453db7a18c9bb067239eb9a1a62ab550ba0b3ad0",
704
+ "agentes/revisor-angular-swl.md": "773e5c69b683983754f055f28e2bf577546a0bbb6803ae3039dc3cb446acb2ad",
705
+ "agentes/revisor-codigo-swl.md": "9504ddaf30e0cf91009955ffaa2dd7526e63ef71e58a010d067c32b8d5a9b124",
706
+ "agentes/revisor-csharp-swl.md": "6502d975e4aa0476d19fdabd9ca94270b34a228b606db8221bd0657c17b374e1",
707
+ "agentes/revisor-go-swl.md": "10a189da06f25615561f6b8f6c8cf327b0f0500570406a0eca5f45db96d3a6d9",
708
+ "agentes/revisor-java-swl.md": "c37921787723089faf688dcaebb852c21fdb1ed56322e9be08f5bba38e9c2964",
709
+ "agentes/revisor-kotlin-swl.md": "ffc449ece6876f8202ace51aa530a4416fec09e0d926ad06096b28f59cf31878",
710
+ "agentes/revisor-nextjs-swl.md": "1fb188da086bb7faf7434565ab2089f80b16b98093b9aa9334626c287f00a20f",
711
+ "agentes/revisor-php-swl.md": "4cf9a789ec4b8eb86af2dc3b426f015a1cfc1f2909f143db6ddfc56446798d26",
712
+ "agentes/revisor-react-swl.md": "15fb5e710e56a84d235e10ddc1f4743c690816b51fef6eae89eed99f0a53fe5d",
713
+ "agentes/revisor-rust-swl.md": "687ea6753fc87575f3e9baf5ad85771734167845726de518f0e818bd4a3b3ec2",
714
+ "agentes/revisor-seguridad-swl.md": "aae930ffe1388c31a37409438b70d069b90358861c0ba8cedbc43d77b94a09bb",
715
+ "agentes/revisor-swift-swl.md": "08b5236b4870985dadfa30267a842b96897399fa406117dd439f713250b16c42",
716
+ "agentes/revisor-typescript-swl.md": "fddf6e6cc299ddad513b03e03cddc112bb9aad82b7512360ee11d9fdd565ab7a",
717
+ "agentes/sre-swl.md": "a5bde29452a589d963643fb728bcae1815093d02793f5bcc6a6c0b3b8692c853",
718
+ "agentes/tdd-qa-swl.md": "a2211750d805967aaa032e712272eedd668d8fe15ede6db896c77187f58f2d87",
719
+ "comandos/swl/actualizar.md": "f117df8229b10ecdf28a136e911df0379625f6600d86a56e2ab671c704204105",
720
+ "comandos/swl/adoptar-proyecto.md": "4d1c06dffc7d91294db76290230508f876bc6b4c85a7d832fba3b9da56ddd9a1",
721
+ "comandos/swl/aprender.md": "4423090d813aa16a3de3ae86af57b17c24fce9b4250e158609003217bfed533d",
722
+ "comandos/swl/aprobar-plan.md": "2ad40e86a6cbbeba6e331b78c6a993d2033503cd9221c2763fb797fa327022e5",
723
+ "comandos/swl/auditar-deps.md": "6fbe283ce326f90f09fa812c7e4f56b4debcb46ad1aebb4cf0856eed8ffff46c",
724
+ "comandos/swl/autoresearch.md": "8964576a5bf2f2ad3119a692192c46e6f84338b758f80f8b5e9415df73f3a3f8",
725
+ "comandos/swl/ayuda.md": "320dcfbb40522468b7e3358937d7e33287ffd56254a1815b12151af8266d742a",
726
+ "comandos/swl/brainstorm.md": "81379eddb6194314ca9192842ea3012dbd8ed5d13dec5453541da6a0ddd3fa67",
727
+ "comandos/swl/briefing.md": "a5d330736de160c9cf7da208921066c8a170ede310c4748000af331d5c4d9ecc",
728
+ "comandos/swl/checkpoint.md": "91af22712265c8945c224718d0287ac21efad8aced174cea1a0a6c4cc7c70c91",
729
+ "comandos/swl/claudemd.md": "5bae75e77485989f9d9ff09f597fe0010db912e8c34187be6e459b0bbc09c9f1",
730
+ "comandos/swl/compactar.md": "06baecf464627a45481813bb204dadd560fa45a8a09a2bc47480e6dc0f8cd9f7",
731
+ "comandos/swl/configurar-ci.md": "270afa4a951f83207def79bc8423e5de8b781c21c08aab4bcefc75a2e591c71f",
732
+ "comandos/swl/contexto.md": "5e48bcd83dfe2b9787f84ab4bbc01a416cb3e286e47919cfce164b18252d0250",
733
+ "comandos/swl/contribuir.md": "37fd17e3dc8cd8b51a0997df66c527eeb41f92abcd63ef032a5da8df4f70ed0f",
734
+ "comandos/swl/crear-skill.md": "6689efac053de2c80f05182f34c8ddb7ec4f81dba9f3479166cf7bf9f003d71b",
735
+ "comandos/swl/cron.md": "414d88ea3af453b90386421e1f569cd720b3414afd049afe96fff085d9870667",
736
+ "comandos/swl/discutir-fase.md": "637cd79469c1239db700d8db09c6106ed90a28304c3cd00d5046420ff45119fc",
737
+ "comandos/swl/ejecutar-fase.md": "eea239bc28a7c8566c3337496e7cef04997585f6061cdc152a1fe7a7f4850f29",
738
+ "comandos/swl/evaluar-skill.md": "544a3b79d4e219bed22cdd266ebdbb91906f6ff71f5987f7ef5723cf39f7d5af",
739
+ "comandos/swl/evolucionar.md": "62c0b06930d3b9d8cb876f6bc84a0a919d2193c69e6c2df7b89860c54b08b845",
740
+ "comandos/swl/exportar-vault.md": "23156a79b69e2d85e0e5039dac3f1692780c3ac91ba6c1f715302b8e6eaed26c",
741
+ "comandos/swl/gateway.md": "a995dfb3f3423ed01f541c26770ec4c4a9baab659e8f4e4b5bfea0b29adbdecc",
742
+ "comandos/swl/inbox.md": "d688b03288a55a30666a8481a9a6f9563840f7a06c7c365c50f72c064d058370",
743
+ "comandos/swl/instalar.md": "530925d89ada0503f39fb8af8fc2370e048003c830db3885033d1a8550112474",
744
+ "comandos/swl/instintos.md": "34557efe6c7afcb843714c87b0b6f1c107285f0e081c7b158f4907746b78719a",
745
+ "comandos/swl/mapear-codebase.md": "bc831928549709c2aefb7cd3bea04266f813bedffb961b893ee4012e4231fac0",
746
+ "comandos/swl/mcp-status.md": "42d8e4169d1d8b49ba11c84fabe0615b213c9e6f3655a5a84cf726558098bc6f",
747
+ "comandos/swl/modelo.md": "471b47f907836d8069570b94a9cf39c8dd91fcf85d6107329db353e63a3438ff",
748
+ "comandos/swl/nemesis.md": "37ce36153d46cd666412c35ed65f296676f2db4375c4060edd4a04b2e1d95cf7",
749
+ "comandos/swl/notificaciones.md": "34da7d2c298160a85a3c5d64ea9ac6c4e060ec1be3ca1a4e3f8124c31cfb0d1f",
750
+ "comandos/swl/nuevo-proyecto.md": "bc6171a2103f03a4160aacdb9f8a6ecf741a8378dcdd72af0f7c235f8442fb66",
751
+ "comandos/swl/planear-fase.md": "fb6a224a6a7d005ca0d0846cfc86e2c33560ab0a76a244c089b41f68dfe27da2",
752
+ "comandos/swl/plugins.md": "03f5703ab400612bd36f6f65ba7bf0a4ecb9795435580ba5de2020c860a9200b",
753
+ "comandos/swl/predecir.md": "15bcb5eff373b8c787cb13501d1e0f9e873a58bb36e36e7d56195d9849319429",
754
+ "comandos/swl/reflect-skills.md": "b15e5ae63267d67eeef260092fb0f4b8dab210544bdf60053b0f86923b961ddb",
755
+ "comandos/swl/release.md": "2fa631ee615645f74d1b50bbfd70190b02198992581f0440f0607c76eb2ea7b6",
756
+ "comandos/swl/revisar-impacto.md": "662ee411af7b63671eff5a910de4a24ea7971c87241d8648cd6fb6c2403668e0",
757
+ "comandos/swl/revisar.md": "7b17679c0cadd2fca7a015c302459f7ca127dcae02a74c990cddcddcb4c15f85",
758
+ "comandos/swl/sesiones.md": "52d20af5ea2f7656a89144686e0507aa2bfa1aabcf1a1676883befa76fe5f329",
759
+ "comandos/swl/skill-search.md": "e0dc8622080ec56da2b98c1ca9f44771daf2d8870fc620edc7ea64a28b7594a5",
760
+ "comandos/swl/status.md": "8240ed406c4af622071b342ff65f8b5a0a138bed8ecf57fb01b6133ec806886d",
761
+ "comandos/swl/verificar.md": "935538062b5bd1f1bf435cbcf0174bc979a05bc7827b26f6bbb2baab9e562ab9",
762
+ "comandos/swl/wiki.md": "68ae8163fa8493ff5d01b8ab281f18ae0939981cc2a88ec3b759f83efc6dfac4",
763
+ "habilidades/accesibilidad-a11y/SKILL.md": "500372c367122b4d06e04254326a19b196e29d1d7d760b7a4873f136ee19a4ab",
764
+ "habilidades/agent-browser/SKILL.md": "77cc3d490439ad9a3df02d6b44c45af4436c24768e8f4554ed09b57af1bb0d57",
765
+ "habilidades/agent-deep-links/SKILL.md": "4fb8150dc13c0d07381701d110c259a452d6b04f981b08e0478e24c38ea9dcab",
766
+ "habilidades/agentes-como-servicio/SKILL.md": "a9064e69fdfbb815433aeabcf15e58b4255ee51bbe2a8ed9665215de1bd68dbb",
767
+ "habilidades/ai-runtime-security/SKILL.md": "820e59760f7ef29761ffd9d75677e638a5df16fba8ee9fa16813f8e4a6a0828c",
768
+ "habilidades/angular-avanzado/SKILL.md": "9002c549e1c5aa00726d35a332a1760192927856871e1f7b18c949075da0fc3b",
769
+ "habilidades/angular-moderno/SKILL.md": "2f496eea8f9f174cfe08c0e62cca069ce8e39a0a276da4eadc6c2e6c1f2d5ac9",
770
+ "habilidades/api-rest-diseno/SKILL.md": "22898f30ca8e2aa696f9a75f58829eb4d8e7f5e4eb303ee8a981cc93406d9d02",
771
+ "habilidades/aprender-de-git-diff/SKILL.md": "5be6d2288a3522833935e48d160f27c40e2695d0930869f25bca73a121ba2eb0",
772
+ "habilidades/aprendizaje-continuo/SKILL.md": "bdb2323bf7d00997e7899931d4af6ed05ca85fe70be2dc27620c39c14db1ba25",
773
+ "habilidades/async-python/SKILL.md": "7ebecd6741bc522214bc0ad2e1c29277d174d9e12b4436e66a2e34a88a2bf843",
774
+ "habilidades/auth-patrones/SKILL.md": "796ddc3ab468b10d1ba8b767fc24b167368c975475d62fc3b5d2523fe28292ea",
775
+ "habilidades/auto-evolucion-protocolo/SKILL.md": "d31d508d7bec1ed266e03f5cef60e1f11b661e45f7b4f43f77b06333e211ed1b",
776
+ "habilidades/autoresearch/SKILL.md": "8ae3bc7530d405fc56556a761f4d3591855e79ed69078551e1ea884741fba244",
777
+ "habilidades/azure-cloud/SKILL.md": "8ae0d4822703c197d25785d23ab37e844788d437b202d08503b00b296da84f76",
778
+ "habilidades/backend-async-postgres-testing/SKILL.md": "6f400277bb86ccede57f647303a8e46963d591040686e1f59eb34eed5e1f801d",
779
+ "habilidades/backend-error-design/SKILL.md": "3be8263e2f2a5682ff2243088bbdc9ae7e5e7df59495d39d6fed4ba246e641dc",
780
+ "habilidades/backend-mcp-servidor/SKILL.md": "1db631547e77b61894d5329931369fc8271c03a1383e444117be8d9763481f83",
781
+ "habilidades/backend-production-resilience/SKILL.md": "c2a4c429a370421833701e7e8d74d9413d21bf014ae45985c8c6d7259fc1a5ff",
782
+ "habilidades/benchmark-memoria/SKILL.md": "d2974eef1b2f96af911d342b212b3b4affeb24a1fcbf97db9943d156de282f8c",
783
+ "habilidades/brainstorming/SKILL.md": "dd2044784fa2cf1726d1a46b309717111249386c717545bbce5e78ddd7484cb1",
784
+ "habilidades/browser-interaction-patterns/SKILL.md": "3a5ed2f97ad531fdd01d3ffe011e9bdf307e72b614d7372219d789d978164a8e",
785
+ "habilidades/browser-research-domains/SKILL.md": "a5d16612a06cf24b13802543f789dae4a4a1c161af820edcb939f09278b7b81b",
786
+ "habilidades/build-errors-cpp/SKILL.md": "048d45d249a15fbc35aa31222bdc9618e5aec2719bf856a59ac84e7fa273cd6f",
787
+ "habilidades/build-errors-csharp/SKILL.md": "0ca5f92455a11a3c1185fea09b7a0cdd0d8270fe37ac7832688fe2757ea98ff0",
788
+ "habilidades/build-errors-go/SKILL.md": "5564a566719d5f32fdb8e452624fdddeab118f9afde4b471ff8615e2a6d6ba5e",
789
+ "habilidades/build-errors-java/SKILL.md": "40191e6120fe98d55dfdbac67350dd112810baba6ffcfc2902ae687e350fbe53",
790
+ "habilidades/build-errors-kotlin/SKILL.md": "60e3033c492597b62e5359930f95a706a0c679f9a8ca52467eaebe011c826da1",
791
+ "habilidades/build-errors-nextjs/SKILL.md": "1893d7452af514a8676279cc082fdef3790d136b2334429a7e3f1f668ea87343",
792
+ "habilidades/build-errors-php/SKILL.md": "398391c87885aa52654e27066b5bdb2bd3c8e3e68eecd939df02b3367df9c21f",
793
+ "habilidades/build-errors-python/SKILL.md": "73f65c7456c21216fde3c2df3c31a1cb5ec1999e79d9c917afd1bc11eb1bcecb",
794
+ "habilidades/build-errors-rust/SKILL.md": "6192378e69787658fada7f3e191fe54b1401e234a50f943701c6b088bf509a51",
795
+ "habilidades/build-errors-swift/SKILL.md": "fabc54050e42abbfdf3402b887b628c47dd0acc37062a8ceaf4494720f7797c7",
796
+ "habilidades/build-errors-typescript/SKILL.md": "d0372ad6d5e6cfaa5ef487622b947a7ed4797b4cb94cc309be79c9857694b370",
797
+ "habilidades/calidad-anti-patrones-universales/SKILL.md": "5047fc360759b8d894b3e5c20a344cae46562c8131267c5a59f9d8f8839ef178",
798
+ "habilidades/calidad-contract-testing/SKILL.md": "dc91fc323fa1f721a5957ad72f5403987c8e49ee0dc059e987bb131e4492f292",
799
+ "habilidades/calidad-mutation-testing/SKILL.md": "aa8e10f5b4bc8ed9c2faefb55d5db881f5009537e11c6b12eedd4e07dc25eabc",
800
+ "habilidades/changelog-generator/SKILL.md": "192e17bd2fb16d1769a2497bcd2ef150dfd34a7872474cf340ce43d1a55a6a7d",
801
+ "habilidades/checklist-calidad/SKILL.md": "4bd1ebfeaf36032cd8078900f60de8a77f55a3a5bbbacec132eab52aadb88fb7",
802
+ "habilidades/checklist-seguridad/SKILL.md": "839b133a97677b0e9675776a99b6a6351133b65fd99ad6d851dbd84073996348",
803
+ "habilidades/checkpoints-verificacion/SKILL.md": "58fd866b5bec6bb8c06c1a179a4c4cc90f3c55b5b578296f3af15254f44da02b",
804
+ "habilidades/ci-cd-pipelines/SKILL.md": "a5a3ccaa688401b1730e972d77f435581315590299d23856ad5434780873cc80",
805
+ "habilidades/cloud-aws/SKILL.md": "ec428fbc973830351543f7cbfa30bad6785c1f0f30bf3f194effcac5985beadc",
806
+ "habilidades/compactacion-contexto/SKILL.md": "53555fc974d3c23772c6a3ec25d463effe93e66fc8aac1f117a5c91d173de385",
807
+ "habilidades/contenedores-docker/SKILL.md": "8c032641cac39893c9e72e0d1afd0e1d6e307301d774e056419f0139aca67804",
808
+ "habilidades/context-builder/SKILL.md": "fc3a96c30cfc0dab48fce652db08aca43753ab8ff38f140e66825aafe5642892",
809
+ "habilidades/control-profundidad/SKILL.md": "ac3ac953c48145ad726c0b76eb070bf53bdcaa0d3b446d35cdecb48d1392483f",
810
+ "habilidades/csharp-experto/SKILL.md": "8e8dcdbe80dfdecdcf125e4f466b1e09a8414e471367dc0e108c4c02198acd80",
811
+ "habilidades/csharp-patrones/SKILL.md": "6886137e008f73cdd5740daead367058a0bdd1b9dacdda8b1b8d0386216dd3cf",
812
+ "habilidades/csharp-testing/SKILL.md": "af5ddd9b89d3c35151fc4e45add2900fca10f3ab27b6ca29bd0a0e70c74d0df4",
813
+ "habilidades/css-moderno/SKILL.md": "9ec83d8a94a9347aadd0437af5454e88f1684d5b0f7e2b1089433571ccb5ba84",
814
+ "habilidades/datos-etl/SKILL.md": "a4f2b3228ab8a93d82aa9aee2a3662ed51ea858b0fb05d3e9345c12f5965a8cf",
815
+ "habilidades/dbml-experto/SKILL.md": "bf43ba9e88b6f91db799fb7d1a30bfe0e973456804d8f851203c1d5e67d58505",
816
+ "habilidades/dependencias-auditoria/SKILL.md": "6f6907bfa8facfd5ca9fa44f0eee05484fc7e0cb66ae09b8ac209013de0c95f2",
817
+ "habilidades/deprecacion-migracion/SKILL.md": "e10a61c5b3ce9703b7fd3d06dbac0b35f89b3f8b91055d8420eefafa3541ff9c",
818
+ "habilidades/design-tokens/SKILL.md": "b3bab149fe65f9e4a3a720775e1a7fc0032740487434f9012f2960fd8acff158",
819
+ "habilidades/devsecops-pipeline-security/SKILL.md": "97ab5382c4a803af0b4c0aaf664911695bc1e6c85f910821325acc3f51bc53bb",
820
+ "habilidades/diagrama-arquitectura/SKILL.md": "1771d492438f0fa0d6b3c81cad6e8dc88410698ac7014cf809172906b62ed906",
821
+ "habilidades/discutir-fase/SKILL.md": "fa6928ee4569259f0e907008d3dd251a66ddc99c391f60ce3bab7d346e10e125",
822
+ "habilidades/diseno-herramientas-agente/SKILL.md": "416bcf1e4955ac9ba65ff6c122e142c123b7db340aa58dde3ae203cb819ad641",
823
+ "habilidades/diseno-responsivo/SKILL.md": "6aa294c3b201a6bb256acb111e0230ff414c270bcd16d12540a0230855e4f235",
824
+ "habilidades/django-experto/SKILL.md": "8dea1bac9c2cf000d95127740c790958aba5e10fd8bbed99a9dcdd9ce2f93e04",
825
+ "habilidades/doc-sync/SKILL.md": "c49b6304941b229d12abd2a83550e7c988edf087deccceef3d1bc96ec11119b4",
826
+ "habilidades/doubt-driven-review/SKILL.md": "8a0ae42479d7f2396e4e77a97996828391efdf7b8b11f90af6f0f65615a20c58",
827
+ "habilidades/drift-detection/SKILL.md": "d4ebac36efbd93bcf4487542151812242730da85cf2724a80b1522589813b9a1",
828
+ "habilidades/ejecutar-fase/SKILL.md": "861cf3d2198d43432090f25f69d79f9edf6214ac31c23531957071a62494de3f",
829
+ "habilidades/ejecutar-task-iterativo/SKILL.md": "af59419363aaec817a7f32470802c73df0c206d1506f22e6f94f5d6096b4056b",
830
+ "habilidades/estilo-sin-ai-isms/SKILL.md": "a581d82dedba9bbb73927b5f69006421a28c75958d5e6cf7f3fb069b5c95613d",
831
+ "habilidades/estructura-proyecto-claude/SKILL.md": "34ecc86fa8b4ef58a9485842d52ae967810e87bf6ac4793d28274d1c73b74182",
832
+ "habilidades/eval-framework/SKILL.md": "18edc007967aea17a9dcb051dc9c75dd999d96d0c0255d91947c254255bcd2e1",
833
+ "habilidades/evaluacion-agentes/SKILL.md": "17c08cfae68e423507851a1baabd54edcd6f58e6e2a93ea5250cf81943174035",
834
+ "habilidades/event-driven/SKILL.md": "fa7627b0178403702200b9e6501c401ccd537481c1e88742bdb7054052f28c42",
835
+ "habilidades/extraccion-documentos/SKILL.md": "3af2c23b4d1019d5c3cf0f7c98fad7f253d863ad04dade2c23da816c49d74bc9",
836
+ "habilidades/extractor-de-aprendizajes/SKILL.md": "39ef84f1adf3b08dffa2564909fb059af243478f11102ad01736efefad6c8cb6",
837
+ "habilidades/fastapi-experto/SKILL.md": "d657e80b9edc733966c44c3755cca3ca19a825243cd0bff6eaab4bc046a963b2",
838
+ "habilidades/feynman-auditor-swl/SKILL.md": "7fb1e239d7096f9d58b88d77acd08afba9ceccab8316ec0808dd6463866c530a",
839
+ "habilidades/filament-admin/SKILL.md": "252ff3fe05c08a42b1e44c09d4806f16d28d26c7fdfe156aa217c9380f36f4c0",
840
+ "habilidades/frontend-avanzado/SKILL.md": "4e7c8b402da138a56890a745fc508e77a2d549ff7e37467344efbc07692db28c",
841
+ "habilidades/gcp-cloud/SKILL.md": "d4f4db699f9cea2ae9fefc7c7b4acc88d8272cb9f41137c8728eec52c17ea9d1",
842
+ "habilidades/generacion-mermaid/SKILL.md": "8cd0f8ec045ab25f9dd9d52402f816f61ebb24a02223028325bfd6edd6275c3f",
843
+ "habilidades/git-worktrees-paralelo/SKILL.md": "90120d9554df3e32419e41e8b13825fe0e8aa46f67f093d93737f39b4b52151d",
844
+ "habilidades/go-experto/SKILL.md": "acde2520a9927b6557741fd37254e9852e481f48dbcd5041832008a23fe2f626",
845
+ "habilidades/go-patrones/SKILL.md": "5bd991417068df614191b7583dab3e3d8761d66e74fad885572a62ea98a1bbf2",
846
+ "habilidades/go-testing/SKILL.md": "b8e31b72b7ef52df10cccae2aa99691ef3ddf7211c1af7909de5d168465e0300",
847
+ "habilidades/graphql-experto/SKILL.md": "f8a70a0cd0a888aa43d4c3bdebc8142e8cb2b37df228f9ed3dbccdab9022f6aa",
848
+ "habilidades/guardrail-semantico/SKILL.md": "366dfe016c1907413b7efaa04cb4e6d6c64dbfcbfb53da3b9ba546579d3453e5",
849
+ "habilidades/harness-claude-code/SKILL.md": "df4ed31bbfcfd482bd44f9f3b33c110d5189a10172fd0d5a3cbb92069034959e",
850
+ "habilidades/iam-secretos/SKILL.md": "6245a62b3c51e4e9b2caab710d06709e656a2ed84fb9a6de491b6c4767aad890",
851
+ "habilidades/infra-github-actions/SKILL.md": "19a85aca305cbb90bc106f61d4de3f945f5b70ac890ae6f60301b6b4091e3462",
852
+ "habilidades/instalar-sistema/SKILL.md": "1ebc8c043514eefaebed586a622247bb58477bf67da90a250db579fd63d5f44e",
853
+ "habilidades/java-experto/SKILL.md": "cf545788d601fd10a0153e46b8aff67b5f8af0ebc2a753117337e4288faf27bf",
854
+ "habilidades/java-patrones/SKILL.md": "76d387de2566bd79663a0b2fbfe36b49e4505635167844a4c3c4ce5012de8f64",
855
+ "habilidades/java-testing/SKILL.md": "5cfc5aa4c86b347023a4c3ed96130b5cc706f8aaa6fa78ad71afbddfa4e6127b",
856
+ "habilidades/kotlin-compose/SKILL.md": "71c35fef252d475b60908341797ad5c10c4a007225334bda5821843a17013c59",
857
+ "habilidades/kotlin-experto/SKILL.md": "f1973adbb2614e6dc42521abc6fec17ff9441faac200d48388e9aa333bda7124",
858
+ "habilidades/kotlin-testing/SKILL.md": "225e23c552dea40f46f8f2bfac7bf91c73e16ff05de59e828645b006963e5021",
859
+ "habilidades/kubernetes-orquestacion/SKILL.md": "4b06e923d1f95a5dd32f113389798eee660a1b1baafae3722bebbc61dabe9f3b",
860
+ "habilidades/langchain-langraph/SKILL.md": "f8e5c6242a81849a9d19a4e5a6bbf8d6cf0c5a77737a9f62881b5bf72f953fde",
861
+ "habilidades/legacy-code-rescue/SKILL.md": "581e5c2785e0fdba330f7131090c4509fae3d08e844896c2a8ef0abe1121a8d5",
862
+ "habilidades/likec4-experto/SKILL.md": "0dc5eb07a5413bdba2205c9b577d00dc978d0bc540f526abc9536cf4aa5ef055",
863
+ "habilidades/manejo-errores/SKILL.md": "1c230410505f57e4e3125ef26116a3e72edb13ed63136517c0ef4a712245c9d6",
864
+ "habilidades/mapear-codebase/SKILL.md": "b0bcec7dfb20591de7bf77ca8c09f734ddbc7c07e19429691c4cd881090dfbf6",
865
+ "habilidades/memoria-busqueda/SKILL.md": "606e0cdb920166733462dc108fd87e6cce1d173b0b7a9f115fda4f9dd088312e",
866
+ "habilidades/meta-skills-estandar/SKILL.md": "2826bbf55593e9e9bb190e2dc881ea349500b19f39f009336c696bbc3a4cb22f",
867
+ "habilidades/microservicios/SKILL.md": "9bcc75168a97fc2f43ab6f08fe21985ebdcb4771d1150746254439042f1af5ce",
868
+ "habilidades/mobile-flutter/SKILL.md": "4364d61c4bf6bf02e29a7a2c2942475ab71a0ae9df6d9eb2de9f774132da562e",
869
+ "habilidades/mobile-react-native/SKILL.md": "97d47a359e7f4b6d2ef833e4e1b904bc9d3905e8b4676b4a5aadef1a1d7082d2",
870
+ "habilidades/mongodb-experto/SKILL.md": "924eb3779c5a7f6de7517397d42ea7ca16c550e534a712524c49f1cc7bf8b7e9",
871
+ "habilidades/monitoring-alertas/SKILL.md": "641d42946c1eebf8ae42b273f150d2257cbbfdd649f3135bfa282774016aefa8",
872
+ "habilidades/nemesis-evaluacion-json/SKILL.md": "34c9b9b763706632f5741a5267e8b474a6c6666a685112a7ebd864ea4a077af9",
873
+ "habilidades/nemesis-redistribuir/SKILL.md": "b2ed30b2f2c57239f0bc1a228da14e4d7d3256bbd5f577a44bb6a035042093c1",
874
+ "habilidades/nestjs-experto/SKILL.md": "adaace2a47e5b6f40801d751fa5e7197f2ecb84da94942b10562520c944df0cc",
875
+ "habilidades/nextjs-experto/SKILL.md": "fa0305930d2ef7d3ae5ee60f015de1486163c3e7ee58f76e6b447f62eb3fa59f",
876
+ "habilidades/nextjs-patrones/SKILL.md": "d97850fb296d80965f995fd4f709c3cbeb5cf01ef0c1da775bcb022c65f0ea0b",
877
+ "habilidades/nextjs-testing/SKILL.md": "30d1bc2a006c8da886b9cfcd43c28b52159fdd6cf63101296785edbc90099d88",
878
+ "habilidades/node-experto/SKILL.md": "44705c5fa9615e1ddc86f62b4cf3041d183f08f11fe134695a8b5cf5a00f5cc8",
879
+ "habilidades/notificaciones-multicanal/SKILL.md": "d707ca749ce1d73066e99dc25fe7905b7dd0ea99059549e28de3a5af2ff37bb8",
880
+ "habilidades/nuevo-proyecto/SKILL.md": "7593c1eccc8622d8d6b071a6d39ba33a978c0859320413789d037440d3b04ad8",
881
+ "habilidades/orquestacion-async/SKILL.md": "ef6db48bb8220f9c5ab3ddfb4a289ddda0ac25d4990b6fc879bbe32a2bdc390a",
882
+ "habilidades/paid-media-tracking/SKILL.md": "e64605bd9958fb20b40c6b22d9071d12d7227b33bb051dc47d14042fcec7b5a0",
883
+ "habilidades/patrones-python/SKILL.md": "b1ef79daf505cb7790f93bb1db694ac35bb542a2a4603717de74d2533e9ef52e",
884
+ "habilidades/perfil-usuario/SKILL.md": "6887b812f57b357ef289e6f66efe17e4e92b4ce4458e5492a8f7b426fdd08deb",
885
+ "habilidades/performance-baseline/SKILL.md": "a471b230da1fe20ab0b36a1495b4c2e2dd17c5b8bab02e2a464dff290ef21044",
886
+ "habilidades/php-experto/SKILL.md": "f366a8fffb9088b1b84bad8dbcc3a396fc4c83750bef61ca952be282d8d5fd76",
887
+ "habilidades/php-patrones/SKILL.md": "238265a70101654dd983e186e9399d62e63152beb22ff120bd4738d4015486b6",
888
+ "habilidades/php-testing/SKILL.md": "79172361b329873593ed14ade150a6660e403c78f87dd9a1fbdd1135a3682d3d",
889
+ "habilidades/planear-fase/SKILL.md": "f6dae84a8f0a152e19eab7d6f45f1bf84da999ccc361f93221b715bb31c97974",
890
+ "habilidades/postgresql-experto/SKILL.md": "b5cce091e1eabf0205fd9a018c468a3455e26a78e42c5856f3ec9d504bd63835",
891
+ "habilidades/prevencion-racionalizacion/SKILL.md": "3978236740c4861b879270993d423f1f0d3e5adf3cd29de40a1db026f95b2da2",
892
+ "habilidades/prevencion-sobreingenieria/SKILL.md": "1314d3147c93b58654866f5026cb3cf1e25d538a6d7c3d9fec66d04e078194a1",
893
+ "habilidades/privacy-memoria/SKILL.md": "747e3a4b43faf68c5491226b28b7bc447e85a257d0a1cf9e8be09f426a3400f5",
894
+ "habilidades/proceso-autoverificacion-evidencias/SKILL.md": "92be7ce4fbda1f241a556738a7eeeeb784f0ba1eb6a6eeca927a4c0d43ff17d3",
895
+ "habilidades/proceso-confianza-pre-implementacion/SKILL.md": "a4df4d11e1bb56ce92212dc5cfb2801aed2fbc68afe8b200a695b757e9823b4d",
896
+ "habilidades/proceso-ddia-fundamentos/SKILL.md": "b51e2a2f71e220c0fc2557ec7e425ff6505dfc31a9720a6c6a0d0e8cb0b51baf",
897
+ "habilidades/proceso-ddia-streaming/SKILL.md": "59ae94da3e656871416c0b47944bf4fae02215c4d3cf7e2f826f206483341515",
898
+ "habilidades/proceso-debate-adversarial/SKILL.md": "74ba347168ae54026f3be4316b05d6d0d6997167e11d07ab2710a821efa679e5",
899
+ "habilidades/proceso-discovery-machote/SKILL.md": "8b6de90ddc971dbdf9d86745792d0149e8d44de5b3c24e9b1399ff643f146972",
900
+ "habilidades/proceso-dynamic-workflows/SKILL.md": "56b4410405d6060f8a0bcc28736799eead5748b208a7a1abc5a8eca1d2e540c8",
901
+ "habilidades/proceso-intent-engineering/SKILL.md": "38cfc73217d54b61e93685dd7bf5f5cb6433e1fc6bccbc0f5a076764ada0418d",
902
+ "habilidades/proceso-modular-split/SKILL.md": "2ede321545b53721ddeda31f186843d97274b9adbd52f52ca33cb8db143b4ad2",
903
+ "habilidades/prompt-engineering/SKILL.md": "0ff460f2e60719b669d54f4f0dec3004e0c106c6d84e065eb8b2239efa9cc1e0",
904
+ "habilidades/protocolo-revision-swl/SKILL.md": "456232d1ca1f40fae9dd51fb6da1a9aefec641a93450688e32df4884a67097e8",
905
+ "habilidades/rag-arquitectura/SKILL.md": "163dc5a65dbfd38935a0d0388338c35898fdd095d33bce671b7fdc349f1f0d1b",
906
+ "habilidades/rails-experto/SKILL.md": "c80d012804c070bcaf3b6b7a749f67d6f7b5bfa9a32246a743ecca5a494c34e7",
907
+ "habilidades/react-experto/SKILL.md": "90ab3df1f9e2b590362bd0088d3f1e700b22f40e15adee85f814adbfbad4255d",
908
+ "habilidades/react-optimizacion/SKILL.md": "4d26faf586b2404db7e48b59548eb33cd41bb0163af966886a83b733afac1f8a",
909
+ "habilidades/redis-experto/SKILL.md": "bd78eb53366e6f3da5c79017ac3942a1b2b0d38b56671aa506d054aef1d1a7e7",
910
+ "habilidades/reducir-entropia/SKILL.md": "8152a0de3c5d5406e3ce5bdeb1530119a31f5788fabdd671e2d2f1e73475d2f8",
911
+ "habilidades/release-semver/SKILL.md": "8e8cbb595618b1d56d7bbc09a6f86f39cf85f2bb9918a7b03e9c94170908ae5a",
912
+ "habilidades/rust-experto/SKILL.md": "79a2591d50678b72fecdf07b713c3ddbfcecef28667ef28eec0daa9c78b8a18c",
913
+ "habilidades/rust-patrones/SKILL.md": "c58a1b9467aa9d3056e066a997908ba876c65a0fdae8697f2d36f3569a3acc2a",
914
+ "habilidades/rust-testing/SKILL.md": "fee2f695d0be176d1cfaff207933969e983782beb075d681baa4ee9b9a0b0031",
915
+ "habilidades/seguridad-skills-ia/SKILL.md": "af5988b859e7336bb59da30c9380e34240e6cb829f463f6761854a7c427305df",
916
+ "habilidades/sql-optimizacion/SKILL.md": "2fb04e9aa1154d5ff44eea5dbcd578561ce79649c96fd04f21e4bcb4b5dc8688",
917
+ "habilidades/sre-patrones/SKILL.md": "96caebd46b0c1e38b6671c0dcd115e454425da180ead5765e5d88ca39b5e8f57",
918
+ "habilidades/state-inconsistency-auditor-swl/SKILL.md": "7abcac8e33415db401b4ec6358a49d629524f2e2dcdffbe1fa8d8ce681153fba",
919
+ "habilidades/stripe-pagos/SKILL.md": "0a2398ab2ea456a401315cc7bd10bc75efbe7ddc7d2578e0ade4b550ba7bbb99",
920
+ "habilidades/structured-outputs/SKILL.md": "77554ab983aab7013374346141f2b8ba1d99b269807cc4c9cd6119f13dd7728e",
921
+ "habilidades/swift-experto/SKILL.md": "e7eb701f8e97e249f34ab086a50f32acc7b73f1e3173f2f630f67d1f8ddca02e",
922
+ "habilidades/swift-patrones/SKILL.md": "9317a34e80dfd3725be11b96d4daf3b7a5dc99a931edcd1b8a9bf93683e23ce7",
923
+ "habilidades/swift-testing/SKILL.md": "97d0fe9334f8da9d84898eeab5d718a8ab061c5f1b84cb3fa9f29d4ff4c608e4",
924
+ "habilidades/swl-claudemd/SKILL.md": "0cecf17c5394f61fb81ed72b0faa90490fcc03077b1d981476da85952c220e70",
925
+ "habilidades/swl-dashboard/SKILL.md": "c38b8f4f24a1eb47f3ab590480e8b63f824e415ee08935e8116b0e986ead01d5",
926
+ "habilidades/swl-markitdown/SKILL.md": "6d8fd5e59e8ce3f94877cecdd34c83ffee0bcd90ad51bdad809fa77ce1d6a841",
927
+ "habilidades/swl-revisar-impacto/SKILL.md": "bff7589944a4304046d0e812ba829b21871be080d39bdfe7cc76b112ce74fe53",
928
+ "habilidades/tailwind-experto/SKILL.md": "42a2bb9f48ee73aff928053de1f7635dba5d3360da18df516c2d03ed4b30ed21",
929
+ "habilidades/tdd-workflow/SKILL.md": "b9ce0da488d97a0f2ac8b1cbe6718f01013176a7dc94f73f33d428e593d911dc",
930
+ "habilidades/terraform-experto/SKILL.md": "be89eb4d2e14fdab3cb005c5dd46548171c9b783088e87e26f403908cec9a49c",
931
+ "habilidades/testing-python/SKILL.md": "858eca33f9e1189ff94399b19e9835919ca190c51c1f1fa49531cf56fd2965a4",
932
+ "habilidades/threat-model-lite/SKILL.md": "5809eda4d3ddf9f8b78689eb21f9f13dcdadd1eab2d801838f1fa02580690f55",
933
+ "habilidades/tracing-processor/SKILL.md": "caa8f914453b4bc5edd75ebcac32a3633967237d9201eb9fb58223432caac3d5",
934
+ "habilidades/tracking-measurement/SKILL.md": "f846c543a9eeb1442cbdbebaaa195fdeff2bd6acec1902620bc31308899f7e8a",
935
+ "habilidades/typescript-avanzado/SKILL.md": "698088688f40116f1f82470933f5fbe1afe79ff1d45a4ac17d86619f95f481bd",
936
+ "habilidades/typescript-diagnosticos/SKILL.md": "798a564878c60f567082cc87e45d0924494d1790892d613a1a825605f6e4a298",
937
+ "habilidades/ux-diseno/SKILL.md": "e1bf67fa394905cdc89eb9ac21a47393f4cfe6cea57f0105e40ec5f0bba10b90",
938
+ "habilidades/validacion-ci-sistema/SKILL.md": "9862d2e4bc00dc85156227592d60a0be1f1a2d1feab4d6ed28fa9510834bf66b",
939
+ "habilidades/verificacion-evidencia/SKILL.md": "4f88c6872b95c250f8ec27fd57e05da1e6650acf3eeda9a411dc1493073a9da7",
940
+ "habilidades/verificar-trabajo/SKILL.md": "22fe8740b1bde2aba898be558968feb1a51cbaf968b30255c8b84c9d2fe5bb4f",
941
+ "habilidades/web-fetcher-routing/SKILL.md": "06d6e3b1a880732a9b0584e1e4c98488e81d0863d53ef3be3eaa147116e2c203",
942
+ "habilidades/wiki-conocimiento/SKILL.md": "59870d616701f90265fe7d5695ec744390dcd0875ebd989309cf37e3a34aba87",
943
+ "habilidades/wireframes-flujos/SKILL.md": "7655d0941b5a6ac0d922517b349ff71a4febdb09ca4c8f7c09c6183ddff23743",
944
+ "habilidades/workflow-claude-code/SKILL.md": "17c397ffbecd2733ea884e9628f8103e822f4cf5366d1cba2611bccd0f51c7ac",
945
+ "reglas/accesibilidad.md": "21914b99f001d3bfc38a39f609bbafe4c58846d3617fea68a7156a29dc58d9f6",
946
+ "reglas/analisis-previo-tareas-grandes.md": "1c4e98c21a8ca762fa7671596f94a79a31da47e1eec5f0d318325f5b56a0d958",
947
+ "reglas/analizar-directorios-antes-de-escribir.md": "a9bfbc46de3477f51a3746dbc466019541597bc00fef2eba8d06ddfe5dcdb6c5",
948
+ "reglas/api-diseno.md": "51502fc461db962bf8da67c78fca9a4665e49058f91b5acba46d4f0bcddfa11b",
949
+ "reglas/arquitectura.md": "171fc565fcb382cc80693fd8d89874e47b9f83c68af31d6bf5b3b5ed5f806d9c",
950
+ "reglas/arreglar-al-detectar.md": "05f99f50cf91eea2b37d9c3ae5dd51f7eb6984f8bcb3dd5ff8ae220057ce21b6",
951
+ "reglas/auditorias-documentales-estructurales.md": "1cf2c6f30a34fd15c5197d121f77339fa787ce5da4d34a9c5ae14b333bcae7ae",
952
+ "reglas/brevedad-output.md": "094b981711cef8b6111db47d0a79260f48f773f6582927a235d74fabb062489f",
953
+ "reglas/cloud-infra.md": "eb46c31abfa0f000408d7552b1bf1d67acc8f98daaac7f5286fee8b5935ac71b",
954
+ "reglas/consultar-vault-primero.md": "19c751d1ff2752000d5bde8ce503f5afc14c34c8e997df9c8d9dd02b7ab41ae1",
955
+ "reglas/debatir-antes-de-aceptar.md": "75de5eeb6f738183bbd7a1ab1b124454db30ba79d1dca35ada3525e030b6d2ed",
956
+ "reglas/docs.md": "708d80d99e0403147bd88609689159cf015034fbb0a47b3b3cd95be037b5f2b0",
957
+ "reglas/estilo-codigo.md": "fa7672b16d458b6219a813238fd18a166bc2316b9f72ce880bfa4dbe223f8f31",
958
+ "reglas/fragmentos-compartidos.md": "8dc096ff475b4292373b3906ad4b82a04c4b68394d8f96e6697466924da19928",
959
+ "reglas/git-coauthor.md": "f70f6a42ebf05f35db412d3fe0395b407a87af1e3d49dfabe36e0b081e0543a0",
960
+ "reglas/git-workflow.md": "112f0f0cb3648fa782ff2e9801dc3b718c86e6fefe1b771511e83e2e28bef8e7",
961
+ "reglas/gobernanza.md": "51d089be0010c5aaa75dd55620600b0c65df813249a31ba2387160b7981f22d8",
962
+ "reglas/hooks.md": "66d010b169e7617aa50b28c29f9d8e0ad22379c08b79ba357978bd7c32eeece6",
963
+ "reglas/intent-engineering.md": "2f6795ec03ced68725ac0ee830d96d9259c418dafd80d1782ddc6db42634388d",
964
+ "reglas/markitdown.md": "0cfb395b9a4ed704767b5b4eab90f5f2bffba14ec80be189918f32d781abd330",
965
+ "reglas/memoria-consolidada.md": "8d3e5b4a9d0759b7eb47a42ae94e8006512a610e30785d48421f14c77eaec832",
966
+ "reglas/monitor-ci.md": "a22628c6072002204df6dbb5faa69aa217ae835fe2d06062a4ee50f224085c81",
967
+ "reglas/patrones.md": "d70e9fd42674c03b1dd9d21f5d69188332ba6a7a5b80134580110c812e8cf710",
968
+ "reglas/performance.md": "63597cffcb5a009c42a3b2030abac116a5dc6fa4526dd9c2d5a62ad59b1c21b5",
969
+ "reglas/pruebas.md": "55eb05bac7127cb6d01aebc9841b92138f4fdf15afad6505aa36c93f2719a9cf",
970
+ "reglas/registro-componentes-nuevos.md": "42b1d16a1bf57ce52b7a2715fc3acff78e683ab3851ba7a71e30d0b9cff36903",
971
+ "reglas/seguridad-agentes.md": "abe408c59045161fea6422dfcff0bef5217a10b800c8f0124a67756e33326c36",
972
+ "reglas/seguridad.md": "c4a847e2d7ff25502cace204a548311cc9e8ea9e2d2f8061123d50372661004a",
973
+ "reglas/sesiones-paralelas.md": "f645c8da45ea2ca7e8b14bef865a475e8718c98c0fddc48a8e2d4c477b76a572",
974
+ "reglas/sin-duplicacion-reglas-globales.md": "e9d4a753b0448112f9c97ff787710cf3648ade72a51fa712396296dbe480bbcd",
975
+ "reglas/skills-estandar.md": "68bb4adc0c9ccab26955013672fa1d1a86edc87c703355b74656669c74c03c2a",
976
+ "reglas/testing.md": "e0e85a952dbf5598b49ccc540cc41d332b29355aedd3d20f0252febe1e2e4faa",
977
+ "reglas/tests-cleanup.md": "07c0d2344c7937b480deeeeca83f9b2e31de904a17d41fcfffbce555b933c690",
978
+ "reglas/usar-code-review-graph.md": "5b76480debf58d747e68f1a26a787f567beaaa2af028d6dfd57a6f8da22e33ec",
979
+ "reglas/usar-context7.md": "8e3d3a051e2a53e02b98c54af3f95a95e0695fb99e5d6d50792da5d6b2c28861",
980
+ "reglas/usar-sistema-swl.md": "00fe741ca5d64d2e57fee0245333618cbb1d212e6aea74f47b64e2340dfbc6c6",
981
+ "reglas/verificar-citas-normativas.md": "6e0697c4a38d3a2c55b7f0cf26193fe3bb246b901d93ce4f4bd7b8c297982140"
982
+ },
983
+ "2.2.3": {
984
+ "agentes/_intent-spec.md": "58df2403a0ebc66d487423732080e615698325f300b98fd9f7734fb4ae55a6a2",
985
+ "agentes/_propose-step.md": "298c946f947b557088cedb3fd2631fda756a91510a39e0a3c95a9610e6d3eeba",
986
+ "agentes/accesibilidad-wcag-swl.md": "106f5cb03b2c5d320d0bf7bb050198bef37667b38736d5e7b372f51a61c1aac6",
987
+ "agentes/arquitecto-swl.md": "eb0ba6651027583860de936b70ed5231f0f5d7182e39850cbfe717d9dc7e76ce",
988
+ "agentes/auto-evolucion-swl.md": "2d532afeb8bfb73f5ad67d611f9cc2047350c0c5c6ca127e5759a3cb28691470",
989
+ "agentes/backend-api-swl.md": "07f58c091f9fbc53e5591074a2cb5329b712c8b4a9e214c6ce40dca2f4d36bea",
990
+ "agentes/backend-csharp-swl.md": "36a9d93802218b3942e291d0438027d7dc2fc2c51fdf0b7ce151eb18f64e9af3",
991
+ "agentes/backend-go-swl.md": "15c8f6fcc0899530540be6055e5b1a8ad8eb9dda195321f5eb104d59507b4645",
992
+ "agentes/backend-java-swl.md": "07c8bcfaf3e0690ec6422f3221a51582b1d269872863e66f3d9c3943179a69bd",
993
+ "agentes/backend-node-swl.md": "98dc61915eea6471b0960d186c1f631f3bcb5605afcd55e5e161d7e4753220c6",
994
+ "agentes/backend-python-swl.md": "32159a5a04c6f3b019d9d51254bc42fad49b6bb74c6e34593a89f0d147d8d7b5",
995
+ "agentes/backend-rust-swl.md": "fb964bb6f18190b6a0ac2fb3cc1103179ae5b4b310ca128023e1532766aa90c8",
996
+ "agentes/backend-workers-swl.md": "14e9846d93ba48d4d58bd9d3bee44b5cef2662e593c2e2588df8c2d677d439c9",
997
+ "agentes/cloud-infra-swl.md": "3b5a02ce24a26e3b2c0dbe6bc01bd21e5a0928094c79a82a0f5b5cef6a784005",
998
+ "agentes/consolidador-swl.md": "b8afaa2b5cc077b87a3ebb622b2c1dd02d0605c8ed532f4e5252f52bb3215e70",
999
+ "agentes/datos-swl.md": "851ad67d6832b3e9ea71d50b98c223a40498f9ee39c402c07e8b3bb19d251d86",
1000
+ "agentes/depurador-swl.md": "884e139b752bc5044f245a7b65d503c3c789f212a466d2d7e776ddc2c8a8069e",
1001
+ "agentes/devops-ci-swl.md": "33dfc1b0c5d9d3f6d217c4f1b6846ea55927098a8061dacf9cb234919ed96039",
1002
+ "agentes/disenador-ui-swl.md": "0e62cc2fccf7c6cc2507fccafab0eb09f4f20a946c83177237f260a4be690709",
1003
+ "agentes/documentador-swl.md": "f5bbc173af4351c36419fb7da3fa14a0c1cacbcbde50e0cc4c681e165ab5345c",
1004
+ "agentes/frontend-angular-swl.md": "a8d20ccb6eb582f308fb09537ee68a991bea1a22d8ad764b827c064e7eb8eb69",
1005
+ "agentes/frontend-css-swl.md": "81ad399c4ebf8975348277aba6a63ed365412e5db35e17e912201dd7b61ac737",
1006
+ "agentes/frontend-react-swl.md": "d352988d7043a8b0b4af7608c2a2859f66708119c96e133879320fe13d5c9525",
1007
+ "agentes/frontend-swl.md": "660dbd920364542de70755a407a1e95e711064d0ef21bbbd3c5cb4e76a21e2f9",
1008
+ "agentes/frontend-tailwind-swl.md": "11e56eb7be32c603fcba03a514de0386dfdbc98d39ea4f0ddab92520381b11ac",
1009
+ "agentes/gh-fix-ci-swl.md": "5364ae760f42cfe16a9bf552e36465528b47f156188a801b052b6f0f829071a4",
1010
+ "agentes/implementador-swl.md": "8a5de1543e1d00fc1b071ac6f226443bad815f4905517aaacf99278cecf57664",
1011
+ "agentes/investigador-swl.md": "a656dc290eb4cb91d56b461d4e472bcba1f6c80da82db3ae0d766573bd04273a",
1012
+ "agentes/investigador-ux-swl.md": "96b5275b2afd912fbbfd9a63d5cb3b8058ad4238dcc4f133244e7b11cb68c958",
1013
+ "agentes/llm-apps-swl.md": "8232e80b0421291e4485467e27c886b8e4dda35e16dbaa8ed756e3129f7724cd",
1014
+ "agentes/migrador-swl.md": "b214862fbbea8f5c1f00f59a39c09c89cca281c3da1340cb3af7c47c7076511c",
1015
+ "agentes/mobile-android-swl.md": "1742204632ea2479e93a9f7540e6f5f1c157139393deb91d73f4bd7b87581fae",
1016
+ "agentes/mobile-cross-swl.md": "a6eacaaf3fb61dab906e325d4c237134ff9cb9e012ab53dc9eb48e3f95122a73",
1017
+ "agentes/mobile-ios-swl.md": "25e8407f4ceb8d8b1980363ace0ceed72cac871203a0d32872a5afc4a5a19897",
1018
+ "agentes/mobile-testing-swl.md": "83045f89a391dac7ec51dbbdb62db0a256c00e6e21025ab572d68cfaaae5052a",
1019
+ "agentes/nemesis-auditor-swl.md": "c23263defcac8dd5607800cce7426699356a21f01488801be635fad6fbd90f09",
1020
+ "agentes/notificador-swl.md": "a72382ed8a950bc6600b075f8df1289f5b755ac93f42df368ea3b52ea5181b84",
1021
+ "agentes/observabilidad-swl.md": "bb4ff6548d4bf9aa54619913f8960cc252650467cd6c0b5278adc568cdf839f7",
1022
+ "agentes/orquestador-swl.md": "9b359fd3637321ee931f54ea7b9dd4b3e2e55c91284636862ad8d426e81ce87a",
1023
+ "agentes/pagos-swl.md": "27a7c7b7c8fe732a7cd3e545c528cd1b3b268f3d5e4623638e64d0b3be8a99ab",
1024
+ "agentes/perfilador-usuario-swl.md": "774dd268a238972a31d4f2bd9aefe7f320d72b4a7a36fc8bdecc6e9e17282eaa",
1025
+ "agentes/planificador-swl.md": "898f23273c2bd0b60ed7782be377a2d1cf02834de8a3ec9ad703cbf0190c4c9d",
1026
+ "agentes/producto-prd-swl.md": "27e98012a9b130ab3622cc010a37b30cb296b798db724b26be8c8b9529197c52",
1027
+ "agentes/red-team-swl.md": "ac757ef1b4bc372bee6f4c05872d5f45d1636d2481a980265410aeea29c200e8",
1028
+ "agentes/release-manager-swl.md": "93b3917ca8d8b3add8aba96bf24af7060533f59ff86211084059a1137fbf83f8",
1029
+ "agentes/rendimiento-swl.md": "e43a4b27a3a26b526c638833b2e40d8666fab9c5ee5ea66c7a4d6bc912b5019c",
1030
+ "agentes/resolutor-build-swl.md": "1c7d1f8d2e91d0b95aeda633453db7a18c9bb067239eb9a1a62ab550ba0b3ad0",
1031
+ "agentes/revisor-angular-swl.md": "773e5c69b683983754f055f28e2bf577546a0bbb6803ae3039dc3cb446acb2ad",
1032
+ "agentes/revisor-codigo-swl.md": "9504ddaf30e0cf91009955ffaa2dd7526e63ef71e58a010d067c32b8d5a9b124",
1033
+ "agentes/revisor-csharp-swl.md": "6502d975e4aa0476d19fdabd9ca94270b34a228b606db8221bd0657c17b374e1",
1034
+ "agentes/revisor-go-swl.md": "10a189da06f25615561f6b8f6c8cf327b0f0500570406a0eca5f45db96d3a6d9",
1035
+ "agentes/revisor-java-swl.md": "c37921787723089faf688dcaebb852c21fdb1ed56322e9be08f5bba38e9c2964",
1036
+ "agentes/revisor-kotlin-swl.md": "ffc449ece6876f8202ace51aa530a4416fec09e0d926ad06096b28f59cf31878",
1037
+ "agentes/revisor-nextjs-swl.md": "1fb188da086bb7faf7434565ab2089f80b16b98093b9aa9334626c287f00a20f",
1038
+ "agentes/revisor-php-swl.md": "4cf9a789ec4b8eb86af2dc3b426f015a1cfc1f2909f143db6ddfc56446798d26",
1039
+ "agentes/revisor-react-swl.md": "15fb5e710e56a84d235e10ddc1f4743c690816b51fef6eae89eed99f0a53fe5d",
1040
+ "agentes/revisor-rust-swl.md": "687ea6753fc87575f3e9baf5ad85771734167845726de518f0e818bd4a3b3ec2",
1041
+ "agentes/revisor-seguridad-swl.md": "aae930ffe1388c31a37409438b70d069b90358861c0ba8cedbc43d77b94a09bb",
1042
+ "agentes/revisor-swift-swl.md": "08b5236b4870985dadfa30267a842b96897399fa406117dd439f713250b16c42",
1043
+ "agentes/revisor-typescript-swl.md": "fddf6e6cc299ddad513b03e03cddc112bb9aad82b7512360ee11d9fdd565ab7a",
1044
+ "agentes/sre-swl.md": "a5bde29452a589d963643fb728bcae1815093d02793f5bcc6a6c0b3b8692c853",
1045
+ "agentes/tdd-qa-swl.md": "a2211750d805967aaa032e712272eedd668d8fe15ede6db896c77187f58f2d87",
1046
+ "comandos/swl/actualizar.md": "f117df8229b10ecdf28a136e911df0379625f6600d86a56e2ab671c704204105",
1047
+ "comandos/swl/adoptar-proyecto.md": "4d1c06dffc7d91294db76290230508f876bc6b4c85a7d832fba3b9da56ddd9a1",
1048
+ "comandos/swl/aprender.md": "4423090d813aa16a3de3ae86af57b17c24fce9b4250e158609003217bfed533d",
1049
+ "comandos/swl/aprobar-plan.md": "2ad40e86a6cbbeba6e331b78c6a993d2033503cd9221c2763fb797fa327022e5",
1050
+ "comandos/swl/auditar-deps.md": "6fbe283ce326f90f09fa812c7e4f56b4debcb46ad1aebb4cf0856eed8ffff46c",
1051
+ "comandos/swl/autoresearch.md": "8964576a5bf2f2ad3119a692192c46e6f84338b758f80f8b5e9415df73f3a3f8",
1052
+ "comandos/swl/ayuda.md": "320dcfbb40522468b7e3358937d7e33287ffd56254a1815b12151af8266d742a",
1053
+ "comandos/swl/brainstorm.md": "81379eddb6194314ca9192842ea3012dbd8ed5d13dec5453541da6a0ddd3fa67",
1054
+ "comandos/swl/briefing.md": "a5d330736de160c9cf7da208921066c8a170ede310c4748000af331d5c4d9ecc",
1055
+ "comandos/swl/checkpoint.md": "91af22712265c8945c224718d0287ac21efad8aced174cea1a0a6c4cc7c70c91",
1056
+ "comandos/swl/claudemd.md": "5bae75e77485989f9d9ff09f597fe0010db912e8c34187be6e459b0bbc09c9f1",
1057
+ "comandos/swl/compactar.md": "06baecf464627a45481813bb204dadd560fa45a8a09a2bc47480e6dc0f8cd9f7",
1058
+ "comandos/swl/configurar-ci.md": "270afa4a951f83207def79bc8423e5de8b781c21c08aab4bcefc75a2e591c71f",
1059
+ "comandos/swl/contexto.md": "5e48bcd83dfe2b9787f84ab4bbc01a416cb3e286e47919cfce164b18252d0250",
1060
+ "comandos/swl/contribuir.md": "37fd17e3dc8cd8b51a0997df66c527eeb41f92abcd63ef032a5da8df4f70ed0f",
1061
+ "comandos/swl/crear-skill.md": "6689efac053de2c80f05182f34c8ddb7ec4f81dba9f3479166cf7bf9f003d71b",
1062
+ "comandos/swl/cron.md": "414d88ea3af453b90386421e1f569cd720b3414afd049afe96fff085d9870667",
1063
+ "comandos/swl/discutir-fase.md": "637cd79469c1239db700d8db09c6106ed90a28304c3cd00d5046420ff45119fc",
1064
+ "comandos/swl/ejecutar-fase.md": "eea239bc28a7c8566c3337496e7cef04997585f6061cdc152a1fe7a7f4850f29",
1065
+ "comandos/swl/evaluar-skill.md": "544a3b79d4e219bed22cdd266ebdbb91906f6ff71f5987f7ef5723cf39f7d5af",
1066
+ "comandos/swl/evolucionar.md": "62c0b06930d3b9d8cb876f6bc84a0a919d2193c69e6c2df7b89860c54b08b845",
1067
+ "comandos/swl/exportar-vault.md": "23156a79b69e2d85e0e5039dac3f1692780c3ac91ba6c1f715302b8e6eaed26c",
1068
+ "comandos/swl/gateway.md": "a995dfb3f3423ed01f541c26770ec4c4a9baab659e8f4e4b5bfea0b29adbdecc",
1069
+ "comandos/swl/inbox.md": "d688b03288a55a30666a8481a9a6f9563840f7a06c7c365c50f72c064d058370",
1070
+ "comandos/swl/instalar.md": "530925d89ada0503f39fb8af8fc2370e048003c830db3885033d1a8550112474",
1071
+ "comandos/swl/instintos.md": "34557efe6c7afcb843714c87b0b6f1c107285f0e081c7b158f4907746b78719a",
1072
+ "comandos/swl/mapear-codebase.md": "bc831928549709c2aefb7cd3bea04266f813bedffb961b893ee4012e4231fac0",
1073
+ "comandos/swl/mcp-status.md": "42d8e4169d1d8b49ba11c84fabe0615b213c9e6f3655a5a84cf726558098bc6f",
1074
+ "comandos/swl/modelo.md": "471b47f907836d8069570b94a9cf39c8dd91fcf85d6107329db353e63a3438ff",
1075
+ "comandos/swl/nemesis.md": "37ce36153d46cd666412c35ed65f296676f2db4375c4060edd4a04b2e1d95cf7",
1076
+ "comandos/swl/notificaciones.md": "34da7d2c298160a85a3c5d64ea9ac6c4e060ec1be3ca1a4e3f8124c31cfb0d1f",
1077
+ "comandos/swl/nuevo-proyecto.md": "bc6171a2103f03a4160aacdb9f8a6ecf741a8378dcdd72af0f7c235f8442fb66",
1078
+ "comandos/swl/planear-fase.md": "fb6a224a6a7d005ca0d0846cfc86e2c33560ab0a76a244c089b41f68dfe27da2",
1079
+ "comandos/swl/plugins.md": "03f5703ab400612bd36f6f65ba7bf0a4ecb9795435580ba5de2020c860a9200b",
1080
+ "comandos/swl/predecir.md": "15bcb5eff373b8c787cb13501d1e0f9e873a58bb36e36e7d56195d9849319429",
1081
+ "comandos/swl/reflect-skills.md": "b15e5ae63267d67eeef260092fb0f4b8dab210544bdf60053b0f86923b961ddb",
1082
+ "comandos/swl/release.md": "2fa631ee615645f74d1b50bbfd70190b02198992581f0440f0607c76eb2ea7b6",
1083
+ "comandos/swl/revisar-impacto.md": "662ee411af7b63671eff5a910de4a24ea7971c87241d8648cd6fb6c2403668e0",
1084
+ "comandos/swl/revisar.md": "7b17679c0cadd2fca7a015c302459f7ca127dcae02a74c990cddcddcb4c15f85",
1085
+ "comandos/swl/sesiones.md": "52d20af5ea2f7656a89144686e0507aa2bfa1aabcf1a1676883befa76fe5f329",
1086
+ "comandos/swl/skill-search.md": "e0dc8622080ec56da2b98c1ca9f44771daf2d8870fc620edc7ea64a28b7594a5",
1087
+ "comandos/swl/status.md": "8240ed406c4af622071b342ff65f8b5a0a138bed8ecf57fb01b6133ec806886d",
1088
+ "comandos/swl/verificar.md": "935538062b5bd1f1bf435cbcf0174bc979a05bc7827b26f6bbb2baab9e562ab9",
1089
+ "comandos/swl/wiki.md": "68ae8163fa8493ff5d01b8ab281f18ae0939981cc2a88ec3b759f83efc6dfac4",
1090
+ "habilidades/accesibilidad-a11y/SKILL.md": "500372c367122b4d06e04254326a19b196e29d1d7d760b7a4873f136ee19a4ab",
1091
+ "habilidades/agent-browser/SKILL.md": "77cc3d490439ad9a3df02d6b44c45af4436c24768e8f4554ed09b57af1bb0d57",
1092
+ "habilidades/agent-deep-links/SKILL.md": "4fb8150dc13c0d07381701d110c259a452d6b04f981b08e0478e24c38ea9dcab",
1093
+ "habilidades/agentes-como-servicio/SKILL.md": "a9064e69fdfbb815433aeabcf15e58b4255ee51bbe2a8ed9665215de1bd68dbb",
1094
+ "habilidades/ai-runtime-security/SKILL.md": "820e59760f7ef29761ffd9d75677e638a5df16fba8ee9fa16813f8e4a6a0828c",
1095
+ "habilidades/angular-avanzado/SKILL.md": "9002c549e1c5aa00726d35a332a1760192927856871e1f7b18c949075da0fc3b",
1096
+ "habilidades/angular-moderno/SKILL.md": "2f496eea8f9f174cfe08c0e62cca069ce8e39a0a276da4eadc6c2e6c1f2d5ac9",
1097
+ "habilidades/api-rest-diseno/SKILL.md": "22898f30ca8e2aa696f9a75f58829eb4d8e7f5e4eb303ee8a981cc93406d9d02",
1098
+ "habilidades/aprender-de-git-diff/SKILL.md": "5be6d2288a3522833935e48d160f27c40e2695d0930869f25bca73a121ba2eb0",
1099
+ "habilidades/aprendizaje-continuo/SKILL.md": "bdb2323bf7d00997e7899931d4af6ed05ca85fe70be2dc27620c39c14db1ba25",
1100
+ "habilidades/async-python/SKILL.md": "7ebecd6741bc522214bc0ad2e1c29277d174d9e12b4436e66a2e34a88a2bf843",
1101
+ "habilidades/auth-patrones/SKILL.md": "796ddc3ab468b10d1ba8b767fc24b167368c975475d62fc3b5d2523fe28292ea",
1102
+ "habilidades/auto-evolucion-protocolo/SKILL.md": "d31d508d7bec1ed266e03f5cef60e1f11b661e45f7b4f43f77b06333e211ed1b",
1103
+ "habilidades/autoresearch/SKILL.md": "8ae3bc7530d405fc56556a761f4d3591855e79ed69078551e1ea884741fba244",
1104
+ "habilidades/azure-cloud/SKILL.md": "8ae0d4822703c197d25785d23ab37e844788d437b202d08503b00b296da84f76",
1105
+ "habilidades/backend-async-postgres-testing/SKILL.md": "6f400277bb86ccede57f647303a8e46963d591040686e1f59eb34eed5e1f801d",
1106
+ "habilidades/backend-error-design/SKILL.md": "3be8263e2f2a5682ff2243088bbdc9ae7e5e7df59495d39d6fed4ba246e641dc",
1107
+ "habilidades/backend-mcp-servidor/SKILL.md": "1db631547e77b61894d5329931369fc8271c03a1383e444117be8d9763481f83",
1108
+ "habilidades/backend-production-resilience/SKILL.md": "c2a4c429a370421833701e7e8d74d9413d21bf014ae45985c8c6d7259fc1a5ff",
1109
+ "habilidades/benchmark-memoria/SKILL.md": "d2974eef1b2f96af911d342b212b3b4affeb24a1fcbf97db9943d156de282f8c",
1110
+ "habilidades/brainstorming/SKILL.md": "dd2044784fa2cf1726d1a46b309717111249386c717545bbce5e78ddd7484cb1",
1111
+ "habilidades/browser-interaction-patterns/SKILL.md": "3a5ed2f97ad531fdd01d3ffe011e9bdf307e72b614d7372219d789d978164a8e",
1112
+ "habilidades/browser-research-domains/SKILL.md": "a5d16612a06cf24b13802543f789dae4a4a1c161af820edcb939f09278b7b81b",
1113
+ "habilidades/build-errors-cpp/SKILL.md": "048d45d249a15fbc35aa31222bdc9618e5aec2719bf856a59ac84e7fa273cd6f",
1114
+ "habilidades/build-errors-csharp/SKILL.md": "0ca5f92455a11a3c1185fea09b7a0cdd0d8270fe37ac7832688fe2757ea98ff0",
1115
+ "habilidades/build-errors-go/SKILL.md": "5564a566719d5f32fdb8e452624fdddeab118f9afde4b471ff8615e2a6d6ba5e",
1116
+ "habilidades/build-errors-java/SKILL.md": "40191e6120fe98d55dfdbac67350dd112810baba6ffcfc2902ae687e350fbe53",
1117
+ "habilidades/build-errors-kotlin/SKILL.md": "60e3033c492597b62e5359930f95a706a0c679f9a8ca52467eaebe011c826da1",
1118
+ "habilidades/build-errors-nextjs/SKILL.md": "1893d7452af514a8676279cc082fdef3790d136b2334429a7e3f1f668ea87343",
1119
+ "habilidades/build-errors-php/SKILL.md": "398391c87885aa52654e27066b5bdb2bd3c8e3e68eecd939df02b3367df9c21f",
1120
+ "habilidades/build-errors-python/SKILL.md": "73f65c7456c21216fde3c2df3c31a1cb5ec1999e79d9c917afd1bc11eb1bcecb",
1121
+ "habilidades/build-errors-rust/SKILL.md": "6192378e69787658fada7f3e191fe54b1401e234a50f943701c6b088bf509a51",
1122
+ "habilidades/build-errors-swift/SKILL.md": "fabc54050e42abbfdf3402b887b628c47dd0acc37062a8ceaf4494720f7797c7",
1123
+ "habilidades/build-errors-typescript/SKILL.md": "d0372ad6d5e6cfaa5ef487622b947a7ed4797b4cb94cc309be79c9857694b370",
1124
+ "habilidades/calidad-anti-patrones-universales/SKILL.md": "5047fc360759b8d894b3e5c20a344cae46562c8131267c5a59f9d8f8839ef178",
1125
+ "habilidades/calidad-contract-testing/SKILL.md": "dc91fc323fa1f721a5957ad72f5403987c8e49ee0dc059e987bb131e4492f292",
1126
+ "habilidades/calidad-mutation-testing/SKILL.md": "aa8e10f5b4bc8ed9c2faefb55d5db881f5009537e11c6b12eedd4e07dc25eabc",
1127
+ "habilidades/changelog-generator/SKILL.md": "192e17bd2fb16d1769a2497bcd2ef150dfd34a7872474cf340ce43d1a55a6a7d",
1128
+ "habilidades/checklist-calidad/SKILL.md": "4bd1ebfeaf36032cd8078900f60de8a77f55a3a5bbbacec132eab52aadb88fb7",
1129
+ "habilidades/checklist-seguridad/SKILL.md": "839b133a97677b0e9675776a99b6a6351133b65fd99ad6d851dbd84073996348",
1130
+ "habilidades/checkpoints-verificacion/SKILL.md": "58fd866b5bec6bb8c06c1a179a4c4cc90f3c55b5b578296f3af15254f44da02b",
1131
+ "habilidades/ci-cd-pipelines/SKILL.md": "a5a3ccaa688401b1730e972d77f435581315590299d23856ad5434780873cc80",
1132
+ "habilidades/cloud-aws/SKILL.md": "ec428fbc973830351543f7cbfa30bad6785c1f0f30bf3f194effcac5985beadc",
1133
+ "habilidades/compactacion-contexto/SKILL.md": "53555fc974d3c23772c6a3ec25d463effe93e66fc8aac1f117a5c91d173de385",
1134
+ "habilidades/contenedores-docker/SKILL.md": "8c032641cac39893c9e72e0d1afd0e1d6e307301d774e056419f0139aca67804",
1135
+ "habilidades/context-builder/SKILL.md": "fc3a96c30cfc0dab48fce652db08aca43753ab8ff38f140e66825aafe5642892",
1136
+ "habilidades/control-profundidad/SKILL.md": "ac3ac953c48145ad726c0b76eb070bf53bdcaa0d3b446d35cdecb48d1392483f",
1137
+ "habilidades/csharp-experto/SKILL.md": "8e8dcdbe80dfdecdcf125e4f466b1e09a8414e471367dc0e108c4c02198acd80",
1138
+ "habilidades/csharp-patrones/SKILL.md": "6886137e008f73cdd5740daead367058a0bdd1b9dacdda8b1b8d0386216dd3cf",
1139
+ "habilidades/csharp-testing/SKILL.md": "af5ddd9b89d3c35151fc4e45add2900fca10f3ab27b6ca29bd0a0e70c74d0df4",
1140
+ "habilidades/css-moderno/SKILL.md": "9ec83d8a94a9347aadd0437af5454e88f1684d5b0f7e2b1089433571ccb5ba84",
1141
+ "habilidades/datos-etl/SKILL.md": "a4f2b3228ab8a93d82aa9aee2a3662ed51ea858b0fb05d3e9345c12f5965a8cf",
1142
+ "habilidades/dbml-experto/SKILL.md": "bf43ba9e88b6f91db799fb7d1a30bfe0e973456804d8f851203c1d5e67d58505",
1143
+ "habilidades/dependencias-auditoria/SKILL.md": "6f6907bfa8facfd5ca9fa44f0eee05484fc7e0cb66ae09b8ac209013de0c95f2",
1144
+ "habilidades/deprecacion-migracion/SKILL.md": "e10a61c5b3ce9703b7fd3d06dbac0b35f89b3f8b91055d8420eefafa3541ff9c",
1145
+ "habilidades/design-tokens/SKILL.md": "b3bab149fe65f9e4a3a720775e1a7fc0032740487434f9012f2960fd8acff158",
1146
+ "habilidades/devsecops-pipeline-security/SKILL.md": "97ab5382c4a803af0b4c0aaf664911695bc1e6c85f910821325acc3f51bc53bb",
1147
+ "habilidades/diagrama-arquitectura/SKILL.md": "1771d492438f0fa0d6b3c81cad6e8dc88410698ac7014cf809172906b62ed906",
1148
+ "habilidades/discutir-fase/SKILL.md": "fa6928ee4569259f0e907008d3dd251a66ddc99c391f60ce3bab7d346e10e125",
1149
+ "habilidades/diseno-herramientas-agente/SKILL.md": "416bcf1e4955ac9ba65ff6c122e142c123b7db340aa58dde3ae203cb819ad641",
1150
+ "habilidades/diseno-responsivo/SKILL.md": "6aa294c3b201a6bb256acb111e0230ff414c270bcd16d12540a0230855e4f235",
1151
+ "habilidades/django-experto/SKILL.md": "8dea1bac9c2cf000d95127740c790958aba5e10fd8bbed99a9dcdd9ce2f93e04",
1152
+ "habilidades/doc-sync/SKILL.md": "c49b6304941b229d12abd2a83550e7c988edf087deccceef3d1bc96ec11119b4",
1153
+ "habilidades/doubt-driven-review/SKILL.md": "8a0ae42479d7f2396e4e77a97996828391efdf7b8b11f90af6f0f65615a20c58",
1154
+ "habilidades/drift-detection/SKILL.md": "d4ebac36efbd93bcf4487542151812242730da85cf2724a80b1522589813b9a1",
1155
+ "habilidades/ejecutar-fase/SKILL.md": "861cf3d2198d43432090f25f69d79f9edf6214ac31c23531957071a62494de3f",
1156
+ "habilidades/ejecutar-task-iterativo/SKILL.md": "af59419363aaec817a7f32470802c73df0c206d1506f22e6f94f5d6096b4056b",
1157
+ "habilidades/estilo-sin-ai-isms/SKILL.md": "a581d82dedba9bbb73927b5f69006421a28c75958d5e6cf7f3fb069b5c95613d",
1158
+ "habilidades/estructura-proyecto-claude/SKILL.md": "34ecc86fa8b4ef58a9485842d52ae967810e87bf6ac4793d28274d1c73b74182",
1159
+ "habilidades/eval-framework/SKILL.md": "18edc007967aea17a9dcb051dc9c75dd999d96d0c0255d91947c254255bcd2e1",
1160
+ "habilidades/evaluacion-agentes/SKILL.md": "17c08cfae68e423507851a1baabd54edcd6f58e6e2a93ea5250cf81943174035",
1161
+ "habilidades/event-driven/SKILL.md": "fa7627b0178403702200b9e6501c401ccd537481c1e88742bdb7054052f28c42",
1162
+ "habilidades/extraccion-documentos/SKILL.md": "3af2c23b4d1019d5c3cf0f7c98fad7f253d863ad04dade2c23da816c49d74bc9",
1163
+ "habilidades/extractor-de-aprendizajes/SKILL.md": "39ef84f1adf3b08dffa2564909fb059af243478f11102ad01736efefad6c8cb6",
1164
+ "habilidades/fastapi-experto/SKILL.md": "d657e80b9edc733966c44c3755cca3ca19a825243cd0bff6eaab4bc046a963b2",
1165
+ "habilidades/feynman-auditor-swl/SKILL.md": "7fb1e239d7096f9d58b88d77acd08afba9ceccab8316ec0808dd6463866c530a",
1166
+ "habilidades/filament-admin/SKILL.md": "252ff3fe05c08a42b1e44c09d4806f16d28d26c7fdfe156aa217c9380f36f4c0",
1167
+ "habilidades/frontend-avanzado/SKILL.md": "4e7c8b402da138a56890a745fc508e77a2d549ff7e37467344efbc07692db28c",
1168
+ "habilidades/gcp-cloud/SKILL.md": "d4f4db699f9cea2ae9fefc7c7b4acc88d8272cb9f41137c8728eec52c17ea9d1",
1169
+ "habilidades/generacion-mermaid/SKILL.md": "8cd0f8ec045ab25f9dd9d52402f816f61ebb24a02223028325bfd6edd6275c3f",
1170
+ "habilidades/git-worktrees-paralelo/SKILL.md": "90120d9554df3e32419e41e8b13825fe0e8aa46f67f093d93737f39b4b52151d",
1171
+ "habilidades/go-experto/SKILL.md": "acde2520a9927b6557741fd37254e9852e481f48dbcd5041832008a23fe2f626",
1172
+ "habilidades/go-patrones/SKILL.md": "5bd991417068df614191b7583dab3e3d8761d66e74fad885572a62ea98a1bbf2",
1173
+ "habilidades/go-testing/SKILL.md": "b8e31b72b7ef52df10cccae2aa99691ef3ddf7211c1af7909de5d168465e0300",
1174
+ "habilidades/graphql-experto/SKILL.md": "f8a70a0cd0a888aa43d4c3bdebc8142e8cb2b37df228f9ed3dbccdab9022f6aa",
1175
+ "habilidades/guardrail-semantico/SKILL.md": "366dfe016c1907413b7efaa04cb4e6d6c64dbfcbfb53da3b9ba546579d3453e5",
1176
+ "habilidades/harness-claude-code/SKILL.md": "df4ed31bbfcfd482bd44f9f3b33c110d5189a10172fd0d5a3cbb92069034959e",
1177
+ "habilidades/iam-secretos/SKILL.md": "6245a62b3c51e4e9b2caab710d06709e656a2ed84fb9a6de491b6c4767aad890",
1178
+ "habilidades/infra-github-actions/SKILL.md": "19a85aca305cbb90bc106f61d4de3f945f5b70ac890ae6f60301b6b4091e3462",
1179
+ "habilidades/instalar-sistema/SKILL.md": "1ebc8c043514eefaebed586a622247bb58477bf67da90a250db579fd63d5f44e",
1180
+ "habilidades/java-experto/SKILL.md": "cf545788d601fd10a0153e46b8aff67b5f8af0ebc2a753117337e4288faf27bf",
1181
+ "habilidades/java-patrones/SKILL.md": "76d387de2566bd79663a0b2fbfe36b49e4505635167844a4c3c4ce5012de8f64",
1182
+ "habilidades/java-testing/SKILL.md": "5cfc5aa4c86b347023a4c3ed96130b5cc706f8aaa6fa78ad71afbddfa4e6127b",
1183
+ "habilidades/kotlin-compose/SKILL.md": "71c35fef252d475b60908341797ad5c10c4a007225334bda5821843a17013c59",
1184
+ "habilidades/kotlin-experto/SKILL.md": "f1973adbb2614e6dc42521abc6fec17ff9441faac200d48388e9aa333bda7124",
1185
+ "habilidades/kotlin-testing/SKILL.md": "225e23c552dea40f46f8f2bfac7bf91c73e16ff05de59e828645b006963e5021",
1186
+ "habilidades/kubernetes-orquestacion/SKILL.md": "4b06e923d1f95a5dd32f113389798eee660a1b1baafae3722bebbc61dabe9f3b",
1187
+ "habilidades/langchain-langraph/SKILL.md": "f8e5c6242a81849a9d19a4e5a6bbf8d6cf0c5a77737a9f62881b5bf72f953fde",
1188
+ "habilidades/legacy-code-rescue/SKILL.md": "581e5c2785e0fdba330f7131090c4509fae3d08e844896c2a8ef0abe1121a8d5",
1189
+ "habilidades/likec4-experto/SKILL.md": "0dc5eb07a5413bdba2205c9b577d00dc978d0bc540f526abc9536cf4aa5ef055",
1190
+ "habilidades/manejo-errores/SKILL.md": "1c230410505f57e4e3125ef26116a3e72edb13ed63136517c0ef4a712245c9d6",
1191
+ "habilidades/mapear-codebase/SKILL.md": "b0bcec7dfb20591de7bf77ca8c09f734ddbc7c07e19429691c4cd881090dfbf6",
1192
+ "habilidades/memoria-busqueda/SKILL.md": "606e0cdb920166733462dc108fd87e6cce1d173b0b7a9f115fda4f9dd088312e",
1193
+ "habilidades/meta-skills-estandar/SKILL.md": "2826bbf55593e9e9bb190e2dc881ea349500b19f39f009336c696bbc3a4cb22f",
1194
+ "habilidades/microservicios/SKILL.md": "9bcc75168a97fc2f43ab6f08fe21985ebdcb4771d1150746254439042f1af5ce",
1195
+ "habilidades/mobile-flutter/SKILL.md": "4364d61c4bf6bf02e29a7a2c2942475ab71a0ae9df6d9eb2de9f774132da562e",
1196
+ "habilidades/mobile-react-native/SKILL.md": "97d47a359e7f4b6d2ef833e4e1b904bc9d3905e8b4676b4a5aadef1a1d7082d2",
1197
+ "habilidades/mongodb-experto/SKILL.md": "924eb3779c5a7f6de7517397d42ea7ca16c550e534a712524c49f1cc7bf8b7e9",
1198
+ "habilidades/monitoring-alertas/SKILL.md": "641d42946c1eebf8ae42b273f150d2257cbbfdd649f3135bfa282774016aefa8",
1199
+ "habilidades/nemesis-evaluacion-json/SKILL.md": "34c9b9b763706632f5741a5267e8b474a6c6666a685112a7ebd864ea4a077af9",
1200
+ "habilidades/nemesis-redistribuir/SKILL.md": "b2ed30b2f2c57239f0bc1a228da14e4d7d3256bbd5f577a44bb6a035042093c1",
1201
+ "habilidades/nestjs-experto/SKILL.md": "adaace2a47e5b6f40801d751fa5e7197f2ecb84da94942b10562520c944df0cc",
1202
+ "habilidades/nextjs-experto/SKILL.md": "fa0305930d2ef7d3ae5ee60f015de1486163c3e7ee58f76e6b447f62eb3fa59f",
1203
+ "habilidades/nextjs-patrones/SKILL.md": "d97850fb296d80965f995fd4f709c3cbeb5cf01ef0c1da775bcb022c65f0ea0b",
1204
+ "habilidades/nextjs-testing/SKILL.md": "30d1bc2a006c8da886b9cfcd43c28b52159fdd6cf63101296785edbc90099d88",
1205
+ "habilidades/node-experto/SKILL.md": "44705c5fa9615e1ddc86f62b4cf3041d183f08f11fe134695a8b5cf5a00f5cc8",
1206
+ "habilidades/notificaciones-multicanal/SKILL.md": "d707ca749ce1d73066e99dc25fe7905b7dd0ea99059549e28de3a5af2ff37bb8",
1207
+ "habilidades/nuevo-proyecto/SKILL.md": "7593c1eccc8622d8d6b071a6d39ba33a978c0859320413789d037440d3b04ad8",
1208
+ "habilidades/orquestacion-async/SKILL.md": "ef6db48bb8220f9c5ab3ddfb4a289ddda0ac25d4990b6fc879bbe32a2bdc390a",
1209
+ "habilidades/paid-media-tracking/SKILL.md": "e64605bd9958fb20b40c6b22d9071d12d7227b33bb051dc47d14042fcec7b5a0",
1210
+ "habilidades/patrones-python/SKILL.md": "b1ef79daf505cb7790f93bb1db694ac35bb542a2a4603717de74d2533e9ef52e",
1211
+ "habilidades/perfil-usuario/SKILL.md": "6887b812f57b357ef289e6f66efe17e4e92b4ce4458e5492a8f7b426fdd08deb",
1212
+ "habilidades/performance-baseline/SKILL.md": "a471b230da1fe20ab0b36a1495b4c2e2dd17c5b8bab02e2a464dff290ef21044",
1213
+ "habilidades/php-experto/SKILL.md": "f366a8fffb9088b1b84bad8dbcc3a396fc4c83750bef61ca952be282d8d5fd76",
1214
+ "habilidades/php-patrones/SKILL.md": "238265a70101654dd983e186e9399d62e63152beb22ff120bd4738d4015486b6",
1215
+ "habilidades/php-testing/SKILL.md": "79172361b329873593ed14ade150a6660e403c78f87dd9a1fbdd1135a3682d3d",
1216
+ "habilidades/planear-fase/SKILL.md": "f6dae84a8f0a152e19eab7d6f45f1bf84da999ccc361f93221b715bb31c97974",
1217
+ "habilidades/postgresql-experto/SKILL.md": "b5cce091e1eabf0205fd9a018c468a3455e26a78e42c5856f3ec9d504bd63835",
1218
+ "habilidades/prevencion-racionalizacion/SKILL.md": "3978236740c4861b879270993d423f1f0d3e5adf3cd29de40a1db026f95b2da2",
1219
+ "habilidades/prevencion-sobreingenieria/SKILL.md": "1314d3147c93b58654866f5026cb3cf1e25d538a6d7c3d9fec66d04e078194a1",
1220
+ "habilidades/privacy-memoria/SKILL.md": "747e3a4b43faf68c5491226b28b7bc447e85a257d0a1cf9e8be09f426a3400f5",
1221
+ "habilidades/proceso-autoverificacion-evidencias/SKILL.md": "92be7ce4fbda1f241a556738a7eeeeb784f0ba1eb6a6eeca927a4c0d43ff17d3",
1222
+ "habilidades/proceso-confianza-pre-implementacion/SKILL.md": "a4df4d11e1bb56ce92212dc5cfb2801aed2fbc68afe8b200a695b757e9823b4d",
1223
+ "habilidades/proceso-ddia-fundamentos/SKILL.md": "b51e2a2f71e220c0fc2557ec7e425ff6505dfc31a9720a6c6a0d0e8cb0b51baf",
1224
+ "habilidades/proceso-ddia-streaming/SKILL.md": "59ae94da3e656871416c0b47944bf4fae02215c4d3cf7e2f826f206483341515",
1225
+ "habilidades/proceso-debate-adversarial/SKILL.md": "74ba347168ae54026f3be4316b05d6d0d6997167e11d07ab2710a821efa679e5",
1226
+ "habilidades/proceso-discovery-machote/SKILL.md": "8b6de90ddc971dbdf9d86745792d0149e8d44de5b3c24e9b1399ff643f146972",
1227
+ "habilidades/proceso-dynamic-workflows/SKILL.md": "56b4410405d6060f8a0bcc28736799eead5748b208a7a1abc5a8eca1d2e540c8",
1228
+ "habilidades/proceso-intent-engineering/SKILL.md": "38cfc73217d54b61e93685dd7bf5f5cb6433e1fc6bccbc0f5a076764ada0418d",
1229
+ "habilidades/proceso-modular-split/SKILL.md": "2ede321545b53721ddeda31f186843d97274b9adbd52f52ca33cb8db143b4ad2",
1230
+ "habilidades/prompt-engineering/SKILL.md": "0ff460f2e60719b669d54f4f0dec3004e0c106c6d84e065eb8b2239efa9cc1e0",
1231
+ "habilidades/protocolo-revision-swl/SKILL.md": "456232d1ca1f40fae9dd51fb6da1a9aefec641a93450688e32df4884a67097e8",
1232
+ "habilidades/rag-arquitectura/SKILL.md": "163dc5a65dbfd38935a0d0388338c35898fdd095d33bce671b7fdc349f1f0d1b",
1233
+ "habilidades/rails-experto/SKILL.md": "c80d012804c070bcaf3b6b7a749f67d6f7b5bfa9a32246a743ecca5a494c34e7",
1234
+ "habilidades/react-experto/SKILL.md": "90ab3df1f9e2b590362bd0088d3f1e700b22f40e15adee85f814adbfbad4255d",
1235
+ "habilidades/react-optimizacion/SKILL.md": "4d26faf586b2404db7e48b59548eb33cd41bb0163af966886a83b733afac1f8a",
1236
+ "habilidades/redis-experto/SKILL.md": "bd78eb53366e6f3da5c79017ac3942a1b2b0d38b56671aa506d054aef1d1a7e7",
1237
+ "habilidades/reducir-entropia/SKILL.md": "8152a0de3c5d5406e3ce5bdeb1530119a31f5788fabdd671e2d2f1e73475d2f8",
1238
+ "habilidades/release-semver/SKILL.md": "8e8cbb595618b1d56d7bbc09a6f86f39cf85f2bb9918a7b03e9c94170908ae5a",
1239
+ "habilidades/rust-experto/SKILL.md": "79a2591d50678b72fecdf07b713c3ddbfcecef28667ef28eec0daa9c78b8a18c",
1240
+ "habilidades/rust-patrones/SKILL.md": "c58a1b9467aa9d3056e066a997908ba876c65a0fdae8697f2d36f3569a3acc2a",
1241
+ "habilidades/rust-testing/SKILL.md": "fee2f695d0be176d1cfaff207933969e983782beb075d681baa4ee9b9a0b0031",
1242
+ "habilidades/seguridad-skills-ia/SKILL.md": "af5988b859e7336bb59da30c9380e34240e6cb829f463f6761854a7c427305df",
1243
+ "habilidades/sql-optimizacion/SKILL.md": "2fb04e9aa1154d5ff44eea5dbcd578561ce79649c96fd04f21e4bcb4b5dc8688",
1244
+ "habilidades/sre-patrones/SKILL.md": "96caebd46b0c1e38b6671c0dcd115e454425da180ead5765e5d88ca39b5e8f57",
1245
+ "habilidades/state-inconsistency-auditor-swl/SKILL.md": "7abcac8e33415db401b4ec6358a49d629524f2e2dcdffbe1fa8d8ce681153fba",
1246
+ "habilidades/stripe-pagos/SKILL.md": "0a2398ab2ea456a401315cc7bd10bc75efbe7ddc7d2578e0ade4b550ba7bbb99",
1247
+ "habilidades/structured-outputs/SKILL.md": "77554ab983aab7013374346141f2b8ba1d99b269807cc4c9cd6119f13dd7728e",
1248
+ "habilidades/swift-experto/SKILL.md": "e7eb701f8e97e249f34ab086a50f32acc7b73f1e3173f2f630f67d1f8ddca02e",
1249
+ "habilidades/swift-patrones/SKILL.md": "9317a34e80dfd3725be11b96d4daf3b7a5dc99a931edcd1b8a9bf93683e23ce7",
1250
+ "habilidades/swift-testing/SKILL.md": "97d0fe9334f8da9d84898eeab5d718a8ab061c5f1b84cb3fa9f29d4ff4c608e4",
1251
+ "habilidades/swl-claudemd/SKILL.md": "0cecf17c5394f61fb81ed72b0faa90490fcc03077b1d981476da85952c220e70",
1252
+ "habilidades/swl-dashboard/SKILL.md": "c38b8f4f24a1eb47f3ab590480e8b63f824e415ee08935e8116b0e986ead01d5",
1253
+ "habilidades/swl-markitdown/SKILL.md": "6d8fd5e59e8ce3f94877cecdd34c83ffee0bcd90ad51bdad809fa77ce1d6a841",
1254
+ "habilidades/swl-revisar-impacto/SKILL.md": "bff7589944a4304046d0e812ba829b21871be080d39bdfe7cc76b112ce74fe53",
1255
+ "habilidades/tailwind-experto/SKILL.md": "42a2bb9f48ee73aff928053de1f7635dba5d3360da18df516c2d03ed4b30ed21",
1256
+ "habilidades/tdd-workflow/SKILL.md": "b9ce0da488d97a0f2ac8b1cbe6718f01013176a7dc94f73f33d428e593d911dc",
1257
+ "habilidades/terraform-experto/SKILL.md": "be89eb4d2e14fdab3cb005c5dd46548171c9b783088e87e26f403908cec9a49c",
1258
+ "habilidades/testing-python/SKILL.md": "858eca33f9e1189ff94399b19e9835919ca190c51c1f1fa49531cf56fd2965a4",
1259
+ "habilidades/threat-model-lite/SKILL.md": "5809eda4d3ddf9f8b78689eb21f9f13dcdadd1eab2d801838f1fa02580690f55",
1260
+ "habilidades/tracing-processor/SKILL.md": "caa8f914453b4bc5edd75ebcac32a3633967237d9201eb9fb58223432caac3d5",
1261
+ "habilidades/tracking-measurement/SKILL.md": "f846c543a9eeb1442cbdbebaaa195fdeff2bd6acec1902620bc31308899f7e8a",
1262
+ "habilidades/typescript-avanzado/SKILL.md": "698088688f40116f1f82470933f5fbe1afe79ff1d45a4ac17d86619f95f481bd",
1263
+ "habilidades/typescript-diagnosticos/SKILL.md": "798a564878c60f567082cc87e45d0924494d1790892d613a1a825605f6e4a298",
1264
+ "habilidades/ux-diseno/SKILL.md": "e1bf67fa394905cdc89eb9ac21a47393f4cfe6cea57f0105e40ec5f0bba10b90",
1265
+ "habilidades/validacion-ci-sistema/SKILL.md": "9862d2e4bc00dc85156227592d60a0be1f1a2d1feab4d6ed28fa9510834bf66b",
1266
+ "habilidades/verificacion-evidencia/SKILL.md": "4f88c6872b95c250f8ec27fd57e05da1e6650acf3eeda9a411dc1493073a9da7",
1267
+ "habilidades/verificar-trabajo/SKILL.md": "22fe8740b1bde2aba898be558968feb1a51cbaf968b30255c8b84c9d2fe5bb4f",
1268
+ "habilidades/web-fetcher-routing/SKILL.md": "06d6e3b1a880732a9b0584e1e4c98488e81d0863d53ef3be3eaa147116e2c203",
1269
+ "habilidades/wiki-conocimiento/SKILL.md": "59870d616701f90265fe7d5695ec744390dcd0875ebd989309cf37e3a34aba87",
1270
+ "habilidades/wireframes-flujos/SKILL.md": "7655d0941b5a6ac0d922517b349ff71a4febdb09ca4c8f7c09c6183ddff23743",
1271
+ "habilidades/workflow-claude-code/SKILL.md": "17c397ffbecd2733ea884e9628f8103e822f4cf5366d1cba2611bccd0f51c7ac",
1272
+ "reglas/accesibilidad.md": "21914b99f001d3bfc38a39f609bbafe4c58846d3617fea68a7156a29dc58d9f6",
1273
+ "reglas/analisis-previo-tareas-grandes.md": "1c4e98c21a8ca762fa7671596f94a79a31da47e1eec5f0d318325f5b56a0d958",
1274
+ "reglas/analizar-directorios-antes-de-escribir.md": "a9bfbc46de3477f51a3746dbc466019541597bc00fef2eba8d06ddfe5dcdb6c5",
1275
+ "reglas/api-diseno.md": "51502fc461db962bf8da67c78fca9a4665e49058f91b5acba46d4f0bcddfa11b",
1276
+ "reglas/arquitectura.md": "171fc565fcb382cc80693fd8d89874e47b9f83c68af31d6bf5b3b5ed5f806d9c",
1277
+ "reglas/arreglar-al-detectar.md": "05f99f50cf91eea2b37d9c3ae5dd51f7eb6984f8bcb3dd5ff8ae220057ce21b6",
1278
+ "reglas/auditorias-documentales-estructurales.md": "1cf2c6f30a34fd15c5197d121f77339fa787ce5da4d34a9c5ae14b333bcae7ae",
1279
+ "reglas/brevedad-output.md": "094b981711cef8b6111db47d0a79260f48f773f6582927a235d74fabb062489f",
1280
+ "reglas/cloud-infra.md": "eb46c31abfa0f000408d7552b1bf1d67acc8f98daaac7f5286fee8b5935ac71b",
1281
+ "reglas/consultar-vault-primero.md": "19c751d1ff2752000d5bde8ce503f5afc14c34c8e997df9c8d9dd02b7ab41ae1",
1282
+ "reglas/debatir-antes-de-aceptar.md": "75de5eeb6f738183bbd7a1ab1b124454db30ba79d1dca35ada3525e030b6d2ed",
1283
+ "reglas/docs.md": "708d80d99e0403147bd88609689159cf015034fbb0a47b3b3cd95be037b5f2b0",
1284
+ "reglas/estilo-codigo.md": "fa7672b16d458b6219a813238fd18a166bc2316b9f72ce880bfa4dbe223f8f31",
1285
+ "reglas/fragmentos-compartidos.md": "8dc096ff475b4292373b3906ad4b82a04c4b68394d8f96e6697466924da19928",
1286
+ "reglas/git-coauthor.md": "f70f6a42ebf05f35db412d3fe0395b407a87af1e3d49dfabe36e0b081e0543a0",
1287
+ "reglas/git-workflow.md": "112f0f0cb3648fa782ff2e9801dc3b718c86e6fefe1b771511e83e2e28bef8e7",
1288
+ "reglas/gobernanza.md": "51d089be0010c5aaa75dd55620600b0c65df813249a31ba2387160b7981f22d8",
1289
+ "reglas/hooks.md": "66d010b169e7617aa50b28c29f9d8e0ad22379c08b79ba357978bd7c32eeece6",
1290
+ "reglas/intent-engineering.md": "2f6795ec03ced68725ac0ee830d96d9259c418dafd80d1782ddc6db42634388d",
1291
+ "reglas/markitdown.md": "0cfb395b9a4ed704767b5b4eab90f5f2bffba14ec80be189918f32d781abd330",
1292
+ "reglas/memoria-consolidada.md": "8d3e5b4a9d0759b7eb47a42ae94e8006512a610e30785d48421f14c77eaec832",
1293
+ "reglas/monitor-ci.md": "a22628c6072002204df6dbb5faa69aa217ae835fe2d06062a4ee50f224085c81",
1294
+ "reglas/patrones.md": "d70e9fd42674c03b1dd9d21f5d69188332ba6a7a5b80134580110c812e8cf710",
1295
+ "reglas/performance.md": "63597cffcb5a009c42a3b2030abac116a5dc6fa4526dd9c2d5a62ad59b1c21b5",
1296
+ "reglas/pruebas.md": "55eb05bac7127cb6d01aebc9841b92138f4fdf15afad6505aa36c93f2719a9cf",
1297
+ "reglas/registro-componentes-nuevos.md": "42b1d16a1bf57ce52b7a2715fc3acff78e683ab3851ba7a71e30d0b9cff36903",
1298
+ "reglas/seguridad-agentes.md": "abe408c59045161fea6422dfcff0bef5217a10b800c8f0124a67756e33326c36",
1299
+ "reglas/seguridad.md": "c4a847e2d7ff25502cace204a548311cc9e8ea9e2d2f8061123d50372661004a",
1300
+ "reglas/sesiones-paralelas.md": "f645c8da45ea2ca7e8b14bef865a475e8718c98c0fddc48a8e2d4c477b76a572",
1301
+ "reglas/sin-duplicacion-reglas-globales.md": "e9d4a753b0448112f9c97ff787710cf3648ade72a51fa712396296dbe480bbcd",
1302
+ "reglas/skills-estandar.md": "68bb4adc0c9ccab26955013672fa1d1a86edc87c703355b74656669c74c03c2a",
1303
+ "reglas/testing.md": "e0e85a952dbf5598b49ccc540cc41d332b29355aedd3d20f0252febe1e2e4faa",
1304
+ "reglas/tests-cleanup.md": "07c0d2344c7937b480deeeeca83f9b2e31de904a17d41fcfffbce555b933c690",
1305
+ "reglas/usar-code-review-graph.md": "5b76480debf58d747e68f1a26a787f567beaaa2af028d6dfd57a6f8da22e33ec",
1306
+ "reglas/usar-context7.md": "8e3d3a051e2a53e02b98c54af3f95a95e0695fb99e5d6d50792da5d6b2c28861",
1307
+ "reglas/usar-sistema-swl.md": "00fe741ca5d64d2e57fee0245333618cbb1d212e6aea74f47b64e2340dfbc6c6",
1308
+ "reglas/verificar-citas-normativas.md": "6e0697c4a38d3a2c55b7f0cf26193fe3bb246b901d93ce4f4bd7b8c297982140"
655
1309
  }
656
1310
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "lockfileVersion": 1,
3
- "generatedAt": "2026-06-15T01:34:05.511Z",
3
+ "generatedAt": "2026-06-15T05:12:07.891Z",
4
4
  "skillsCount": 182,
5
5
  "lockHash": "sha256:f6706fea37eb39050b10e8137d2cdcd9cba757cf8557f4f5291c6e05cb8ee60a",
6
6
  "skills": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saulwade/swl-ses",
3
- "version": "2.2.1",
3
+ "version": "2.2.3",
4
4
  "description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot con 60 agentes, 182 habilidades, 44 comandos, 77 reglas y 48 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.2.1",
3
+ "version": "2.2.3",
4
4
  "description": "Sistema de ingenieria de software auto-evolutivo multi-runtime polyglot. 60 agentes, 182 habilidades, 44 comandos, 77 reglas y 48 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",
package/scripts/doctor.js CHANGED
@@ -159,6 +159,15 @@ async function doctor(opciones = {}) {
159
159
  advertencias++;
160
160
  }
161
161
 
162
+ // C-2: doctor DIAGNOSTICA; no siembra dirs de proyecto (.planning/_userland)
163
+ // en un cwd que no es un proyecto swl. Correr `doctor` desde un directorio
164
+ // cualquiera no debe generar clutter. Marcadores de proyecto: .planning/ o
165
+ // _userland/ ya presentes, o un install-state de scope proyecto.
166
+ const esProyectoSwl =
167
+ fs.existsSync(path.join(cwd, '.planning')) ||
168
+ fs.existsSync(path.join(cwd, '_userland')) ||
169
+ fs.existsSync(path.join(cwd, '.swl-install-state.json'));
170
+
162
171
  // 3. Verificar .planning/
163
172
  const planningDir = path.join(cwd, '.planning');
164
173
  if (fs.existsSync(planningDir)) {
@@ -201,6 +210,8 @@ async function doctor(opciones = {}) {
201
210
  },
202
211
  });
203
212
  }
213
+ } else if (!esProyectoSwl) {
214
+ console.log(formatearPaso('.planning/', 'No aplica — el directorio actual no es un proyecto swl (usa `swl-ses init` para inicializar)'));
204
215
  } else {
205
216
  console.log(formatearAdvertencia('.planning/', 'No inicializado'));
206
217
  advertencias++;
@@ -230,6 +241,8 @@ async function doctor(opciones = {}) {
230
241
  if (agentesUser > 0 || habsUser > 0) {
231
242
  console.log(formatearPaso('Componentes usuario', `${agentesUser} agentes, ${habsUser} habilidades`));
232
243
  }
244
+ } else if (!esProyectoSwl) {
245
+ console.log(formatearPaso('_userland/', 'No aplica — el directorio actual no es un proyecto swl'));
233
246
  } else {
234
247
  console.log(formatearAdvertencia('_userland/', 'No encontrado'));
235
248
  advertencias++;
@@ -606,6 +606,7 @@ async function install(opciones) {
606
606
  try {
607
607
  const resultado = instalarArchivo(archivo, rutas, runtime, {
608
608
  force,
609
+ esGlobal,
609
610
  versionAnterior,
610
611
  versionActual: VERSION,
611
612
  estado,
@@ -683,7 +684,7 @@ async function install(opciones) {
683
684
  // Instalar userland (prioridad sobre core)
684
685
  for (const archivo of archivosUserland) {
685
686
  try {
686
- const resultado = instalarArchivo(archivo, rutas, runtime, { force: true });
687
+ const resultado = instalarArchivo(archivo, rutas, runtime, { force: true, esGlobal });
687
688
  if (resultado.instalado) {
688
689
  registrarArchivo(estado, {
689
690
  origen: archivo.rutaRelativa,
@@ -1173,6 +1174,18 @@ function instalarArchivo(archivo, rutas, runtime, opciones = {}) {
1173
1174
  const cmpOrigen = esDirSkill ? path.join(origenAbsoluto, 'SKILL.md') : origenAbsoluto;
1174
1175
  const versionBackup = opciones.versionAnterior || opciones.versionActual || 'previa';
1175
1176
 
1177
+ // C-3: los artefactos de gobernanza evolved (AUDITORIA.md + diffs de
1178
+ // reconciliación) se enraízan en la base del install. En scope GLOBAL
1179
+ // (~/.claude, ~/.codex) usan `.swl-evolved-backups/` para NO crear un dir
1180
+ // `.planning/` de proyecto dentro del dir de config global; en proyecto
1181
+ // usan `.planning/` (gobernanza.md).
1182
+ const govBase = rutas.base || process.cwd();
1183
+ const govSubdir = opciones.esGlobal ? '.swl-evolved-backups' : '.planning';
1184
+ const reconcileDir = govSubdir === '.planning'
1185
+ ? path.join(govBase, '.planning', 'evolution', 'reconcile')
1186
+ : path.join(govBase, '.swl-evolved-backups', 'reconcile');
1187
+ const auditEvolved = (e) => auditarEscritura({ ...e, cwd: govBase, subdir: govSubdir });
1188
+
1176
1189
  // MEDIO (nemesis O6): dir de skill existe pero sin SKILL.md = instalación
1177
1190
  // corrupta. Diagnóstico explícito (cae al flujo normal, no rompe invariante).
1178
1191
  if (esDirSkill && !fs.existsSync(cmpDestino)) {
@@ -1193,7 +1206,7 @@ function instalarArchivo(archivo, rutas, runtime, opciones = {}) {
1193
1206
  const backup = crearBackup(process.cwd(), cmpDestino, versionBackup);
1194
1207
  if (!backup.respaldado) {
1195
1208
  console.log(` ⚠ Backup falló (${backup.error || 'desconocido'}) para ${nombreArchivo} — merge abortado, original preservado`);
1196
- auditarEscritura({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'A', accion: 'preserve', hashAntes, evidencia: `backup falló: ${backup.error || 'desconocido'}` });
1209
+ auditEvolved({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'A', accion: 'preserve', hashAntes, evidencia: `backup falló: ${backup.error || 'desconocido'}` });
1197
1210
  return { instalado: false, evolucionado: true, destino, error: 'backup-failed' };
1198
1211
  }
1199
1212
  const backupPath = backup.rutaBackup;
@@ -1202,8 +1215,8 @@ function instalarArchivo(archivo, rutas, runtime, opciones = {}) {
1202
1215
  if (opciones.estado) {
1203
1216
  registrarBackup(opciones.estado, { rutaOriginal: cmpDestino, rutaBackup: backupPath, version: versionBackup, evolucionado: true });
1204
1217
  }
1205
- // Diff centralizado bajo el root del install (no adyacente al comando/skill).
1206
- const reconcileDir = path.join(rutas.base || process.cwd(), '.planning', 'evolution', 'reconcile');
1218
+ // Diff centralizado bajo el root del install (reconcileDir calculado arriba,
1219
+ // scope-aware: .planning en proyecto, .swl-evolved-backups en global).
1207
1220
  const merge = mergeEvolved(cmpDestino, cmpOrigen, opciones.versionActual || '', { diffDir: reconcileDir });
1208
1221
  if (merge.merged && merge.diffPath) {
1209
1222
  console.log(` ⊕ Diff generado: ${path.relative(process.cwd(), merge.diffPath)} (${merge.diffsCount} mutaciones)`);
@@ -1218,7 +1231,7 @@ function instalarArchivo(archivo, rutas, runtime, opciones = {}) {
1218
1231
  recursosActualizados = true;
1219
1232
  } catch (e) { console.log(` ⚠ No se pudieron actualizar recursos del skill: ${e.message}`); }
1220
1233
  }
1221
- const aud = auditarEscritura({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'A', accion: 'merge', hashAntes, backupPath, evidencia: strategy.reason });
1234
+ const aud = auditEvolved({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'A', accion: 'merge', hashAntes, backupPath, evidencia: strategy.reason });
1222
1235
  if (!aud.registrado) console.log(` ⚠ Auditoría no registrada: ${aud.error}`);
1223
1236
  return { instalado: recursosActualizados, evolucionado: true, destino };
1224
1237
  }
@@ -1236,12 +1249,12 @@ function instalarArchivo(archivo, rutas, runtime, opciones = {}) {
1236
1249
  let backupOk = false;
1237
1250
  try { copiarDirectorio(destino, backupDir); backupOk = true; } catch (e) { console.log(` ⚠ Backup de directorio falló (${e.message})`); }
1238
1251
  if (!backupOk) {
1239
- auditarEscritura({ archivo: path.relative(process.cwd(), destino), clasificacion: 'B', accion: 'preserve', hashAntes, evidencia: 'backup de directorio falló' });
1252
+ auditEvolved({ archivo: path.relative(process.cwd(), destino), clasificacion: 'B', accion: 'preserve', hashAntes, evidencia: 'backup de directorio falló' });
1240
1253
  return { instalado: false, evolucionado: true, destino, error: 'backup-failed' };
1241
1254
  }
1242
1255
  console.log(` ⇪ Actualizado (shipped-evolved): ${nombreArchivo} — ${strategy.reason}`);
1243
1256
  if (opciones.estado) registrarBackup(opciones.estado, { rutaOriginal: destino, rutaBackup: backupDir, version: versionBackup, evolucionado: true });
1244
- const aud = auditarEscritura({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'B', accion: 'overwrite', hashAntes, hashDespues, backupPath: backupDir, evidencia: strategy.reason });
1257
+ const aud = auditEvolved({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'B', accion: 'overwrite', hashAntes, hashDespues, backupPath: backupDir, evidencia: strategy.reason });
1245
1258
  if (!aud.registrado) console.log(` ⚠ Auditoría no registrada: ${aud.error}`);
1246
1259
  copiarDirectorio(origenAbsoluto, destino); // overwrite dir completo (recursos + SKILL.md)
1247
1260
  return { instalado: true, evolucionado: true, destino };
@@ -1252,7 +1265,7 @@ function instalarArchivo(archivo, rutas, runtime, opciones = {}) {
1252
1265
  // H1 (nemesis O5): si el backup falla, NO sobrescribir — preservar original.
1253
1266
  if (!backup.respaldado) {
1254
1267
  console.log(` ⚠ Backup falló (${backup.error || 'desconocido'}) para ${nombreArchivo} — overwrite abortado, original preservado`);
1255
- auditarEscritura({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'B', accion: 'preserve', hashAntes, evidencia: `backup falló: ${backup.error || 'desconocido'}` });
1268
+ auditEvolved({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'B', accion: 'preserve', hashAntes, evidencia: `backup falló: ${backup.error || 'desconocido'}` });
1256
1269
  return { instalado: false, evolucionado: true, destino, error: 'backup-failed' };
1257
1270
  }
1258
1271
  const backupPath = backup.rutaBackup;
@@ -1260,7 +1273,7 @@ function instalarArchivo(archivo, rutas, runtime, opciones = {}) {
1260
1273
  if (opciones.estado) {
1261
1274
  registrarBackup(opciones.estado, { rutaOriginal: cmpDestino, rutaBackup: backupPath, version: versionBackup, evolucionado: true });
1262
1275
  }
1263
- const aud = auditarEscritura({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'B', accion: 'overwrite', hashAntes, hashDespues, backupPath, evidencia: strategy.reason });
1276
+ const aud = auditEvolved({ archivo: path.relative(process.cwd(), cmpDestino), clasificacion: 'B', accion: 'overwrite', hashAntes, hashDespues, backupPath, evidencia: strategy.reason });
1264
1277
  if (!aud.registrado) console.log(` ⚠ Auditoría no registrada: ${aud.error}`);
1265
1278
  forzarEscrituraEvolved = true; // bypassa la verificación de colisión sin --force
1266
1279
  }
@@ -34,12 +34,17 @@ const HEADER = '# AUDITORIA\n\n' +
34
34
  * @param {string} [e.backupPath] - Ruta del backup creado antes de escribir.
35
35
  * @param {string} [e.evidencia] - Razón/criterio que clasificó A vs B.
36
36
  * @param {string} [e.timestamp] - ISO; default `new Date().toISOString()`.
37
- * @param {string} [e.cwd] - Raíz del proyecto; default process.cwd().
37
+ * @param {string} [e.cwd] - Raíz de la operación; default process.cwd().
38
+ * @param {string} [e.subdir] - Subdir bajo `cwd` donde vive AUDITORIA.md.
39
+ * Default `.planning` (scope proyecto, gobernanza.md). En scope global/runtime
40
+ * (~/.claude, ~/.codex) usar `.swl-evolved-backups` para NO crear un dir
41
+ * `.planning/` de proyecto dentro del dir de config global (C-3 Fase 16.1).
38
42
  * @returns {{ registrado: boolean, ruta: string }}
39
43
  */
40
44
  function auditarEscritura(e) {
41
45
  const cwd = e.cwd || process.cwd();
42
- const ruta = path.join(cwd, '.planning', 'AUDITORIA.md');
46
+ const subdir = e.subdir || '.planning';
47
+ const ruta = path.join(cwd, subdir, 'AUDITORIA.md');
43
48
  try {
44
49
  fs.mkdirSync(path.dirname(ruta), { recursive: true });
45
50
  if (!fs.existsSync(ruta)) fs.writeFileSync(ruta, HEADER, 'utf8');
@@ -93,7 +93,7 @@ function resolverPerfil(nombrePerfil, opciones = {}) {
93
93
 
94
94
  // Verificar soporte de target
95
95
  if (opciones.target && modulo.targets && !modulo.targets.includes(opciones.target)) {
96
- warnings.push(`Módulo "${nombreModulo}" no soporta target "${opciones.target}", omitido`);
96
+ warnings.push(`Módulo "${nombreModulo}" no declarado para target "${opciones.target}" (omitido; declarado para: ${modulo.targets.join(', ')})`);
97
97
  continue;
98
98
  }
99
99
 
@@ -32,6 +32,32 @@ const {
32
32
  const ROOT = path.resolve(__dirname, '..');
33
33
  const PKG_PATH = path.join(ROOT, 'package.json');
34
34
 
35
+ // --- Log de la corrida (.planning/logs/publish-<version>-<ts>.log) -----------
36
+ // Captura stdout+stderr del publish para diagnóstico: npm v10 NO escribe el
37
+ // stdout de un script fallido (prepublishOnly/test:release) en su debug log,
38
+ // así que sin esto el test que rompe el publish queda invisible. Tee: eco a
39
+ // consola + archivo persistente.
40
+ let LOG_PATH = null;
41
+ function iniciarLog(version) {
42
+ try {
43
+ const dir = path.join(ROOT, '.planning', 'logs');
44
+ fs.mkdirSync(dir, { recursive: true });
45
+ const ts = new Date().toISOString().replace(/[:.]/g, '-');
46
+ LOG_PATH = path.join(dir, `publish-${version}-${ts}.log`);
47
+ // Escritura SÍNCRONA (writeFileSync/appendFileSync): un createWriteStream
48
+ // async + process.exit() inmediato perdía el buffer sin volcarlo a disco
49
+ // (dejaba el log vacío). appendFileSync vacía en cada llamada.
50
+ fs.writeFileSync(LOG_PATH, `# publish ${version} — ${new Date().toISOString()}\n# argv: ${process.argv.slice(2).join(' ')}\n\n`);
51
+ } catch (err) {
52
+ process.stderr.write(`[publicar] no se pudo abrir log: ${String(err.message).slice(0, 120)}\n`);
53
+ LOG_PATH = null;
54
+ }
55
+ }
56
+ function logWrite(text) {
57
+ if (LOG_PATH && text) { try { fs.appendFileSync(LOG_PATH, text); } catch { /* best-effort */ } }
58
+ }
59
+ function cerrarLog() { /* no-op: appendFileSync ya volcó todo a disco */ }
60
+
35
61
  /**
36
62
  * Resuelve el binario de npm a invocar. Usa node + npm-cli.js cuando es
37
63
  * posible para evitar shell:true en Windows (mismo enfoque que la lib
@@ -60,15 +86,19 @@ function npmExec(args, opts = {}) {
60
86
  }
61
87
 
62
88
  /**
63
- * Variante de npmExec que captura stderr para detección posterior de errores
64
- * estructurados (ej: EOTP). stdout sigue heredado (live-streaming visible al
65
- * usuario) y stderr se pipea a un buffer + se ecoa a process.stderr al final.
89
+ * Variante de npmExec que captura stdout+stderr para (a) detección de errores
90
+ * estructurados (ej: EOTP) y (b) persistencia en el log de la corrida
91
+ * (`iniciarLog`). Ambos streams se pipean, se ecoan a consola al terminar y se
92
+ * vuelcan al log — así el stdout del script que rompe el publish (test:release)
93
+ * queda registrado. Trade-off: la salida del prepublish aparece al finalizar el
94
+ * spawn (no en vivo), por eso se imprime un aviso antes.
66
95
  *
67
96
  * Retorna { status, stderr } sin lanzar — el caller inspecciona el status.
68
97
  */
69
98
  function npmSpawnCaptureStderr(args, opts = {}) {
70
99
  const defaults = { cwd: ROOT, timeout: 300_000, env: process.env };
71
- const merged = { ...defaults, ...opts, stdio: ['inherit', 'inherit', 'pipe'] };
100
+ const merged = { ...defaults, ...opts, stdio: ['inherit', 'pipe', 'pipe'] };
101
+ process.stderr.write('[publicar] ejecutando npm (incluye prepublish/test:release; salida completa al finalizar y en el log)...\n');
72
102
  let res;
73
103
  if (NPM_CLI_JS) {
74
104
  res = spawnSync(process.execPath, [NPM_CLI_JS, ...args], merged);
@@ -76,9 +106,13 @@ function npmSpawnCaptureStderr(args, opts = {}) {
76
106
  const bin = process.platform === 'win32' ? 'npm.cmd' : 'npm';
77
107
  res = spawnSync(bin, args, merged);
78
108
  }
109
+ const stdout = res.stdout ? String(res.stdout) : '';
79
110
  const stderr = res.stderr ? String(res.stderr) : '';
80
- // Ecoar stderr al usuario para que vea el diagnóstico de npm aunque se capturó.
111
+ // Eco a consola + volcado al log (stdout primero, luego stderr).
112
+ if (stdout) process.stdout.write(stdout);
81
113
  if (stderr) process.stderr.write(stderr);
114
+ logWrite(stdout);
115
+ logWrite(stderr);
82
116
  return { status: res.status, signal: res.signal, stderr, error: res.error };
83
117
  }
84
118
 
@@ -482,6 +516,7 @@ function reportarResultado(pkg, opts, npmjsOk, githubOk) {
482
516
  function main() {
483
517
  const opts = parsearArgs(process.argv.slice(2));
484
518
  const pkg = leerPkg();
519
+ iniciarLog(pkg.version);
485
520
  imprimirEncabezado(pkg.version, opts.dryRun);
486
521
  avisarSiHayCambiosSinCommit(opts.dryRun);
487
522
 
@@ -489,6 +524,8 @@ function main() {
489
524
  const githubOk = opts.soloNpmjs ? true : publicarGitHub(pkg, opts.dryRun);
490
525
 
491
526
  reportarResultado(pkg, opts, npmjsOk, githubOk);
527
+ if (LOG_PATH) process.stdout.write(`\nLog de la corrida: ${path.relative(ROOT, LOG_PATH).replace(/\\/g, '/')}\n`);
528
+ cerrarLog();
492
529
  process.exit(npmjsOk && githubOk ? 0 : 1);
493
530
  }
494
531
 
@@ -136,7 +136,10 @@ function remediar({ target, apply = false } = {}) {
136
136
  target = expandirTarget(target);
137
137
  const manifiesto = cargarManifiesto();
138
138
  const ts = new Date().toISOString().replace(/[:.]/g, '-');
139
- const reconcileDir = path.join(target, '.planning', 'evolution', 'reconcile');
139
+ // El target es un dir de config runtime (~/.claude, ~/.codex), NO un proyecto:
140
+ // los artefactos de gobernanza evolved van bajo `.swl-evolved-backups/` (donde
141
+ // ya viven los backups), sin crear un `.planning/` de proyecto ahí (C-3).
142
+ const reconcileDir = path.join(target, '.swl-evolved-backups', 'reconcile');
140
143
  const resumen = { target, A: [], B: [], errores: [], reconcileDir };
141
144
 
142
145
  for (const item of escanear(target)) {
@@ -181,7 +184,7 @@ function remediar({ target, apply = false } = {}) {
181
184
  const hashFuente = canonicalHash(fs.readFileSync(fuenteAbs, 'utf8')); // antes del copy
182
185
  const backupPath = backupSimple(target, item.archivo, ts); // backup PRECEDE al overwrite
183
186
  fs.copyFileSync(fuenteAbs, item.archivo); // fuente limpio (sin evolved-*) → descongelado
184
- auditarEscritura({ archivo: item.sourceRel, clasificacion: 'B', accion: 'overwrite', hashAntes: instaladoHash, hashDespues: hashFuente, backupPath, evidencia: `remediación: ${evidencia}` });
187
+ auditarEscritura({ archivo: item.sourceRel, clasificacion: 'B', accion: 'overwrite', hashAntes: instaladoHash, hashDespues: hashFuente, backupPath, evidencia: `remediación: ${evidencia}`, cwd: target, subdir: '.swl-evolved-backups' });
185
188
  } catch (e) { resumen.errores.push({ archivo: item.sourceRel, error: e.message }); continue; }
186
189
  }
187
190
  resumen.B.push({ archivo: item.sourceRel, from: ev.from, razon: evidencia });
@@ -224,7 +227,7 @@ function imprimir(r, apply) {
224
227
  for (const e of r.errores) process.stdout.write(` ! ${e.archivo}: ${e.error}\n`);
225
228
  }
226
229
  if (apply && r.A.length) process.stdout.write(`\nDiffs de reconciliación (revisión upstream): ${path.relative(r.target, r.reconcileDir).replace(/\\/g, '/')}/INDEX.md\n`);
227
- if (!apply && r.B.length) process.stdout.write(`\n→ Para aplicar: agregar --apply (backups en <target>/.swl-evolved-backups/, diffs centralizados en .planning/evolution/reconcile/).\n`);
230
+ if (!apply && r.B.length) process.stdout.write(`\n→ Para aplicar: agregar --apply (backups, diffs y AUDITORIA centralizados en <target>/.swl-evolved-backups/).\n`);
228
231
  }
229
232
 
230
233
  if (require.main === module) {