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

  1. 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>"
    

    --brief defaults to --description when omitted. See How do I create a component overview? for the full walkthrough.

  2. Fill in each section following Component Documentation Guide: Summary, Inputs, Outputs, Entry points, Dependencies, See also. For a split component (.api / .core / .service) create one component_overview.org per part under the matching subdir; a group-level overview at projects/ores.COMPONENT/modeling/ is optional and used for navigation + group-level codegen scalars.
  3. 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.
  4. Generate the PNG via the CMake diagram target: cmake --build --preset linux-clang-debug-ninja --target generate_SHORTNAME_diagram
  5. Update the system model if this is a new component: add to projects/modeling/ores.puml and projects/modeling/system_model.org.
  6. Compile the site with ./compass.sh site serve --compile and verify the new pages render and all links resolve.

Reference

Emacs 29.1 (Org mode 9.6.6)