Files
fn_registry/functions/infra/audit_cpp_apps.md
T
egutierrez 7913116a8e chore: auto-commit (129 archivos)
- .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>
2026-06-01 22:23:12 +02:00

44 lines
2.1 KiB
Markdown

---
name: audit_cpp_apps
kind: function
lang: go
domain: infra
version: "1.0.0"
purity: impure
signature: "func AuditCppApps(registryRoot string) ([]CppAppAudit, error)"
description: "Audita conformidad de apps C++ del registry con cpp/PATTERNS.md y .claude/rules/cpp_apps.md. Verifica que cada main.cpp use fn::run_app, declare cfg.about y cfg.log, no llame fn_ui::app_menubar manualmente, no llame ImGui::DockSpaceOverViewport sin opt-out (cfg.auto_dockspace = false), y que app.md tenga framework: imgui y entry_point. Read-only."
tags: [doctor, registry-first, audit, cpp, imgui, standard, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "fmt", "os", "path/filepath", "strings", "github.com/mattn/go-sqlite3"]
params:
- name: registryRoot
desc: "ruta absoluta al directorio raiz del fn_registry (donde vive registry.db y cpp/apps/)"
output: "slice de CppAppAudit, uno por app C++ registrada. Cada entrada incluye AppID, DirPath, OK (true si no hay issues), y lista Issues con codigos: directory_missing, main.cpp_missing_or_unreadable, no_fn_run_app_call, manual_glfwInit_call, missing_cfg_about, missing_cfg_log, manual_app_menubar_call, manual_DockSpaceOverViewport_without_auto_dockspace_false, app.md_missing, app.md_missing_framework_imgui, app.md_missing_entry_point. Error solo si registry.db no puede abrirse."
tested: false
tests: []
test_file_path: ""
file_path: "functions/infra/audit_cpp_apps.go"
---
## Ejemplo
```go
audits, err := infra.AuditCppApps("$HOME/fn_registry")
if err != nil { log.Fatal(err) }
for _, a := range audits {
if !a.OK {
fmt.Printf("%s: %v\n", a.AppID, a.Issues)
}
}
```
## Contexto
Wrapper consumido por `fn doctor cpp-apps`. Sirve como gate para detectar apps que se desvian del estandar (ej. `app_menubar` manual residual, falta `cfg.about`, `app.md` sin frontmatter completo) tras refactors o creacion manual sin usar el scaffolder `init_cpp_app_bash_pipelines`.
Issues detectados son codigos cortos (snake_case) para que sean estables y filtrables desde JSON. La interpretacion humana vive en `cpp/PATTERNS.md`.