Del caos multiagente a un harness de agentes y skills predecibles.
Recupera tokens (¡y dinero!), ahorra tiempo y deja tus Markdowns deterministas. Encuentra lo que sobra: incoherencias, repeticiones, skills grandes. El harness que diseñaste, por fin a la vista: análisis y arreglos, deterministas y probabilísticos, en un mismo mapa.
¡Todo tu harness de agentes en una única pantalla!
Primeros pasos
Tutorial en 5 líneas
Instala, abre tu agente en una carpeta vacía (Claude Code, Codex, etc) y pídele el tutorial: te guía paso a paso, en vivo en consola y navegador.
bash
$npm i -g @skill-map/cli$mkdir try-skill-map && cd try-skill-map$sm tutorial# instala la skill del tutorial$claude# abre Claude Code aquí
Después, dentro de Claude, escribe:
Ecosistema
Seis tipos de plugin, extensiones sin límite.
Tu plugin, el de tu empresa, el que publica la comunidad, incluso el de tu suegra: todos corren contra el mismo kernel.
tipo de plugin
Provider
Define un agente (Claude, Codex, etc)
Un provider describe a un agente: sus tipos de archivo (skill / agent / command en Claude), dónde viven, su frontmatter y cómo se dibujan en la UI. El de Claude viene de fábrica; escribe el tuyo para Codex, Copilot o tu runner.
// claude/provider.ts (kinds live in claude/kinds/<name>/)
// id and kind come from the folder, you never write them.
export default {
version: '0.1.0',
description: 'Claude Code agents, commands, and skills',
presentation: { label: 'Claude', color: '#cc785c' },
detect: { markers: ['.claude'] },
read: { extensions: ['.md'], parser: 'frontmatter-yaml' },
classify: (path, fm) => /* 'agent' | 'command' | 'skill' | null */,
};
tipo de plugin
Extractor
Extrae datos de un nodo
Convierte un archivo (un nodo) en datos: links, atributos, señales que guardas en tu KV. Código puro y determinista dentro de `sm scan`: milisegundos, sin LLM y gratis.
// claude/extractors/slash/index.ts
export default {
version: '0.1.0',
description: 'Link /command invocations to their target',
scope: 'body',
extract(ctx) {
for (const [, cmd] of ctx.body.matchAll(SLASH_RE))
ctx.emitLink({
source: ctx.node.path, target: cmd,
kind: 'invokes', confidence: 0.8,
});
},
};
tipo de plugin
Analyzer
Encuentra problemas en el mapa
Analiza el mapa completo: colisiones de trigger, huérfanos, dependencias muertas, referencias rotas. Escribe el tuyo una vez y úsalo donde quieras.
Las actions son las únicas que tocan el disco. Si es determinista, código: renombrar un trigger, ajustar frontmatter. Si es probabilística, un prompt que ejecuta el LLM: regenerar un summary, reescribir un texto.
Saca el mapa de la memoria al formato que necesites: ASCII, Mermaid para el README, DOT, JSON. Los built-in cubren lo común; si te falta uno, son pocas líneas.
Cuando pasa algo (scan terminado, action ejecutada, job fallido), un hook se dispara: Slack, un webhook, o frenar un spawn antes de que arranque. Diez eventos disponibles.
// integrations/hooks/slack-on-failure/index.ts
export default {
version: '0.1.0',
description: 'Post to Slack when a job fails',
triggers: ['job.failed'],
on(ctx) {
slack.post('#alerts', ctx.jobResult);
},
};
El análisis estático corre en milisegundos, offline. Luego encolas un job semántico y tu propio agente lee el nodo entendiéndolo: redundancia, un trigger que va a fallar, instrucciones vagas o contradictorias, incluso contenido que intenta manipular al agente. El mismo mapa, desde dos ángulos.
Peso de tokens por nodo
Bytes y tokens por nodo. Encuentra la skill grande que se está comiendo tu context window.
Referencias cruzadas
Cada link entre archivos (invocaciones /slash, menciones @, imports, URLs), y el directorio se vuelve un mapa.
Referencias rotas
Un trigger que ya no existe y algo sigue apuntándole: lo ves en el scan, antes de que el agente falle.
Vago, incoherente, redundante
Lo que un regex no ve: instrucciones tan vagas que no se pueden seguir, un término usado de tres formas, lo mismo dicho dos veces. Para eso están los analyzers semánticos.
Deps externas
Lista todas las URLs externas de tu workspace: tu supply chain, a la vista.
Casos de uso
Si vives en Markdown, esto es para ti.
Sin humo: solo un mapa sobre los archivos que ya tienes.
Para autores
Optimiza antes de publicar.
Antes de publicar una skill, mírala en contexto: qué duplica en otro lado, dónde se repite, cuántos tokens cuesta. Ajústala mientras todavía es tuya.
Para AI Architects & equipos de plataforma
Mira el harness que diseñaste, no el que se desvió.
Apúntalo a tu proyecto y contrasta lo que pensaste con lo que hay en disco: copias divergentes de una skill, un agente que nadie referencia, una regla que se pudrió en silencio.
Para quien depura agentes
Mira lo que tu agente ejecutó de verdad.
Deja el mapa abierto y cada nodo se enciende cuando tu runtime lo invoca: la skill que cargó, el agente al que delegó, el archivo que leyó. Abre un link de delegación y lee el prompt y la respuesta exactos. Sin tailear logs.
Para quien construye herramientas
Construye sobre el mapa.
Todo tiene verbo CLI, salida JSON y hook de plugin; tu agente lo maneja entero por MCP. Conéctalo a tu CI, tu dashboard o tu flujo LLM sin tocar el kernel.
Citas
Quienes ya lo usan dicen esto.
“Encontramos 14 colisiones de trigger en nuestra flota interna de agentes en la primera ejecución. Llevábamos semanas depurando los fallos.”
MC
Maya Chen
Platform Lead, Finch Labs
“El chequeo de huérfanos por sí solo vale la pena. Teníamos 38 skills definidas y nunca referenciadas. Código muerto, pero para agentes.”
JR
Jordan Reyes
Autora de skills · Anthropic Builders
“Corro sm en CI. Si un PR introduce una colisión o una dep externa no permitida, el build falla. Fin del debate.”
PV
Priya Vasquez
Eng Manager, Recurse
Deja de leer carpetas: lee mapas.
Todo tu harness de agentes en un vistazo. Ahora sí lo puedes diseñar bien.