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>
44 lines
2.1 KiB
Markdown
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`.
|