7913116a8e
- .claude/agents/fn-analizador/SKILL.md - .claude/agents/fn-constructor/SKILL.md - .claude/agents/fn-executor/SKILL.md - .claude/agents/fn-mejorador/SKILL.md - .claude/agents/fn-orquestador/SKILL.md - .claude/agents/fn-recopilador/SKILL.md - .claude/commands/app.md - .claude/commands/compile.md - .claude/commands/cpp-app.md - .claude/commands/create_functions.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.0 KiB
4.0 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| generate_capability_doc | pipeline | bash | pipelines | 1.0.0 | impure | generate_capability_doc(group: string, --registry: string?, --out: string?) -> void | Regenera la tabla de funciones de una pagina capability en docs/capabilities/<group>.md consultando registry.db. Preserva bloques curated (Ejemplo canonico, Fronteras, Prerequisitos, Notas). Si el archivo no existe lo crea con plantilla minima. |
|
|
false | error_go_core |
|
path del archivo actualizado o creado + count de funciones a stdout. Exit 0 ok, exit 1 si error. | false | bash/functions/pipelines/generate_capability_doc.sh |
Ejemplo
# Regenerar tabla de notebook (ya existe, preserva Ejemplo canonico / Fronteras)
./bash/functions/pipelines/generate_capability_doc.sh notebook
# → $HOME/fn_registry/docs/capabilities/notebook.md updated (5 functions)
# Crear pagina nueva para un grupo sin pagina todavia
./bash/functions/pipelines/generate_capability_doc.sh metabase
# → $HOME/fn_registry/docs/capabilities/metabase.md created (12 functions)
# Especificar registry y destino custom
./bash/functions/pipelines/generate_capability_doc.sh android \
--registry /ruta/alternativa/registry.db \
--out /tmp/android_cap.md
# → /tmp/android_cap.md created (8 functions)
# Grupo sin funciones todavia (avisa pero no falla)
./bash/functions/pipelines/generate_capability_doc.sh nuevo_grupo
# WARN: El grupo 'nuevo_grupo' no tiene funciones con ese tag en registry.db.
# → $HOME/fn_registry/docs/capabilities/nuevo_grupo.md created (0 functions)
Comportamiento detallado
Resolucion de root
Walk-up desde cwd buscando registry.db. Si se pasa --registry:
- Si es un archivo: toma el directorio padre.
- Si es un directorio: lo usa directamente.
Tabla generada (SQL)
SELECT f.id, f.signature, f.description
FROM functions f, json_each(f.tags) j
WHERE j.value = '<group>'
ORDER BY f.id;
JOIN custom via json_each — usa sqlite3 directo (excepcion autorizada para JOINs no expuestos por MCP).
Formato de tabla
| ID | Firma | Que hace |
|---|---|---|
| `<id>` | `<signature>` | <description> |
Los | dentro de signatures y descriptions se escapan como \|.
Preservacion de bloques curated
Cuando el archivo ya existe:
- El bloque entre
## Funcionesy la siguiente##se reemplaza. - Todo lo anterior y posterior (Ejemplo canonico, Fronteras, Prerequisitos, Notas, etc.) se mantiene intacto.
- Implementado con
awk: copia hasta## Funciones, imprime nueva tabla, salta contenido viejo hasta encontrar^##, reanuda copia.
Archivo nuevo
Si docs/capabilities/<group>.md no existe, se crea con plantilla minima:
- Titulo
# Capability: <group>. - Placeholder de descripcion (editable a mano).
- Tabla generada.
- Secciones vacias:
## Ejemplo canonico,## Fronteras.
Codigos de salida
| Codigo | Significado |
|---|---|
| 0 | Exito |
| 1 | Error: grupo no especificado, registry.db no encontrado, fallo SQL, awk vacio |
Notas
uses_functions: []— depende desqlite3yawkdel sistema, no de funciones del registry.- El tag del grupo debe ser plano (ej.
notebook,metabase), notag:notebook. - Enganchado en
docs/capabilities/INDEX.mdcomo el mecanismo de auto-generacion referenciado bajofn doctor capabilities --update. - Seguro para re-ejecucion: idempotente si el registry no cambia.