Skip to content

docs(readme): a second tagline line, and lead with what a stranger can check in ten seconds - #103

Merged
joyful-ii-V-I merged 2 commits into
mainfrom
lane/readme-rip-tagline-2026-09-10
Sep 10, 2026
Merged

joyful-ii-V-I merged 2 commits into
mainfrom
lane/readme-rip-tagline-2026-09-10

Conversation

@joyful-ii-V-I

Copy link
Copy Markdown
Collaborator

Two changes above the fold, plus a second line on the banner. No claim is dropped and no published number moves.

The banner gains a second line

"See the rip before you're in it." in #F2B84B — the hero's amber, the wire half of the wordmark — with a breaking wave at each end answering the surfboards on the line above. 21px against the first line's 30px, so it reads as the follow-through rather than a competing headline.

The wave took five attempts and the failures were all the same mistake, which is worth one line so nobody repeats it: a circular arc reads as a rainbow, a filled mound reads as a dune, and nested symmetric arcs read as an archway. What makes a wave read at 44px is asymmetry — a long gentle face on one side, a tight throwing lip on the other — so the shape here is a swept curve with a short tuck rather than any kind of arc.

The order above the fold

Now leads with what someone deciding whether to try this can check in ten seconds:

  1. Fifty years of software-engineering results, and research from last month
  2. Languages
  3. No API key. No embeddings. No index server. No daemon.

"The goal: one question, one complete answer" moves down to sit immediately above "Same answer, a fraction of the tokens", where the terminality argument is next to the table that pays it off. Its first paragraph — the actual claim — stays visible; the two paragraphs on the stair-steps fold behind a click. Terminality is the principle behind the numbers, and it lands better once you have seen one.

Three tightenings

  • The top said the same thing twice. The h2 and the sentence under it were one idea in two registers, and the reader paid for both before reaching anything checkable. Merged into one heading that keeps both halves.
  • The four negations are a badge row, not a section heading — docs/assets/no-deps.svg, four outlined chips in the wordmark's cyan. It is a local asset, deliberately, rather than shields.io: this project's whole claim is that it needs no network, and a README that fetches four images from a badge CDN to say "no daemon" argues against itself. Alt text and the SVG <title> carry the same four facts, so nothing is lost to a screen reader or a text-only view.
  • The lineage summary was ~340 characters — a wall of prose as the first thing after the banner, before the reader has clicked anything. Cut to ~250. The gated substring 46 repositories and 69 papers and the docs/LINEAGE.md link are untouched.

The Languages list stays in full, deliberately

It was tempting to collapse 23 names to a count plus a link, and that would have been wrong. A stranger scanning for their language is exactly who that line exists for, and "23 languages…" does not answer that question — the twenty-three names do. Same reason the card logos are at the checkout.


Verified on the exact tip: CI 26/26; readmedrift, readmeexample, deplangs and ripwirepublic green. The set diff against main's gate loop is empty — this lane adds no gate, so it inherits main's count of 577 and carries no count-collision risk.

🤖 Generated with Claude Code

joyful-ii-V-I and others added 2 commits September 10, 2026 06:35
…nd tagline line

Two changes, both above the fold.

THE BANNER gains a second line under "Paddle out with a map." — "See the rip before
you're in it." in #F2B84B, the hero's amber (the `wire` half of the wordmark), with a
breaking wave at each end to answer the surfboards on the line above. 21px against the
first line's 30px, so it reads as the follow-through rather than a competing headline.

The wave took five attempts and the failures are worth recording in one line, because
they are all the same mistake: a circular arc reads as a rainbow, a filled mound reads as
a dune, and nested symmetric arcs read as an archway. What makes a wave read at 44px is
ASYMMETRY — a long gentle face on the left and a tight throwing lip on the right — which
is why the shape here is a swept curve with a short tuck rather than any kind of arc.

THE ORDER above the fold now puts first what someone deciding whether to try this needs:

  1. Fifty years of software-engineering results, and research from last month
  2. Languages
  3. No API key. No embeddings. No index server. No daemon.

and "The goal: one question, one complete answer" moves down to sit immediately above
"Same answer, a fraction of the tokens", where the terminality argument is next to the
table that pays it off. Its first paragraph — the actual claim — stays visible; the two
paragraphs about the stair-steps fold behind a click. Nothing is deleted.

The reasoning: the first three are things a stranger can CHECK in ten seconds and that
decide whether to keep reading. Terminality is the design principle behind the numbers,
which is worth more once you have seen a number.

No prose was rewritten and no claim moved — this is ordering plus one <details>. The
count sentences the gates key on (46 repositories / 69 papers / 237 tools, the advertised
flag count, the cold-start invocation) are untouched and still in the same section, so the
drift arms still find them. readmedrift, readmeexample and deplangs all green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…gations, a tighter lineage line

Three tightenings above the fold. No claim is dropped and no number moves.

