The phone shot stood alone as a 300px column, so it read as cut off at
one side. The desktop approval card and the phone sign-in are now one
composite (docs/demo/composite.py), and every README still is dark and
2x-captured, so the page reads as one product.
The document table lists user-facing documents; the README style notes
stay in docs/ for whoever edits the README.
Studied OpenClaw, ollama, Dify, AnythingLLM, Meetily, LobeHub, n8n:
logo, one-line pitch, language bar, badges, hero shot, install in the
first third as fenced blocks, quick start, architecture, a two-column
document table, short closing sections.
Both READMEs now follow that. What was breaking the page: a three-column
install table holding a 90-character URL (URLs cannot wrap, so the table
pushed the page sideways) and a 1414px PowerShell line inside a code
block. Install moved to code fences, the long line is wrapped, the
Windows hands snippet is one statement per line, and screenshots are
re-taken at 2x and downscaled to 960 px so they fit the ~980 px document
column and stay sharp on Retina. docs/readme-style.md records the rules
and how to check the render locally (marked + headless Chrome, measure
scrollWidth and pre.scrollWidth).
Both languages now open with what AnyBot does, in plain words, before
the install table and the flow diagram. The four stills are re-taken
from this build (shots/readme/) and tracked, since the READMEs point at
them; the old shots/ stayed ignored.