feat(engine)!: "no version to compare against" is a verdict, not a skip
`VERSION-UNAVAILABLE` (SKIP/notRun) becomes `VERSION-NONE` (OK). A repo that claims no version in any of the four places one can be written down has not left a check un-run — the check ran, saw all four, and found no subject. That is the shape `checkReadmeLanguage` has always answered with OK. 0.8.0 deferred this and recorded the reason in the engine: re-levelling "moves a repo's status". Measured false across 19 clones — an added OK cannot worsen the worst *judged* finding, and all three repos emitting the code already read OK. Status moves only for a repo whose entire finding set was skips. OK cannot bless a real gap here: no class requires a version file, and a `plugin` missing its manifest is an independent FILE-MISSING ERROR. Renamed, not just re-levelled: `-UNAVAILABLE` is this engine's naming for a notRun skip, and one OK-level `-UNAVAILABLE` would mislead exactly the reader this change serves. A source scan keeps the old name out. A/B sweep, both engines offline, 19 clones: 223 judged findings, every status and buckets identical; 3 conversions (notChecked 14→13, 3→2, 14→13), byDesign untouched. 170 tests. `--refresh`: register 21 = forge 21. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CTNGvxzCLZp3UXfibYG4kb
This commit is contained in:
parent
9a566240e8
commit
1dfd408ffc
8 changed files with 99 additions and 21 deletions
|
|
@ -517,13 +517,15 @@ export function checkVersionConsistency({ pluginVersion, readmeBadge, changelogT
|
|||
const findings = [];
|
||||
const v = pluginVersion ? String(pluginVersion).replace(/^v/, '') : null;
|
||||
if (!v) {
|
||||
// `notRun` by operator decision 2026-08-09, not by default. "No package
|
||||
// version to compare against" is arguably a third thing — no SUBJECT to
|
||||
// judge, the shape checkReadmeLanguage answers with OK — but re-levelling
|
||||
// it moves a repo's status, and that is a second behaviour change riding
|
||||
// on this one. Recorded here so the next reader knows it was decided, not
|
||||
// overlooked.
|
||||
return [{ level: 'SKIP', skip: 'notRun', code: 'VERSION-UNAVAILABLE', msg: 'no package version found — nothing to compare against' }];
|
||||
// Not a SKIP. This check ran, saw all four places a version can be written
|
||||
// down, and found no version claimed in any of them — no SUBJECT to judge,
|
||||
// the shape checkReadmeLanguage answers with OK. It sat at `SKIP`/`notRun`
|
||||
// until 0.9.0, deferred once on the ground that re-levelling would move a
|
||||
// repo's status. That was measured false: an added OK cannot worsen the
|
||||
// worst *judged* finding, and all three repos that reach this line already
|
||||
// read OK. Nor can OK bless a real gap — no class requires a version file,
|
||||
// and a `plugin` missing its manifest is an independent FILE-MISSING ERROR.
|
||||
return [{ level: 'OK', code: 'VERSION-NONE', msg: 'no version claimed anywhere — nothing to check' }];
|
||||
}
|
||||
|
||||
if (readmeBadge !== null && readmeBadge !== undefined && readmeBadge !== v) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue