Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs/adr/0003-naming-and-branding.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,17 @@ The **foundation owns the root namespace**: xmBase's shared vocabulary lives unq

Non-C++ components: **xmBoard** (KiCAD) has no code namespace; **xmFirmware** (Zephyr is C) uses a C identifier prefix `xm_…`.

**Include prefix (header install directory).** The default is `xm` + function word, matching the component (`xmbase/`, `xmdriver/`). Because the include prefix is typed in every consumer file, a long function word may register a short form — the registry is authoritative, one short form per component, decided at component creation:

| Component | Include prefix |
|---|---|
| xmBase | `xmbase/` |
| xmDriver | `xmdriver/` |
| xmNavigation | `xmnav/` |
| xmMessaging (planned) | `xmmsg/` |

Everything else keeps the full word: repository names, umbrella pin paths, C++ namespaces, CMake packages/targets, and package names never abbreviate.

### 5. Derivation test

The scheme is consistent iff all three artifacts derive mechanically from one function word:
Expand Down