Skip to content

README.md has 35 characters of headroom: MAX_README_CHARS is the same whole-file lock retired three times already #498

Description

@localai-bot

The same lock, on the front page, tighter

MAX_README_CHARS = 30000 in
scripts/check-readme-structure.py:47
is a budget on a whole shared file. README.md measures 29,965 characters:
35 free.

AGENTS.md, Records: "Cap the entry, never the file" -- a budget on a shared
file turns every addition into evicting someone else's content, and merging two
such edits cleanly is worse than conflicting, because it applies both evictions.

Measured, over the last 20 commits that touched README.md

Free characters against the 30,000 cap:

commit free subject
031410e8 -52 docs(readme): News carries MXFP4 vLLM parity and the Vulkan...
5e0e83bf 2 feat(muse-glimmer): port the ATEM reasoning + tool parsers
1078355d 3 docs: align public backend and H3 coverage (#261)
c75a5f7e 8 build(BUILD-TRITON-DEFAULT-ON)
882ed8fa 9 fix(policy): repair main's two blocking gates
4d148122 12 feat(tenstorrent): BACKEND-TENSTORRENT W0
f64f2b71 35 docs: align release, ABI, and architecture claims (#372)

Thirteen of the last twenty sat under 60 characters free. 031410e8 landed the
file 52 characters over the cap. And there is a whole merged row whose
entire purpose was paying rent: row/DOCS-README-BUDGET (#161), plus
44206e47 "restore the landing-page budget after the MANIFESTO link".

That is the same shape as the three budgets already retired for this exact
reason:

README.md is tighter than any of them were.

Repair

Relocate the obligation the way #364 and #460 did, rather than deleting it or
adding slack:

  • Cap the entry. README's real quality defect is a section growing into an
    essay, not the file reaching a byte count. A per-section or per-paragraph
    budget bounds what an author writes and never charges them for what someone
    else wrote.
  • Keep the shape rules. check-readme-structure.py already enforces
    required sections and ordering; those count defects, not length, so two
    concurrent PRs do not collide on them.

Per AGENTS.md this changes a checker's semantics, so it needs its own spec, a
red-before test or mutation, and green-after evidence, with the mutation in
tests/scripts/test_check_readme_structure.py. Deliberately not fixed inside
#494
, which is scoped to the two benchmark-surface checkers.

Found while doing #460.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions