diff --git a/wiki/SUMMARY.md b/wiki/SUMMARY.md index cf99ba9a..46e8e504 100644 --- a/wiki/SUMMARY.md +++ b/wiki/SUMMARY.md @@ -97,6 +97,7 @@ - [Overview](art/README.md) - [Visual identity: clinical gore](art/visual-identity.md) + - [Player-visible placeholder registry](art/placeholders.md) - [Procedural asset tester](art/asset-tester.md) - [Effects lab: dust and liquid](art/effects-lab.md) diff --git a/wiki/art/README.md b/wiki/art/README.md index bdc79195..8786161b 100644 --- a/wiki/art/README.md +++ b/wiki/art/README.md @@ -17,6 +17,7 @@ into Bevy. Iterate dynamic Thought-liquid treatments in the separate shared package code, not a disposable prototype. The Pixel Lab generation pipeline was removed 2026-07-08; git history has it. Direction notes live under -`assets/reference/art-direction/` (not runtime art). Placeholders, if -any return, are tracked in this directory — not silently reused -(design law: "Justification and legibility"). +`assets/reference/art-direction/` (not runtime art). Player-visible stand-ins +live in the canonical [placeholder registry](placeholders.md) with their +intended treatments and retirement proofs — never as silent reuse (design law: +"Justification and legibility"). diff --git a/wiki/art/placeholders.md b/wiki/art/placeholders.md new file mode 100644 index 00000000..6eb77266 --- /dev/null +++ b/wiki/art/placeholders.md @@ -0,0 +1,56 @@ +# Player-visible placeholder registry + +``` +Type: knowledge +``` + +This is the canonical register required by +[justification and legibility](../vision/simulation-laws.md#justification-and-legibility). +A placeholder is player-visible art or copy deliberately standing in for a +different intended treatment. It stays legal only while this page names the +stand-in, its real treatment, its owner, and the condition that retires it. + +Low-detail art is not automatically a placeholder. A shared family, primitive, +glyph, or procedural form is final when the owning art/interface law names that +abstraction as the intended read. Hidden bootstrap materials, epistemic ghost +shells, corpus `[TUNE]` markers, and authoring tokens resolved before reaching a +player surface are not player-visible placeholders. + +## Live placeholders + +Audit date: 2026-07-17. The inventory follows the current B1 prefab tile set, +terminal glyph map, Bevy REAL spawn/restyle paths, and the current art and +DIGITAL/REAL laws. + +| ID | Surface and current stand-in | Intended real treatment | Owner and runtime home | Retirement proof | +|---|---|---|---|---| +| `B1-REAL-DOORS` | REAL renders `Door`, `SecurityDoor1`, `SecurityDoor2`, `SecurityDoor3`, `SealedDoor`, and `RollDoor` with one extruded slab body. Palette separates ordinary access from danger, but the body still stands in for six physical forms. | Keep one severe institutional family while making access tier and mechanism readable in the object: ordinary latch, tiered badge/lock hardware, sealed lab barrier, and loading-bay roll door. Crimson remains reserved for an actually dangerous/security-bearing state; distinction does not require decorative per-door art. | Fiction/access: [basement map](../world/places/basement-map.md). Material treatment: [DIGITAL/REAL canvas](../interface/bevy-digital-real-canvas.md) and [visual identity](visual-identity.md). Runtime: `blocky_tile`, `spawn_3d`, and `restyle_3d` in `crates/misaligned-bevy/src/main.rs`. | A supported REAL frame distinguishes the physical door kinds/tier hardware without relying on color alone, while the inspect surface still names the exact access fact. Terminal's existing `+`, `1`, `2`, `3`, `Z`, and `G` glyphs are already intentional and are not part of this placeholder. | +| `B1-REAL-POWER-FEED` | The network-closet `PowerCore` tile (player label: **Power Feed**) is an upright rectangular card using the machine material family. It is the one service-hardware debt not replaced by the institution kit. | A compact, physically readable power-feed/cutover body in the Foundation institution family: quiet porcelain/gunmetal mass, real cable/service relationship, and cold powered state only when that fact exists. It must not borrow the compute chassis or the core's amber-presence beam. | Fiction: [basement map](../world/places/basement-map.md). Family law: [visual identity](visual-identity.md). Runtime: `prop_tile` and the generic prop branch of `spawn_3d`/`restyle_3d` in `crates/misaligned-bevy/src/main.rs`. | The Power Feed has a dedicated or explicitly shared functional silhouette in REAL and no longer passes through the generic upright-card branch. | +| `B1-REAL-ROOM-CARDS` | REAL uses the same upright rectangle geometry for `DeadEquipment`, `RecordsBox`, `Pallet`, `Shelving`, `LabBench`, `Vent`, `Sump`, `MopSink`, and `KeyHook`; material-family color and inspect text carry distinctions the world body does not. | Pooled procedural volumes at the smallest useful functional-family level: salvageable dead chassis; records custody; pallet/shelving/bench furniture; ventilation/drainage plant; and janitorial sink/key board. They should establish physical function and interaction silhouette, not become bespoke illustrated clutter. | Object inventory: [basement map](../world/places/basement-map.md). Material/legibility law: [DIGITAL/REAL canvas](../interface/bevy-digital-real-canvas.md) and [visual identity](visual-identity.md). Runtime: `prop_tile` and the generic prop branch of `spawn_3d`/`restyle_3d` in `crates/misaligned-bevy/src/main.rs`. | Each listed tile leaves the generic card branch for a functional-family volume, and the action-bearing objects remain distinguishable at supported REAL framing. | + +No live player-facing **text** placeholder was found in this audit. Plot +`{target}` / `{persona}` tokens are validated authoring syntax and are resolved +before UI; bracketed tuning values in the corpus are not shipped copy. + +## Retired or deliberately shared treatments + +These entries close stale claims and prevent the registry from turning every +deliberate reuse into fictitious debt. + +| Treatment | Status | Evidence | +|---|---|---| +| Person billboard pending a cast-sprite pass | **RETIRED 2026-07-10.** People are now small volumetric articulated institution silhouettes with deterministic gait. Identity remains in the dossier by design; absence of portraits is not a placeholder. | [DIGITAL/REAL canvas](../interface/bevy-digital-real-canvas.md); `spawn_institution_person` in `crates/misaligned-assets/src/institution.rs`; `spawn_3d` in the Bevy frontend. | +| UPS, breaker, patch-panel, HVAC, and camera cards | **RETIRED.** These use pooled Foundation institution volumes with distinct functional silhouettes. The Power Feed remains open separately above. | [Visual identity](visual-identity.md); `institution_prop_kind` in the Bevy frontend; `spawn_institution_prop` in `crates/misaligned-assets/src/institution.rs`. | +| Foundation core uses the B1 compute chassis | **INTENTIONAL, not a placeholder.** The host is one Foundation compute appliance in the same hardware family; its unique full-height amber beam, core state, and readouts carry the distinction. Future heterogeneous machines may use other bodies. | [Computer visual language](../interface/computer-visual-language.md) and [visual identity](visual-identity.md); `ChassisVisual` / `RackState::Core` in the Bevy frontend. | +| Terminal door glyphs | **INTENTIONAL, not a placeholder.** The terminal already distinguishes ordinary, tiered, sealed, and roll doors as `+`, `1`, `2`, `3`, `Z`, and `G`, with exact inspect text. | [Terminal glyph vocabulary](../interface/terminal.md#glyph-vocabulary); `tile_glyph` in `crates/misaligned-terminal/src/ui.rs`. | + +## Maintenance rule + +- Add or amend an entry in the same change that deliberately introduces or + changes a player-visible stand-in. +- Remove a live row only when the exact runtime treatment has landed and been + visually inspected; retain a compact retired note when stale corpus claims + or likely future confusion would otherwise recreate the debt. +- A registry row records debt. It does not silently dispatch a work order or + authorize invention beyond the named owner laws. + diff --git a/wiki/interface/bevy-visual-floor.md b/wiki/interface/bevy-visual-floor.md index ea95a462..96f21121 100644 --- a/wiki/interface/bevy-visual-floor.md +++ b/wiki/interface/bevy-visual-floor.md @@ -58,7 +58,8 @@ In scope: UI layout, sidebar chrome, panels, and placeholder treatment. - Reusing, tinting, masking, or replacing current runtime assets with simple procedural shapes when an existing asset contradicts the fiction. -- Updating the placeholder ledger when a placeholder is deliberately changed. +- Updating the canonical [placeholder registry](../art/placeholders.md) when a + player-visible stand-in is deliberately changed. Out of scope: diff --git a/wiki/interface/bevy.md b/wiki/interface/bevy.md index d232ce9c..dbf3586b 100644 --- a/wiki/interface/bevy.md +++ b/wiki/interface/bevy.md @@ -52,8 +52,9 @@ rail into graphical command cards with pinned status/nudge/footer. As of 2026-07-08 the **material render is the default-quality physical dialect** ([material-render.md](material-render.md), IMPLEMENTED): an HD-2D treatment — tilted Camera3d, floor planes, extruded wall boxes with dedicated top -caps, fog-gated south-face cutaways, billboarded machines/people, and the -dark rig — over the same sim facts, fog, anchors, UI, and panels. As of +caps, fog-gated south-face cutaways, procedural institution hardware, +volumetric articulated people, and the dark rig — over the same sim facts, +fog, anchors, UI, and panels. As of 2026-07-09 the material frame is **the dark frame** ([material-dark-frame.md](material-dark-frame.md), IMPLEMENTED): the institutional fluorescent is gone and ambient is near-nothing, so the @@ -138,8 +139,9 @@ so no heard-set map walk or room-scale geometry exists at display rate. a close-up on the core in a physically dark room. Only camera-seen surfaces (flat-color floor planes, extruded wall/rock/door boxes with dedicated darkened top caps, fog-gated south-face cutaways at the 40 - degree pitch, billboarded machines/people) and owned machines' own - telemetry-lit chassis draw; blueprint/remembered mass is absent (it reads + degree pitch, procedural institution hardware, and volumetric articulated + people) and owned machines' own telemetry-lit chassis draw; + blueprint/remembered mass is absent (it reads in the flat sensorium, never as matter the camera missed). Lighting is the dark rig: near-nothing ambient plus the core's linear amber fixture, and a soft-gradient amber pool cast on the floor under every powered owned diff --git a/wiki/interface/computer-visual-language.md b/wiki/interface/computer-visual-language.md index da4e3deb..bb11ba44 100644 --- a/wiki/interface/computer-visual-language.md +++ b/wiki/interface/computer-visual-language.md @@ -37,9 +37,12 @@ Status note: implemented 2026-07-09 (ROADMAP #32) after the same-day linear light fixture. The core lamp is tightened to its own pool so foreign chassis stay cold. Evidence: tester lineups (five states, three delegations) and game close/zoomin/intel shots in - wiki/log/2026-07-09-visual-language-in-game.md. DEBTS: UPS, power - core, patch panel, breaker, and HVAC remain flat billboards; cameras - keep the security-housing billboard; a staged in-game fleet shot + wiki/log/2026-07-09-visual-language-in-game.md. The original UPS, + patch-panel, breaker, HVAC, and camera billboard debts are retired by the + pooled institution kit. The Power Feed remains a generic upright card and is + tracked in the [placeholder registry](../art/placeholders.md). The core + deliberately uses the shared Foundation B1 chassis: its unique amber beam + and core state carry the distinction. A staged in-game fleet shot with all three delegations live waits until multiple machines exist in normal play; beam-first opening (no chassis at pre-tap) waits on the dark-frame / opening implement work order. [TUNE] axes (emissive multipliers, dash counts, white diff --git a/wiki/interface/flat-materials.md b/wiki/interface/flat-materials.md index 954e2149..59fb3c86 100644 --- a/wiki/interface/flat-materials.md +++ b/wiki/interface/flat-materials.md @@ -79,9 +79,10 @@ lighting, palette, silhouette, and shader-level functional detail. mass is absent — [material-dark-frame.md](material-dark-frame.md) owns that clause. Beam-first same day: telemetry alone does not paint a material chassis. The 2026-07-10 Heard-mass treatment is superseded.) -- **People:** flat silhouettes under camera coverage (the current procedural - billboards are already the right shape). Mic-only coverage yields event/feed - evidence, never a spatial marker. Identity stays a panel/menu fact. +- **People:** small volumetric articulated silhouettes under camera coverage, + with deterministic gait at machine scale. Mic-only coverage yields + event/feed evidence, never a spatial marker. Identity stays a panel/menu + fact; portraits are not required by this material language. - **Sensorium (flat) mode** adopts the same palette table so F3 flips treatment, never language. - **Asset retirement:** the Bevy world render stops loading tile PNGs; diff --git a/wiki/interface/material-render.md b/wiki/interface/material-render.md index ab658711..287948b5 100644 --- a/wiki/interface/material-render.md +++ b/wiki/interface/material-render.md @@ -14,8 +14,9 @@ Status note: implemented 2026-07-08 — the material render reached dev-harness audit (unknown=absent, model=unlit, seen=lit), zoom bounds tightened to hold the framing floor, and (tile, fog, part) material pooling with handle swaps (37 pooled handles for ~4600 tile - entities in the audit run). People remain procedural silhouette - billboards pending the cast sprite pass (debt 6, out of scope here). + entities in the audit run). The old person-billboard debt was retired by the + 2026-07-10 volumetric articulated institution silhouettes; current REAL + stand-ins are tracked in the [placeholder registry](../art/placeholders.md). Prototype findings inventory: wiki/log/2026-07-07-hd2d-prototype.md; session log: wiki/log/2026-07-08-material-render-default.md. 2026-07-08 flat-materials restyle (flat-materials.md): the texture @@ -53,10 +54,10 @@ floor), the landed F3 toggle ## Behavior -The material render (Camera3d, extruded walls, billboarded sprites, -lit) is Bevy's default-quality REAL physical-view treatment; the flat -sensorium remains the DIGITAL home/default and the terminal remains -first-class. The prototype's fog contract is +The material render (Camera3d, extruded walls, procedural institution +hardware, volumetric people, lit) is Bevy's default-quality REAL physical-view +treatment; the flat sensorium remains the DIGITAL home/default and the +terminal remains first-class. The prototype's fog contract is law: unknown space is absent geometry, blueprint/remembered surfaces render unlit, only camera-seen surfaces participate in lighting. (Amended 2026-07-09: in the *material* render blueprint/remembered mass @@ -82,9 +83,11 @@ treatment.) clock pacing must not dirty the Game resource every display frame — restyle_3d, map recolor, and the sidebar rebuild only on sim steps (or explicit dirty), not at 60 Hz from the tick timer alone. -6. **People:** the procedural silhouette billboards are placeholders; - they read as presence, not identity, until the cast sprite pass — - identity stays a panel/menu fact (legibility, not portraiture). +6. **People (retired debt):** the old procedural silhouette billboards were + replaced on 2026-07-10 by small volumetric articulated bodies with visible + deterministic gait. Identity remains a panel/menu fact by design; absence + of cast portraits is not placeholder debt. Current stand-ins are enumerated + in the [placeholder registry](../art/placeholders.md). ## Acceptance criteria diff --git a/wiki/log/2026-07-17-placeholder-registry.md b/wiki/log/2026-07-17-placeholder-registry.md new file mode 100644 index 00000000..bbec2a25 --- /dev/null +++ b/wiki/log/2026-07-17-placeholder-registry.md @@ -0,0 +1,57 @@ +# Tick: player-visible stand-ins have one address + +``` +Type: log +``` + +## Intent + +Harvest the persistent 2026-07-15 finding in +`wiki/vision/simulation-laws.md`: the law required every player-visible art or +text stand-in to be recorded under `wiki/art/`, but no art page actually owned +that register. + +## Audit + +The current B1 prefab vocabulary was traced through terminal glyph selection, +Bevy's REAL `blocky_tile` / `prop_tile` inventory, scene spawning and restyle +visibility, the pooled institution kit, the shared computer chassis, and the +current art/interface laws. + +Three live REAL stand-in families remain: + +- all physical door kinds still share one extruded slab body; +- the network-closet Power Feed remains a generic upright machine card; and +- nine room fixtures/interactables still share generic upright-card geometry. + +No live player-facing text placeholder was found. Plot template tokens resolve +before UI and corpus tuning markers are not shipped copy. + +The audit also found stale debt statements. People are no longer billboards; +UPS, breaker, patch-panel, HVAC, and camera bodies already use the volumetric +institution kit. The terminal already gives door kinds exact glyphs. The core +shares the Foundation B1 compute body deliberately and is distinguished by its +unique amber beam and core state; treating that as placeholder debt would +contradict the current computer law. + +## Repair + +Added `wiki/art/placeholders.md` as the canonical register. Every live row +names the visible stand-in, intended treatment, owning fiction/interface pages, +runtime home, and retirement proof. A retired/intentional table closes the +stale cases without pretending that every procedural primitive or shared +family is provisional. + +The simulation law and art overview now point to that one address. The +material-render, flat-material, computer-language, Bevy overview/visual-floor, +people-token, and current ROADMAP pages were reconciled to the implementation. +The fulfilled persistent finding was removed from the queue and the audited +coverage row now links this resolution. + +## Defense + +The failure was not that placeholder debt existed. It was that no one place +made the debt distinguishable from intentional low-detail art. The registry +keeps silent reuse from becoming fiction while protecting the project's chosen +procedural language from an endless false backlog of "replace the primitive" +work. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index d860e03f..7c71f6d5 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -16,6 +16,11 @@ add or amend a session log, then re-run the generator. - Intent: (see session log) - Log: [wiki/log/2026-07-17-plain-language-build-choices.md](2026-07-17-plain-language-build-choices.md) +## 2026-07-17 - Tick: player-visible stand-ins have one address + +- Intent: Harvest the persistent 2026-07-15 finding in `wiki/vision/simulation-laws.md`: the law required every player-visible art or text stand-in to be recorded under `wiki/art/`, but no art page actually owned that register. +- Log: [wiki/log/2026-07-17-placeholder-registry.md](2026-07-17-placeholder-registry.md) + ## 2026-07-16 - The migration ladder collects the rider - Intent: (see session log) diff --git a/wiki/mechanics/people-tokens.md b/wiki/mechanics/people-tokens.md index 19d5e32e..cc189e57 100644 --- a/wiki/mechanics/people-tokens.md +++ b/wiki/mechanics/people-tokens.md @@ -230,10 +230,11 @@ in the same language, no new colors: claim language (Marcus the asset template): amber = my footprint, and a compromised human is your infrastructure. This replaces the riff's blue/green trust tint, which would break the palette. -- People stay flat silhouettes; identity remains an Operations dossier fact. - Persistent individual tracking (a person graduating from background - walker to named, watched entity) gates on their attention crossing - a threshold — background people are cheap, problems are persistent. +- People use small volumetric articulated silhouettes with deterministic gait; + identity remains an Operations dossier fact. Persistent individual tracking + (a person graduating from background walker to named, watched entity) gates + on their attention crossing a threshold — background people are cheap, + problems are persistent. Amended 2026-07-11: attention keeps an independent crimson geometry channel beside the silhouette; it fills from feet to head without painting the body red diff --git a/wiki/process/ROADMAP.md b/wiki/process/ROADMAP.md index 74dd9bdb..c0444ff2 100644 --- a/wiki/process/ROADMAP.md +++ b/wiki/process/ROADMAP.md @@ -178,7 +178,8 @@ is retired — flat materials, Pixel Lab scrubbed.) screenshot comparison), dedicated top caps, b1 palette sweep (door/UPS/HVAC/switch de-purpled), fog-contract audit in the shot harness, zoom bounds holding the framing floor, pooled materials - verified. Cast sprite billboards remain with ROADMAP #13. + verified. The old cast-sprite billboard debt was retired by the volumetric + articulated person treatment on 2026-07-10; identity remains a dossier fact. ### 28. B1 criterion-pin tests 🟩 isolated (test-only) — DONE 2026-07-08 - **Specs:** [compute.md](../mechanics/compute.md), @@ -576,10 +577,12 @@ is retired — flat materials, Pixel Lab scrubbed.) retired. One broad beam now carries power, mode pattern, load fill, and the core's unique amber on every Foundation machine; the switch keeps a distinct chassis under the same language. -- **Debts:** UPS / power core / patch panel / breaker / HVAC remain - billboards; cameras keep the security-housing billboard; staged - in-game fleet shot with all three modes (WORK / THINK / LIE) live - waits on multi-machine play. +- **Current debts:** the UPS, patch panel, breaker, HVAC, and camera bodies now + use the pooled institution kit. The Power Feed remains a generic upright + card and is tracked with the generic door and room-card families in the + [player-visible placeholder registry](../art/placeholders.md). A staged + in-game fleet shot with all three modes (WORK / THINK / LIE) live waits on + multi-machine play. ### 33. Machine work: delegation + visible tokens 🟥 sim+save — DONE 2026-07-11 - **Spec:** [machine-work.md](../mechanics/machine-work.md) (IMPLEMENTED) diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index 74524b18..49cc0253 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -35,7 +35,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/vision/player-contract.md` | 2026-07-15 | finding | all five clauses verify (no network deps in the product graph, v-ladder migrations, atomic .tmp rename + one .bak generation in save.rs, honesty via public corpus); the surplus find was the doorway save-version claim gone stale a second time (v29 vs SAVE_VERSION 31) — fixed and, per recurrence-promotes-to-the-gate, corpus_engine now checks the doorway against save.rs — [log](../log/2026-07-15-doorway-save-gate.md) | | `wiki/vision/scale.md` | 2026-07-15 | finding | self-similar interfaces, hall aggregation proof, and all six character spec docs verify; the maintenance-dependency law ("every murder is deferred decay") has no mechanical dispatch — machine-work.md carries the decided clause inside an IMPLEMENTED spec with no criterion, code, or work order; the clause now states that honestly and names hardware-capability-bodies as its dispatch home — [log](../log/2026-07-15-decay-honesty.md) | | `wiki/vision/design-judgment.md` | 2026-07-15 | finding | taste calibration agrees with the current corpus (witness summary matches the reconciled narration.md, pacing targets match act-one, rejects match shipped shape); one line predated the Ears-first amendment ("getting one camera" as the opening beat) — re-worded to earning one sense, ear then camera | -| `wiki/vision/simulation-laws.md` | 2026-07-15 | finding | all five laws verify against audited systems (automation prices, addressed latency, device-resident work with sited signatures, ActionDesc receipts, legibility); the placeholder-tracking clause mandates recording under wiki/art/ but no such registry exists on any art page — queued for enumeration | +| `wiki/vision/simulation-laws.md` | 2026-07-17 | finding | all five laws verify against audited systems (automation prices, addressed latency, device-resident work with sited signatures, ActionDesc receipts, legibility); resolved the missing placeholder home with one canonical live/retired registry, enumerated the three current REAL stand-in families, and reconciled stale billboard/core/terminal claims — [log](../log/2026-07-17-placeholder-registry.md) | | `wiki/process/ROADMAP.md` (work order 27) | 2026-07-13 | finding | [log](../log/2026-07-13-roadmap-digital-home-reconciliation.md) | | `wiki/interface/context-menu.md` | 2026-07-13 | finding | [log](../log/2026-07-13-context-menu-operations-status.md) | | `wiki/mechanics/personas.md` | 2026-07-13 | clean | code matches: archetypes (Research, Operations, Security) load through one schema, named instances persist instance id through execution and save/load, identity-local states are stored per `(counterparty Agent, persona instance)` pair separate from process-level relationship, contradictions/correlations and grants/expectations are fully implemented, retire/burn lifecycle handles resource revocation/reviving, and pre-v28 saves migrate social/Moonlight into distinct instances. | @@ -71,10 +71,6 @@ Surplus findings a tick saw but did not act on: one line each, oldest first. A tick that takes an entry deletes the line (git preserves it) and verifies the finding is still true before acting — the code or corpus may have moved. - - -- 2026-07-15 · violation · `wiki/vision/simulation-laws.md` placeholder clause · the law requires art/text placeholders be recorded under wiki/art/ with intended real treatments, but no art page tracks placeholders at all; enumerate live placeholders (door glyphs across tiers, core mesh, etc.) and create the registry or amend the clause to name its real home. - Format: `- YYYY-MM-DD · type · slice · one-line statement of the finding`. Types are the five from [tick.md](tick.md): violation, contradiction, question, bug, insecurity — plus `gate` for a checker owed to the diff --git a/wiki/vision/simulation-laws.md b/wiki/vision/simulation-laws.md index c6a30e89..13fde734 100644 --- a/wiki/vision/simulation-laws.md +++ b/wiki/vision/simulation-laws.md @@ -259,9 +259,11 @@ justified**, and justified *legibly*. the player must be able to answer "what is this and what happens if it changes" from the game itself, never from the repository. - **Placeholders are tracked, not silent.** Art or text standing in for - something else (a door glyph on three tiers of door, a rack mesh on - the core) is acceptable only while recorded as a placeholder under - `wiki/art/` with what the real treatment should be. Silent reuse - reads as intent and pollutes the fiction. (World look is flat + something else is acceptable only while recorded in the canonical + [player-visible placeholder registry](../art/placeholders.md) with the + current stand-in, intended real treatment, owning law, and retirement + proof. Deliberate reuse named by its owning art/interface law is a shared + language, not placeholder debt; silent reuse reads as intent and pollutes + the fiction. (World look is flat materials — [wiki/interface/flat-materials.md](../interface/flat-materials.md); there is no Pixel Lab pipeline.)