Skip to content

docs: rewrite README for humans; tighten demo prose - #34

Merged
the-simian merged 4 commits into
mainfrom
docs/documentation-improvements
May 17, 2026
Merged

docs: rewrite README for humans; tighten demo prose#34
the-simian merged 4 commits into
mainfrom
docs/documentation-improvements

Conversation

@the-simian

Copy link
Copy Markdown
Member

Closes #33.

Summary

  • README rewritten for humans, not LLMs: hero leads with the differentiator (one Coke ≈ 9.75 sugar cubes), "Build your own" reordered pedagogically (three primitive snippets → integrated ArPeeGee demo), Testing dropped from three paragraphs to three bullets, dead Settlers-of-Crouton links removed.
  • llms.txt absorbed the technical detail: forge pipeline ordering, validator contract, dimension brand, prefix-convention rationale, per-file mutation breakdown + survivor classification policy.
  • ArPeeGee shop demo now uses namespaced dimensions ('arpygee/coin', 'arpygee/goods') so it demonstrates the prefix convention by example; README prose explanation deleted.
  • Forge home page reordered: CoreApi (three primitive cards) above ArpyGeeShop (integrated demo). Matches README's teaching arc.
  • Cooking-kit prose tightened: header text 90→35 words, blurb in user's voice ("teaspoons, teacups, the usual suspects..."), comparison-machine intro one-sentence.
  • Soda food icons shrunk h-7→h-4, gap tightened so high-count rows (Coke 2L vs sugar cubes ~55) don't crowd.
  • All em dashes converted to semicolons or rephrased per CLAUDE.md house style.

Version bump

This PR will land as a patch (3.2.0 → 3.2.1):

  • docs: commit triggers patch per .releaserc.json rule { "type": "docs", "release": "patch" }.
  • feat(demo): and fix(demo): commits excluded per { "scope": "demo", "release": false }.

Test plan

  • bun run check clean (lint, typecheck, build, tests, knip, attw, publint)
  • Browser sanity via Playwright: home page reorder confirmed, cooking blurb updated, soda food icons smaller, ArPeeGee shop using namespaced dimensions
  • CI passes on push

User reading the README on npm reacted to LLM-slop patterns: over-
explained paragraphs, internal-lore Settlers-of-Crouton references,
seven-step pipelines crammed into one sentence, defensive caveats
stacked five-deep, em dashes throughout. Reviewer audits (the-nit +
oss-marketing-bro) confirmed; user's target is "this rules, here's
how you use it" - snappy enough a human can scan in 30 seconds.

README changes:
- Hero now leads with the differentiator: "One Coke ≈ 9.75 sugar
  cubes." Cross-dimensional and compile-time-safe surface immediately.
- Dead Settlers-of-Crouton demo links removed; "Build your own"
  points at the live ArPeeGee shop demo instead.
- "Build your own" reordered pedagogically: three primitive snippets
  (defineUnit / defineConversion / forge) first, integrated demo
  link second. Each snippet matches the corresponding card in
  demo/src/components/kits/forge/sections/core-api.tsx.
- "What this isn't" five-negation block replaced by one-line "Scope"
  paragraph; the Install section already carried the relevant facts.
- "Testing" section dropped from three paragraphs to three bullets;
  per-file mutation breakdown and survivor-classification policy
  moved to llms.txt.
- Custom-dimension prefix convention blockquote (95 words of
  defensive doc) deleted; the ArPeeGee demo now demonstrates the
  convention via its `'arpygee/coin'` dimension strings.
- linear() tree-shake foot-gun blockquote deleted; kit-author concern,
  moved to EXTENDING.md / llms.txt.
- Cross-dim 9-step pipeline (the worst single sentence in the file)
  deleted from README; full ordering moved to llms.txt.
- API section's validator return contract and (string & {}) brand
  explanation moved to llms.txt.
- Em dashes converted to semicolons or rephrased per CLAUDE.md house
  style.

llms.txt additions:
- New section: "Forge pipeline (cross-dim)" with the 10-step ordering.
- New section: "Validator contract" with return convention.
- New section: "Dimension type and the (string & {}) brand."
- New section: "Custom-dimension prefix convention" with rationale
  and the ArPeeGee demo as worked example.
- New section: "Testing" with example/fuzz/mutation detail, per-file
  mutation breakdown, and survivor-classification policy.
- Kits list now includes cooking (was stale).
- Three pre-existing em dashes converted to colons.

Closes substantial parts of #33.
…ump shop sliders

Three demo-side changes that pair with the docs rewrite (#33):

- Forge home page now shows CoreApi (the three primitive cards) above
  ArpyGeeShop (the integrated demo), matching the README's pedagogical
  order: see the primitives, then see them composed.
- ArPeeGee shop's COIN/GOODS dimensions go from bare 'coin'/'goods' to
  namespaced 'arpygee/coin'/'arpygee/goods'. The demo now demonstrates
  the custom-dimension prefix convention by example so the README's
  prose explanation can delete entirely. Downstream Unit<'coin', ...>
  types switch to Unit<typeof COIN, ...> so the literal-string update
  propagates without hand-editing every interface.
- Slider maxes bumped: SILVER_MAX 30 → 45, GOLD_MAX 6 → 45. The
  conversion's leverage (30 silver-base = 1 shield) feels real to the
  slider-scrubber when the maxes can reach double-digit shields.

CoreApi's intro text adjusted: "Arpy Gee Shop demo above" → "below" to
match the new positional relationship.
… dash

Cooking-kit demo prose audit (#33):

- Kit header text: 90-word paragraph reduced to 35 words. Dropped the
  NIST-factor sidebar and the LARGER/SMALLER caps that read like an
  LLM proving it knows the topic.
- Kit blurb (registry card): "culinary volumes; US/UK split for cup,
  tablespoon, teaspoon, and fluid ounce; stick of butter, dash, pinch;
  system + recipe machines" → "teaspoons, teacups, the usual suspects,
  but also international units, sugar comparisons, and more." User's
  preferred voice; matches the geometry/data-storage card rhythm.
- Comparison machine introZone: 60-word two-sentence intro reduced to
  one sentence. The per-pill `hint` fields already do the explaining
  the intro was duplicating.
- International comparator menu-pill hint: em dash converted to
  semicolon per CLAUDE.md house style.

Soda comparator food-icon cluster:
- Icon size: h-7 w-7 (28 px) → h-4 w-4 (16 px). ~57% linear / 33%
  area reduction; at high counts (e.g., 9.8 sugar cubes per Coke can,
  or 11+ for the 2 L bottles) the icons no longer crowd the row.
- MarchingIcons gap: gap-1.5 → gap-1. Tighter cluster keeps the
  visualization compact at every count.
@codecov

codecov Bot commented May 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (d305a0c) to head (0826b59).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##              main       #34   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           15        15           
  Lines         1465      1465           
=========================================
  Hits          1465      1465           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Reacting to review-the-nit + review-oss-marketing-bro on PR #34.

Must-fix (the-nit):
- README:162 + core-api.tsx:23 claimed (12 hsp × 8 hsp) area = 57.067
  sq ft; actual is 57.0659... which rounds to 57.066. Fixed in both
  surfaces so a reader copy-pasting the snippet sees the same number
  the live demo renders.

High-impact polish (oss-bro):
- "vs. convert-units" reframed. The version-status caveat was a
  defensive paragraph above the table; promoted the verdict to a
  bold lead-in ("unitforge catches dimension mismatches at compile
  time and ships cross-dimensional recipes; convert-units does
  neither, today or in 3.x"), demoted the version trivia to a <sub>
  footnote under the table. Same facts, different posture.
- "Build your own" intro no longer says the demo "stitches" the
  primitives ("stitches" is a tell that nobody says out loud).
  Also names ArPeeGee on first mention so the second link reads as
  callback, not jargon.
- "Build your own" closer dropped the "namespaced-dimension
  convention" clause; the link carries the lesson, the prose does
  not need to glossary-explain it.
- Tarball line bolded the headline number (52 kB packed) instead of
  burying it in prose.
- "For agents" renamed "For LLMs and agents"; one parenthetical
  names the use case ("Feeding this repo into Claude / Cursor /
  Copilot?") so humans reading READMEs to decide what to feed their
  agent recognize this is the section for them.

Deferred to #35:
- Memoize demo surface (own-scope; needs a new demo widget, not a
  README edit).
- TESTING.md split for mutation-survivor + per-file breakdown
  (optional reorganization out of llms.txt).
@the-simian
the-simian merged commit df691eb into main May 17, 2026
8 checks passed
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.

documentation improvements

1 participant