Skip to content

docs: count the empty-queue reasons correctly, and say what CI actually enforces - #21

Merged
imkp1 merged 1 commit into
mainfrom
docs/stale-counts-and-coverage-floor
Aug 2, 2026
Merged

docs: count the empty-queue reasons correctly, and say what CI actually enforces#21
imkp1 merged 1 commit into
mainfrom
docs/stale-counts-and-coverage-floor

Conversation

@imkp1

@imkp1 imkp1 commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Four corrections found while checking whether rc7 left the README stale. It did not — grask stats went in with the release and nothing else in rc7 is user-visible — but these turned up next to it. No behaviour changes, and nothing here ships in the wheel, so this does not need a release.

Where Said Actually
.github/workflows/ci.yml "which of the four kinds of empty it is" six
src/grask/cli.py "one line for four different states would misdescribe three of them" six states, five misdescribed
CONTRIBUTING.md "The three checks": pytest, ruff, mypy CI also enforces an 84% coverage floor
CONTRIBUTING.md corpus tools: survey, triage_run, capture_run reprobe was missing

The two counts drifted at rc6, when stage 4 added unverified as a sixth empty_reason. install.py already documents exactly this failure mode as the reason doctor checks an installed skill for staleness — "a skill that lists five reason codes is a skill inviting the model to flatten the sixth into one it recognises." That sentence is left alone: it is a historical account and it was correct.

The coverage floor is the one worth having. It went into CI last release and was documented nowhere a contributor reads, so a PR that drops the number would fail on an invisible rule. CONTRIBUTING now states the floor, says it ratchets, notes that nothing is excluded from the measurement to flatter it, and gives the local command.

🤖 Generated with Claude Code

…ly enforces

Four corrections, no behaviour.

Two comments still describe four empty-queue reasons. There have been six
since stage 4 landed and added `unverified`: the CI packaging step's note and
the terminal path's explanation of why one shared line will not do. Both are
the same drift `install.py` already documents as the reason `doctor` checks a
skill for staleness — "a skill that lists five reason codes is a skill inviting
the model to flatten the sixth into one it recognises." That sentence stays as
written; it is history, and it was right.

The one that costs someone time: CI now runs pytest under coverage against an
84% floor, and CONTRIBUTING said "the three checks" and listed pytest, ruff,
mypy. A contributor whose change drops the number fails on a rule documented
nowhere they would look. It is written down now, with the command to see it
locally and the note that nothing is excluded from the measurement.

And `reprobe` is in the corpus tools list, where it has been missing since it
shipped. It was findable only in design.md, which is not where anyone goes for
a command to run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@imkp1
imkp1 merged commit 36c9250 into main Aug 2, 2026
10 checks passed
@imkp1
imkp1 deleted the docs/stale-counts-and-coverage-floor branch August 2, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant