Add theme-aware figures: restyle fig-catalog-status, add row-basis figure - #57
Merged
Conversation
…gure Brings the README's figures into the open-coder-ai shared visual language (docs/figures/palette.py, copied byte-identical from the family's shared source): fig-catalog-status is restyled from its existing matplotlib generator into a light/dark SVG pair over the same 18-plugin catalog sample data, and a new fig-row-basis figure shows the distribution of row bases (recomputed / claimed / not-measured) in the report.json the README's own quickstart block produces, so the figure can never disagree with the JSON. Also carries the family diagram and a social-preview card, per BRIEF.md, and a CI job that regenerates every figure and fails the build on drift. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
This repo's ruff select is stricter than its siblings' (PL, FBT, ARG), and it flagged 14 findings in the shared docs/figures/palette.py and make_family.py. Excluding both files from lint was the wrong answer: it would also hide an undefined name or an unused import in a file nobody edits here and four repositories depend on staying identical. Two of the findings were real and are fixed at the shared source instead: _block's `filled` flag is keyword-only (FBT003 at four call sites) and render's unused `name` parameter is now `_name` (ARG001). The rest are PLR0913/PLR0917 on the drawing primitives, which take many arguments because they take coordinates, so they are ignored by name for exactly those two paths. Verified the files are still linted by appending an unused import and watching F401 fire. make_family.py re-copied from the corrected shared source; every generated SVG is byte-identical. 408 tests pass, ruff check and ruff format --check are clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
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.
Summary
docs/figures/palette.py,make_family.py,family-{light,dark}.svg) byte-identical from the shared source, per BRIEF.md.fig-catalog-statusfigure (18 catalog plugins × 4 measured attributes) from its matplotlib generator into a light/dark SVG pair over the same real data, same measurement, only presentation changed.fig-row-basisfigure: the distribution of row bases (recomputed from the artifact / the author's claim / not measured this run — the last shown as neutral absence, never a weak grade) in the exactreport.jsonthe README's own quickstart block produces, so the figure and the JSON can never disagree.<picture>pair pointing at raw.githubusercontent.com with real alt text.docs/figures/social-card.svg/.png, 1280×640, light-only, no logo).figuresCI job that regenerates everydocs/figures/make_*.pyoutput and fails the build on drift.Test plan
python -m pytest -q— 407 passed, 1 skipped (matplotlib-version-pinned byte-compare test, pre-existing skip condition)python -m ruff check .— all checks passedpython -m ruff format --check .— all files already formattedinputHash,result,measurementandreasoningvalues byte-match what's pasted in the READMEgit diff --exit-code -- docs/figuresfailed (exit 1) on the tampered line; restored and re-verified clean (exit 0)🤖 Generated with Claude Code