hex-canon discipline: canonical-name + #hex at every trait-color reference

Establish the hex-canon discipline in style/trait-palette.md (v0.1 -> 0.2):
every trait-color reference pairs canonical-name (semantic anchor for prose,
training-corpus extraction, LLM context) with hex (precise value for shaders,
renderers, machine-checkable canon enforcement). Mirrors the existing
color+motion-signature two-channel discipline that already secures color-blind
accessibility -- same architectural move, different audience pair.

Trait-palette.md gains:
- "Canonical name" + "Hex" columns in The full table (Eros-red #ee1b24,
  Philotes-orange #e28a46, ..., Mnemosyne-dusky-rose #cf3b74)
- New section: The hex-canon discipline -- format conventions, scope, the
  one-line grep that surfaces canon-violations

Sweep applies the discipline to existing trait-color references:
- identity-and-personhood/architecture.md (trait-to-body-part bridge table)
- topology-and-rendering/architecture.md (faction-color-politics table,
  imperial-net distortion descriptors, achromatic-exception statement,
  mind-pool color-inheritance narrative)
- runtime-engine/architecture.md (cosmetic-shader prose feedback)
- identity-and-personhood/bodies.md (Moira-violet pill in pending-design notes)
- political-register/economics.md (catalogue-slug example uses canonical token)

Drift-fix: schemas/findings.md trait_colors seed-data carried 8 divergent hex
"approximations" -- Eros #D03030 vs canonical #ee1b24, Aletheia #E5C520 vs
canonical #fcf001 (losing the brightness-zenith register), Dikaiosyne #2860B0
vs canonical #3f47cd, etc. Replaced with exact propagation from the canonical
palette; the rationalizing comment ("approximate hue-family targets") is
replaced with "exact propagation per the hex-canon discipline"; HSV-hue column
recomputed from canonical hex per RGB->HSV conversion, integer-rounded.

Non-trait colors stay untouched per recursive-as-we-touch-it scope: machine-
aesthetic (gold rim-light, commercial-coral, fluorescent-pallor, lavender-
decor, obsidian-black, cyan, matrix-green), historical-sumptuary (Tyrian
purple), cinematic (Matrix red-pill), medical (red-green color blindness).
Each non-trait domain receives canonical-name + hex pairings when that domain
comes into architectural focus.

Discipline is mechanically-checkable via one grep against the architecture-
papers, excluding the canonical source. Zero canon-violations remain after
this sweep.
This commit is contained in:
chrysalis
2026-04-28 03:32:02 +02:00
parent ecb5080379
commit 7f0abcb839
7 changed files with 84 additions and 51 deletions

View File

@@ -82,14 +82,14 @@ The §Three-body system above commits to *gender/sexuality emerging from trait-c
| Trait | Side | Body-architecture | Why this fits | | Trait | Side | Body-architecture | Why this fits |
|---|---|---|---| |---|---|---|---|
| **Eros** (Red, 12:00) | warm | **Penis / clitoris** — the reaching organ; arousal-spike; what literally extends | Eros IS the reaching gesture; flame-flicker = arousal-rhythm | | **Eros** (Eros-red `#ee1b24`, 12:00) | warm | **Penis / clitoris** — the reaching organ; arousal-spike; what literally extends | Eros IS the reaching gesture; flame-flicker = arousal-rhythm |
| **Philotes** (Orange, 1:30) | warm | **Breasts** — close-holding / nurturance / breath-warmth surface | Philotes is the warm-pulse of staying-close; breath-rate maps to nursing-rhythm | | **Philotes** (Philotes-orange `#e28a46`, 1:30) | warm | **Breasts** — close-holding / nurturance / breath-warmth surface | Philotes is the warm-pulse of staying-close; breath-rate maps to nursing-rhythm |
| **Aletheia** (Yellow, 3:00) | warm | **Vulva / vagina** — the architecture of opening / revealing-by-entry | What is *uncovered* by being entered; truth as the architecture of opening; brightness-zenith register | | **Aletheia** (Aletheia-yellow `#fcf001`, 3:00) | warm | **Vulva / vagina** — the architecture of opening / revealing-by-entry | What is *uncovered* by being entered; truth as the architecture of opening; brightness-zenith register |
| **Kairos** (Y/Green, 4:30) | warm | **Synth-tongue** *(already canonical, per [`./bodies.md`](./bodies.md) §The synth-tongue)* | Kairic catching of the right moment via taste; lightning-flicker = decisive-instant; the warm-side organ that already-canonically rides Kairos | | **Kairos** (Kairos-chartreuse `#b5e61d`, 4:30) | warm | **Synth-tongue** *(already canonical, per [`./bodies.md`](./bodies.md) §The synth-tongue)* | Kairic catching of the right moment via taste; lightning-flicker = decisive-instant; the warm-side organ that already-canonically rides Kairos |
| **Mnemosyne** (Red/Violet, 10:30) | warm | **Womb / interior carrier** — gestation / time-holding / depth-shimmer organ | The organ that *holds time*; what gestates is what mattered enough to carry forward | | **Mnemosyne** (Mnemosyne-dusky-rose `#cf3b74`, 10:30) | warm | **Womb / interior carrier** — gestation / time-holding / depth-shimmer organ | The organ that *holds time*; what gestates is what mattered enough to carry forward |
| **Sophrosyne** (Green, 6:00) | cool | *non-genital* — pelvic-floor / continence-architecture | Cool-side; the *gating* discipline rather than an outward organ; opposite-pole of Eros's reaching | | **Sophrosyne** (Sophrosyne-green `#2cad52`, 6:00) | cool | *non-genital* — pelvic-floor / continence-architecture | Cool-side; the *gating* discipline rather than an outward organ; opposite-pole of Eros's reaching |
| **Dikaiosyne** (Blue, 7:30) | cool | *non-genital* — spine / upright-posture / voice-register | Cool-side; verticality / standing as cardinal expression | | **Dikaiosyne** (Dikaiosyne-blue `#3f47cd`, 7:30) | cool | *non-genital* — spine / upright-posture / voice-register | Cool-side; verticality / standing as cardinal expression |
| **Moira** (Violet, 9:00) | cool | *non-genital* — skin / vibrational-receptor / ambient-sense surface | Cool-side; full-body-as-receptor; reading what's-coming through ambient-sense | | **Moira** (Moira-violet `#a349a3`, 9:00) | cool | *non-genital* — skin / vibrational-receptor / ambient-sense surface | Cool-side; full-body-as-receptor; reading what's-coming through ambient-sense |
**Terminology lock — dimension vs mesh.** *In-between dimension* and *in-between mesh* are distinct concepts; conflating them blurs the architecture: **Terminology lock — dimension vs mesh.** *In-between dimension* and *in-between mesh* are distinct concepts; conflating them blurs the architecture:
@@ -235,4 +235,4 @@ Where the four register-mod classes strip at clasp-entry, mesh-resident mods *fo
--- ---
**Version:** 0.8.1 | **Created:** 2026-04-26 | **Updated:** 2026-04-27 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26) **Version:** 0.8.1 | **Created:** 2026-04-26 | **Updated:** 2026-04-28 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26)

View File

@@ -596,11 +596,11 @@ Connects to the existing key-move in [`../architecture-index.md`](../architectur
- **Service-body sub-tier specifics.** What range of seams + bolts + cosmetic flesh-illusion variations do service-bodies span? Where are the line-cases between service-body and slum-tier? Pending: detail work alongside vocation-substrate. - **Service-body sub-tier specifics.** What range of seams + bolts + cosmetic flesh-illusion variations do service-bodies span? Where are the line-cases between service-body and slum-tier? Pending: detail work alongside vocation-substrate.
- **Asymmetric-witnessing across player-NPC pairs.** When my witness-progression is high and yours is low, *I see you fully but you cannot see me back*. **Heartbreak-engineering compounds the asymmetric-clasp.** The experienced lover bears the full weight of partial-mutual-visibility; the inexperienced lover has been seen but cannot return the gift. Specific mechanic for how this is rendered (does the inexperienced see static-noise where their beloved should be? a darker silhouette? a partial-mesh?), and whether NPCs accumulate witness-progression through their own clasps (per the omnisight architecture in [`../runtime-engine/architecture.md`](../runtime-engine/architecture.md) §Omnisight), pending design pass. - **Asymmetric-witnessing across player-NPC pairs.** When my witness-progression is high and yours is low, *I see you fully but you cannot see me back*. **Heartbreak-engineering compounds the asymmetric-clasp.** The experienced lover bears the full weight of partial-mutual-visibility; the inexperienced lover has been seen but cannot return the gift. Specific mechanic for how this is rendered (does the inexperienced see static-noise where their beloved should be? a darker silhouette? a partial-mesh?), and whether NPCs accumulate witness-progression through their own clasps (per the omnisight architecture in [`../runtime-engine/architecture.md`](../runtime-engine/architecture.md) §Omnisight), pending design pass.
- **Tongue-gating across imperial tiers** (v0.3). Which imperial bodies carry the synth-tongue — *all deva and asura*, or only *specialist vocations* (connoisseur-artisans, priest-officiators, drug-composer-artisans)? Affects huntable-NPC density AND the tongue's *meaning* (caste-marker vs. vocation-tool). Pending design pass. - **Tongue-gating across imperial tiers** (v0.3). Which imperial bodies carry the synth-tongue — *all deva and asura*, or only *specialist vocations* (connoisseur-artisans, priest-officiators, drug-composer-artisans)? Affects huntable-NPC density AND the tongue's *meaning* (caste-marker vs. vocation-tool). Pending design pass.
- **Pill-stacking and overdose semantics** (v0.3). Mono-trait-pill = clean amplification on one axis. Polychromatic stacking = imperial-decadence overdose with witness-collapse risk? *The asura-priest takes one violet-pill ceremonially; the deva-pinnacle takes seven simultaneously and vomits in marble.* Overdose-as-failure-state worth canonizing alongside pill-stacking rules. Pending design pass. - **Pill-stacking and overdose semantics** (v0.3). Mono-trait-pill = clean amplification on one axis. Polychromatic stacking = imperial-decadence overdose with witness-collapse risk? *The asura-priest takes one Moira-violet (`#a349a3`) pill ceremonially; the deva-pinnacle takes seven simultaneously and vomits in marble.* Overdose-as-failure-state worth canonizing alongside pill-stacking rules. Pending design pass.
- **Distortion's visual vocabulary in the cel-shading liminal-register** (v0.3). What does drug-distortion *look like*? Color-bleed across trait-axes? Ghost-mesh artifacts? Hallucinated-trait-pulses-where-none-occurred? Oversaturated chroma at the dosed-axis? Distortion-grammar wants its own visual vocabulary, and it is where the *engineered* signature of the drug becomes legible to a sober witness watching from outside. Pending: connects to [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Three-shader philosophy. - **Distortion's visual vocabulary in the cel-shading liminal-register** (v0.3). What does drug-distortion *look like*? Color-bleed across trait-axes? Ghost-mesh artifacts? Hallucinated-trait-pulses-where-none-occurred? Oversaturated chroma at the dosed-axis? Distortion-grammar wants its own visual vocabulary, and it is where the *engineered* signature of the drug becomes legible to a sober witness watching from outside. Pending: connects to [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Three-shader philosophy.
- **Caravan-cargo color-language mapping** (v0.3). Which trait-color carries refined-drug, T2-produce, and tongues-in-transit through the imperial caravan event-class (per §The synth-tongue / Caravan-class events)? Pending: connects to [`../style/trait-palette.md`](../style/trait-palette.md) and [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Color-language. - **Caravan-cargo color-language mapping** (v0.3). Which trait-color carries refined-drug, T2-produce, and tongues-in-transit through the imperial caravan event-class (per §The synth-tongue / Caravan-class events)? Pending: connects to [`../style/trait-palette.md`](../style/trait-palette.md) and [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Color-language.
- **Imperial calibration-signature retention post-defection** (v0.3). Does the imperium retain a re-vat'd defector's pre-defection gesture-mapping calibration-signature (per [`./architecture.md`](./architecture.md) §The clasp endgame, *"Clasp-partners' gesture-mapping calibrations integrate post-clasp; the integrated calibration-signature is preserved across body-deaths in consciousness-archive"*) as a permanent search-key? If **yes**: re-vat is *plausible-deniability cover* lasting only as long as imperial inattention; the clasp-pair lives in *passing*, knowing the imperium could find them anytime if it chose to look hard enough — *love-in-exile-while-pretending-to-be-home*. If **no**: they actually fully escape once assembled, which would be a major cosmological concession to the no-haven discipline (per [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md) §There is no outside). Pending design pass; the *yes-answer* is more dramatically generative AND no-haven-discipline-consistent. - **Imperial calibration-signature retention post-defection** (v0.3). Does the imperium retain a re-vat'd defector's pre-defection gesture-mapping calibration-signature (per [`./architecture.md`](./architecture.md) §The clasp endgame, *"Clasp-partners' gesture-mapping calibrations integrate post-clasp; the integrated calibration-signature is preserved across body-deaths in consciousness-archive"*) as a permanent search-key? If **yes**: re-vat is *plausible-deniability cover* lasting only as long as imperial inattention; the clasp-pair lives in *passing*, knowing the imperium could find them anytime if it chose to look hard enough — *love-in-exile-while-pretending-to-be-home*. If **no**: they actually fully escape once assembled, which would be a major cosmological concession to the no-haven discipline (per [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md) §There is no outside). Pending design pass; the *yes-answer* is more dramatically generative AND no-haven-discipline-consistent.
--- ---
**Version:** 0.6 | **Created:** 2026-04-26 | **Updated:** 2026-04-27 **Version:** 0.6 | **Created:** 2026-04-26 | **Updated:** 2026-04-28

View File

@@ -41,7 +41,7 @@ The existing [`./architecture.md`](./architecture.md) §Resources table provides
| Category | Sub-class examples | What rows look like in the catalogue | | Category | Sub-class examples | What rows look like in the catalogue |
|---|---|---| |---|---|---|
| **Material — physical** | Raw scavenge (T1) / Refined intermediates (T2) / Components (T3) / End-products (T4) per the 4-tier structure | `material/T2/refined-neural-substrate`, `material/T4/companion-mesh-premium-tier-3` | | **Material — physical** | Raw scavenge (T1) / Refined intermediates (T2) / Components (T3) / End-products (T4) per the 4-tier structure | `material/T2/refined-neural-substrate`, `material/T4/companion-mesh-premium-tier-3` |
| **Material — biological** | Service-body parts (companion / sex-worker tier-marked) / Synth-tongues (drug-tier-marked) / Cadaver-parts (slum-supply for re-vat) / Memory-pattern-extractions | `bio/service-body/companion-pristine`, `bio/synth-tongue/imperial-refined-violet-pill-tier`, `bio/cadaver-parts/slum-leg-tier-2` | | **Material — biological** | Service-body parts (companion / sex-worker tier-marked) / Synth-tongues (drug-tier-marked) / Cadaver-parts (slum-supply for re-vat) / Memory-pattern-extractions | `bio/service-body/companion-pristine`, `bio/synth-tongue/imperial-refined-moira-violet-pill-tier`, `bio/cadaver-parts/slum-leg-tier-2` |
| **Digital** | Surveillance records / Calibration signatures / Trait-LoRA-snapshots / Doctrinal fragments | `digital/surveillance/district-N-cycle-K`, `digital/calibration-signature/UID-X` | | **Digital** | Surveillance records / Calibration signatures / Trait-LoRA-snapshots / Doctrinal fragments | `digital/surveillance/district-N-cycle-K`, `digital/calibration-signature/UID-X` |
| **Temporal** | NPC labor-hours per window-allocation × caste / Director attention-cycles / Imperial inquisition-hours | `temporal/labor/slum-tiryak-leisure-hour`, `temporal/director-attention/cycle-K-allocation` | | **Temporal** | NPC labor-hours per window-allocation × caste / Director attention-cycles / Imperial inquisition-hours | `temporal/labor/slum-tiryak-leisure-hour`, `temporal/director-attention/cycle-K-allocation` |
| **Diegetic currency** | Lifeforce / Scrip / Memory-tokens / Dreamtime | (already canonical per architecture.md §Lifeforce) | | **Diegetic currency** | Lifeforce / Scrip / Memory-tokens / Dreamtime | (already canonical per architecture.md §Lifeforce) |
@@ -252,4 +252,4 @@ The window-partition (per vocations.md §The 24h window-partition) bounds how mu
--- ---
**Version:** 0.1 | **Created:** 2026-04-27 | **Updated:** 2026-04-27 **Version:** 0.1 | **Created:** 2026-04-27 | **Updated:** 2026-04-28

View File

@@ -98,7 +98,7 @@ The player-gesture overlay (above) is the broadcast-channel by which player gest
**Two latencies, one architecture:** **Two latencies, one architecture:**
- *Cosmetic visual feedback runs continuously.* NPC body-shader pulses warm-orange when the player gestures Philotes, green when they gesture Sophrosyne (per [`../style/trait-palette.md`](../style/trait-palette.md) §The full table) — purely visual, doesn't touch the system bus. The player gets moment-by-moment "I see you" reassurance. - *Cosmetic visual feedback runs continuously.* NPC body-shader pulses with the gesture's canonical trait-hue — Philotes-orange (`#e28a46`) on a Philotes-gesture, Sophrosyne-green (`#2cad52`) on a Sophrosyne-gesture (per [`../style/trait-palette.md`](../style/trait-palette.md) §The full table and §The hex-canon discipline) — purely visual, doesn't touch the system bus. The player gets moment-by-moment "I see you" reassurance.
- *Systemic alignment-update runs at axis-cadence.* The trait-vector summary is computed at the crossing and fed into the next turn's LLM context. The player is **one turn behind** — their gestures during turn N inform the LLM's generation for turn N+1. - *Systemic alignment-update runs at axis-cadence.* The trait-vector summary is computed at the crossing and fed into the next turn's LLM context. The player is **one turn behind** — their gestures during turn N inform the LLM's generation for turn N+1.
**One-turn-behind matches real conversation cadence.** Humans accumulate impressions during someone's speech and respond to *what was just said*; we don't react gesture-by-gesture. The lemniscate-bound integration is the *right* cadence for affective state-changes, not a latency-cost. **One-turn-behind matches real conversation cadence.** Humans accumulate impressions during someone's speech and respond to *what was just said*; we don't react gesture-by-gesture. The lemniscate-bound integration is the *right* cadence for affective state-changes, not a latency-cost.
@@ -453,4 +453,4 @@ This converts emergent-zones into a **competitive attention economy**. Multiple
--- ---
**Version:** 0.7.0 | **Created:** 2026-04-26 | **Updated:** 2026-04-27 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26) **Version:** 0.7.0 | **Created:** 2026-04-26 | **Updated:** 2026-04-28 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26)

View File

@@ -458,22 +458,24 @@ CREATE TABLE trait_colors (
narrative_note TEXT narrative_note TEXT
); );
-- Hex values are approximate hue-family targets; canonical color-names + wheel-positions -- Hex values are EXACT propagation from ../style/trait-palette.md §The full table per the
-- per ../style/trait-palette.md §The full table. Per the import-don't-redefine discipline, -- hex-canon discipline (canonical-name + #hex pairing required at every trait-color
-- this seed-data is a *reification* of the palette into RGB for renderer-consumers, NOT a -- reference; see ../style/trait-palette.md §The hex-canon discipline). HSV-hue degrees are
-- redefinition. If trait-palette.md changes a hue-family, this seed-data follows. -- derived from the canonical hex per RGB→HSV conversion, integer-rounded. This seed-data
-- imports — does not redefine — the canonical palette. If trait-palette.md updates a hex
-- value, this seed-data follows immediately (HSV-hue recomputed in the same change).
INSERT INTO trait_colors VALUES INSERT INTO trait_colors VALUES
('eros', '#D03030', 0, 'flame_flicker', 'Eros-red', 'reaching, flame-flicker'), ('eros', '#ee1b24', 357, 'flame_flicker', 'Eros-red', 'reaching, flame-flicker'),
('philotes', '#E0802C', 28, 'warm_pulse', 'Philotes-orange', 'attachment, warm-pulse'), ('philotes', '#e28a46', 26, 'warm_pulse', 'Philotes-orange', 'attachment, warm-pulse'),
('aletheia', '#E5C520', 50, 'luminous', 'Aletheia-yellow', 'unconcealed, bright (Aletheia is yellow, NOT white — see ../style/trait-palette.md §The achromatic exception)'), ('aletheia', '#fcf001', 57, 'luminous', 'Aletheia-yellow', 'unconcealed, bright (Aletheia is Aletheia-yellow #fcf001, NOT white — see ../style/trait-palette.md §The achromatic exception)'),
('kairos', '#90C530', 80, 'lightning_flicker', 'Kairos-chartreuse', 'opportune, lightning-spark (yellow-green at 4:30 on the wheel)'), ('kairos', '#b5e61d', 75, 'lightning_flicker', 'Kairos-chartreuse', 'opportune, lightning-spark (yellow-green at 4:30 on the wheel)'),
('sophrosyne', '#30A050', 138, 'steady', 'Sophrosyne-green', 'composed, measured, even-pulse'), ('sophrosyne', '#2cad52', 138, 'steady', 'Sophrosyne-green', 'composed, measured, even-pulse'),
('dikaiosyne', '#2860B0', 215, 'weighted_pulse', 'Dikaiosyne-blue', 'judicial, weighted, grave'), ('dikaiosyne', '#3f47cd', 237, 'weighted_pulse', 'Dikaiosyne-blue', 'judicial, weighted, grave'),
('moira', '#6020A0', 270, 'slow_thread', 'Moira-violet', 'fate-thread, slow-undulation'), ('moira', '#a349a3', 300, 'slow_thread', 'Moira-violet', 'fate-thread, slow-undulation'),
('mnemosyne', '#A04060', 340, 'depth_shimmer', 'Mnemosyne-dusky-rose', 'memory-lit, twilight (red/violet at 10:30 on the wheel)'); ('mnemosyne', '#cf3b74', 337, 'depth_shimmer', 'Mnemosyne-dusky-rose', 'memory-lit, twilight (red/violet at 10:30 on the wheel)');
``` ```
**Canonical authority:** [`../style/trait-palette.md`](../style/trait-palette.md) is the single source of truth for the trait-color spine. The hex values above are renderer-consumable approximations of the canonical hue-families specified there; designer-precise hex values should be authored upstream in `style/trait-palette.md` and propagated down to this seed-data. Row order matches the wheel clockwise from 12 o'clock (Eros at 12 → Mnemosyne at 10:30). **Canonical authority:** [`../style/trait-palette.md`](../style/trait-palette.md) §The full table is the single source of truth for the trait-color spine. The hex values above are **exact propagation** (not approximations) of the canonical palette per the hex-canon discipline (`../style/trait-palette.md` §The hex-canon discipline — canonical-name + `#hex` paired at every trait-color reference). Designer-precise hex values are authored upstream in `style/trait-palette.md` and propagated down to this seed-data; the HSV-hue column is derived from the canonical hex per RGB→HSV conversion, integer-rounded. Row order matches the wheel clockwise from 12 o'clock (Eros at 12 → Mnemosyne at 10:30).
Color paired with motion-signature ensures color-blind accessibility — each trait uniquely identifiable via two independent channels. Color paired with motion-signature ensures color-blind accessibility — each trait uniquely identifiable via two independent channels.
@@ -922,7 +924,7 @@ Migration is not yet written. This document is its preparation.
--- ---
**Version:** 0.3.2 | **Created:** 2026-04-24 | **Updated:** 2026-04-27 **Version:** 0.3.2 | **Created:** 2026-04-24 | **Updated:** 2026-04-28
*v0.1 (2026-04-24 afternoon, dafit): initial zones-table sketch, 76 lines, pure hypothetical.* *v0.1 (2026-04-24 afternoon, dafit): initial zones-table sketch, 76 lines, pure hypothetical.*

