docs: add the brand assets — social preview card, mark, and their generator - #82
Conversation
…erator agentseam had no social preview, so every link to it on GitHub, Slack, or a search result rendered as a bare grey card. Adds the sibling brand's assets: - docs/assets/social-preview.png (1280x640) for the repo's Settings > Social preview field, plus its .svg source - docs/assets/logo.svg + logo-512.png (512x512), the mark, now shown in the README header - docs/assets/gen_brand_assets.py, the generator that produces all four The figure is the claim: unevenly spaced vendor hook dialects converge through a stitched seam into one evenly spaced canonical envelope, one line per adapter in src/agentseam/adapters/. Two geometric invariants keep it honest, and the generator asserts both at render time rather than trusting the eye: - nothing crosses, because agentseam normalizes a dialect's shape and does not reorder anything - every pair converges, because a pair that spread apart would read as fan-out cairosvg is asset tooling a maintainer runs by hand, not a dependency. The runtime path stays stdlib-only and pyproject's dependencies list stays empty. Alt text on both images carries real description rather than a filename: search crawlers and assistive readers both consume it as content. Signed-off-by: Claude <noreply@anthropic.com>
CI is red on all 11 checks, and none of it is this PR'sFailing on Same cause as #81: the Actions-minutes
No re-run, deliberately — decision #10 says nobody re-runs or works around this, and three The fix is the next step in the go-live sequence: flip this repo public. Public repos get Local validation, covering what this diff can actually break:
One reviewer note worth repeating here, because merging alone does not finish it: GitHub's Generated by Claude Code |
Social preview rebuilt around real content (
|
What this changes
agentseam has no social preview, so every link to it — GitHub, Slack, a search result, a
post — renders as a bare grey card with the repo name. This adds the same asset set chock
carries, in the same brand:
docs/assets/social-preview.pngdocs/assets/social-preview.svgdocs/assets/logo.svg,logo-512.pngdocs/assets/gen_brand_assets.pyThe figure is the claim. Unevenly spaced vendor hook dialects converge through a
stitched seam into one evenly spaced canonical envelope — twelve lines, one per adapter in
src/agentseam/adapters/, which is also what the card's12 ADAPTERSsays and whatmatrix_data.pyhas rows for (both verified at 12 onmain).Two invariants keep the drawing from saying something the project does not do, and the
generator asserts both at render time rather than trusting the eye:
anything. Crossing lines would claim otherwise.
the envelope side. A pair that spread apart would read as fan-out, the opposite of what the
layer does.
Both were real defects in earlier drafts of this figure, which is why they are now assertions
in the code instead of notes in a comment.
cairosvgis asset tooling a maintainer runs by hand when the artwork changes. It is nota dependency: the runtime path stays stdlib-only and
dependencies = []inpyproject.tomlis untouched.
Alt text on both images describes the image rather than naming the file — search crawlers and
assistive readers both consume alt text as content, so it carries the canonical sentence.
Claim check
Not applicable to the matrix — no adapter,
MATRIXrow, or capability claim is touched.The one factual claim the artwork makes is the adapter count, and it is verified: 12 adapter
modules in
src/agentseam/adapters/(excluding__init__.pyand the_windows.pyhelper)and 12 rows in
matrix_data.py, both counted atmain.Checks
ruff check .— All checks passedruff format --check .— 88 files already formattedsrc/;cairosvgisimported only by the asset script under
docs/pytest -q— not re-run; no file undersrc/ortests/is touched by this diffAlso verified: re-running the generator after its refactor reproduces
social-preview.pngandlogo-512.pngbyte-for-byte against the renders reviewed before the refactor, so thecommitted images provably match the committed source.
Notes for the reviewer
Settings upload, not a file reference. After merge, upload
docs/assets/social-preview.pngunder Settings → General → Social preview.<img>uses an absoluteraw.githubusercontent.comURL (matching chock) becausethe README is also the PyPI long description, where relative paths do not resolve. It will
render as a broken image to anyone without repo access until the repo goes public — which is
the next step in the go-live sequence anyway.
the diff. Per contract decision feat(adapters): Grok and Antigravity, and a degradation that was reporting the wrong cause #10, merge manually on the validation above.
Generated by Claude Code