1. THE TOP SAID THE SAME THING TWICE. The h2 ("Give your coding agent a map before it
   reads the repo") and the sentence under it ("ripwire is the ripgrep of AI context")
   are one idea in two registers, and the reader pays for both before reaching anything
   checkable. Merged into one heading that keeps both halves — the positioning and the
   action — with the payload sentence left intact underneath.

2. THE FOUR NEGATIONS ARE A BADGE ROW, not a section heading. "No API key. No embeddings.
   No index server. No daemon." is four facts a reader checks at a glance; as an <h3> it
   read as a section you had to enter to learn anything. Now docs/assets/no-deps.svg —
   four outlined chips in the wordmark's cyan.

   It is a LOCAL asset, deliberately, rather than shields.io badges: this project's whole
   claim is that it needs no network, and a README that fetches four images from a badge
   CDN to say "no daemon" argues against itself. The alt text and the SVG <title> carry
   the same four facts, so nothing is lost to a screen reader or a text-only view.

3. THE LINEAGE SUMMARY WAS ~340 CHARACTERS — the first thing after the banner, a wall of
   prose before the reader has clicked anything. Cut to ~250: "seven papers published"
   loses its duplicate noun, and the trailing "all of it put into a single blazing-fast
   compiled executable" goes because the badge row now makes that point where a reader
   will actually see it. The gated substring "46 repositories and 69 papers" and the
   docs/LINEAGE.md link are untouched.

The Languages list stays in full, and deliberately. A stranger scanning for THEIR language
is the reader this line exists for, and a count with an ellipsis does not answer that
question — the twenty-three names do.

readmedrift, readmeexample, deplangs and ripwirepublic all green. Docs and one new asset
only; no gate added, so the published gate count is untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@joyful-ii-V-I
joyful-ii-V-I merged commit d2994c8 into main Sep 10, 2026
51 of 53 checks passed
@coderabbitai

coderabbitai Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 20f3ec15-7014-43ed-908e-ef037978a0b2

📥 Commits

Reviewing files that changed from the base of the PR and between 633a1d2 and 82ae035.

⛔ Files ignored due to path filters (2)
  • docs/assets/no-deps.svg is excluded by !**/*.svg
  • docs/assets/paddle-out.svg is excluded by !**/*.svg
📒 Files selected for processing (1)
  • README.md

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting


📝 Summary

Summary by CodeRabbit

  • Documentation
    • Restructured the README introduction for clearer positioning.
    • Moved the “one question, one complete answer” section into a collapsible details block.
    • Replaced a heading with an image conveying the same message through alt text.
    • Shortened the introductory details summary wording.

Walkthrough

The README introduction was restructured. Its main heading and details summary changed, a feature heading became an image, and the goal explanation moved into a later expandable section.

Changes

README presentation

Layer / File(s) Summary
Reorganize README introduction
README.md
The introduction heading and details summary were revised. The API and indexing statement became an image. The goal explanation and token-budget content moved into a new expandable section.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested reviewers: quaterniondrift, andriytyurnikov

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch lane/readme-rip-tagline-2026-09-10

Comment @coderabbitai help to get the list of available commands.

joyful-ii-V-I added a commit that referenced this pull request Sep 10, 2026
…oth by name

Rebased from 633a1d2 onto 6f91fed (#93 timsort, #102 uint8_t scanners, #103 README, #75 Dart).
Both of the failure modes this repo has recorded fired on this one rebase, in opposite directions.

1. SAME NUMBER, DIFFERENT MEMBERS — the silent one. main added `dartcheck` and this lane added
   `claudeconfigdircheck`, so BOTH sides' loops read 578 and all eight published sites auto-merged
   CLEAN at 578. Every count-comparison check passes on that, and it is wrong: `comm -3` on the two
   member lists shows one addition on each side, so the union is 579. Only test/regression.sh
   conflicted (loudly, and it was resolved as the union — main's line, with claudeconfigdircheck
   inserted, never `--ours`/`--theirs` on a file whose other rows merged correctly). The eight sites
   are corrected here per conflict block: README x2, docs/EVALS.md x3, present/deck5 x3. Incidental
   578s left alone: EVALS' `3 578 B` and `578/1 538`.

2. NEITHER SIDE OF A PIN CONFLICT IS CORRECT. test/printf_parity.manifest's `help_all` row
   conflicted because main moved it (Dart's flags widened --help --all) and this lane moved it (the
   --scan-skills entry now prints ${CLAUDE_CONFIG_DIR:-~/.claude}). main's value 886001ce is wrong on
   this tree and this lane's 648a6c05 is wrong on this tree; the merged tree's value is 6f808e43,
   which exists on neither side and is only obtainable by rebuilding after the merge. Re-pinned from
   a `--clean-first` build with UPDATE_GOLDEN_EXPECT=help_all: one row moved, 41 unchanged.

docs/COMMANDS.md regenerated on the merged tree for completeness — byte-identical to the auto-merge,
so the merge of main's Dart regen with this lane's help line was already right.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant