一键导入
create-full-app
Create a Logos full app — a combined module + UI app project in a single root directory
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create a Logos full app — a combined module + UI app project in a single root directory
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Activate when creating a new Logos module with the universal C++ interface. Covers scaffolding, metadata.json, flake.nix with code generator, CMakeLists.txt, and the pure C++ impl header.
Activate when configuring Nix flake.nix for a Logos module. Covers flake inputs, follows declarations, preConfigure for code generation, mkLogosModule, overrides for local development, and workspace integration.
Activate when packaging a Logos module or UI app for distribution as an LGX package. Covers lgx create, adding platform variants, verification, portable builds, and installation via lgpm.
Activate when writing tests for Logos modules. Covers the logos-test-framework (LOGOS_TEST macros, LogosTestContext, module mocking, C library mocking, event testing), logos_test() CMake integration, logoscore integration tests, and Nix check configuration.
Activate when wrapping an external C or C++ library as a Logos universal module. Covers external_libraries in metadata.json, flake input configuration, extern C includes, and the Go library special case.
Activate when registering a new module in the logos-workspace. Covers adding git submodules, flake.nix inputs with follows declarations, scripts/ws REPOS array, repo groups, and dep-graph.nix regeneration.
| name | create-full-app |
| description | Create a Logos full app — a combined module + UI app project in a single root directory |
Use this skill when the user wants to scaffold a project that has both a C++ backend module and a Basecamp UI frontend.
logos-dev-boost init <name> --type full-app
This creates logos-<name>/ containing:
<name>-module/ — universal C++ module (the backend, "type": "core")<name>-ui/ — Basecamp UI app (the frontend, "type": "ui")project.json identifying the full-app layoutAGENTS.md, CLAUDE.md, .mcp.json, .claude/skills/ at the rootEach sub-project is a standalone flake that builds independently. Build them one at a time:
cd logos-<name>
# 1. Init and build the module
cd <name>-module
git init && git add -A
nix build
lm ./result/lib/<name>_plugin.so
logoscore -D -m ./result/lib &
logoscore load-module <name>
logoscore call <name> echo hello
logoscore stop
cd ..
# 2. Build the UI app (module must be git-tracked for the path: flake input)
cd <name>-ui
git init && git add -A
nix build
cd ..
The <name>-ui/flake.nix declares the module as a flake input:
<name>.url = "path:../<name>-module";
And <name>-ui/metadata.json declares it as a runtime dependency:
"dependencies": ["<name>"]
Basecamp will auto-load the module when the UI plugin is activated.
In <Pascal>UiBackend.cpp:
#include <LogosAPI.h>
void MyBackend::doSomething(const QString& input) {
if (!m_api) return;
auto* client = m_api->getClient("myapp");
QVariant result = client->invokeRemoteMethod("myapp", "echo", input);
setStatusMessage(result.toString());
}
logos-myapp/
myapp-module/
metadata.json "type": "core", "interface": "universal"
flake.nix standalone — cd myapp-module && nix build
src/myapp_impl.h Pure C++ API
src/myapp_impl.cpp
tests/test_myapp.cpp
myapp-ui/
metadata.json "type": "ui", "dependencies": ["myapp"]
flake.nix includes myapp.url = "path:../myapp-module"
src/myapp_ui_plugin.h/cpp
src/MyappUiBackend.h/cpp
src/qml/Main.qml
project.json { "type": "full-app", "name": "myapp", "module": "myapp-module", "ui": "myapp-ui" }
AGENTS.md / CLAUDE.md / .mcp.json
# After building both sub-projects:
cp -r myapp-module/result/lib/* ~/.local/share/Logos/LogosBasecampDev/modules/
cp -r myapp-ui/result/* ~/.local/share/Logos/LogosBasecampDev/plugins/myapp_ui/
# Launch Basecamp