QUALITY.md
- title
- QUALITY.md
- type
- toolbox
- summary
- Root-file format declaring what quality means in a project, with a CLI that evaluates against it
- tags
- typescript, software-quality, ai-agents, spec-driven-development, file-format, watchlist
- language
- TypeScript
- license
- MIT
- created
- 2026-07-23
- updated
- 2026-07-23
QUALITY.md is a file you put at the root of a repository that writes down what quality means for that specific project: which characteristics matter (security, maintainability, test and spec quality, and so on), what the requirements are under each one, and the context β mission, stakeholder needs, risks β that explains why those and not others. The premise is that agents and humans are both bad at "make this better" without a written rubric, and that the rubric belongs in the repo rather than in someone's head.
It ships as three things. The format itself is a spec, published as vendor- and tool-agnostic. The qualitymd CLI and a /quality agent skill are the reference implementation: they read the file, evaluate the codebase against it, and write out an evaluation report plus a prioritized list of improvement recommendations, in a .quality/ directory:
.quality/
βββ evaluations/
βββ 0001-full-eval/
βββ report.md
βββ recommendations.md
Numbered evaluations mean a project accumulates a history of assessments rather than one overwritten snapshot, and the recommendations file is explicitly shaped for handoff β to a human reviewer, or to an agent as the next batch of work. The pitch calls the resulting cycle a "quality loop": declare, evaluate, act, re-evaluate.
Where it sits
The idea belongs to a family. llms-txt proposed a root markdown file describing a site for LLMs; CLAUDE.md and AGENTS.md do the same for repository conventions; QUALITY.md is the same move applied to evaluation criteria. The distinguishing bet is that quality is project-specific and has to be declared, which is why the format carries context and stakeholder needs rather than a fixed checklist β a linter config would be the version of this that doesn't need a spec.
It also overlaps with the spec-driven-development tools without duplicating them. acceptance-criteria-ids as used by acai number individual requirements so agent-written code can point back at the spec item it satisfies; that is per-feature and per-commit. QUALITY.md operates a level up, on properties of the whole codebase that no single acceptance criterion covers. The two are compatible, and the honest question is whether a project that maintains one has the appetite to maintain the other.
The philosophy section on the site β maintaining something is caring for it, and caring for a thing that serves someone is caring for that person β is a nicer framing than most quality tooling bothers with. It also sidesteps the harder question raised in notes-on-software-quality, where quality is defined as the absence of problems and the argument is that quality does not survive organizational scale. A declared rubric doesn't fix that; it makes the gap between stated and actual standards legible, which is a different and smaller claim.
Limitations
Six weeks old at time of writing, one vendor, 29 stars. The format's value is entirely in adoption β an open spec that only its own CLI reads is a config file with extra steps β and there is no visible third-party implementation yet. Evaluation is done by an LLM reading a rubric, so the output inherits every property of LLM judgement: plausible, inconsistent between runs, and unverifiable without reading the code yourself. Writing a good QUALITY.md is the hard part and the tooling can't do it for you; a generic one will produce generic recommendations.
On the watchlist β worth re-checking for adoption by projects unrelated to the authors, a second implementation of the spec, and whether the evaluation reports hold up as anything more than a well-organized code review.
Repo: github.com/qualitymd/quality.md β ~29 stars, MIT, TypeScript. Site: getquality.md.