# /new-cpp-app — Crear app C++ nueva con scaffolder estandar Wrapper sobre el pipeline `init_cpp_app_bash_pipelines`. Genera la estructura canonica que cumple `cpp/PATTERNS.md` y `.claude/rules/cpp_apps.md` (main.cpp con `cfg.about/log/panels`, sin `app_menubar` manual, dockspace via framework), registra la app en `cpp/CMakeLists.txt`, crea repo Gitea `dataforge/` y ejecuta `fn index`. ```bash cd /home/lucas/fn_registry ./fn run init_cpp_app $ARGUMENTS ``` ## Uso ``` /new-cpp-app [--project

] [--domain ] [--desc "..."] [--tags "a,b"] ``` ## Ejemplos ```bash # App suelta en cpp/apps// /new-cpp-app my_tool --desc "Herramienta para X" # App dentro de un proyecto /new-cpp-app finance_panel --project budget --desc "Panel de finanzas" --tags "finance,dashboard" ``` ## Que genera ```

/ main.cpp # Plantilla canonica: panels[] + cfg.about + cfg.log + run_app(cfg, render) CMakeLists.txt # add_imgui_app( main.cpp) app.md # Frontmatter completo (lang:cpp, framework:imgui, dir_path, repo_url) ``` Mas registro en `cpp/CMakeLists.txt`, repo Gitea con commit inicial, y `fn index` para que aparezca en `registry.db`. ## Despues de crear 1. Editar `app.md` y completar `uses_functions` cuando la app consuma funciones del registry. 2. Anadir las funciones al `CMakeLists.txt` como paths absolutos: `${CMAKE_SOURCE_DIR}/functions//.cpp`. 3. Build: `/compile ` o `cd cpp && cmake --build build --target -j`. ## Cuando NO usar NUNCA — esta es la unica via para crear apps C++ nuevas. Si el scaffolder no cubre un caso, modificar la plantilla en `bash/functions/pipelines/init_cpp_app.sh`. Escribir `main.cpp + CMakeLists.txt + app.md` a mano esta prohibido por `.claude/rules/cpp_apps.md`. ## Auditoria post-creacion ``` fn doctor cpp-apps ``` Lista apps que se desvian del estandar (sin `cfg.about`, con `app_menubar` manual, dockspace duplicado, etc.).