The H1 change added two tests; the badge, the README line and the CHANGELOG still said 32. Exactly the drift this repo exists to catch, in this repo - and check-versions.mjs would not have caught it, since it only reads the version badge. Also states in the README what actually fails the first-screen check now that a differing H1 is a WARN. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WYJ3FHLtVgzFXMZ6UF598h
48 lines
2.4 KiB
Markdown
48 lines
2.4 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project are documented here.
|
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
|
|
versioning is [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [0.1.0] — 2026-07-27
|
|
|
|
First release. Covers the checks that a single repository can answer on its own.
|
|
|
|
### Added
|
|
|
|
- **The gate** (`scripts/repo-standard-check.mjs`) — pure classifiers with all
|
|
I/O resolved into their input, findings tagged `ERROR`/`WARN`/`SKIP`/`OK`,
|
|
exit 1 on `ERROR`. Five checks: README first screen, install block, files
|
|
required by the repo's class, `open/<name>` references, description length.
|
|
- **Taxonomy register** (`register/repos.json`) — one central file mapping each
|
|
repository to its class, plus the per-class file and install requirements.
|
|
`--refresh` compares it against the live org listing.
|
|
- **Three-outcome reference check** — "matches no repository" (`ERROR`) is a
|
|
separate finding from "matches something that is deliberately not a
|
|
repository" (`WARN`). Sharing an outcome would let real dead links hide among
|
|
correct text. Only names in URL position are treated as references; the `.git`
|
|
suffix is normalised first.
|
|
- **The skill** (`skills/repo-standard/`) — the judgement the script cannot
|
|
encode: what a description should say, why the summary card must never be used
|
|
to verify one, what not to retrofit, and where the per-repo boundary is.
|
|
- 34 tests over the pure classifiers, using the measured false positives as
|
|
reference fixtures.
|
|
|
|
### Notes
|
|
|
|
- Descriptions are measured in **codepoints** — not bytes, and not UTF-16 units.
|
|
The same string measures 248 / 249 / 253 across those three yardsticks when it
|
|
contains an astral character.
|
|
- `enabledPlugins` in `settings.json` is treated as a legitimate second install
|
|
form. The gate requires a CLI command *as well*, and never reports the JSON
|
|
form as the defect.
|
|
- The org listing is read in **one** call, anonymously. Per-repo fetching trips
|
|
the forge's rate limiter.
|
|
- A README H1 that differs from the repo name is a `WARN`, not an `ERROR`. The
|
|
thread that has to hold is description == catalog == opening line, and the H1
|
|
is none of those three; a human title is a naming choice the operator owns.
|
|
A missing H1 is still an `ERROR`.
|
|
- No hook ships in this release. A blocking gate has to be precise enough not to
|
|
fail a correct repository first.
|
|
|
|
[0.1.0]: https://git.fromaitochitta.com/open/repo-standard/src/tag/v0.1.0
|