DEV Community

Cover image for A README skill that deletes claims it cannot source
chromoany
chromoany

Posted on

A README skill that deletes claims it cannot source

An agent writing a README usually gets the shape right and the facts wrong. The sections are all there — install, quickstart, configuration, license — but the install command points at a package that was never published, the config key is one the code does not read, and a feature still on the roadmap is described in present tense.

I built a skill that treats this as an evidence problem before it treats it as a writing problem.

Evidence first, prose second

Before writing a sentence, the skill builds a fact map from the repository: package manifests, entry points, example scripts, tests, CI config, and any existing docs. The README is then written only from what that map supports.

When something cannot be sourced, the claim is removed rather than reworded. Rewording is how the invented install command survives a second draft — it gets vaguer, not truer. The skill also records what it could not verify, so an unreleased feature shows up as a limitation instead of a feature.

The structure part came from 200 repositories

Removing bad claims does not tell you where to put the good ones, so I studied how real projects organize onboarding: 200 repositories, all with at least 1,000 stars, each pinned to a specific commit and logged with a link back to the source.

32 of them are full case studies — how the README is organized, what is worth copying, what breaks if you copy it. The other 168 are structure studies, grouped into 14 domains with 12 projects each: web frameworks, CLIs, editors, databases, embedded, and so on. React and Vite do not open the same way as Linux or Zephyr, and a weekly newsletter should not open like either.

In practice the skill reads the group that matches the project instead of applying a template. A desktop app gets a screenshot early. A CLI gets a command and its output. A script gets three lines and a code block.

Study corpus: 32 case studies plus 14 groups of structural studies

A deliberately small demo

The repository ships a tiny Python script that filters log lines, plus a README draft that gets the facts wrong on purpose: it calls itself the fastest, production-ready logging platform and tells you to run pip install logslice. There is no published package and no benchmark — only a local script.

Before and after: invented package install and performance claims replaced with the real script usage

The rewritten version says it is a local script, that it needs Python 3.10+, that nothing has to be installed. It gives the command and the expected output, and adds the caveat that the log level has to be at the start of the line.

Running the example: filtering for ERROR prints the matching line

Small, but it is the exact failure people hit: copy a command, get an error, close the tab.

Install

The skill is plain Markdown — instructions plus reference files loaded on demand. No runtime, no API key.

npx skills add chromoany/readme-atlas
Enter fullscreen mode Exit fullscreen mode

That installs into the agents the skills CLI detects and links into Claude Code and Codex. You can also copy the skills/readme-atlas folder into an agent's skill directory.

Then ask for what you want:

Use $readme-atlas to review README.md without editing files.
Find where a new user following it would get stuck, with evidence.
Enter fullscreen mode Exit fullscreen mode
Use $readme-atlas to rewrite the README in Chinese.
Every command and feature claim must be traceable to the repository.
Enter fullscreen mode Exit fullscreen mode

What it does not do

Three honest limits, since they are the parts I am least sure about.

The 200-repository study is about structure, not quality. It tells you whether a README's shape matches what readers of that kind of project expect, not whether the project is worth using.

"Delete the unsourced claim" is aggressive. For install commands and config keys I think it is right — a wrong command is worse than a missing one. For roadmap-ish claims, keeping the sentence and marking it unverified is often better. That split is a judgment call in the instructions, not something I measured.

And it is instructions, not a linter. There is no CI check that fails when a claim is unsourced; the agent has to actually look at the repository. That is slower than generating text, and it is the point.

Repo, MIT licensed: chromoany/readme-atlas

If you try it on a project, the useful feedback is where it still guessed — a command it wrote without checking, a section it placed by template rather than by reader.

Top comments (2)

Collapse
 
launchgatecheck profile image
Launch Gate •

The evidence-first order is the right call, and the fact map has a second use: run it against an EXISTING readme, not only when writing a new one. Repos rot the other direction too - a config key gets renamed and the readme keeps teaching the old one. A check that diffs readme claims against the current manifests on each release would catch that drift with the same machinery. One boundary worth stating in the skill: examples in the quickstart should be executed, not just sourced. A command that exists in the repo can still fail on a clean machine, so the highest-confidence claims are the ones a CI job ran end to end.

Collapse
 
chromoany profile image
chromoany •

If you want to try it: npx skills add chromoany/readme-atlas
Plain Markdown, no runtime, no API key. Happy to hear where it still guesses.