Files
Dario LipicarandClaude Opus 4.8 53f30d106a docs: update for the universal→cdylib codegen pipeline (#13)
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>
2026-06-14 11:54:08 -03:00

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