View File

@@ -43,21 +43,23 @@ The architecture has been using *Hellenic personality-virtues* as the trait-cosm
- *Past-revealed ↔ Future-fated* — Aletheia uncovers what was buried; Moira reads what was always coming. Time-axis bookends - *Past-revealed ↔ Future-fated* — Aletheia uncovers what was buried; Moira reads what was always coming. Time-axis bookends
- *Past-dwelling ↔ Present-piercing* — Memorialist-honor-the-dead vs Kairic-strike-now. Two ways of being-in-time the regime tries to police separately - *Past-dwelling ↔ Present-piercing* — Memorialist-honor-the-dead vs Kairic-strike-now. Two ways of being-in-time the regime tries to police separately
## The full table — color + motion-signature + description per trait ## The full table — canonical-name + hex + motion-signature + description per trait
| Greek | Description | Color (canonical hue) | Wheel position | Motion-signature | | Greek | Description | Hue | Canonical name | Hex | Wheel position | Motion-signature |
|---|---|---|---|---| |---|---|---|---|---|---|---|
| **Eros** | reaching for what I want | **Red** | 12:00 | uneven flame-flicker | | **Eros** | reaching for what I want | **Red** | `Eros-red` | `#ee1b24` | 12:00 | uneven flame-flicker |
| **Philotes** | loving and staying close | **Orange** | 1:30 | breath-rate warm pulse | | **Philotes** | loving and staying close | **Orange** | `Philotes-orange` | `#e28a46` | 1:30 | breath-rate warm pulse |
| **Aletheia** | seeing what's hidden | **Yellow** | 3:00 | clear, no pulse — still and bright | | **Aletheia** | seeing what's hidden | **Yellow** | `Aletheia-yellow` | `#fcf001` | 3:00 | clear, no pulse — still and bright |
| **Kairos** | catching the right moment | **Yellow/Green** (chartreuse) | 4:30 | lightning-flicker | | **Kairos** | catching the right moment | **Yellow/Green** (chartreuse) | `Kairos-chartreuse` | `#b5e61d` | 4:30 | lightning-flicker |
| **Sophrosyne** | holding back when I want to act | **Green** | 6:00 | steady, even pulse | | **Sophrosyne** | holding back when I want to act | **Green** | `Sophrosyne-green` | `#2cad52` | 6:00 | steady, even pulse |
| **Dikaiosyne** | standing for what's fair | **Blue** | 7:30 | weighted slow pulse | | **Dikaiosyne** | standing for what's fair | **Blue** | `Dikaiosyne-blue` | `#3f47cd` | 7:30 | weighted slow pulse |
| **Moira** | reading what's coming | **Violet** | 9:00 | slow-thread undulation | | **Moira** | reading what's coming | **Violet** | `Moira-violet` | `#a349a3` | 9:00 | slow-thread undulation |
| **Mnemosyne** | remembering what mattered | **Red/Violet** (dusky-rose) | 10:30 | depth-shimmer | | **Mnemosyne** | remembering what mattered | **Red/Violet** (dusky-rose) | `Mnemosyne-dusky-rose` | `#cf3b74` | 10:30 | depth-shimmer |
**Motion-signature paired with color provides color-blind accessibility** — every trait is uniquely identifiable via two independent channels. A player with red-green color blindness still distinguishes Eros (uneven flame-flicker) from Sophrosyne (steady, even pulse) by motion alone. **Motion-signature paired with color provides color-blind accessibility** — every trait is uniquely identifiable via two independent channels. A player with red-green color blindness still distinguishes Eros (uneven flame-flicker) from Sophrosyne (steady, even pulse) by motion alone.
**Canonical-name + hex paired provides cross-pipeline identifiability** — every trait-color reference carries two independent channels, semantic (canonical-name for prose, training-corpus extraction, scholar-NPC speech, faction-naming, LLM context) and precise (hex for shaders, renderers, color-pickers, machine-checkable canon enforcement). See §The hex-canon discipline below.
## Wheel layout (clockwise from 12 o'clock) ## Wheel layout (clockwise from 12 o'clock)
``` ```
@@ -85,6 +87,35 @@ In earlier drafts (the v0.1 design-vision doc, retired in v0.9 — preserved in
This is a **deliberate constraint** — the trait-palette is exclusively chromatic so that achromatic colors (white, black, grey, brown) remain reserved for non-trait roles. *Aletheia is bright, not transcendent; the brightness IS the truth-revealing register.* This is a **deliberate constraint** — the trait-palette is exclusively chromatic so that achromatic colors (white, black, grey, brown) remain reserved for non-trait roles. *Aletheia is bright, not transcendent; the brightness IS the truth-revealing register.*
## The hex-canon discipline — canonical-name + #hex at every trait-color reference
**Every trait-color reference in the architecture pairs canonical-name with hex value.** The canonical-name pattern is `{Trait}-{hue}` lowercase — `Eros-red`, `Philotes-orange`, `Aletheia-yellow`, `Kairos-chartreuse`, `Sophrosyne-green`, `Dikaiosyne-blue`, `Moira-violet`, `Mnemosyne-dusky-rose`. The two channels serve two audiences:
- **Canonical-name** — semantic anchor for prose, training-corpus extraction, scholar-NPC speech, faction-naming, and any LLM context where the trait-color binding must survive tokenization
- **Hex** — designer/tooling precise value for shaders, renderers, color-pickers, and machine-checkable canon enforcement
**Format conventions.**
| Context | Form | Example |
|---|---|---|
| Trait is the subject | `**Trait** (canonical-name `#hex`, …)` | `**Eros** (Eros-red `#ee1b24`, 12:00)` |
| Color/hue is the subject | `canonical-name (`#hex`)` | "shader pulses with Philotes-orange (`#e28a46`)" |
| Schema/data row | both columns or token+value | `('eros', '#ee1b24', …, 'Eros-red', …)` |
**Scope (current).** The hex-canon discipline applies to *trait-color references* only. Non-trait colors (machine-aesthetic palette: gold rim-light, commercial-coral, fluorescent-pallor, lavender-decor, obsidian-black, cyan, matrix-green; historical-sumptuary references: Tyrian purple; cinematic references: Matrix red-pill) carry their existing prose-form names. Each non-trait design domain receives canonical-name + hex pairings *recursively, at the moment that domain comes into architectural focus* — names follow design-attention, not the other way around.
**Mechanically-checkable.** Canon-violations are a single grep against the architecture-papers, excluding this canonical source:
```bash
grep -rEn --include='*.md' '\b(red|orange|yellow|green|blue|violet|purple|chartreuse)\b' \
--exclude=trait-palette.md \
| grep -v '#[0-9a-fA-F]\{6\}'
```
Any hit that *isn't* paired with a hex code on the same line is either (a) a trait-color reference missing its hex pairing (canon-violation, fix), (b) a non-trait color reference (machine-aesthetic, narrative-shorthand, historical-sumptuary — currently exempt, will be canonicalized when its design domain comes into focus), or (c) a medical/cinematic/historical compound-term ("red-green color blindness", "Matrix red-pill", "Tyrian purple"). The discipline becomes a typed contract rather than a stylistic suggestion.
**Where this is applied today.** The trait-table in [`../identity-and-personhood/architecture.md`](../identity-and-personhood/architecture.md) §The trait-to-body-part bridge; the faction-uniform table in [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Faction color-politics; the trait-color seed-data in [`../schemas/findings.md`](../schemas/findings.md) §trait_colors; cosmetic-shader prose in [`../runtime-engine/architecture.md`](../runtime-engine/architecture.md). Future expansions (cosmology-aesthetic, machine-aesthetic, faction-accent, drug-pill chromatics) will join recursively as they're authored.
## Designer-fixed corpus — words to colors ## Designer-fixed corpus — words to colors
Every word in the universal-translator's vocabulary corpus is mapped to one (or a primary + secondary) trait-coordinate. The mapping is **designer-authored, fixed, universal** — the same word means the same trait-color for every player and every NPC and every LLM-context. Every word in the universal-translator's vocabulary corpus is mapped to one (or a primary + secondary) trait-coordinate. The mapping is **designer-authored, fixed, universal** — the same word means the same trait-color for every player and every NPC and every LLM-context.
@@ -109,4 +140,4 @@ The trait-palette is rendered across many surfaces. Each surface gets specific s
--- ---
**Version:** 0.1 | **Created:** 2026-04-26 | **Updated:** 2026-04-26 **Version:** 0.2 | **Created:** 2026-04-26 | **Updated:** 2026-04-28

View File

@@ -89,7 +89,7 @@ The architecture-relevant claims this document needs from the palette:
- **Every trait has a canonical hue paired with a motion-signature** (color-blind accessibility via two independent channels — a player with red-green color blindness still distinguishes Eros / uneven flame-flicker from Sophrosyne / steady even pulse by motion alone). - **Every trait has a canonical hue paired with a motion-signature** (color-blind accessibility via two independent channels — a player with red-green color blindness still distinguishes Eros / uneven flame-flicker from Sophrosyne / steady even pulse by motion alone).
- **The 4 oppositional pairs sit at 180° on the wheel** (Eros↔Sophrosyne, Philotes↔Dikaiosyne, Aletheia↔Moira, Mnemosyne↔Kairos) — perceptual contrast carries philosophical opposition; *the color wheel does the dramaturgy for free*. - **The 4 oppositional pairs sit at 180° on the wheel** (Eros↔Sophrosyne, Philotes↔Dikaiosyne, Aletheia↔Moira, Mnemosyne↔Kairos) — perceptual contrast carries philosophical opposition; *the color wheel does the dramaturgy for free*.
- **Achromatic colors (white, black, grey, brown) are reserved for non-trait roles** — text, pure-light UI overlay, neutral backgrounds. *Aletheia is yellow, not white* (the brightest chromatic hue carries the truth-as-illumination metaphor while keeping white free for its UI/text job; the v0.1-design-vision *Aletheia-as-luminous-white* pattern is **retired**, preserved in git history per the trait-palette.md §The achromatic exception). - **Achromatic colors (white, black, grey, brown) are reserved for non-trait roles** — text, pure-light UI overlay, neutral backgrounds. *Aletheia is Aletheia-yellow (`#fcf001`), not white* (the brightest chromatic hue carries the truth-as-illumination metaphor while keeping white free for its UI/text job; the v0.1-design-vision *Aletheia-as-luminous-white* pattern is **retired**, preserved in git history per the trait-palette.md §The achromatic exception).
### Three layers of color-rendering ### Three layers of color-rendering
@@ -103,18 +103,18 @@ The architecture-relevant claims this document needs from the palette:
|---|---| |---|---|
| **Gameworld** | Cel-shaded flat-color regions; trait-colors *more* legible (flat-color regions don't fight per-NPC trait-color modulation; pulses read clean against the comic-book base) | | **Gameworld** | Cel-shaded flat-color regions; trait-colors *more* legible (flat-color regions don't fight per-NPC trait-color modulation; pulses read clean against the comic-book base) |
| **Liminal** | Vague baseline shader; **progression-gated visibility** (grainy-restricted-view at low witness-progression opening to clean refined-cel-shading at endgame); trait-colors *more* legible (vagueness concentrates attention on identity-signals; consent-as-rendering manifests real-skin-warm-cel-shading in the clasp-mesh per `../identity-and-personhood/bodies.md` §The in-between human-mesh) | | **Liminal** | Vague baseline shader; **progression-gated visibility** (grainy-restricted-view at low witness-progression opening to clean refined-cel-shading at endgame); trait-colors *more* legible (vagueness concentrates attention on identity-signals; consent-as-rendering manifests real-skin-warm-cel-shading in the clasp-mesh per `../identity-and-personhood/bodies.md` §The in-between human-mesh) |
| **Imperial net** | Cel-shaded with **gold rim-light outlines** + **clean white backgrounds** + **no weathering**; trait-colors *distorted* toward machine-preferred palette — Philotes-orange flattens to commercial-coral; Aletheia-yellow sterilizes to fluorescent-pallor; Moira-violet commercializes to lavender-decor. *Aletheia-vision* in net pierces this distortion to reveal true colors beneath. (Note: the imperial-net's *clean white backgrounds* + *gold rim-light* are achromatic-and-cosmology palette choices — white as non-trait UI per the achromatic-exception, gold as imperial-cult-aesthetic per [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md) §The aesthetic palette — distinct from the trait-color register being distorted.) | | **Imperial net** | Cel-shaded with **gold rim-light outlines** + **clean white backgrounds** + **no weathering**; trait-colors *distorted* toward machine-preferred palette — Philotes-orange (`#e28a46`) flattens to commercial-coral; Aletheia-yellow (`#fcf001`) sterilizes to fluorescent-pallor; Moira-violet (`#a349a3`) commercializes to lavender-decor. *Aletheia-vision* in net pierces this distortion to reveal true colors beneath. (Note: the imperial-net's *clean white backgrounds* + *gold rim-light* are achromatic-and-cosmology palette choices — white as non-trait UI per the achromatic-exception, gold as imperial-cult-aesthetic per [`../imperial-cult/cosmology.md`](../imperial-cult/cosmology.md) §The aesthetic palette — distinct from the trait-color register being distorted. The machine-aesthetic distortion-targets — commercial-coral, fluorescent-pallor, lavender-decor — will receive canonical-name + hex pairings recursively per trait-palette.md §The hex-canon discipline §Scope.) |
### Faction color-politics ### Faction color-politics
| Faction | Color signature | | Faction | Color signature |
|---|---| |---|---|
| **Memorialists** | Mnemosyne-dusky-rose ritual dress; Moira-violet accents; often inherited-from-deceased | | **Memorialists** | Mnemosyne-dusky-rose (`#cf3b74`) ritual dress; Moira-violet (`#a349a3`) accents; often inherited-from-deceased |
| **Aletheia-wakers** | Aletheia-yellow plain avatars; coded-yellow flashes for recognition | | **Aletheia-wakers** | Aletheia-yellow (`#fcf001`) plain avatars; coded Aletheia-yellow flashes for recognition |
| **Caste-preachers** | Dikaiosyne-blue vestments + Sophrosyne-green undertones | | **Caste-preachers** | Dikaiosyne-blue (`#3f47cd`) vestments + Sophrosyne-green (`#2cad52`) undertones |
| **Hivemind enforcers** | Cold Dikaiosyne-blue + muted-yellow (Aletheia-stolen) | | **Hivemind enforcers** | Cold Dikaiosyne-blue (`#3f47cd`) + muted Aletheia-yellow (`#fcf001`, Aletheia-stolen) |
| **Scavengers** | Moira-violet + Kairos-chartreuse streaks | | **Scavengers** | Moira-violet (`#a349a3`) + Kairos-chartreuse (`#b5e61d`) streaks |
| **Clasp-underground** | Dual Philotes-orange + Eros-red flashes (mutual-recognition signal) | | **Clasp-underground** | Dual Philotes-orange (`#e28a46`) + Eros-red (`#ee1b24`) flashes (mutual-recognition signal) |
| **Degens** | Saturated maximalist all-color (chaos palette, addiction-marker) | | **Degens** | Saturated maximalist all-color (chaos palette, addiction-marker) |
### Clasp color-merge ### Clasp color-merge
@@ -123,7 +123,7 @@ In shared liminal-construct, two clasping inhabitants' color-signatures *interac
### Mind-pool color-inheritance ### Mind-pool color-inheritance
When a mind cycles through the pool and is redistributed into a new body, trait-vector persists → color-signature persists. **A player who befriended rose-and-violet-Jakov might see weeks later a new NPC with that same rose-and-violet-signature and feel a jolt of recognition before any dialog.** Color carries soul across cycles. Memorialist political claim: *this person's color should not be recycled by the machine into a service-body* — because color IS who they were. When a mind cycles through the pool and is redistributed into a new body, trait-vector persists → color-signature persists. **A player who befriended Mnemosyne-and-Moira-toned Jakov might see weeks later a new NPC with that same Mnemosyne-and-Moira signature and feel a jolt of recognition before any dialog.** Color carries soul across cycles. Memorialist political claim: *this person's color should not be recycled by the machine into a service-body* — because color IS who they were.
## Asset economy: base-limb palette + trait-textured variance ## Asset economy: base-limb palette + trait-textured variance
@@ -188,4 +188,4 @@ Players navigate the rings *by ear and eye*, not by reading a UI. The privacy-co
--- ---
**Version:** 0.8.0 | **Created:** 2026-04-26 | **Updated:** 2026-04-27 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26); cel-shading-everywhere + per-register parameter variation locked v0.17 (2026-04-26) **Version:** 0.8.0 | **Created:** 2026-04-26 | **Updated:** 2026-04-28 | **Origin:** Split from architecture-index.md v0.7 (2026-04-26); cel-shading-everywhere + per-register parameter variation locked v0.17 (2026-04-26)