Skip to content

docs: restore the classification matrix and re-cut the graph for mobile - #862

Merged
EivMeyer merged 3 commits into
mainfrom
eivind/readme-graph-matrix
Jul 31, 2026
Merged

docs: restore the classification matrix and re-cut the graph for mobile#862
EivMeyer merged 3 commits into
mainfrom
eivind/readme-graph-matrix

Conversation

@EivMeyer

Copy link
Copy Markdown
Collaborator

Three fixes to the README architecture graph.

The classification matrix is back. It was dropped when the graph was sized down for the README column, on the grounds that its 10px axis labels fall under the type floor. That was the wrong call — without it the two conductors read as an arbitrary hand-off, and the matrix registers as a shape (a scan sweep, one rust cell) long before anyone reads the words. It now sits centred over the level-2 conductor: the sweep lands on UNCERTAIN, the escalation fires, level 3 resolves it to CRITICAL.

The REJECTED label was orphaned. It sat at x=392 while the rejection loop runs between x=586 and x=958 — floating text with nothing attached to it. Moved under the loop's low point, and the loop was raised slightly to open the gap.

The animation was slow on phones. Not a rendering bug — an encoding one. Animated WebP is CPU-decoded with no frame-dropping, so when a phone falls behind it stretches the animation instead of skipping ahead. The old encode made that worse two ways: it carried an alpha channel on 396 of 536 frames despite every source frame being opaque RGB, and wrote a full keyframe every ~5 frames.

before after
size (pair) 6.6 MB 1.3 MB
decoded per loop 252 MP 76 MP
alpha frames 396 0
fps 25 15

Width stays 1856px, so the retina supply ratio for an ~890px column is unchanged.

🤖 Generated with Claude Code

The README graph dropped the conductor's classification matrix when it was
sized down for the column, which left the two conductors looking like an
arbitrary hand-off. It is back, centred over the level-2 conductor: the sweep
lands on UNCERTAIN, the escalation fires, and level 3 resolves it to CRITICAL.

The REJECTED label sat at x=392 while the rejection loop runs between x=586
and x=958, so it read as unattached text. It now sits under the loop's low
point.

Re-encoded while the frames were being regenerated. The previous encode
carried an alpha channel on 396 of 536 frames even though every source frame
is opaque RGB, and wrote a full keyframe every ~5 frames. Animated WebP is
CPU-decoded with no frame-dropping, so that cost showed up on phones as an
animation that ran slow rather than one that stuttered. Opaque frames, sparse
keyframes and 15fps cut it from 252 MP decoded per loop to 76 MP, and the pair
from 6.6 MB to 1.3 MB. Same 1856px width, so the retina supply ratio holds.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Jul 31, 2026

Copy link
Copy Markdown

Greptile Summary

The PR refreshes the README architecture presentation.

  • Replaces the light and dark animated architecture assets.
  • Updates the diagram’s alternative text to describe the classification matrix and escalation flow.
  • Revises the accompanying caption to explain the conductor’s decision process.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
README.md Updates the architecture diagram’s alternative text and caption to match the restored classification and escalation narrative.
docs/assets/zeroshot-architecture-dark.webp Replaces the dark-mode animated architecture diagram.
docs/assets/zeroshot-architecture-light.webp Replaces the light-mode animated architecture diagram.

Reviews (3): Last reviewed commit: "docs: put the graph back at the native 3..." | Re-trigger Greptile

Eivind and others added 2 commits July 31, 2026 11:34
The bar spanned x 32..1022 while the rule directly above it spans 32..1088,
so it read as stopping 66px short -- the gap was the percentage readout
parked inline beside it. The bar now runs margin to margin and the readout
sits above its right end, flush with the same margin.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The 15fps cut in the mobile re-encode was the wrong lever. Decode cost tracks
total changed pixel area, not frame count -- slicing time finer makes each
delta proportionally smaller, and identical frames dedup away. Measured on the
same source: 15fps costs 75 MP per loop, 30fps costs 91 MP. A 21% increase,
not the 2x a frame count would suggest.

The mobile win came from dropping the alpha channel and the keyframe every
~5 frames, both of which stay. 30fps still lands 64% under the 252 MP that
was choking phones.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@EivMeyer
EivMeyer enabled auto-merge July 31, 2026 09:46
@EivMeyer
EivMeyer added this pull request to the merge queue Jul 31, 2026
Merged via the queue into main with commit fd29bad Jul 31, 2026
10 checks passed
@EivMeyer
EivMeyer deleted the eivind/readme-graph-matrix branch July 31, 2026 09:57
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 6.17.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant