Claude Code plugin · MCP · agent toolkit
livespec
Inteligencia de código local-first para agentes: grafo de llamadas,
impacto, y trazabilidad Spec ↔ código — pensado para repos desconocidos.
9 lenguajes
OpenSpec-aware
group_db cross-repo
sin API keys
01 · Qué es
Un producto agent-shaped
Capa universal
Code intelligence
- Índice SQLite local (.mcp-docs/docs.db)
- Call graph + PageRank
- Impact / dead code / endpoints
- Search FTS5 + grep indexado
Diferenciador
Spec traceability
- FR / ADR / NFR bajo una taxonomía
- Links Spec ↔ símbolo / scenario
- OpenSpec sync / validate / changes
- Auditoría de cobertura
No es un IDE para humanos. Es señal que otros agentes consumen
para orientarse más rápido en código ajeno.
02 · Qué responde
Las preguntas que un agente hace de verdad
| Pregunta | Tool |
| ¿Qué es este repo? | index_project → get_project_overview |
| ¿Quién llama a X? | who_calls / quick_orient |
| ¿Qué se rompe si cambio X? | analyze_impact / git_diff_impact |
| ¿Qué código implementa SPEC-042? | get_spec_implementation |
| ¿Qué Specs tocan este archivo? | analyze_impact(target_type=file) |
| ¿Qué flujos HTTP parecen muertos? | find_legacy_flows |
| ¿Hay dead code / tests huérfanos? | find_dead_code / find_orphan_tests |
03 · Cómo funciona
Pipeline local, sin nube
walk repo→
extract (ast / tree-sitter)→
resolve edges→
SQLite + NetworkX→
MCP tools
1. Index
index_project hashea contenido, re-extrae solo lo cambiado, resuelve refs con INSERT OR IGNORE.
2. Graph
Grafo cacheado por (db, project, run). Callers / callees / blast radius en µs tras el primer hit.
3. Specs
Anotaciones @spec:, OpenSpec markdown, links manuales/bulk. Explorer opcional (plugin docs).
Contrato clave: cada tool exige workspace=/abs/path/al/repo.
Sin env fallback. Un repo por vez (o group_db compartido).
04 · Superficie
44 tools en tres tiers
~27 core
Siempre visibles: code intel, Spec agentic, OpenSpec read, search, legacy flows…
12 Spec plugin
CRUD, links, scenarios, scans, apply/archive change. Gate por Specs o LIVESPEC_PLUGINS.
5 Docs plugin
generate/list/export docs + Explorer / Flow Explorer.
- Lenguajes: Python, Go, Java, JS/TS, Rust, Ruby, PHP
- Frameworks: Flask, FastAPI, Django, Spring, Express/Hono, Angular, Next…
- Cross-repo: [workspace] group_db — hops HTTP entre 13 proyectos (dogfood results-flow)
05 · Cross-repo
group_db: el flujo entre servicios
Qué une
- who_does_this_call → invokes_endpoints
- who_calls → route_callers
- find_symbol group-wide
- find_legacy_flows
- export_flow_explorer
Dogfood results-flow
13 repos · SM hub
20 live servers
17 live clients
2 legacy servers
20 orphan clients
Orphans ≠ basura: casi siempre SA faltante en el group (Assist Card, Details…).
06 · Claude Code plugin
MCP + Skill + Subagente + Command
.mcp.json
Arranca uvx livespec@pinned (marketplace) o checkout local vía Cursor mcp.json.
skills/livespec/
Manual operativo: tool map, workspace, traps, OpenSpec, cold open. ~215 líneas.
agents/livespec.md
Subagente especializado. Preload del Skill. Reglas duras (no inventar con grep si MCP cae).
/livespec-onboard
Command: delega cold open al subagente y pide briefing de orientación.
07 · Evaluación · Skill
Skill livespec
8.2
/ 10 · fuerte como playbook; riesgo de drift vs PyPI pin
Fortalezas
- Regla workspace imposible de ignorar
- Tool map por intención (no por catálogo)
- Traps documentados: stale grep, sync_openspec duplica, bulk_link shape
- Cold open + task loop claros
- OpenSpec como SSoT de autoría
- Fuente alineada a v0.30.0 public beta (find_legacy_flows, FTS-only, group_db)
Gaps
- Pin marketplace = 0.30.0 (actualizar con claude plugin update): Skill 0.30 documenta group_db + find_legacy_flows; sin embed_chunks/agent_scratch
- Largo (~215L): satura context del subagente en tareas triviales
- Skill 0.30 ya cubre group_db + legacy traps (re-validar en adopters)
- Guía legacy/APM landed in Skill 0.30 — keep pin in sync
- Poco coverage de plugin docs / Flow Explorer
08 · Evaluación · Subagente
Agent livespec
8.5
/ 10 · contratos duros bien elegidos; allowlist consciente
Fortalezas
- Preload del Skill (skills: [livespec])
- Sin allowlist MCP hardcodeada — evita el bug de namespace (mcp__livespec__* vs plugin)
- STOP si MCP cae: no mentir con Grep
- No mutar Specs sin aprobación
- Respeta paginación / summary_only
- Output: respuesta + evidencia + caveats
- Trigger proactivo bien escrito en description
Gaps
- Depende 100% del Skill preload → si el pin es viejo, el agente opera mal
- No menciona find_legacy_flows / cross-repo en el body del agent
- No instruye “confirm traffic before delete”
- Command onboard es delgado (bien) pero no hay commands para impact / legacy
- En Cursor el subagente vive como Task type; UX distinta a Claude Code
09 · Evaluación · Command
/livespec-onboard
7.5
/ 10 · hace una cosa bien; falta suite de commands
Qué hace bien
Delega al subagente el cold open canónico y pide un briefing accionable. Bajo mantenimiento.
Qué faltaría
- /livespec-impact <qname>
- /livespec-legacy (group_db)
- /livespec-spec SPEC-…
10 · Limitaciones
Lo que livespec no es
No es tráfico real
Dead code / legacy flows = evidencia de grafo. Confirmá con APM/logs antes de borrar.
No es omnisciente
DI / reflection / string dispatch / Jest anónimo / SAs fuera del group → falsos positivos y ceros “honestos”.
Índice = verdad
Sin index_project fresco, grep y impacto mienten. Watcher no es el camino feliz.
Pin = PyPI 0.30
Marketplace puede ir atrás del checkout. Cursor debe apuntar al path local para dogfood.
- No reemplaza tests ni review humano
- Spec mutation gated — no siempre visible en tools/list
- Vectores eliminados (v0.29): search es FTS5-only
11 · Cuándo usarlo
Fit / no-fit
Usar
- Cold-open de repo desconocido
- Impact antes de un refactor
- PR review (diff → Specs / callers)
- Polyrepo HTTP (group_db)
- Adopción Spec / OpenSpec en brownfield
- Candidatos a legacy (con confirmación)
No usar solo
- “Borrá todo lo no usado” sin APM
- Búsqueda semántica profunda (sin vectors)
- Runtime debugging / logs / K8s
- Indexar carpeta padre multi-repo
- Autoría Spec solo en el motor (preferí OpenSpec md)
12 · Acciones recomendadas
Cerrar el gap Skill ↔ producto
- PyPI + plugin ya en 0.30.0 — al subir minor, bump pin Skill en el mismo release
- Done in 0.30 Skill — maintain on every release
- Commands: impact / legacy / spec-impl
- Agent body: 3 líneas sobre cross-repo + confidence=low
- Skill “lite” opcional (~40L) para tareas de un solo símbolo
Cierre
Una frase
livespec indexa el grafo y los Specs para que el agente pregunte menos a ciegas —
y se equivoque menos al tocar código ajeno.
Qué
Call graph + Spec↔code local
Cómo
Extract → SQLite → MCP tools
Límite
Grafo ≠ prod · pin ≠ HEAD