Trait-color palette drift cleanup — re-align downstream files to style/trait-palette.md
The canonical trait-palette in style/trait-palette.md v0.1 (Eros-red,
Philotes-orange, Aletheia-yellow, Kairos-chartreuse, Sophrosyne-green,
Dikaiosyne-blue, Moira-violet, Mnemosyne-dusky-rose) was being contradicted by
old-palette references in three downstream files. This commit clears the drift
and enforces the import-don't-redefine discipline (per trait-palette.md
§Cross-domain rendering: "All sub-guides import these definitions; none
redefine them.").
topology-and-rendering/architecture.md:
- Replaced the redefining trait-color table with a pointer to
trait-palette.md per the import-don't-redefine rule. The old table was
using the retired luminous-white-Aletheia + multiple wrong color-trait
assignments (Sophrosyne-blue, Dikaiosyne-gold, Mnemosyne-violet,
Moira-crimson, Eros-orange, Philotes-rose, Kairos-yellow).
- Updated imperial-net distortion text and faction color-signatures table
to use canonical color-names: Aletheia-white -> Aletheia-yellow;
Mnemosyne-violet -> Mnemosyne-dusky-rose; Moira-crimson -> Moira-violet;
Dikaiosyne-gold -> Dikaiosyne-blue; Sophrosyne-blue -> Sophrosyne-green;
Philotes-rose -> Philotes-orange; Eros-orange -> Eros-red; Kairos-yellow
-> Kairos-chartreuse.
- Added clarifying note: imperial-net's clean-white-backgrounds +
gold-rim-light are achromatic-and-cosmology palette choices distinct
from the trait-color register being distorted (per the achromatic
exception + imperial-cult/cosmology.md aesthetic palette).
schemas/findings.md:
- Updated trait_colors INSERT seed-data with hex codes matching the new
canonical hue-families and renamed canonical_name fields to match
(Eros-red, Philotes-orange, Aletheia-yellow, Kairos-chartreuse,
Sophrosyne-green, Dikaiosyne-blue, Moira-violet, Mnemosyne-dusky-rose).
Reordered rows clockwise from 12 o'clock per wheel-position.
- Added authority-comment pointing at trait-palette.md as the single source
of truth and noting that the seed-data is reification, not redefinition;
designer-precise hex values should be authored upstream and propagated.
runtime-engine/architecture.md:
- Updated cosmetic-feedback example: warm-rose Philotes / cool-blue
Sophrosyne -> warm-orange Philotes / green Sophrosyne; added pointer to
trait-palette.md.
architecture-index.md:
- Fixed typo "Eris" -> "Eros" in the v0.5 trait-axis-mapping open-question
enumeration (the canonical 8 traits do not include Eris).
Verification: post-fix grep confirms zero remaining old-palette name
occurrences or old hex codes; new canonical names appear in all expected
locations.
SEPARATE FINDING flagged for designer review (NOT auto-fixed):
runtime-engine/architecture.md line 424 contains
`(Philotes >= +1) AND (Eris <= 0)`
as a multi-axis-goal example. This uses "Eris" with semantic intent
(discord / faction-tension) but Eris is not in the canonical 8-trait list.
Left untouched because the fix could be either (a) typo-correction Eris -> Eros
or (b) rewrite-to-canonical-axis-with-different-example, depending on whether
"Eris" was intended as a 9th non-canonical axis or simply as a typo. Designer
decision.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -279,7 +279,7 @@ The remainder of this file holds the **cross-domain meta-lists**: Key moves (con
|
|||||||
- **GM's anti-imperial corruption detection mechanic** — *partial*: GM-as-equilibrium-seeker (v0.6) makes deviation-from-equilibrium the explicit error signal; clusters of -1 outcomes feed equilibrium-recompute and trigger catalogue-event dispatch to push back. A dedicated audit-vector for *which kind* of laxness/corruption is the source of the equilibrium-deviation is still an open detail. **(Sharpened v0.15:** cell-checksum-divergence is now a candidate audit-vector — corruption could surface as patterns of *authorized-vs-actual cell-state divergence* in a director's territory, per the cell-arch's heresy-detection mechanism in [`political-register/world-generation.md`](./political-register/world-generation.md) §L4 + §Open questions / cell-mutation write-permissions.**)**
|
- **GM's anti-imperial corruption detection mechanic** — *partial*: GM-as-equilibrium-seeker (v0.6) makes deviation-from-equilibrium the explicit error signal; clusters of -1 outcomes feed equilibrium-recompute and trigger catalogue-event dispatch to push back. A dedicated audit-vector for *which kind* of laxness/corruption is the source of the equilibrium-deviation is still an open detail. **(Sharpened v0.15:** cell-checksum-divergence is now a candidate audit-vector — corruption could surface as patterns of *authorized-vs-actual cell-state divergence* in a director's territory, per the cell-arch's heresy-detection mechanism in [`political-register/world-generation.md`](./political-register/world-generation.md) §L4 + §Open questions / cell-mutation write-permissions.**)**
|
||||||
- **Memorialist-archive accessibility to the player** (refined v0.10) — *via diegetic workstations* — memorialist-archive terminals (faction-controlled, hidden in Memorialist-faction territory; per the diegetic-console workstation pattern from `style/style-index.md` + `political-register/architecture.md` §Worked example — the waifu-modder imperial-workstation, applied to the Memorialist context). Specific terminal-types + permission-mechanisms + UI for querying the four-ledgers pending faction-authoring. **(Sharpened v0.15:** cell-checksum-divergence is now candidate source-data for the archive — Memorialists could index unauthorized cell-states (heretical wheels carved in stepwell-walls, un-synced relics) by querying checksum-divergence-records. Doesn't solve UI/permissions but gives the archive concrete *content* to query.**)**
|
- **Memorialist-archive accessibility to the player** (refined v0.10) — *via diegetic workstations* — memorialist-archive terminals (faction-controlled, hidden in Memorialist-faction territory; per the diegetic-console workstation pattern from `style/style-index.md` + `political-register/architecture.md` §Worked example — the waifu-modder imperial-workstation, applied to the Memorialist context). Specific terminal-types + permission-mechanisms + UI for querying the four-ledgers pending faction-authoring. **(Sharpened v0.15:** cell-checksum-divergence is now candidate source-data for the archive — Memorialists could index unauthorized cell-states (heretical wheels carved in stepwell-walls, un-synced relics) by querying checksum-divergence-records. Doesn't solve UI/permissions but gives the archive concrete *content* to query.**)**
|
||||||
- **Imperial-net distortion algorithm** — how exactly the net rewrites trait-colors toward consumer-palette
|
- **Imperial-net distortion algorithm** — how exactly the net rewrites trait-colors toward consumer-palette
|
||||||
- **Trait-axis mapping per fuzzy-goal-class** (v0.5) — which axis (Sophrosyne / Philotes / Eris / etc.) evaluates which goal-class? Need a designer-authored compile-table from goal-shapes to trait-axes
|
- **Trait-axis mapping per fuzzy-goal-class** (v0.5) — which axis (Sophrosyne / Philotes / Eros / etc.) evaluates which goal-class? Need a designer-authored compile-table from goal-shapes to trait-axes
|
||||||
- **Rings-of-importance movement criteria** (v0.5) — explicit thresholds (N consecutive +1 → climb) or Dream-process-learned policy?
|
- **Rings-of-importance movement criteria** (v0.5) — explicit thresholds (N consecutive +1 → climb) or Dream-process-learned policy?
|
||||||
- **Rings-of-importance scope** (v0.5) — district-local rings, or imperium-global? Probably both, layered (district rings nested inside imperium rings)
|
- **Rings-of-importance scope** (v0.5) — district-local rings, or imperium-global? Probably both, layered (district rings nested inside imperium rings)
|
||||||
- **Symmetric-vs-polyphonic loops** (v0.5) — Loop A and Loop B treated identically (simpler), or carry foreground/background semantics (foreground-speaker / listening-co-presence — gives audience-dynamics for free)?
|
- **Symmetric-vs-polyphonic loops** (v0.5) — Loop A and Loop B treated identically (simpler), or carry foreground/background semantics (foreground-speaker / listening-co-presence — gives audience-dynamics for free)?
|
||||||
|
|||||||
@@ -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-rose when the player gestures Philotes, cool-blue when they gesture Sophrosyne — 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 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.
|
||||||
- *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.
|
||||||
|
|||||||
@@ -458,18 +458,23 @@ CREATE TABLE trait_colors (
|
|||||||
narrative_note TEXT
|
narrative_note TEXT
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Populated via designer artistic decision; values below are placeholders
|
-- Hex values are approximate hue-family targets; canonical color-names + wheel-positions
|
||||||
|
-- per ../style/trait-palette.md §The full table. Per the import-don't-redefine discipline,
|
||||||
|
-- this seed-data is a *reification* of the palette into RGB for renderer-consumers, NOT a
|
||||||
|
-- redefinition. If trait-palette.md changes a hue-family, this seed-data follows.
|
||||||
INSERT INTO trait_colors VALUES
|
INSERT INTO trait_colors VALUES
|
||||||
('sophrosyne', '#4A7C9E', 216, 'steady', 'Sophrosyne-blue', 'cool, composed, measured'),
|
('eros', '#D03030', 0, 'flame_flicker', 'Eros-red', 'reaching, flame-flicker'),
|
||||||
('dikaiosyne', '#B8860B', 42, 'weighted_pulse', 'Dikaiosyne-gold', 'grave, weighty, judicial'),
|
('philotes', '#E0802C', 28, 'warm_pulse', 'Philotes-orange', 'attachment, warm-pulse'),
|
||||||
('philotes', '#E8848C', 355, 'warm_pulse', 'Philotes-rose', 'attachment, embrace-ready'),
|
('aletheia', '#E5C520', 50, 'luminous', 'Aletheia-yellow', 'unconcealed, bright (Aletheia is yellow, NOT white — see ../style/trait-palette.md §The achromatic exception)'),
|
||||||
('mnemosyne', '#6B4E9C', 266, 'depth_shimmer', 'Mnemosyne-violet', 'memory-lit, twilight'),
|
('kairos', '#90C530', 80, 'lightning_flicker', 'Kairos-chartreuse', 'opportune, lightning-spark (yellow-green at 4:30 on the wheel)'),
|
||||||
('aletheia', '#F0EEEB', 30, 'luminous', 'Aletheia-white', 'unconcealed, bright'),
|
('sophrosyne', '#30A050', 138, 'steady', 'Sophrosyne-green', 'composed, measured, even-pulse'),
|
||||||
('kairos', '#F5D540', 50, 'lightning_flicker', 'Kairos-yellow', 'opportune, sparking'),
|
('dikaiosyne', '#2860B0', 215, 'weighted_pulse', 'Dikaiosyne-blue', 'judicial, weighted, grave'),
|
||||||
('moira', '#7A2323', 0, 'slow_thread', 'Moira-crimson', 'fate-thread, bound'),
|
('moira', '#6020A0', 270, 'slow_thread', 'Moira-violet', 'fate-thread, slow-undulation'),
|
||||||
('eros', '#E05030', 10, 'flame_flicker', 'Eros-orange', 'reaching, flushed');
|
('mnemosyne', '#A04060', 340, '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).
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -64,20 +64,13 @@ Color is **pre-verbal vocabulary**. Players learn the 8-Hellenic-trait ontology
|
|||||||
|
|
||||||
### The eight Hellenic traits → canonical colors
|
### The eight Hellenic traits → canonical colors
|
||||||
|
|
||||||
(Final color choices are dafit's artistic call; the architecture encodes the mapping.)
|
The canonical color + wheel-position + motion-signature mapping per trait is authored in [`../style/trait-palette.md`](../style/trait-palette.md) §The full table — color + motion-signature + description per trait, with oppositional-pair structure detailed in §The wheel — 4 oppositional pairs at 180°. **Per the import-don't-redefine discipline** (per [`../style/trait-palette.md`](../style/trait-palette.md) §Cross-domain rendering: *"All sub-guides import these definitions; none redefine them."*), this document does **not** restate the table.
|
||||||
|
|
||||||
| Trait | Canonical color (suggested) | Motion-signature (accessibility pairing) |
|
The architecture-relevant claims this document needs from the palette:
|
||||||
|---|---|---|
|
|
||||||
| **Sophrosyne** (self-control, moderation) | Cool blue | steady, even pulse |
|
|
||||||
| **Dikaiosyne** (justice, bearing) | Deep gold | weighted slow pulse |
|
|
||||||
| **Philotes** (attachment, love) | Warm rose | breath-rate warm pulse |
|
|
||||||
| **Mnemosyne** (memory) | Deep violet | depth-shimmer |
|
|
||||||
| **Aletheia** (truth, unconcealment) | Luminous white | clear, no pulse — still and bright |
|
|
||||||
| **Kairos** (right-timing, opportunity) | Bright yellow | lightning-flicker |
|
|
||||||
| **Moira** (fate, pattern) | Dark crimson | slow-thread undulation |
|
|
||||||
| **Eros** (longing, reaching) | Flame orange | uneven flame-flicker |
|
|
||||||
|
|
||||||
Color paired with motion-signature ensures color-blind accessibility — the trait is uniquely identifiable via two independent channels.
|
- **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*.
|
||||||
|
- **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).
|
||||||
|
|
||||||
### Three layers of color-rendering
|
### Three layers of color-rendering
|
||||||
|
|
||||||
@@ -91,18 +84,18 @@ Color paired with motion-signature ensures color-blind accessibility — the tra
|
|||||||
|---|---|
|
|---|---|
|
||||||
| **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-rose flattens to commercial-pink; Aletheia-white sterilizes; Moira-crimson commercializes. *Aletheia-vision* in net pierces this distortion to reveal true colors beneath |
|
| **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.) |
|
||||||
|
|
||||||
### Faction color-politics
|
### Faction color-politics
|
||||||
|
|
||||||
| Faction | Color signature |
|
| Faction | Color signature |
|
||||||
|---|---|
|
|---|---|
|
||||||
| **Memorialists** | Mnemosyne-violet ritual dress; Moira-crimson accents; often inherited-from-deceased |
|
| **Memorialists** | Mnemosyne-dusky-rose ritual dress; Moira-violet accents; often inherited-from-deceased |
|
||||||
| **Aletheia-wakers** | Aletheia-white plain avatars; coded-white flashes for recognition |
|
| **Aletheia-wakers** | Aletheia-yellow plain avatars; coded-yellow flashes for recognition |
|
||||||
| **Caste-preachers** | Dikaiosyne-gold vestments + Sophrosyne-blue undertones |
|
| **Caste-preachers** | Dikaiosyne-blue vestments + Sophrosyne-green undertones |
|
||||||
| **Hivemind enforcers** | Cold Dikaiosyne-gold + muted-white (Aletheia-stolen) |
|
| **Hivemind enforcers** | Cold Dikaiosyne-blue + muted-yellow (Aletheia-stolen) |
|
||||||
| **Scavengers** | Moira-crimson + Kairos-yellow streaks |
|
| **Scavengers** | Moira-violet + Kairos-chartreuse streaks |
|
||||||
| **Clasp-underground** | Dual Philotes-rose + Eros-orange flashes (mutual-recognition signal) |
|
| **Clasp-underground** | Dual Philotes-orange + Eros-red 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
|
||||||
|
|||||||
Reference in New Issue
Block a user