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
18
README.md
18
README.md
|
|
@ -10,7 +10,7 @@ checks that surface in one repository and reports what it finds.
|
|||
|
||||
*AI-generated: all code produced by Claude Code through dialog-driven development.*
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
|
@ -103,12 +103,20 @@ Merging them made clean repositories read as unread. Measured across 19 clones,
|
|||
checked` announced eleven unread checks when all eleven were links the gate
|
||||
declines to judge on purpose.
|
||||
|
||||
A third shape is not a skip at all and must not be filed as one: the check ran,
|
||||
saw everything, and found **no subject** to judge. A repository that claims no
|
||||
version anywhere is `VERSION-NONE` at `OK` since 0.9.0 — the same answer
|
||||
`LANGUAGE` gives a README with no running prose. It had been `notRun`, which
|
||||
told three correctly-built repositories that something about them was still
|
||||
unread. What remains under `notRun` is genuinely actionable: an unreachable
|
||||
catalog, an unregistered repo, a repo that has not been tagged yet.
|
||||
|
||||
The summary line names only what someone has an action on:
|
||||
|
||||
```
|
||||
✓ portfolio-optimiser [standalone] — OK (repo-standard v0.8.1 @<sha>)
|
||||
✗ some-plugin [plugin] — ERROR · 2 not run (repo-standard v0.8.1 @<sha>)
|
||||
· stranger — SKIP · 1 not run (repo-standard v0.8.1 @<sha>)
|
||||
✓ portfolio-optimiser [standalone] — OK (repo-standard v0.9.0 @<sha>)
|
||||
✗ some-plugin [plugin] — ERROR · 2 not run (repo-standard v0.9.0 @<sha>)
|
||||
· stranger — SKIP · 1 not run (repo-standard v0.9.0 @<sha>)
|
||||
```
|
||||
|
||||
The deliberate ones are not silenced: they keep their own `NOT JUDGED` heading
|
||||
|
|
@ -259,7 +267,7 @@ distinct from "an older engine that never tried".
|
|||
npm test
|
||||
```
|
||||
|
||||
169 tests over the pure classifiers. The reference fixtures are measured false
|
||||
170 tests over the pure classifiers. The reference fixtures are measured false
|
||||
positives, each with its expected verdict — the six that produced the
|
||||
three-outcome reference rule, plus the noise sources found by running the gate
|
||||
against a real repository: regexes inside code spans that are markdown links to
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue