🎯Lo que obtienes aquí
Conocer cada comando del CLI en detalle. Terminar sabiendo cuál usar en cada situación (instalar, importar una skill existente, hacer build, validar, gestionar el drift) y qué esperar del output.
Contenido detallado
📥 Instalación — Ruta A vs. Ruta B
Dos formas de instalar, según lo que necesites. A es más rápido, pero limitado. B es completo — necesario para crear tus propias skills.
A. Arrastrar y soltar (sin CLI)
# Claude Code cp -r skill/dist/claude/polyskill \ ~/.claude/skills/polyskill # OpenAI Codex cp -r skill/dist/codex/polyskill \ ~/.agents/skills/polyskill
La skill funciona con la invocación en lenguaje natural. Pero si necesita ejecutar polyskill build por debajo, falla — la CLI no está en el PATH.
B. Source + CLI (completo)
git clone \ https://github.com/inematds/pollyskill cd pollyskill npm install npm run build npm link # Confirma polyskill --version polyskill detect # Instala a meta-skill cd skill && polyskill install
CLI en el PATH. Puedes hacerlo todo: crear skills, importar, compilar, instalar, reconcile.
💡Cuál elegir
Si solo quieres USAR skills cross-runtime existentes, A basta. Si vas a CREAR/PORTAR tus propias skills, B es obligatorio. Si tienes dudas, elige B: no tiene desventajas.
Conceptos clave
Camino A
CLI en el PATH
Valida la instalación
Skills/dist/* en el repo
🚀 polyskill init <nome>
Crea un workspace de skill portable desde cero. Estructura inicial con definition.md stub, carpetas convencionadas, configuración de build. Nunca creas SKILL.md a mano.
En acción
$ polyskill init my-reviewer ✓ Created workspace: ./my-reviewer Structure: ./my-reviewer/ ├── definition.md # edit this ├── scripts/ # empty ├── references/ # empty ├── assets/ # empty └── .polyskill.json # config Next steps: cd my-reviewer $EDITOR definition.md polyskill build
definition.md inicial
--- name: my-reviewer description: Use when... [edit this] --- # My Reviewer Edite o corpo aqui. Suporta markdown padrão. Pode referenciar arquivos relativos: `./references/x.md` Pode delegar pra scripts: `./scripts/check.sh`
Conceptos clave
Todo listo
No es SKILL.md
Configuración local
Solo editar
📤 polyskill import <path> --from claude|codex
Toma una skill existente en cualquier runtime y genera un workspace portable equivalente. Bidireccional: --from claude toma de .claude/skills/, --from codex toma de .agents/skills/.
En acción — importando una skill de Claude
$ polyskill import ~/.claude/skills/code-reviewer \
--from claude
✓ Parsed ~/.claude/skills/code-reviewer/SKILL.md
✓ Copied 2 scripts, 3 references, 0 assets
⚠ Converted 2 backtick-bang occurrences → prose fallback (with annotation in IR)
✓ Wrote ./code-reviewer/definition.md
✓ Workspace created
Next steps:
cd code-reviewer
polyskill build
polyskill install # instala nos DOIS runtimes
✓ Lo que conserva la importación
- • Todos los archivos en
scripts/,references/,assets/ - • Frontmatter (name + description)
- • Body completo en markdown
- • Enlaces relativos
⚠ Lo que se convierte
- • Backtick-bang (Claude) → prosa de respaldo + marcador en la IR
- •
allowed-tools(Claude) → IR genérico de restricción de herramientas - • Sidecar openai.yaml (Codex) → IR de branding + mcp_deps
- • Description larga → se mantiene (el front-loading solo se hace en el build para Codex)
💡Ingeniería inversa gratis
¿Tienes 10 skills de Claude que te encantan? Importa cada una con un comando y luego polyskill build genera una versión para Codex de cada uno. Ida y vuelta: empezó siendo solo para Claude y ahora funciona en ambos. Lo mismo si empezaste en Codex.
Conceptos clave
Origen .claude/skills/
Origen .agents/skills/
scripts/refs/assets
Marcador en la IR
🏗️ polyskill build
Compila definition.md para dist/<target>/<skill>/. Es el comando que ejecutas cada vez que editas la skill. Puede ir en un watch o en un hook pre-commit.
Resultado del build
$ polyskill build ✓ Parsed ./definition.md ✓ Built dist/claude/code-reviewer/SKILL.md ✓ Built dist/codex/code-reviewer/SKILL.md ✓ Built dist/codex/code-reviewer/agents/openai.yaml ✓ Copied scripts/, references/, assets/ to all targets ✓ Updated .polyskill-hashes Build complete (3 files in 2 targets, 312ms).
Qué hace cada adapter en el emit
allowed-tools en el frontmatter si la IR tieneallowed-tools (no es compatible)agents/openai.yaml si IR tiene branding/mcp⚠️--force para ignorar drift
$ polyskill build ✗ Drift detected in dist/claude/x/SKILL.md (run reconcile or --force) $ polyskill build --force ✓ Forced overwrite (drift discarded)
Usa --force solo cuando estés seguro de que puedes descartar el ajuste manual. Si no, usa reconcile.
Conceptos clave
Resultado por adapter
Detección de drift
Sobrescribe la divergencia
Ejecuta de forma automática
📦 polyskill install
Combina build + copiar a los directorios canónicos: ~/.claude/skills/<skill> e ~/.agents/skills/<skill>. Skill disponible al instante en ambos runtimes.
En acción
$ polyskill install ✓ Built 2 targets (claude, codex) ✓ Claude Code → ~/.claude/skills/code-reviewer ✓ OpenAI Codex → ~/.agents/skills/code-reviewer Reload notes: - Claude Code: hot-reload (já disponível, /code-reviewer) - Codex: open desktop app → Plugins → refresh (CLI: skill aparece no próximo $ + autocomplete) Install complete.
Comando del día a día
¿Editaste? Ejecuta install. Skill actualizada en ambas. Es el comando más usado después de build.
Recarga
La recarga de Claude es automática. La de Codex CLI también. Codex desktop requiere una actualización manual.
Desinstalar
No tiene comando. rm -rf ~/.claude/skills/x + rm -rf ~/.agents/skills/x.
Ámbito de instalación
Por defecto se instala en global (~/.claude/, ~/.agents/). Para instalarlo en el proyecto:
$ polyskill install --scope project
✓ Installed to ./.claude/skills/ and ./.agents/skills/
Conceptos clave
Atajo 2 en 1
~/.claude y ~/.agents
Busca en el repo
Solo Codex de escritorio
🔍 polyskill detect / status / adapters
Tres comandos solo lectura para inspección. No editan nada. Sirven para depurar e introspeccionar el estado actual.
polyskill detect
Indica qué runtimes están instalados en la máquina y dónde están.
$ polyskill detect ✓ Claude Code v1.4.2 (~/.claude/, npm) ✓ OpenAI Codex v0.8.1 (~/.codex/, brew) ✗ Gemini CLI not installed ✗ Cursor not installed
polyskill status
Compara dist/ actual con los directorios instalados. Muestra lo que está en sync.
$ polyskill status Workspace: ./code-reviewer Targets: claude ✓ in sync (~/.claude/skills/code-reviewer) codex ⚠ behind (~/.agents/skills/code-reviewer, 2 commits old) Run `polyskill install` to sync.
polyskill adapters
Lista los adapters instalados en polyskill. Hoy: portable + claude + codex.
$ polyskill adapters ✓ portable canonical source format ✓ claude Claude Code (.claude/skills/) ✓ codex OpenAI Codex (.agents/skills/ + sidecar) Roadmap (not yet): - gemini - cursor
💡Útil para troubleshooting
¿La skill no se activa? detect primero para ver si el runtime está visible. ¿Build extraño? status muestra qué está desincronizado. ¿Se rompió el adapter? adapters confirma que está cargado.
Conceptos clave
No editan
Parseable
Exit codes
Detectar siempre
🩺 polyskill validate / reconcile
Dos comandos de salud. validate ejecuta un linter por adapter (reglas por objetivo). reconcile resuelve las diferencias cuando alguien editó a mano fuera de polyskill.
polyskill validate — lint por target
$ polyskill validate ✓ portable definition.md is valid ✓ claude SKILL.md will be valid in Claude Code ✗ codex SKILL.md has issues: - description is 8.4KB, will be truncated to ~8KB - triggers "review PR" found at offset 8200 → will be lost - move triggers to first 1-2KB (front-loading) Validation FAILED for 1 target.
Cada adapter tiene sus propias reglas: Codex valida el tamaño de la descripción, Claude valida la sintaxis de allowed-tools, etc. validate se ejecuta en CI antes del merge.
polyskill reconcile — diferencias interactivas
$ polyskill reconcile ⚠ Drift detected in 1 target: ~/.claude/skills/code-reviewer/SKILL.md Diff (target vs last-built): + Added section: "## Special case: monorepo" ~ Modified body of "## Output format" Options: [k] keep target version (import back into definition.md) [o] overwrite target with current build [m] manual merge (open editor) [s] skip (leave drift for now) Choice (k/o/m/s): k ✓ Imported target → definition.md updated ✓ Rebuilt all targets from new definition ✓ Drift resolved
Cuándo ejecutar validate
- • Antes del commit (pre-commit hook)
- • En CI antes del merge
- • Después de importar una skill de otro runtime
- • Cuándo editar description (verifica el truncamiento)
Cuándo ejecutar reconcile
- • La compilación se aborta con un error de drift
- • Sabes que alguien editó a mano
- • La skill volvió a la source de otra máquina
- • Periódicamente como verificación de cordura
💡Setup ideal
El hook pre-commit se ejecuta polyskill validate + polyskill build. CI también ejecuta ambos. Ejecutas Reconcile a mano cuando aparece drift. Este triángulo cubre el 95% de los casos.
Conceptos clave
Lint específico
0 = correcto, 1 = fallo
keep/over/manual/skip
validate+build+reconcile
🎯Resumen del módulo
Siguiente ruta:
T6 — Flujos avanzados (session handoff, dos terminales, MCP compartido, gobernanza)