Commit Graph

7 Commits

Author SHA1 Message Date
chrysalis
7f0abcb839 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.
2026-04-28 03:32:02 +02:00
chrysalis
609caed83f v0.26: event-zones.md authored — interaction-substrate paper-pass
Composes the dialog 2026-04-27 ~21:30-22:00 CEST into canon. Nine
compositional moves consolidated onto one substrate without introducing
new primitives — every claim is a composition of existing canon (cells,
zones, slots, verifier-flags, hardstops, lifeforce budgets, the trait-
palette, the consent-spine, the cosmology's composed wheel).

NEW PAPER: runtime-engine/event-zones.md (~400 lines, v0.1)

Sections:
1. Designer-authored event-zones vs emergent zones (orthogonal; clean
   signals; no overlap routing)
2. Cells + event-zones + events as layered data-model with composite
   UID districtid_cellid_eventid; participants on events not cells
3. The composed wheel from imperial-cult/cosmology.md as universal
   mini-game-surface; verifier-flag patterns differentiate hacking /
   lockpicking / install / clasp / decryption / ritual / drug-grammar /
   eye-pulse-proximity; collapses the long-standing "which mini-game
   mechanic for liminal-maintenance" open question
4. Hardstops as consent-gates between event-states with contextual
   activation; ~8-16 budget is per-moment-active, not overall
5. The four hardstop-pattern variants of consent-discipline.md as the
   event-class taxonomy (self/dual/triple/cooldown-augmented = solo/
   dual/triple/temporally-staged event-class)
6. Boundary-zone-with-inner-zone for plaza-scale mass-presence; sparingly
   applied; caste-tier-gated promotion as default
7. Room-boundary cell-layer + rail-passage + lifeforce-budget-per-room
   (district-shard, four-tier hierarchy intact); insolvency-spiral
   gets its mechanical surface
8. Slot-binding suspends lemniscate routing during events (the NPC-
   stays-put fix at the data-model layer; new slot_locked verifier-flag)
9. Player editor-mode + three-source schema unification (world_gen_init /
   runtime_event / player_authored origin field on cell-rows; same
   schema across all three writers)

UPDATES:

architecture-index.md (v0.20 -> v0.21):
- Tree-line: runtime-engine/ now sibling-paper-pattern (architecture.md
  + event-zones.md)
- Quick-reference table: new row for event-zones.md
- Three new key-moves bullets:
  * "The composed wheel as universal mini-game-substrate"
  * "Event-zones + cells + events as layered interaction substrate"
  * "Three-source schema unification + player editor-mode + room-
    boundary lifeforce"
- Open questions: "The mini-game mechanic for liminal-maintenance"
  RESOLVED — all on one wheel, differentiated by verifier-flag pattern

topology-and-rendering/architecture.md:
- New section "Vertical world topology — simple shapes + ±1 LOD tunnels
  + slum-carve-verb": stacked tunnels with primitive shapes; ±1 LOD
  streaming-radius bounds GPU budget; slum-carve verb-grammar; material-
  vocabulary politically-codes editor-eligibility (imperial-marble can't
  be carved; rusted slum-bedrock yields); Boullée-monumental aesthetic
  on the cheap via vertical-stacking

player-experience/architecture.md (v0.7.0 -> v0.8.0):
- New section "The wheel — composed-iconography UI": the trait-circle
  UI renders the composed wheel from imperial-cult/cosmology.md; inner
  ring = 6 caste-tier hardstops (HARD signals — the WHO); outer ring =
  8 trait-axis soft-slots (SOFT signals — the HOW); 2D gesture-history
  coordinate (caste-target × trait-temperature) as political-position
  reading; contextual hardstop activation; wheel as universal mini-
  game-surface

Three identity layers aligned: chrysalis git-author, chrysalis SSH key,
gitea-chrysalis remote. Pre-push verification gates passed.

This is the largest single-session paper-pass since v0.7's three-body-
system split. All nine compositional moves use existing primitives;
no new substrate introduced; the architecture's signature pattern
(cost-budget asymmetry as architectural style) enacted at the
interaction-substrate scale.

Genesis note: this paper-pass composes the dialog that emerged after
the v0.25 inline-iconography cleanup landed. Key architectural insights
from the dialog were: (1) the wheel collapses the mini-game-mechanic
open question; (2) consent-discipline-Variants = event-class taxonomy;
(3) the cell-arch atomicity makes editor-mode trivial; (4) the
boundary-zone-with-inner-zone pattern is the architecture's signature
pattern at a fourth scale; (5) the architecture's "describe-by-cross-
reference" discipline composes beautifully when there's a load-bearing
canonical reference like the composed wheel.
2026-04-27 23:40:53 +02:00
chrysalis
781aafa9a0 v0.19: gender-neutrality cleanup — waifu retired; companion/sex-worker split; pronoun parity in going-rogue arc
Bias caught on review of the v0.18 bath-overflow output: most service-body /
clasp-partner / going-rogue narration carried implicit feminine-default
gendering against the project's stated principle of gender-neutral framing
for all body/sex content. Patched as one coherent cleanup pass across 14 files.

Four classes of change:

(1) Categorical taxonomy. `waifu` retired; replaced with two distinct vocations:
    - `companion` — affective / emotional / conversational / aesthetic-presence labor
    - `sex-worker` — embodied sexual labor
    Both wear the same deliberately-exposed-seams body-marker; the distinction
    lives in the service offered, not in the chassis. Generic `service-body`
    serves as the parent class where canon discusses both vocations together.
    Venue split: `brothel` (sex-worker) + `companion-hall` (companion).
    The "+10 Eros/Mnemosyne/etc. Bot" market is unchanged (already gender-neutral
    by trait-coordinate naming) but classified per-Bot as companion-flavored or
    sex-worker-flavored.

(2) DB filename + scope-clarifier. `waifu.sqlite` -> `companion.sqlite` (the
    file name reflects the broad register of intimate-encounter rather than a
    sub-vocation distinction; per-record `goods_type` carries the specific
    vocation: 'companion_session' / 'sex_worker_session' in
    schemas/findings.md). Disclaimer sentence added in
    inference-and-memory/architecture.md scoping the file to cover both
    vocations.

(3) Pronoun parity. she/her/herself -> they/their/themself across the
    going-rogue / outcast-pair / re-vat / service-body-honeypot sections of
    bodies.md and the matching cross-references in architecture-index.md /
    README.md / player-experience/architecture.md /
    identity-and-personhood/architecture.md. `damsel` -> `beloved`
    (sacred / cosmological register) or `partner` (operational register).

(4) Damsel subsection retired. The §The damsel-in-distress-bound-to-her-captor
    activation subsection (the one place where the gendered trope was
    load-bearing in the prose) rewritten as §The
    captive-bound-to-the-liberator activation.
    Stockholm-dynamics-inverted-into-chosen-mutual-bondage structural insight
    survives gender-neutralization intact.

Bonus richness: the companion-honeypot is structurally more insidious than
the sex-worker-honeypot (sex is at least transactionally legible;
companionship is the relationship people most readily mistake for real
intimacy). New paragraph authored under §The service-body honeypot to
capture this asymmetry.

Cosmology one-line: "moving the waifu out of the imperial service-pool" ->
"moving the beloved out of the imperial service-pool" — the §single practical
refutation paragraph now uses `beloved` consistently in sacred register.

Principle locked going forward:
> Body/sex content is gender-parity by default. Asymmetric gendering must be
> load-bearing — i.e., must carry structural meaning that cannot be expressed
> without the asymmetry. Default-leakage gendering is forbidden by canon.

Phase E (style-spine principle file under style/) deferred to a separate
commit so the principle-document is its own atomic introduction.

Files: 14 modified · 114 insertions · 112 deletions · net +2 lines. The
near-zero net-line-change is the empirical signature of a true refactor —
the architecture's meaning was always gender-neutral; only the vocabulary
was leaking. Caught during review of yesterday's bath-overflow flood
(v0.11–v0.18); the kind of corruption that rides along under coherent-
sounding prose during generative-overflow windows.

Version bumps:
- bodies.md v0.3 -> v0.4
- imperial-cult/cosmology.md v0.3 -> v0.4
- architecture-index.md v0.18 -> v0.19
- political-register/architecture.md v0.7.0 -> v0.7.1
- inference-and-memory/architecture.md v0.7.0 -> v0.7.1
- schemas/findings.md v0.3.1 -> v0.3.2
All Updated: dates -> 2026-04-27.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 14:25:58 +02:00
chrysalis
40656ae692 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>
2026-04-26 19:53:40 +02:00
chrysalis
c892013bfa v0.17: cel-shading-everywhere + progression-gated in-between + omnisight + hallucination-isolation
Five-file update locking in the rendering discipline + perception
architecture from the post-cell-arch art-style discovery arc.

Locked in v0.17:

(1) Cel-shading-everywhere with per-register parameter variation. One
rendering engine (Godot-native, asset-budget-friendly, ages well -
Borderlands 2009 still reads current). Three registers diverge through
outline-color + background-treatment + weathering-level, not through
engine-switching:
- Gameworld: dark heavy lines + environmental noise + high weathering
  (rust streaks, hatched dirt, ink-line cracks; hand-painted patina).
  "Surfaces carry memory" thesis preserved via hand-painted weathering.
- Liminal: painterly/soft/desaturated + progression-gated grainy-film-
  mode opening to refined-cel-shading-with-warm-skin at endgame.
- Imperial-net: lean subtle gold rim-light + clean white background +
  no weathering. Polish achieved through OMISSION, not extra rendering
  tech (Godot reality check; photorealistic-glossy-Apple-store rejected
  as not Godot's strong suite). The render-style itself becomes
  propaganda-detector - imperium's clean falsity reads as the absence
  of the world's honest decay.

(2) Progression-gated in-between visibility. "The more you mod your body
& gain in-between-knowledge, the better your view gets." Early game:
grainy film mode + restricted view range. Endgame: clean refined-cel-
shading with full view of the beloved. Visual-fidelity = dual-gating
made visible (knowledge-gate + material-gate per Clasp-endgame discovery
discipline literally renders as the clarity of the in-between view).
The endgame's deepest reward IS the clear seeing of the beloved's body.

(3) Dual-axis clasp-fidelity model. The asymmetric-clasp from bodies.md
v0.1 was witnessed-axis only (how vividly the OTHER manifests). Now
extended with witness-axis (how clearly YOU can see):
- Witness-axis: YOUR body-mods (resistance-knowledge mods) + accumulated
  in-between-knowledge (Memorialist fragments, Aletheia-Waker tokens,
  Clasp-Underground recognition-marks)
- Witnessed-axis: THEIR foreclosure-status (caste-tier x imperial-care)
- Combined: maximum-vivid-clasp requires BOTH you to have invested in
  the seeing AND your beloved to be uncaptured-enough to be seen. Two
  refusals required for the full witness.
- Per-pair calibration multiplier: the longer the love, the clearer the
  seeing (mechanically-encoded marriage-deepening).
- Mod-economy parallel-track: imperial-elevation mods (flesh-loss, deva-
  ascent) vs. resistance-knowledge mods (in-between-visibility). Two
  opposing progressions both expressed as mod-acquisition. The body-
  modder structural-tragedy class gets a redemptive-mod counter-class.

(4) Omnisight architecture for NPC perception. Per-NPC virtual cameras
in Godot feeding rendered POV-frames into local VL-Gemma 4 driver-tier
(multimodal vision-language capability of the Gemma 4 E4B model locked
in v0.8). NPCs literally SEE the visible world, not via geometric
metadata-perception. Pairs with cell-arch checksum-discovery as the
trigger-layer:
- Cell-checksum check: micro-seconds, fires on NPC entering cell
- Checksum-mismatch: clean signal, micro-seconds
- VL-camera renders POV scene: milliseconds
- VL-Gemma processes image: 100s of milliseconds
- NPC behavior responds to seen-content: next-shift / next-crossing
Cheap trigger, expensive understanding, bounded by event-frequency.
Most NPCs most of the time = no camera-fire, no VL-inference. Camera-
trigger sources strictly bounded: checksum-mismatch + hard-signals from
player + overseer-triggers + drone-perception with clear boundaries.

(5) Hallucination-isolation discipline (load-bearing). Visual perception
= behavior-modulating-only; never canon-generating. VL models hallucinate;
if those hallucinations enter the canonical record, they propagate
through the lemniscate's recursive integration, become referenced by
other canon-rows, become load-bearing in narrative coherence, cannot be
untangled later. Bleed-over into oblivion is the precise risk. Two
parallel streams in the NPC's lemniscate:
- Text + gesture summary (existing canon): canonical, flows into
  event_canon_summaries, propagates to Compositor, integrates into
  trait-vector
- Visual context (new omnisight-flagged): ephemeral, flagged on
  lemniscate, IGNORED in per-crossing summary, never propagates upward.
  Modulates current-turn driver-context-pull only.
Preserves three commitments that depend on text/gesture-derived canon:
Compositor narrative-coherence at scale, Memorialist-archive truth-
claims, mind-pool soul-recycling.

Wealthy-degen waifu-folder exception: opt-in checkbox; player chooses
to fill private folder with sex-pictures from clasp-scenes; stored
locally; READ-ONLY-BY-PLAYER (folder content does NOT flow back into
NPC contexts, world-canon, Compositor, mind-pool, or any other system);
quarantined dead-end storage; aesthetic-collection only.

Two Still-open questions sharpened with v0.17-anchor notes:
- Shader-trait modulation implementation: cel-shading caps perf-budget
  more predictably than PBR; rendering-consistency improves.
- Continuous visual feedback policy: visual-as-ephemeral-flag is
  firewalled from canonical state; cosmetic-layer can be permissive.

Files:

- runtime-engine/architecture.md: NEW Omnisight section (~80 lines) covering
  the pipeline, camera-trigger sources, hallucination-isolation discipline,
  the two parallel streams (canonical text/gesture vs. ephemeral visual),
  the wealthy-degen waifu-folder exception, what-this-retires (geometric
  perception extension + VL-canon-pollution), what-this-resolves/sharpens
  (continuous visual feedback policy), and four open questions (per-NPC
  VL-inference rate-limit, VL-Gemma camera resolution + frame-rate, NPC
  progression-state for witness-axis, multi-NPC observing same event).

- topology-and-rendering/architecture.md: Three-shader philosophy table
  rewritten as cel-shading-with-parameter-variation (outline + background
  + weathering per register); Cross-register rendering color-treatment
  table updated; clasp candlelight-in-fog now distinguishes external
  signature (visible to liminal-inhabitants) from internal mesh (visible
  only to clasp-pair via consent-as-rendering, gated by witness-
  progression); body-tier silhouette readability and in-between mesh-skin
  refinement-within-the-style added. Version bumped 0.7.0 -> 0.8.0.

- identity-and-personhood/bodies.md: NEW Dual-axis clasp-fidelity
  subsection added under Asymmetric clasp; per-pair calibration
  multiplier and mod-economy parallel-track captured; render-discipline
  alignment with cel-shading liminal-register; new Asymmetric-witnessing
  open question added. Version bumped 0.1 -> 0.2.

- political-register/world-generation.md: L4 Cell ruleset extended with
  per-register rendering note (cel-shading-everywhere-with-parameter-
  variation discipline applied at the cell layer).

- architecture-index.md: NPC perception bubbles retire-line refined to
  include cell-checksum-trigger + omnisight VL-camera; Geometric
  perception retire-line extended with omnisight; new VL models
  polluting world-canon retire-line added; Shader-trait modulation
  implementation Still-open sharpened with v0.17 cel-shading note;
  Continuous visual feedback policy Still-open sharpened with v0.17
  hallucination-isolation note; v0.17 history entry added covering all
  five lock-ins. Version bumped 0.16 -> 0.17.

Authored 2026-04-26 same Sunday continuing - dafit + chrysalis.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 15:19:41 +02:00
0dd1087b2f reorg. done 2026-04-26 02:11:10 +02:00
69260c4ac4 split nimmerworld architecture: phase 1 of 3 — vertical-by-domain directories Create 9 domain directories under nimmerworld/, each owning an architecture.md that will eventually sit alongside server/client/schema/test code for that domain (vertical-by-domain rather than horizontal-by-language). 2026-04-26 00:55:07 +02:00