Semantic Suffixing Naming System
This page documents the current naming direction for the architecture: semantic suffixing.
The goal is simple. A class name should explain its architectural role without opening the file.
Why this exists
Section titled “Why this exists”Historically, the word Substrate was used both for reusable inheritance layers and for fully assembled runtime classes. That created ambiguity when reading code and design docs.
Semantic suffixing resolves that ambiguity by assigning one role per suffix.
Core vocabulary
Section titled “Core vocabulary”| Suffix or term | Meaning | Example |
|---|---|---|
Lamina |
An inherited structural layer. Incomplete on its own. | BaseLamina, AgenticLamina |
Substrate |
A fully assembled concrete runtime class. | CliSensoryCortexSubstrate |
Cortex |
Domain region marker included in names for cortex-specialized units. | SensoryCortexLamina, PrefrontalCortexSubstrate |
Synthesizer |
A factory that responds to broadcast signals by producing modulators. | CortexLaminaSynthesizer |
Signal |
A message that asks the system for a specific action or modulator. | Signal |
Reply |
A return message that carries the outcome of a signal. | Reply |
Broadcast |
A diffuse message delivered to multiple recipients. | Broadcast |
Neuromodulators |
The mediation boundary and runtime registry that receives signals from RAS, fans out to synthesizers, and exposes artifact references. |
Neuromodulators |
Modulator |
A dynamic runtime influence injected at launch time or runtime. | DopamineModulator |
Cocktail |
A grouped runtime state configuration collected from one or more modulators. | ModulatorCocktail |
Role split
Section titled “Role split”Use this distinction everywhere in docs and naming discussions:
- Laminae define structure and capability layers.
- Substrates are usable runtime objects.
RASsends modulation signals toNeuromodulators.- Synthesizers produce modulators in response to
Neuromodulatorsbroadcast fanout and publish them toNeuromodulators. RASresolves published modulators fromNeuromodulatorsby artifact reference.- Modulators define runtime state.
- Signals and reply objects capture orchestration flow explicitly.
In one sentence:
“A substrate is composed from laminae and configured by a modulator cocktail assembled through RAS signals to Neuromodulators and synthesizer-produced reply objects.”
Naming rules
Section titled “Naming rules”If this model is adopted consistently in code, use the following rules:
- Every abstract inheritance layer ends in
Lamina. - Every concrete assembled runtime class ends in
Substrate. - Region terms stay explicit in the middle of the name when relevant, such as
Cortex,Thalamus, orCerebellum. - Factory classes that produce modulators end in
Synthesizer. - Messaging types use
Signal,Reply, orBroadcastwhen they represent relay traffic. - Behavioral state names use
ModulatororCocktail.
Examples:
BaseLaminaAgenticLaminaCortexLaminaSensoryMotorCortexLaminaSensoryCortexLaminaCliSensoryCortexSubstratePrefrontalCortexSubstrateCortexLaminaSynthesizerSignalReplyBroadcast
Why this improves readability
Section titled “Why this improves readability”Semantic suffixing creates immediate role clarity:
- You can distinguish scaffolding from runnable units by name alone.
- You avoid collisions where two classes have the same stem but different architectural purpose.
- IDE autocomplete groups related classes predictably.
Cost and mitigation
Section titled “Cost and mitigation”The tradeoff is verbosity. Names can become long.
Recommended mitigation:
- Use multiline class declarations and function signatures.
- Use IDE rename tools for refactors.
- Use local aliases sparingly only where readability clearly improves.
Adoption guidance
Section titled “Adoption guidance”This convention is most effective when used consistently.
Partial adoption can increase confusion, so decide explicitly whether the project is:
- Documentation-only for now.
- Migrating selected packages.
- Performing full vocabulary migration.
If migration is chosen, record the decision in an ADR before broad renames.