a27dcc028c
El doctor reportaba el dominio gamedev en doble FAIL: el tag plano `gamedev` (44 funciones) como `ungrouped_candidate` y la pagina `gamedev-2d.md` como `doc_orphan`. Causa raiz: el INDEX declaraba `[gamedev](gamedev-2d.md)` y el auditor solo registra el slug cuando label==target, asi que ni casaba la pagina ni declaraba el tag. Al revisar las 44 funciones habia dos clusters reales bajo el mismo tag, asi que se separan en dos grupos honestos: - gamedev-2d (tag canonico): 31 builders de workflow ComfyUI + 5 de apoyo (post-proceso + puente a Godot) = 36. Se elimina el tag plano `gamedev` de los builders (ya tenian `gamedev-2d`) y se reemplaza por `gamedev-2d` en las de apoyo. - gamedev-engine (grupo nuevo, pagina madre nueva): runtime de juego C++ multiplataforma (SDL3 + sokol_gfx + miniaudio, Issue 0072b) = 8. Game loop, camara 2D, input unificado, sprite batch, setup render/audio, build wasm. El tag plano `gamedev` queda eliminado (count 0). INDEX corregido: fila gamedev-2d con label==target y conteo 36 + fila nueva gamedev-engine (8). Verificacion: `fn index` + `fn doctor capabilities` -> ambos grupos OK (declared_in_index=yes, doc_exists=yes, sin issues); `gamedev` plano = 0. Solo se modifico el campo `tags` de los .md, ningun archivo de codigo. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 KiB
16 KiB
Capability Groups
Indice de grupos de capacidades del registry. Cada grupo agrupa >=3 funciones que comparten dominio operativo. Lee la pagina madre del grupo ANTES de buscar funciones sueltas — desbloqueas el conjunto entero en un solo read.
Como leer este indice
| Columna | Que |
|---|---|
| Grupo | Tag canonico. Coincide con el slug del archivo <grupo>.md |
| N | Numero de funciones en el grupo (auditado por fn doctor capabilities) |
| Que cubre | Frase corta — accion principal |
Grupos vigentes
| Grupo | N | Que cubre |
|---|---|---|
| gamedev-2d | 36 | Assets 2D para Godot via ComfyUI: 31 builders de workflow (pixelart/seamless/iso/sprite/topdown/card/enemy/prop/structure/foliage/trap/projectile/decal/particle/rune/weather/badge/skill-tree/dialogue/icon/portrait/VFX...) + 5 de apoyo: post-proceso (pixelize, luma->alpha) + puente de assets a Godot 4 (.import + reimport headless). Tag canonico gamedev-2d (antes gamedev, ya unificado) |
| gamedev-engine | 8 | Runtime de juego C++ multiplataforma (PC + WebAssembly): SDL3 + sokol_gfx + miniaudio. Game loop fixed-timestep, camara 2D, input unificado (teclado/gamepad/touch), sprite batch, setup de render/audio y build a wasm. Grupo hermano de gamedev-2d (este ejecuta el juego, aquel genera los assets) |
| registry | 17 | Auditoria y monitorizacion del propio registry: copied-code, uses-functions, unused, proposals, telemetria |
| systemd | 14 | Generar, instalar, restart y status de unit files systemd via SSH (deploys a VPS) |
| ssh | 19 | Operar hosts remotos via SSH: config, conn, ejecutar comandos, port-forward, deploys con SCP/rsync |
| deploy | 21 | Deploy completo Go/C++ a VPS o Windows: Docker+Traefik, systemd, rsync, health checks |
| mantine | 63 | Frontend Mantine v9 + @fn_library: theming, layout, formularios, modales, instalacion |
| bigquery | 26 | Operar Google BigQuery via SDK Python: queries, dataset/table CRUD, jobs, schema, exports |
| nlp | 33 | Extraccion NLP: PDFs, OCR, chunking, GLiNER/GLiREL, dedup, agregacion de entities/relations |
| docker | 38 | Operar Docker desde Go/Bash: build/run/stop, compose, networks, volumes, logs, deploys |
| android | 37 | Toolbelt Android desde WSL2: adb, emuladores AVD, APK build/install, Capacitor, logcat |
| web-proxy | 5 | Captura de trafico HTTP/HTTPS liviana (mitmproxy): proxy con rotacion, navegador proxeado, consulta de capturas, tee del SSE de claude. Alternativa ligera a ZAP/Burp |
| claude-fleet | 5 | Orquestar la flota de procesos Claude Code vivos: panel TUI (fleetview) + comando fleetclaude que centraliza N Claudes en una ventana kitty/tmux (socket -L fleet), conmuta cual esta embebido (alt+flechas/enter/n) y los lista desde ~/.claude/sessions+goals |
| flow-replay | 3 | Guardar un flujo web (login, reiniciar server, formulario) como funcion reproducible: destila un HAR a call specs y lo reproduce sin navegador (HTTP puro), con fallback a chromium headless/visible. Consume las capturas de web-proxy |
| hoppscotch | 7 | Operar Hoppscotch SELF-HOSTED (docker en selfhost/) via API GraphQL: login (magic link headless via mailpit), CRUD de requests (create/update/delete/list), set_environment (idempotente, resuelve secretos pass:). El agente crea/edita y el humano lo ve en vivo en su GUI (subscriptions). build es helper interno de serializacion. Modo .json local ELIMINADO |
| dav | 9 | Cliente CardDAV/CalDAV (Python, solo stdlib) para Xandikos: parte un .vcf/.ics export de Google en recursos individuales (split puro), extrae/sintetiza UID, sube por HTTP PUT con Basic auth, lista (PROPFIND) y descarga (GET) recursos. Dos pipelines de import (vcf->carddav, ics->caldav). Formaliza la migracion ad-hoc de contactos/calendario |
| metabase | 106 | Operar Metabase via API REST: auth, cards, dashboards, collections, snippets, permissions |
| doctor | 11 | Diagnostico read-only del registry: artefactos, servicios, drift, funciones huerfanas |
| notebook | 5 | Operar Jupyter Lab colaborativo (discover/read/exec/write/kernel) |
| cpp-windows | 7 | Compilar, desplegar, lanzar y verificar apps C++ en Windows desde WSL2 |
| git | 19 | Operaciones git y Gitea: clonar, commit, push/pull, hooks, TBD, webhooks, sync entre PCs |
| playwright | 6 | E2E browser: launch chromium, login kanban, drag dnd-kit, keyboard sequence, wait predicate, assert class |
| cpp-tables | 9 | Table Query Language C++ puro: filter, group, agg, sort, join, stats, formulas Lua, round-trip emit/apply |
| data-table-renderers | 1 | API declarativa de cell renderers para data_table: Badge, Progress, Duration, Icon via TableInput.column_specs |
| scheduler | 4 | Cron expression parsing, matching, next-run y traduccion humana (consume apps/dag_engine) |
| extractor | 15 | Funciones que leen datos de fuentes externas (BD, API, archivos, web). Nodos input de data_factory |
| transformer | 15 | Funciones que clean/dedup/aggregate/feature-engineer datos. Nodos intermedios de data_factory |
| sink | 11 | Funciones que escriben datos a destino externo (BD, dashboard, alerta, email). Nodos output |
| validator | 6 | Funciones que verifican datos/config contra reglas. Pre-flight de sinks y gates en DAGs |
| navegator | 4 | Automatización de browser via CDP + AX tree + LLM: obtener, limpiar, chunkear AX tree y llamar a Claude CLI |
| img-to-3d | 4 | Imagen 2D -> modelo 3D: recorte de fondo (rembg/GrabCut/umbral) + profundidad monocular (Depth-Anything-V2) + malla de relieve texturizada exportada a .glb, con pipeline one-shot. Produce el glb que mesh-3d consume/renderiza |
| 3 | Operar WhatsApp Web por CDP sobre la pestaña existente (sin ventana ni foco): buscar/abrir chat, leer conversacion, enviar texto. Compone 4 primitivas CDP-Python (cdp_eval/type_chars/press_key/click_xy). No HTTP: WhatsApp usa WebSocket + cifrado E2E | |
| cpp-dashboard-viz | 10 | Primitivas C++ ImGui para dashboards: kpi_card, sparkline, line/bar/scatter/pie/heatmap/histogram, panel containers |
| agents | 3 | Orquestar agentes Claude headless en git worktrees: launch, cleanup, DoD evidence schema audit |
| backends | — | Stacks backend (Go net/http+SQLite default, MCP, mautrix, bubbletea, httpx, docker-compose): decision tree + esqueleto canonico + funciones del registry a componer |
| kanban | 5 | Parser/writer/scanner/watcher de dev/issues/ y dev/flows/: base del backend kanban_cpp v2 |
| wireguard | 7 | Instalar, configurar, operar y monitorizar mesh WireGuard hub-and-spoke: keygen, hub setup, peer add/revoke, status JSON |
| matrix-mas | 5 | Migración Synapse→MAS: habilitar MSC3861, verificar login flows, parche .well-known, registro clientes OAuth2, syn2mas |
| mesh-3d | 3 | Carga y upload a GPU de meshes 3D (OBJ, GLB/glTF 2.0): loaders CPU + mesh_gpu_upload OpenGL |
| terminal-capture | 6 | Automatizar y capturar el texto de una CLI/TUI interactiva via PTY headless: spawn+input scripteado (one-shot y streaming), render del layout 2D (emulador VT), strip ANSI, delta por prefijo, y parseo de la TUI de claude a datos |
| claude-direct | 3 | Hablar directamente con la API de Anthropic Messages usando el token OAuth de Claude Code (Claude Max): leer token, stream SSE, bucle agentico de tool-use |
| obsidian | 16 | CRUD headless de vaults y notas Obsidian como Markdown plano (frontmatter YAML + wikilinks): parse/format, read/create/update/delete/list/search notas, list/create vaults, slugify/embeds/resolve, render tabla Markdown + bloques sentinel gestionados. Sin app GUI |
| duckdb | 10 | Operar bases DuckDB: open (Go), query/execute/upsert, introspeccion (list_tables, table_schema), CSV->Parquet, dedup, OHLCV, e ingesta desde Excel (excel_to_duckdb) + salida a Postgres (duckdb_to_postgres). Motor analitico del stack de datos Excel->DuckDB->Postgres->viz |
| excel | 6 | CRUD de hojas Excel (.xlsx) con openpyxl: escribir multi-hoja, upsert no destructivo (preserva columnas manuales), leer a memoria, leer a markdown, graficos nativos (bar/line/pie/scatter), e ingesta a DuckDB. Round-trip de datos con humanos |
| postgres | 7 | CRUD de PostgreSQL via psycopg2 (dsn): connect (Go), query read-only, insert append-only, upsert idempotente, crear tabla inferida, introspeccion, aplicar .sql. Capa que sirve datos a Metabase/Grafana (que no hablan DuckDB nativo) |
| sql-connect | 3 | Conexion directa y consulta a Microsoft SQL Server (Navision) via pymssql: abrir conexion (login_timeout), SELECT parametrizada con binding seguro -> {columns, rows, row_count}, y pipeline one-shot run_mssql_query (CLI JSON/CSV). Elimina el copia-pega manual de CSV de Navision. Credenciales desde pass, host = IP LAN de Windows desde WSL2 |
| recon | 8 | Reconocimiento de red OSINT: whois, rdap, dns (dig), ping, traceroute, nmap por perfiles. Cada scan se archiva en OSINT (nota vault + tabla DuckDB network_scans) via el sink save_scan_to_osint o el pipeline one-shot recon_osint. Perfiles nmap pesados (full-tcp/vuln/udp-top) en segundo plano. No es framework de explotacion; solo hosts autorizados |
| osint-passive | 8 | Recoleccion OSINT pasiva (fuentes publicas, no intrusiva): EXIF/PDF metadata, whois RDAP, DNS, subdominios crt.sh, guess emails, username enumeration, search dorks |
| osint-enrich | 3 | Orquestadores de enriquecimiento OSINT: componen osint-passive para aumentar datapoints de personas (emails/usernames/dorks), orgs (whois+dns+subdominios) y metadatos de attachments |
| browser-profiles | 4 | Catalogo de perfiles del navegador Chromium para investigaciones multicuenta OSINT: por perfil guarda que correo/cuentas usar (secret_ref a pass, nunca el password), proposito, persona y nota del vault, y lanza el perfil listo via systemd-run. Fuente de verdad en el service osint_db (tablas browser_profiles + browser_profile_accounts) |
| market-intel | 8 | Inteligencia de mercado para captacion de clientes: scrapers de tendencias de productos/nichos (Amazon, Google Trends, TikTok, AliExpress) + precios de competencia, aterrizados en Postgres (pg_insert_rows/pg_apply_sql) y analizados en Metabase. Dispatcher ingest_market_trends invocado por dag_engine. TikTok/AliExpress por HTTP caen (anti-bot); pendiente browser CDP |
| consent | 3 | CMP / IAB TCF / data brokers: detectar el CMP de un sitio (Didomi/OneTrust/Sourcepoint/Quantcast), leer __tcfapi para contar vendors y propositos, aceptar el banner (selectores + fallback LLM con haiku que localiza Aceptar/Ver socios), y descargar la GVL de IAB para nominar cada broker y que datos recopila. Nacio de projects/databrokers/ |
| onlyoffice | 3 | Operar ONLYOFFICE Desktop Editors (binario onlyoffice-desktopeditors) en Linux/X11 desde terminal via instancia aislada (slot HOME=/tmp/oo_): abrir un archivo en ventana propia, cerrar+reabrir para mostrar datos editados en disco (no hay reload nativo, Issue #2313), y matar el proceso del slot. Solo gestiona la ventana, NO edita ni crea archivos. Requiere X11 + wmctrl + xdotool. No confundir con el Document Server (web/Docker) |
| 21 | Gestionar cuentas de correo por IMAP+SMTP directo (Python stdlib, sin browser ni MCP Gmail): conectar/listar/buscar/leer (imap_*), mutar estado (mark_seen/move/delete/save_draft) por UID, y construir+enviar (email_build_html/smtp_send). Auth user+app-password (NO OAuth; Outlook fuera). Credenciales desde pass, resueltas por la capa app. Complementa al browser (interactivo) — no lo reemplaza | |
| eda | 27 | Exploratory Data Analysis por tabla y base con motor DuckDB + PostgreSQL push-down: perfil base SQL (SUMMARIZE + distinct exacto), estadística numérica/categórica, tipo semántico regex, calidad, correlación/asociación (Pearson/Spearman/Cramér's V/Theil's U/η/MI), relaciones inter-tabla (FK containment + join graph mermaid), modelos baratos (PCA/KMeans/IsolationForest/normalidad/tendencia), capa LLM (dictionary/PII/limpieza/análisis) y generación de notebook. Orquestadores profile_table (backend duckdb/postgres, flags run_models/run_llm) y profile_database |
| seo | 3 | SEO orientado a datos sobre Google Search Console: autenticar con service account (gsc_auth), extraer Search Analytics paginado (pull_gsc_search_analytics) y el pipeline de ingesta a DuckDB + espejo Postgres para Metabase (ingest_gsc_search_analytics). Cadena de ingesta del proyecto seo_analytics; alimenta dashboards de striking distance, CTR opportunities y content decay |
| local-hub | 4 | Exponer los procesos locales como subdominios *.localhost (via Caddy, sin DNS) y reunirlos en una pantalla principal Glance con estado en vivo, refrescada a diario por dag_engine. Descubre servicios (manifiesto + registry), renderiza Caddyfile + config Glance (puras), y el pipeline refresh_local_hub regenera+recarga. Fuente de verdad: apps/local_hub/local_services.yaml |
| comfyui-judge | 4 | Panel multi-juez de calidad de imagen: estético LAION-V2 (comfyui_score_aesthetic, 0-10) + fidelidad CLIP prompt↔imagen (comfyui_score_clip_alignment, 0-1) + crítica LLM-vision (comfyui_critique_image_llm, good/bad). Agregados por voto mayoría en comfyui_judge_image. Gate objetivo para tests/DoD y el bucle de mejora de skills ComfyUI; degrada con gracia si un juez cae. Jueces estético/fidelidad por subproceso al venv ComfyUI (torch+open_clip), crítico via claude-direct |
| comfyui | 29 | Controlar ComfyUI (Stable Diffusion por grafos) de dos formas: por API HTTP (build_txt2img_workflow puro → submit → wait → object_info; download_model con validación Civitai/HF) y por la UI web vía CDP sobre la pestaña abierta (load_workflow_ui, set_node_widget_ui para tunear prompt/steps/seed en vivo, queue_prompt_ui = botón Queue Prompt, export_workflow_ui, refresh_nodes_ui). El API format es el puente entre ambos caminos. Las funciones de UI componen cdp_eval. Incluye imagen→3D nativo (Hunyuan3D-2, tag img-to-3d): build_image_to_3d_workflow + fetch_output_mesh + install_3d_model + pipeline image_to_3d_oneshot |
| comfyui-skill | 11 | Tratar una configuración de generación ComfyUI como una skill: receta versionada en disco (checkpoint + LoRAs + params + scaffold de prompt + post-proceso) que se compila a un workflow cambiando solo el subject. Save/load/list de recetas, bucle de mejora genera→juzga→bump con gate objetivo (el score del juez decide qué se promueve), export de la skill a grafo cargable en el navegador, y cosecha de Civitai (extract_recipe_from_png + harvest oneshot) que destila el workflow embebido de una imagen pública en una skill candidata |
| comfyui-overview | — | Mapa cross-grupo de las capacidades de generación ComfyUI (txt2img, img2img/inpaint, controlnet, skills/multiestilo-LoRA, video, upscale/detail, 3D, juez, operación): cada capacidad → builders/pipelines del registry + grafos UI + skills que la cubren. Índice de entrada al stack ComfyUI; las firmas y gotchas viven en comfyui.md/comfyui-skill.md/comfyui-judge.md. Catálogo navegable de los grafos en disco (subcarpetas por capacidad) en ~/ComfyUI/CAPABILITIES.md |
Como anadir grupo
- Reservar tag plano (sin prefijos). Ej:
metabase,android-emu,deploy. - Anadir el tag al frontmatter
.mdde >=3 funciones afines (fn indexlo registra). - Crear
docs/capabilities/<grupo>.mdcon plantilla:- Lista de funciones (ID + firma corta).
- 1-2 ejemplos canonicos de uso.
- Fronteras (que NO hace el grupo).
- Anadir fila a la tabla "Grupos vigentes" arriba.
- Correr
fn doctor capabilitiespara auditar drift tag<->doc.
Minimo por grupo
- 3 funciones: minimo para crear pagina madre.
- <3 funciones: tag sigue valido para FTS pero no genera pagina madre.
Auto-generacion
fn doctor capabilities --update reescribe la tabla "Funciones" de cada pagina preservando bloques curated ("Ejemplo canonico", "Fronteras", "Notas"). Las secciones curated nunca se sobrescriben.