--- type: SOP asset_id: SOP-EL-SkillsAlta-v01 version: v01 status: Draft owner: Victor Heredia sherpa_owner: Jay ratificador: Victor Heredia (L3+) fecha_creacion: 2026-06-18 fecha_ultima_actualizacion: 2026-06-18 intellbank: IB-EL-EmpowerLabs subbank: CP-EL-Control-Planes proposito: Procedimiento end-to-end para dar de alta una skill/comando y actualizar el banco de skills relacionados: - MPB-EL-SkillsPlaybook-v01 (qué son y cómo se generan · conceptos y tips) - CP-EL-SkillsRegistry-v01 (el banco · inventario) - VIZ-EL-SkillsRegistry-Dashboard-v01 (el banco · dashboard) - EL-PluginMarketplace/INSTALL.md (publicar y distribuir) - ultrasherpax-generator (generar súper asistentes SVA) tags: [SOP, skills, alta, registry, plugin, marketplace, gobernanza, proceso] --- # SOP · Alta de Skill + Actualización del Banco ## El procedimiento canónico, de la idea al equipo > **Cuándo usar este SOP:** cada vez que creas, generas o canonizas una skill o comando nuevo > y quieres que quede registrado en el banco y distribuido al equipo de forma estable. > > **Regla raíz (no negociable):** se edita la **FUENTE** (el marketplace en el vault), nunca el > caché instalado en `…/.remote-plugins/`. Editar el caché rompe el discovery de comandos. --- ## Mapa de 7 pasos ``` 0. Decidir tipo y plugin destino 1. Gate G0 — ¿ya existe? (vault-first) 2. Crear / generar la skill 3. Colocar en la FUENTE (plugin correcto) 4. Subir versión + README del plugin 5. Publicar (git push) 6. Registrar en el BANCO (registry + dashboard) 7. Verificar ``` --- ## Paso 0 · Decidir tipo y plugin destino **¿Skill o comando?** - **Comando** (`commands/*.md`) — se invoca con `/nombre`; una instrucción de tarea. Para flujos que el usuario dispara explícitamente. - **Skill** (`skills//SKILL.md`) — dispara sola por su `description`; puede traer `references/` y `scripts/`. Para capacidades que el modelo activa por contexto. **¿En qué plugin vive?** (los tres del marketplace EL) | Si la skill/comando es… | Plugin destino | |---|---| | Operación WORX del día a día (rooms, minutas, board) | `worx-empowerlabs` | | Producto WikiX (crear/auditar/actualizar páginas) | `worx-wikix` | | Súper asistente (SVA = shell × Brain Code) | `worx-ultrasherpas` | | Gobernanza del vault (BMF/ANA/registry/orphan…) | hoy son skills sueltas → evaluar si ascienden a un plugin (candidato) | | Dominio nuevo que no encaja | **plugin nuevo** en el marketplace (replica la estructura) | Ruta de la fuente: `IB-EL-EmpowerLabs/PB-EL-Project-Bank/PB-WORX-Worx/EL-PluginMarketplace//`. --- ## Paso 1 · Gate G0 — ¿ya existe? (vault-first) Antes de crear, consulta [[CP-EL-SkillsRegistry-v01]] (o el dashboard). Si ya existe una skill que cubre el caso → versiónala (`vNN+1`) en vez de duplicar. Si una de terceros casi lo cubre → considera envolverla en una propia que declare qué hereda y qué añade. --- ## Paso 2 · Crear / generar la skill Elige el motor según el tipo: - **Skill genérica nueva** → usa `skill-creator` (borrador → test → iterar → empaquetar). - **Súper asistente (SVA)** → usa `ultrasherpax-generator` (shell × Brain Code → SVA canónico). No a mano. - **Comando simple** → escribe el `.md` directo con el formato de comando. **Anatomía mínima** (skill): carpeta con `SKILL.md` (frontmatter `name` + `description`) y, si hace falta, `references/`. **Formato de comando:** frontmatter con `description:` + el cuerpo en markdown. **El campo decisivo es `description`.** Es lo único que el modelo ve para disparar. Escríbela "pushy" e incluye las frases reales que diría el usuario. Mantén el `SKILL.md` < 500 líneas; empuja el detalle a `references/`. --- ## Paso 3 · Colocar en la FUENTE (plugin correcto) Copia la skill/comando a la carpeta del plugin destino **en el marketplace del vault** — nunca al caché `.remote-plugins/`. - Skill → `/skills//SKILL.md` (+ `references/`). - Comando → `/commands/.md`. Verifica naming BMF cuando aplique y la tripleta Owner + Sherpa + Ratificador. --- ## Paso 4 · Subir versión + README del plugin 1. En `/.claude-plugin/plugin.json`, sube `version` (semver: parche/menor/mayor). 2. Actualiza el `README.md` del plugin (tabla de comandos/skills) y, si aplica, `keywords`. El bump de versión es lo que dispara la actualización en las máquinas del equipo. --- ## Paso 5 · Publicar (git push) Desde `EL-PluginMarketplace/`: edita la fuente → commit → push al repo privado de EmpowerLabs. Procedimiento exacto en [[EL-PluginMarketplace/INSTALL.md]] (o `bash init-repo.sh` la primera vez). El equipo corre el update una sola vez; con `autoUpdate: true` entra solo. --- ## Paso 6 · Registrar en el BANCO (este es el "actualizar el banco") El banco de skills son dos vistas de lo mismo — actualiza **ambas**: 1. **Registry** [[CP-EL-SkillsRegistry-v01]] — agrega la entrada en el bloque correcto (A1 comandos WORX · A2 gobernanza vault · A3 UltraSherpas · o el bloque que toque). Sube el conteo. 2. **Dashboard** [[VIZ-EL-SkillsRegistry-Dashboard-v01]] — añade el objeto a la lista `DATA` (`{n, block, cat, d}`). 3. **Registry maestro** (si la skill es un activo canónico) — súmala a `CP-XX-IntelliBanks-Registry-v01` con `bmf-registry-updater`. > Una skill que no está en el registry **no existe** para efectos de gobernanza. Este paso no es opcional. --- ## Paso 7 · Verificar En una **sesión nueva** (tras el update del plugin): - La skill/comando aparece y **dispara** con un prompt realista. - `/arrancaroom` y el resto del toolkit siguen intactos (no se rompió el discovery). - La entrada del registry y el dashboard reflejan la realidad. --- ## Checklist de alta (copia y marca) - [ ] Paso 0 · Tipo (skill/comando) y plugin destino decididos - [ ] Paso 1 · Gate G0 — no duplica (consulté el registry) - [ ] Paso 2 · Creada con el motor correcto · `description` pushy · < 500 líneas - [ ] Paso 3 · En la FUENTE, plugin correcto · naming + tripleta - [ ] Paso 4 · `version` subida + README del plugin - [ ] Paso 5 · git push al marketplace - [ ] Paso 6 · Registrada en registry + dashboard (+ registry maestro si canónica) - [ ] Paso 7 · Verificada en sesión nueva · discovery intacto ## Anti-patrones (lo que rompe el sistema) - ❌ Editar el caché `.remote-plugins/` a mano → rompe el discovery (incidente comprobado). - ❌ Soltar el `.md` en la raíz de un repo ajeno (ej. `Vault_skills/`) → no es la fuente. - ❌ Olvidar subir `version` → el equipo no recibe la actualización. - ❌ Olvidar el Paso 6 → la skill existe pero el banco no la conoce. - ❌ `description` pobre → la skill nunca dispara (o dispara de más). ## CHANGELOG | Versión | Fecha | Cambio | |---|---|---| | v01 | 2026-06-18 | Creación. Procedimiento de 7 pasos + checklist + anti-patrones, sobre la arquitectura de 3 plugins y el marketplace EL. |