mirror of
https://github.com/logos-co/logos-dev-boost.git
synced 2026-08-27 08:01:08 +00:00
Universal modules build as header-first cdylibs now, but the docs still
described the old `logos-cpp-generator --from-header --backend qt` path that
emitted `<name>_qt_glue.h` + `<name>_dispatch.cpp` and listed them explicitly
in CMakeLists SOURCES. None of that is current:
- The generator derives a `.lidl` from the impl header, then runs the cdylib
backend → `<name>_cdylib_glue.{h,cpp}` (uniform Qt-plugin glue) +
`<name>_module_impl.cpp` (Qt-free C-ABI export wrapper).
- `mkLogosModule` runs the pipeline automatically — no `preConfigure`.
- `LogosModule.cmake` globs `generated_code/` — modules must NOT list the
generated files in SOURCES (the bug fixed in #12).
Updated across the board:
- guidelines/{codegen.md (rewritten),universal-module,nix-build,metadata-json}
- docs/{spec.md,project.md}, README.md
- skills/{create-universal-module,nix-flake-setup,wrap-external-lib}
- generators/generate-agents-md.ts, mcp-server/tools/build-help.ts
(build-help now flags the "generated_code in SOURCES" mistake directly)
- regenerated llms-full.txt + llms.txt
- refreshed the committed example trees (outputs/logos-*) to match current
`init` output: minimal flake (no preConfigure), CMakeLists without the
generated_code sources, and regenerated AGENTS.md/CLAUDE.md/.claude skills
- re-rendered dev-boost-scaffold-module.md
No source-code/behavior changes — docs + generated context only.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
34 lines
3.5 KiB
Plaintext
34 lines
3.5 KiB
Plaintext
# Logos Development Platform
|
|
|
|
> Logos is a modular application platform built with C++17, Qt 6, and Nix.
|
|
> Modules are independently developed plugins that provide backend services
|
|
> or graphical interfaces within the Logos ecosystem. Core modules use a
|
|
> pure C++ universal interface with generated Qt glue. UI apps use ui_qml.
|
|
|
|
## Getting Started
|
|
- [Module Development Guide](docs/spec.md): How to create Logos modules and UI apps
|
|
- [Project Structure](docs/project.md): Repo layout, CLI reference, extension points
|
|
|
|
## Guidelines
|
|
- [codegen](guidelines/codegen.md): logos-cpp-generator pipeline, type mapping, LIDL format
|
|
- [core](guidelines/core.md): Two component types, naming conventions, file structure
|
|
- [metadata json](guidelines/metadata-json.md): Full metadata.json schema and field reference
|
|
- [nix build](guidelines/nix-build.md): Nix flake patterns, build commands, overrides
|
|
- [testing](guidelines/testing.md): Unit tests, logoscore integration, TEST_GROUPS
|
|
- [ui app](guidelines/ui-app.md): ui_qml apps: pure QML + QML with C++ backend (Qt Remote Objects)
|
|
- [universal module](guidelines/universal-module.md): Pure C++ impl pattern, type mapping, codegen pipeline
|
|
|
|
## Skills
|
|
- [add-to-workspace](skills/add-to-workspace/SKILL.md): 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.
|
|
- [create-full-app](skills/create-full-app/SKILL.md): Create a Logos full app — a combined module + UI app project in a single root directory
|
|
- [create-ui-app](skills/create-ui-app/SKILL.md): Activate when creating a Logos Basecamp UI app. Covers two subtypes — pure QML (no C++) and QML + process-isolated C++ backend with Qt Remote Objects.
|
|
- [create-universal-module](skills/create-universal-module/SKILL.md): 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.
|
|
- [inter-module-comm](skills/inter-module-comm/SKILL.md): Activate when implementing inter-module communication in Logos. Covers LogosAPI::callModule(), LogosResult handling, dependency declaration in metadata.json, generated client stubs, and the QML bridge.
|
|
- [nix-flake-setup](skills/nix-flake-setup/SKILL.md): 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.
|
|
- [package-lgx](skills/package-lgx/SKILL.md): 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.
|
|
- [testing-modules](skills/testing-modules/SKILL.md): 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.
|
|
- [wrap-external-lib](skills/wrap-external-lib/SKILL.md): 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.
|
|
|
|
## Optional
|
|
- [Full Documentation](docs/spec.md): Complete spec with user journeys
|
|
- [MCP Server](docs/project.md#mcp-server): Live project introspection tools |