.claude/skills/ast-comprehension/SKILL.md
Comprensión estructural de código que no hemos escrito. Extrae mapa de clases/funciones, dependencias, call graph, complejidad y superficie API mediante AST multi-lenguaje. Pre-modifica contexto para agentes, legacy assessment y comprehension reports.
npx skillsauth add gonzalezpazmonica/pm-workspace ast-comprehensionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Extractor estructural multi-lenguaje que da a los agentes contexto sobre código
ajeno antes de modificarlo. Diferente de ast-quality-gate (valida output IA):
este skill comprende código existente para evitar modificaciones ciegas.
/legacy-assess): mapear codebase heredado antes de migrar/evaluate-repo): entender estructura de un repo externo/comprehension-report): documentar arquitectura interna| Skill | Input | Pregunta | Output |
|-------|-------|----------|--------|
| ast-quality-gate | Código generado por IA | ¿Tiene errores? | Score + issues |
| ast-comprehension | Código ajeno/legacy | ¿Qué hace y cómo? | Mapa estructural |
Capa 1: Tree-sitter (universal, sin ejecución, todos los lenguajes)
→ tree-sitter parse --output json <fichero>
→ Estructural puro: nodos, funciones, clases
Capa 2: Herramienta nativa semántica por lenguaje
→ Python: ast module · Go: go doc + go list
→ TypeScript: ts-morph · C#: Roslyn SyntaxWalker
→ Enriquece con tipos, imports, relaciones
Capa 3: Semgrep structural patterns
→ Extrae call graphs y dependencias cruzadas
→ Misma config que quality-gate, modo extracción
{
"meta": { "file": "...", "language": "...", "lines": 250 },
"structure": {
"classes": [{ "name": "...", "line": 10, "methods": [...] }],
"functions": [{ "name": "...", "line": 50, "complexity": 8 }],
"constants": [{ "name": "...", "line": 5 }]
},
"imports": { "internal": [...], "external": [...], "standard": [...] },
"complexity": {
"hotspots": [{ "name": "...", "complexity": 12, "line": 100 }]
},
"api_surface": { "public": [...], "private": [...] },
"summary": "Descripción en 1 párrafo de qué hace el fichero"
}
Ver schema completo: references/comprehension-schema.md
# Fichero individual
bash scripts/ast-comprehend.sh src/Services/AuthService.cs
# Directorio completo
bash scripts/ast-comprehend.sh src/
# Solo estructura superficial (rápido)
bash scripts/ast-comprehend.sh src/ --surface-only
# Para legacy assessment (sin límite de complejidad)
bash scripts/ast-comprehend.sh src/ --legacy-mode
# Output a fichero específico
bash scripts/ast-comprehend.sh src/ --output output/comprehension/report.json
{
"hooks": {
"PreToolUse": [{
"matcher": "Edit",
"command": ".claude/hooks/ast-comprehend-hook.sh",
"async": false
}]
}
}
El hook inyecta estructura del fichero destino en el contexto del agente antes de que edite. El agente sabe qué hay en el fichero sin leerlo entero.
Extensión → lenguaje → herramienta nativa disponible. Si fichero no existe → modo vacío (no hay comprensión que hacer).
Tree-sitter o grep-estructural para: clases, funciones, líneas clave. Sin ejecución de código. < 2 segundos.
Tipos, imports, call graph. 2-10 segundos según lenguaje.
Número de ramas (if, for, while, &&, ||) por función. Identificar hotspots (complejidad > 10).
1 párrafo en lenguaje natural describiendo el propósito del fichero/directorio.
tree-sitter-cli (opcional pero recomendado): npm install -g tree-sitter-clijq para normalización JSONreferences/extraction-commands.md)references/comprehension-schema.md — Schema JSON completoreferences/extraction-commands.md — Comandos por lenguaje para extracción estructuraltesting
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
tools
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
tools
Sistema proactivo de bienestar individual
development
Search the web to resolve context gaps — documentation, versions, CVEs, best practices. Auto-starts SearxNG Docker if available, falls back to WebSearch.