Doc Add Component Model
Table of Contents
When to use this skill
When a component's architecture documentation needs to be created
or refreshed. Since PR
#1014 the component_overview.org is the single source of
truth for both humans and codegen — it carries the architecture
prose AND the codegen-readable identity scalars (#+name:,
#+full_name:, #+brief:, #+description:). Run this skill
before component-creator when
scaffolding a brand-new component (codegen reads from the
overview), and again whenever the architecture changes.
How to use this skill
Scaffold the org file using compass. The scaffold template includes the codegen scalars automatically:
./projects/ores.compass/compass.sh add component \ --slug component_overview \ --parent-dir projects/ores.COMPONENT/modeling \ --title "ores.COMPONENT" \ --description "<one-line summary used by codegen + html>" \ --brief "<short tagline codegen emits as the C++ @brief>"
--briefdefaults to--descriptionwhen omitted. See How do I create a component overview? for the full walkthrough.- Fill in each section following Component Documentation Guide:
Summary, Inputs, Outputs, Entry points, Dependencies, See also.
For a split component (
.api/.core/.service) create onecomponent_overview.orgper part under the matching subdir; a group-level overview atprojects/ores.COMPONENT/modeling/is optional and used for navigation + group-level codegen scalars. - Create or update the PlantUML diagram (
modeling/COMPONENT.puml). Use plantuml-class-modeler for diagram conventions: domain classes#F7E5FF, ORM classes<<orm>> #99CB99, generators#FFFACD, test suites<<test suite>> #C5E1A5, all namespaces#F2F2F2. - Generate the PNG via the CMake diagram target:
cmake --build --preset linux-clang-debug-ninja --target generate_SHORTNAME_diagram - Update the system model if this is a new component: add to
projects/modeling/ores.pumlandprojects/modeling/system_model.org. - Compile the site with
./compass.sh site serve --compileand verify the new pages render and all links resolve.
Reference
- How do I create a component overview? — step-by-step recipe.
- Component Documentation Guide — what each section means and how to fill it in.
- plantuml-class-modeler — diagram conventions and layout tips.
- Component architecture — api/core/service split, facets, CMake deps.
- component-creator — scaffold the component before documenting it.