The workflow told the model to look at the PNG but framed it as an aesthetic
glance, so the checks that matter were left implicit. Two failures this week
were semantic, not geometric: a component placed below another asserted a
dependency that did not exist, and a system that is fundamentally a loop was
drawn one-way. No geometric audit can catch either.
Split verification into clearing the audit and reviewing the image, and give
the review a checklist that reads the render as a set of claims — what the
picture says cold, what each arrow direction asserts, whether the return edge
is visible, whether shared colour means shared category.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The blanket ban on circular layouts was a documentation choice, not a limit of
the renderer, and it was too absolute: a cycle with no natural entry point reads
better as a ring than as a line with a return path.
The real defect was the audit. It queried only <rect>, so a ring diagram passed
with everything unchecked — circles could overlap and labels could sit outside
their shape with no warning.
- measure round nodes as ellipses: exact circle-circle separation instead of
bounding-box intersection, corner-distance test for label spill, and elliptical
containment for connector crossings
- open ring layouts up to 6 nodes, with the polar geometry, arc-gap angle and
sweep direction written down, plus a worked five-stage example
- make the visual pass an explicit second verification step: the audit measures,
reading the rendered PNG back judges order, aim, grouping and density
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Drop the self-generated SVG chart and its generator in favour of a static
export from star-history.com, committed as an image so GitHub's proxy can
serve it without a token.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The axis ran to the next round number, so empty headroom sat above the last
point and read as a ceiling the repo had stalled below. Top the scale at the
total itself; the line now closes in the corner.
Also remove the note about GitHub's stargazers restriction from both READMEs —
that is maintenance trivia for whoever regenerates the chart, and it belongs in
the script, not in front of readers.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
GitHub restricts the stargazers list to a repository's own admins and
collaborators, so the star-history.com embed can never work again: the README
image is fetched by GitHub's camo proxy with no token, and the token that
service asks for lives in the viewer's own localStorage. Adding one fixes your
personal view of their site, not the badge.
Read the timestamps with the owner's credentials instead and commit the
rendered chart. Light and dark variants are selected steps validated against
GitHub's actual README surfaces, served via <picture>.
Also fix --no-fit in the diagram renderer: it was documented but parseArgs
never declared it, and this Node version has no allowNegative.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
"npm root -g" inherits npm_config_prefix from a parent npm invocation, so
running the script through "npm --prefix <dir> run" made it report the skill
directory as the global root and the browser lookup failed. Strip npm's config
from the child environment.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Drawing a real diagram exposed three gaps in the guidance. The audit passed
cleanly on a layout that was flat, rigid and topologically wrong, because it
only measures overflow, overlap and crossings.
- state that nodes carry a ramp by default; `box` is for homogeneous sub-parts
inside one container, not a whole-diagram pattern
- drop the flat "2-3 ramps" cap that pushed toward neutral nodes; the real rule
is one ramp per category, never one per row
- add a Composition section for what the audit cannot see: uniform grids,
missing feedback edges, false stacking, and no visual subject
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Turn the draft prompt spec into a working skill under skills/.
The authored SVG now carries geometry and semantic classes only. render.mjs
drives headless chromium to inject the design system, resolve the theme, audit
the layout, crop the viewBox to real ink bounds, bake computed styles into
literal attributes, and write the PNG.
The audit catches the three failure modes that actually ruin diagrams: text
spilling out of its box, overlapping boxes, and connectors slicing through
unrelated nodes.
- assets/diagram.css: light and dark ramps behind four semantic slots
- references/: design tokens, diagram-type routing, a worked example
- register in the image-tools bundle and both READMEs
- drop the root draft, superseded by the skill (kept in 1ed6602)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Work-in-progress prompt spec, design-system CSS and rendered examples
for the Anthropic-style SVG diagram skill.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>