Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.9 KiB
/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/<name> y ejecuta fn index.
cd /home/lucas/fn_registry
./fn run init_cpp_app $ARGUMENTS
Uso
/new-cpp-app <name> [--project <p>] [--domain <d>] [--desc "..."] [--tags "a,b"]
Ejemplos
# App suelta en cpp/apps/<name>/
/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
<dir>/
main.cpp # Plantilla canonica: panels[] + cfg.about + cfg.log + run_app(cfg, render)
CMakeLists.txt # add_imgui_app(<name> 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
- Editar
app.mdy completaruses_functionscuando la app consuma funciones del registry. - Anadir las funciones al
CMakeLists.txtcomo paths absolutos:${CMAKE_SOURCE_DIR}/functions/<dom>/<func>.cpp. - Build:
/compile <name>ocd cpp && cmake --build build --target <name> -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.).