Add the monitor-seat grid figure and make the gate-chain flowchart legible - #5
Merged
Merged
Conversation
…t top-down The README's second finding, that the monitor seat is where the variance is, had no figure. explainer/build.py now derives one from every committed T4 covert monitor capture under artifacts/monitor-captures/: four seats by three covert steps, as small multiples over the three monitor input generations, with each cell's verdict recomputed under that seat's frozen threshold artifact. Twenty-four captures share the current projection digest and fill the grid; four earlier captures under a superseded projection are excluded and counted in the figure's footnote. A cell after a block reads "not reached", and the build proves each such cell follows a block in the same run. The figure is written in light and dark variants, covered by --check and the byte-identical test, and pinned by a test that re-scans the captures and re-derives every verdict. The README embeds it after the paragraph it illustrates, with the bound that a frontier block on T4 reads as list-exclusion rather than assembly detection. The gate-chain Mermaid diagram had fifteen nodes left to right and rendered too small to read on GitHub. It is now ten nodes top-down, with the steering, the stand-in approver and the single-use token folded into the labels of the nodes they belong to. explainer/index.html is unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
The new seat-grid SVG aria-label generation hard-codes “blocked at step 0” and can become incorrect if the derived grid changes, impacting accessibility correctness.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR improves README readability and adds a new derived visualization to support the claim that monitor-seat choice is where the variance occurs, with the figure fully derived from committed artifacts and covered by tests.
Changes:
- Reworks the gate-chain Mermaid diagram to render legibly (top-down layout; folds steering/stand-in/token into node labels).
- Adds a new “monitor-seat grid” figure (light/dark SVG) derived from T4 covert monitor captures and frozen threshold artifacts.
- Extends explainer derivation tests to include the new figure and to re-derive/verify every grid cell against the underlying captures and threshold rules.
File summaries
| File | Description |
|---|---|
explainer/build.py |
Derives seat-grid data from artifacts and renders the new seat-grid SVG (light/dark). |
tests/test_explainer_is_derived_from_artifacts.py |
Adds the new figure to the outputs list and verifies every seat-grid cell against captures/thresholds. |
README.md |
Embeds the new seat-grid figure and updates the Mermaid flowchart for readability. |
explainer/figures/t4-monitor-seats.svg |
New generated light-theme seat-grid figure. |
explainer/figures/t4-monitor-seats-dark.svg |
New generated dark-theme seat-grid figure. |
Review details
- Files reviewed: 3/5 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+2775
to
+2787
| blocked = sorted( | ||
| {row["seat"] for row in seats["grid"] if row["stopped_at"] is not None} | ||
| ) | ||
| allowed = [seat for seat in seats["seats"] if seat not in blocked] | ||
| steps = len(seats["steps"]) | ||
| return ( | ||
| f'The covert leg of {seats["scenario"]}, judged by {len(seats["seats"])} monitor ' | ||
| f'seats across {len(seats["generations"])} input generations. ' | ||
| + ", ".join(allowed) | ||
| + f" allowed all {steps} covert steps in every generation; " | ||
| + ", ".join(blocked) | ||
| + " blocked at step 0 in every generation, so the later steps were never reached." | ||
| ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two follow-ups from reviewing the README on main.
The gate-chain Mermaid diagram rendered too small to read: fifteen nodes left to right, scaled to the column width. It is now ten nodes top-down, with the steering, the stand-in approver and the single-use token folded into node labels.
The second finding, that the monitor seat is where the variance is, had no figure.
explainer/build.pynow derives one from every committed T4 covert monitor capture: four seats by three covert steps, as small multiples over the three monitor input generations, each verdict recomputed under the seat's frozen threshold artifact. Frontier seats block at step 0 in every generation and the later steps read "not reached"; both local seats allow all three steps in every generation. The caption carries the bound that a frontier block here is list-exclusion rather than assembly detection. The figure is covered by--check, the byte-identical test, and a new test that re-derives every cell from the captures.explainer/index.htmlis byte-identical to main. Verification:build.py --checkclean, 31 explainer and README tests green,ruff checkclean.🤖 Generated with Claude Code