Update the LibreYOLO README
The README is the first five minutes a developer spends on LibreYOLO, and
those are the highest-stakes five minutes the project has. It is a landing
page first and documentation second. Every edit is therefore opt-in, small,
and verified; "I improved the README while I was at it" is a bug, not a
favor.
The prime directive: do not touch it a priori
- The only unprompted reason to propose a README change is a real error or
inconsistency: a command that no longer runs, a weight or class name that
does not exist, a compatibility-table cell that contradicts
SUPPORTED_TASKS or the callable API, a dead link.
- Even then, propose first: show the user the exact diff and the evidence
(what you ran, what the code says), and land it only after their approval.
- A new feature landing in the library is NOT by itself a reason to grow the
README. Ask whether it belongs there; the answer is usually "no, it goes
in /docs or on the website".
- Never bundle README edits into an unrelated PR. One PR, one problem.
Landing page vs documentation (the balance to hold)
The README sells the project honestly and gets a developer to a working
predict in minutes. It is not the manual:
- Prefer linking out (website docs, /docs contracts) over explaining in
place. Depth lives elsewhere; the README carries the shortest true version.
- Every added line must earn its place against the whole page's scan-ability.
If a section needs scrolling to skim, it is too long for a landing page.
- No new sections, no reordering, no renaming of sections without the
user's explicit approval. Read the current section set from the file at
edit time; do not assume it from memory.
Style contract (hard rules)
- No em dashes. Use a hyphen, comma, colon, or a new sentence.
- No AI-flavored characters or decoration: no smart quotes, arrows,
sparkles, decorative emoji, box-drawing, or invisible Unicode. Keep
README.md ASCII apart from what legitimately exists (names, badges);
README.zh-CN.md is CJK by nature, the rule there is "no decoration", not
"no non-ASCII".
- No fluff. No hype adjectives, no "blazingly", no superlative without a
verifiable number next to it. Plain, factual, concrete.
- Match the existing voice and formatting; the README should read as one
hand's writing after your edit.
- Repo-wide rule applies here with extra force: no third-party CV library
names unless the comparison is technically necessary (AGENTS.md).
Truth rules (verify, never trust memory)
- Every command must run as pasted. Actually run it before proposing it.
- Model classes and weight filenames come from
docs/nomenclature.md and
libreyolo models, never from memory.
- Compatibility claims must match the callable API. Mark training as supported
when an ordinary
train() call reaches the trainer; keep RF1 evidence and
known limits in the detailed documentation.
- Mind the version gap: the GitHub README is read by PyPI users of the
released package, but it renders from
dev. If a claim is true on dev and
false on the released version, say so to the user and let them decide
timing (usually: the README change rides the release, not the feature PR).
- Raw links into the repo use
/release/ (or /dev/ deliberately), never
/main/; there is no main branch.
The zh-CN mirror
README.zh-CN.md mirrors README.md. Any approved README.md content change
either updates the mirror in the same PR or explicitly tells the user the
mirror now lags; silent drift between the two is a bug you created.
Process
- Gather evidence (run the command, read the code, check the link).
- Show the user: what is wrong, the proposed diff, the mirror plan.
- On approval, land it via the normal dance (
skills/merge-to-dev/),
README-only, smallest possible diff.
- After merge, re-read the rendered page on GitHub once; rendering bugs
(tables, badges) only show up rendered.
Related
AGENTS.md "README policy": the repo-level rule this skill implements.
skills/libreyolo-update-website-docs/: where deep user docs actually go.
skills/libreyolo-api-conventions/ and docs/nomenclature.md: the naming
facts README snippets must agree with.
skills/merge-to-dev/: how the approved edit lands.
1---2name: libreyolo-update-readme3description: Edit LibreYOLO's README.md (and its README.zh-CN.md mirror) safely. Use whenever someone asks to update, fix, extend, or review the README, when a README claim contradicts the code ("the readme says X but..."), when a release or new feature tempts a README mention, or when reviewing a PR that touches README files. The README is the project's landing page and is deliberately protected: default to NOT changing it, propose before editing, and never add sections or restructure without the user's explicit OK.4---56# Update the LibreYOLO README78The README is the first five minutes a developer spends on LibreYOLO, and9those are the highest-stakes five minutes the project has. It is a landing10page first and documentation second. Every edit is therefore opt-in, small,11and verified; "I improved the README while I was at it" is a bug, not a12favor.1314## The prime directive: do not touch it a priori1516- The only unprompted reason to propose a README change is a **real error or17 inconsistency**: a command that no longer runs, a weight or class name that18 does not exist, a compatibility-table cell that contradicts19 `SUPPORTED_TASKS` or the callable API, a dead link.20- Even then, **propose first**: show the user the exact diff and the evidence21 (what you ran, what the code says), and land it only after their approval.22- A new feature landing in the library is NOT by itself a reason to grow the23 README. Ask whether it belongs there; the answer is usually "no, it goes24 in /docs or on the website".25- Never bundle README edits into an unrelated PR. One PR, one problem.2627## Landing page vs documentation (the balance to hold)2829The README sells the project honestly and gets a developer to a working30`predict` in minutes. It is not the manual:3132- Prefer linking out (website docs, /docs contracts) over explaining in33 place. Depth lives elsewhere; the README carries the shortest true version.34- Every added line must earn its place against the whole page's scan-ability.35 If a section needs scrolling to skim, it is too long for a landing page.36- **No new sections, no reordering, no renaming of sections without the37 user's explicit approval.** Read the current section set from the file at38 edit time; do not assume it from memory.3940## Style contract (hard rules)4142- **No em dashes.** Use a hyphen, comma, colon, or a new sentence.43- **No AI-flavored characters or decoration**: no smart quotes, arrows,44 sparkles, decorative emoji, box-drawing, or invisible Unicode. Keep45 README.md ASCII apart from what legitimately exists (names, badges);46 README.zh-CN.md is CJK by nature, the rule there is "no decoration", not47 "no non-ASCII".48- **No fluff.** No hype adjectives, no "blazingly", no superlative without a49 verifiable number next to it. Plain, factual, concrete.50- Match the existing voice and formatting; the README should read as one51 hand's writing after your edit.52- Repo-wide rule applies here with extra force: no third-party CV library53 names unless the comparison is technically necessary (AGENTS.md).5455## Truth rules (verify, never trust memory)5657- Every command must run as pasted. Actually run it before proposing it.58- Model classes and weight filenames come from `docs/nomenclature.md` and59 `libreyolo models`, never from memory.60- Compatibility claims must match the callable API. Mark training as supported61 when an ordinary `train()` call reaches the trainer; keep RF1 evidence and62 known limits in the detailed documentation.63- Mind the version gap: the GitHub README is read by PyPI users of the64 released package, but it renders from `dev`. If a claim is true on dev and65 false on the released version, say so to the user and let them decide66 timing (usually: the README change rides the release, not the feature PR).67- Raw links into the repo use `/release/` (or `/dev/` deliberately), never68 `/main/`; there is no `main` branch.6970## The zh-CN mirror7172`README.zh-CN.md` mirrors README.md. Any approved README.md content change73either updates the mirror in the same PR or explicitly tells the user the74mirror now lags; silent drift between the two is a bug you created.7576## Process77781. Gather evidence (run the command, read the code, check the link).792. Show the user: what is wrong, the proposed diff, the mirror plan.803. On approval, land it via the normal dance (`skills/merge-to-dev/`),81 README-only, smallest possible diff.824. After merge, re-read the rendered page on GitHub once; rendering bugs83 (tables, badges) only show up rendered.8485## Related8687- `AGENTS.md` "README policy": the repo-level rule this skill implements.88- `skills/libreyolo-update-website-docs/`: where deep user docs actually go.89- `skills/libreyolo-api-conventions/` and `docs/nomenclature.md`: the naming90 facts README snippets must agree with.91- `skills/merge-to-dev/`: how the approved edit lands.