CB-WP-0011-T01: the inspector shows everything, and a gate says so
The renderer moves out of the play loop into inspect.rs and grows from 24 to 42 of the 43 leaf paths a populated GroundView carries. What it had been dropping was the whole DARVO state machine, the whole GROUND practice, the scoring mode, Focus tokens, the discard pile, per-seat protection, and every part of the outcome except the headline. The load-bearing half is every_view_field_is_classified, which walks the serialized view for leaf paths and requires each to be listed as rendered (with a token the output must contain) or omitted (with a reason). Paths rather than keys: 'problem' occurs under a DARVO target, a GROUND choice and a Selection, and a key-set walk would let one of the three vouch for the other two. Four M-D1-MUT controls, each red for its stated reason. The unclassified-field control fired for real on the first run -- players.*.hand, a field the gate's own author had missed.
This commit is contained in:
parent
c1d140626e
commit
d2ca1046c0
5 changed files with 624 additions and 125 deletions
|
|
@ -3,6 +3,7 @@ id: CB-WP-0011
|
|||
kind: product
|
||||
title: "Stage 1, first slice: an inspector that shows everything"
|
||||
status: todo
|
||||
state_hub_workstream_id: "1142442a-65f1-483a-800d-6ca8490c5f1a"
|
||||
---
|
||||
|
||||
# Purpose
|
||||
|
|
@ -75,8 +76,9 @@ form.
|
|||
|
||||
```task
|
||||
id: CB-WP-0011-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "b8cb4c20-9d06-47a4-890c-bf8390015439"
|
||||
```
|
||||
|
||||
Extend `render` to cover every field of `GroundView`, and — the load-
|
||||
|
|
@ -107,12 +109,33 @@ deal: most of the missing fields are empty at deal time, and a coverage
|
|||
test run against a state where the fields are absent is the same lie in a
|
||||
different costume.
|
||||
|
||||
**Done 2026-08-02.** The renderer moved to `tools/cb-play/src/inspect.rs`
|
||||
and now covers **42 of the 43 leaf paths** in a populated `GroundView`,
|
||||
up from 24. The one omission is `players.*.hand` — `null` for a
|
||||
non-viewer seat, where the absence is what `hand N card(s)` renders.
|
||||
|
||||
`every_view_field_is_classified` walks the serialized view for leaf
|
||||
*paths* (not keys — `problem` occurs under a DARVO target, a GROUND
|
||||
choice and a Selection, and a key-set walk would let one vouch for the
|
||||
other two). Four controls, each run and each red for its stated reason:
|
||||
|
||||
| control | result |
|
||||
|---|---|
|
||||
| a field deleted from `render` | `players.*.protection is claimed rendered, but the output has no "protect 2"` |
|
||||
| a field present in neither list | fired **for real on the first run** — `players.*.hand` |
|
||||
| the walk returns no paths (EXPECT-VACUOUS) | `the walk found 0 leaf path(s) — it is not walking the view` |
|
||||
| a classified path that no longer exists | `classified path(s) no longer exist in GroundView: ["outcome.nonexistent"]` |
|
||||
|
||||
The second is the one worth keeping: the gate caught a field I had missed
|
||||
while writing the gate, before it had ever been committed.
|
||||
|
||||
## Task: `cb-play --inspect` walks a recorded game
|
||||
|
||||
```task
|
||||
id: CB-WP-0011-T02
|
||||
status: todo
|
||||
priority: high
|
||||
state_hub_task_id: "08f8a9c7-3dfe-4f72-b510-df9efa457370"
|
||||
```
|
||||
|
||||
Stage 1 asks for a *debug inspector*. The inspector above renders one
|
||||
|
|
@ -143,6 +166,7 @@ hidden thing is actually hidden.
|
|||
id: CB-WP-0011-T03
|
||||
status: todo
|
||||
priority: medium
|
||||
state_hub_task_id: "db722865-1233-4918-952d-0bf4761199e4"
|
||||
```
|
||||
|
||||
Write `evidence/CB-EV-0009-inspectable-table.md` covering:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue