Del caos multiagente
a agentes y skills predecibles.

Recupera tokens (¡y dinero!), ahorra tiempo y vuelve determinísticos a tus Markdowns. Detecta colisiones, huérfanos, duplicados semánticos y skills obesas.
Todo sobre el mismo grafo: análisis determinístico y semántico (LLM) para tu harness de agentes.

Demo en vivo
~/.claude/skills
13 nodes · 15 links · 3 collisions · 1 orphan
Skill
Agent
Hook
Markdown
Command
Orphan
oauth-flow deploy ship release reviewer planner pre-commit post-merge fs/read git/log legacy.md read-pdf CLAUDE.md

Todo tu ecosistema de agentes,
¡en una única pantalla!

Features

Determinístico. Semántico. Mismo grafo.

Determinístico y probabilístico, lado a lado

modes

El análisis estático corre en milisegundos; el LLM corre como job. Un mismo grafo analizado desde dos ángulos.

Peso de tokens por nodo

weight

Conteo de bytes y tokens por nodo. Encuentra la skill obesa que se come tu context window.

Ecosistema

Plugins: Seis tipos.
Infinitas extensiones.

Seis maneras de extender esta herramienta. Tu plugin, el de tu empresa, el que publica la comunidad, todos corren contra el mismo kernel.

+ tu plugin KERNEL motor del grafo Provider BUILT-IN Extractor BUILT-IN Analyzer BUILT-IN Action Formatter BUILT-IN Hook BUILT-IN
tipo de plugin

Provider

Define un agente (Claude, Codex, etc)

Declara los tipos de archivo que un agente expone (skill / agent / command para Claude), dónde vive su contenido en disco, el schema de frontmatter de cada tipo y cómo la UI lo dibuja (etiqueta, color, ícono). El provider de Claude viene built-in; escribe uno para Codex, Gemini, Copilot, o tu propio runner.

export const claude: IProvider = {
  id: 'claude', kind: 'provider',
  explorationDir: '~/.claude',
  read: { extensions: ['.md'], parser: 'frontmatter-yaml' },
  kinds: {
    skill:   { schema: './schemas/skill.schema.json',   /* … */ },
    agent:   { schema: './schemas/agent.schema.json',   /* … */ },
    command: { schema: './schemas/command.schema.json', /* … */ },
  },
  classify: (path, fm) => /* skill | agent | command */,
};
tipo de plugin

Extractor

Extrae datos de un nodo

Cada archivo es un nodo; un Extractor lo convierte en datos. Links a otros nodos, atributos que enriquecen el nodo, o señales que guardas en tu propio KV. Código puro, determinístico, corre en milisegundos dentro de `sm scan`, sin LLM, sin costo.

export const slash: IExtractor = {
  id: 'slash', kind: 'extractor',
  emitsLinkKinds: ['invokes'],
  extract: (ctx) => {
    for (const m of ctx.body.matchAll(SLASH_RE))
      ctx.emitLink({ kind: 'invokes', target: m[1] });
  },
};
tipo de plugin

Analyzer

Encuentra problemas en el grafo

Mira el grafo completo y detecta problemas: colisiones de trigger, huérfanos, dependencias muertas, referencias rotas. Escribe un analyzer, ejecútalo en cualquier proyecto, o publícalo para que otros lo usen.

export const triggerCollisions: IAnalyzer = {
  id: 'trigger-collisions', kind: 'analyzer',
  evaluate: (graph) => byTrigger(graph)
    .filter(([, ns]) => ns.length > 1)
    .map(toCollisionIssue),
};
tipo de plugin

Action

Mejora tus agentes y skills automáticamente

Las actions son el único tipo de plugin que toca el disco. En modo determinístico, código directo: renombra un trigger, ajusta frontmatter. En probabilístico, un prompt que ejecuta el LLM: regenera un summary, reescribe un texto.

export const renameTrigger: IAction = {
  id: 'rename-trigger', kind: 'action', mode: 'deterministic',
  run: async (node, { newTrigger }) => {
    node.frontmatter.trigger = newTrigger;
    await node.save();
  },
};
tipo de plugin

Formatter

Exporta el grafo a otros formatos

El grafo vive en memoria; un Formatter lo saca afuera. ASCII para terminal, Mermaid para tu README, DOT para Graphviz, JSON para tu pipeline. Los built-in cubren lo común; escribe los tuyos para lo que falte.

export const mermaid: IFormatter = {
  id: 'mermaid', kind: 'formatter',
  format: (graph) => 'graph LR\n' +
    graph.edges.map(e => `  ${e.src} --> ${e.dst}`).join('\n'),
};
tipo de plugin

Hook

Notifica e integra con otras herramientas

Cuando algo pasa en skill-map (scan terminado, action ejecutada, job fallido), un Hook reacciona. Mándalo a Slack, dispara un webhook, bloquea un spawn antes de que arranque. Hay ocho eventos a los que te puedes suscribir.

export const slackOnFailure: IHook = {
  id: 'slack-on-failure', kind: 'hook',
  triggers: ['job.failed'],
  on: async (event) => slack.post('#alerts', event.error),
};

Un plugin son ~30 líneas de código.

sm plugins list
Cómo funciona

Un comando. Sin archivo de configuración.

  1. 01

    Cualquiera puede usarlo.

    Sin config, sin setup, sin docs que leer antes. Ejecuta `sm` desde cualquier carpeta y escanea tus skills, abre el explorador en el navegador y observa cambios en vivo.

    $ sm
  2. 02

    Detecta los problemas.

    Skills obesas que se comen tus tokens, colisiones de trigger, huérfanos, referencias rotas, duplicados semánticos. El análisis estático corre local en milisegundos; el semántico (LLM) cuando lo pides.

    7 issues3 collisions · 2 orphans2 broken refs
  3. 03

    Arregla con acciones.

    Las acciones son el tipo de plugin que toca el disco. Las determinísticas corren como código (renombrar un trigger, editar frontmatter); las probabilísticas ejecutan un prompt en el LLM (regenerar un summary, reescribir un texto).

    rename-trigger (deterministic)regenerate-summary (LLM)
Casos de uso

Hecho para quien vive en Markdown.

Sin promesas, sin magia. Solo un grafo sobre los archivos que ya tienes.

Para autores

Optimiza antes de publicar.

Skill, agente o markdown: todo Markdown vive conectado al resto. skill-map te muestra duplicados, redundancias y oportunidades de optimización antes de publicar.

Para AI Architects & equipos de plataforma

Sabe qué corre en tu arsenal.

Múltiples proyectos, múltiples agentes, copias divergentes de la misma skill en tu harness. Un solo scan pone toda la colmena en el mismo grafo.

Para quien depura agentes

Rastrea un fallo hasta su origen.

El agente eligió mal una invocación. ¿Qué la disparó? skill-map sigue el camino completo: desde la frase de trigger hasta la skill que ganó el match. Todo esto en tiempo real.

Para quien construye herramientas

Construye sobre el grafo.

Cada operación tiene un verbo CLI, una salida JSON y un hook de plugin. Conecta skill-map a tu CI, tu dashboard o tu flujo LLM, sin forkear el kernel.

Deja de leer carpetas.
Empieza a leer grafos.

Mira todo tu ecosistema de agentes en un solo vistazo. Sin config, sin servidor, sin LLM obligatorio.

Ver en GitHub

Roadmap.
Más de 120 decisiones documentadas antes del primer commit. Cinco fases hasta 1.0. Sin atajos.