clay-borg/specs/OrnamentRegister.md
tegwick 627992bc85
Some checks failed
ci / check (push) Failing after 5s
CB-WP-0037 done: T03 classification and T04 evidence
Reading Player_Mats.csv and Glossary.csv — which O4 had forbidden
declaring about until they were read — found a rule. Player_Mats'
choice_rule column IS GR-R03: at Stress 4-5 choose ATTACK or GROUND unless
you spend a ready Freedom token. The engine's stress_gated and
allowed_under_stress_gate match it exactly, and now have a tripwire.

So Ornamentation.md gains §1.3: the unit is a column, not a file.
Classifying Player_Mats as ornamentation would have thrown a rule away
with the colour swatches. A mixed artifact is normal — a player mat is a
rule printed on a decorated card in the box too. O4 is rewritten and
re-grounded from provisional to rule accordingly.

O5, O6, O7 declared with falsifiers. O7's is not theoretical:
back_design_id is unread in four vendored files, and hidden information is
what card backs are for.

CB-EV-0029 answers T04's question per rule rather than as a count — yes,
every checkable clause — and states the reading that result does NOT
support: it shows GroundRules.md was a faithful secondary source for the
clauses with behaviour to check, not that the engine is correct.

10 of 19 files vendored. Nine still unread, and Rules_Text.csv is the one
that matters: every clause checked here was checked against our own
transcription of it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 00:33:24 +02:00

107 lines
5.7 KiB
Markdown

# Ornament register — what we claim does not matter
The declarations required by [`Ornamentation.md`](Ornamentation.md) §2.1.
**Every row is a claim that something does not affect the game.** This
project's finding register is largely a list of times that claim was
wrong, so each declaration carries a **falsifier**: the rule or
observation that would make it mechanism. A declaration that cannot be
wrong is not a claim (§2.1, invariant I5).
`grounded` is how the claim is supported — `rule` (the edition says so),
`measured` (we checked), or `provisional` (nobody has ruled, and we chose).
**`provisional` is a legitimate state and must be said out loud**; quietly
canonising a provisional default is a mistake this project has already
made once.
<!-- ornament-register:begin -->
| id | ornaments | grounded | state | raised |
|---|---|---|---|---|
| O1 | hand order | provisional | declared | 2026-08-07 |
| O2 | who shuffles and deals | provisional | declared | 2026-08-07 |
| O3 | where a seat is drawn | rule | declared | 2026-08-07 |
| O4 | card typography and illustration | rule | declared | 2026-08-07 |
| O5 | symbols and glyphs | provisional | declared | 2026-08-08 |
| O6 | colours and design tokens | provisional | declared | 2026-08-08 |
| O7 | card backs, bill of materials, print manifest | rule | declared | 2026-08-08 |
<!-- ornament-register:end -->
- **O1 — hand order.** The *contents* of a hand are mechanism; the order
the cards sit in is not. No numbered rule in `GroundRules.md` refers to
a card's position within a hand, and `PlayerView.hand` is a `Vec` whose
order comes from dealing, not from a rule.
**Falsifier:** any rule that refers to a card's position in hand —
*"play your leftmost"*, *"reveal the top of your hand"* — or any engine
behaviour that varies with it. Invariant I1 is the standing check:
sorting must not move `state_hash`, because a hash that moved would
break every trial note's binding (ADR-0019 D3) and every replay.
**This is the one that prompted the category**, from the request to
drag cards between hand slots.
- **O2 — who shuffles and deals.** The deck's permutation *is* mechanism
and comes from the seed; the ceremony around it is not. Nothing in the
rules names a dealer, and the hands are identical whoever performs it.
**Falsifier:** a rule that gives the dealer a decision, an advantage, or
an order of dealing that changes who receives which card. Note the deal
is **not** ornamental — only the ceremony around it is.
- **O3 — where a seat is drawn.** Seat *order* is mechanism: GR-R08
rotates Lead, so who follows whom binds. **Where a seat appears on the
drawn ellipse does not**, provided the drawn order preserves the
rotation order.
**Falsifier:** any rule referring to physical position — *"the player
across from you"*, *"your left-hand neighbour"* as distinct from the
next in rotation. This is `rule`-grounded rather than provisional
because GR-R08 states the ordering that binds.
- **O4 — card typography and illustration.** How a card looks does not
change what it does. **But it is not ours to invent**: ADR-0015's
discipline holds.
**Falsifier:** a card whose meaning is carried by its layout or art
rather than its text, which is a real possibility in a game about
perception.
**Updated 2026-08-08, and the earlier version of this row was wrong.**
It said nothing could be declared until `Player_Mats` and `Glossary`
were read, and treated both as ornamentation-bearing. They have now been
read, and **`Player_Mats.csv` carries GR-R03** — the stress gate — in
its `choice_rule` column. Both files are vendored as mechanism; what
remains ornamental on a mat is the symbol, the colour and the title,
which is why this row is now `rule`-grounded: the rules text lives in
columns we read, so what is left is demonstrably decoration.
- **O5 — symbols and glyphs.** `Symbols.csv` gives each concept a glyph,
an ASCII fallback and an icon brief. The engine names concepts in words
and never in glyphs, so nothing it computes can depend on them.
**Falsifier:** a rule that distinguishes two things only by their
symbol, or a `symbol_id` that appears in a rules text as the sole
referent for something. Note `symbol_id` is currently unread in **six**
vendored files, which is what this row licenses — and if that ever
becomes load-bearing this row is how we find out.
- **O6 — colours and design tokens.** `Design_Tokens.csv` is a palette
with usages. No rule refers to a colour, and seat colour is a label for
a seat the engine already identifies by `PlayerId`.
**Falsifier:** a rule keyed to colour — *"the red player leads"*, a
colour-coded suit — or a component whose identity is only its colour.
**Provisional**: nobody has ruled that colour is non-binding; we
observed that no vendored rules text mentions one.
- **O7 — card backs, bill of materials, print manifest.** `Back_Designs`,
`BOM` and `Print_Manifest` describe a physical print run: stock, cut
sizes, quantities to manufacture.
**Falsifier:** a *back* that distinguishes two decks the rules treat
differently — which is exactly what `back_design_id` would encode, and
it is unread in four vendored files. That is a real hazard rather than a
theoretical one: hidden information is what card backs are *for*, and a
game about concealment could easily make one load-bearing.
`rule`-grounded because the engine's hidden information is modelled from
the rules text (face-up/face-down, `Hidden` visibility), not from print
data.
## What is deliberately absent
**No row for animation, timing or movement.** Those are ornamentation, and
they belong to `clay-animate` (§3). A declaration here is a claim about
*the game*; how a renderer performs it is that renderer's business.