Repository navigation
Replace the scanner's A–F grade with status counts per requirement level - #72
Merged
Merged
Conversation
The letter grade was a score, and it contradicted the site's own "nothing is ranked or scored". Reports now count the statuses their rows show per level (MUST, SHOULD, MAY) and name the checks that are not supported; nothing is added up into one number. The matrix links each server's report with a quiet text link instead of a coloured letter, and the server page shows how many checks ran and when. - src/scanner/summary.ts replaces grade.ts (same either-or rule for discovery) - JSON report: `summary` replaces `grade`, version 2 - nightly PR table and `pnpm scan` print the summary - spec 017 supersedes 004 FR-008 and the grade part of FR-009; constitution 1.0.1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FQXFWHwoKYz8gUULuuev4N
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FQXFWHwoKYz8gUULuuev4N
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FQXFWHwoKYz8gUULuuev4N
Generated by the screenshots workflow for #72.
Merged
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Jan · project thread
What this changes
Jan found the scanner grades too aggressive. They also broke the site's own rule, "Neutral. Nothing is ranked or scored." A letter is a score. An F in the threat colour next to a company's name reads as a verdict, whatever rule sits behind it. It also added nothing: the matrix row already shows every status the grade came from.
There is no grade anywhere now. A report counts the statuses its rows show, per requirement level, and names the checks that are not supported. Nothing is added up into one number. This is spec
017-neutral-scan-summary, which supersedes 004 FR-008 and the grade part of FR-009.Where the grade was, and what replaces it
StatusCellglyphs), with the checks that are not supported listed under their level and linked to their rows= Grade F= 14 checks, each with its status belowscan.jsongrade: { letter, label, reasons }, version 1summary: { state, label, tallies, open, notes }, version 2pnpm scanMUST 7 supported, 1 unsupported · …)The either-or rule for discovery is unchanged (protected resource metadata at a well-known URL or in the 401 challenge). When it makes a count differ from its row, the summary says so in one sentence.
unknownis still counted as unknown and never as unsupported.Alternatives weighed
Docs.
docs/scanner.md("The summary"), README (thejq '.summary'example), architecture, design (M12), development, data model, maintenance, the accessibility statement, and the 004 report contract. The constitution changes "grade" to "scan result" in principle II.Sync Impact Report (constitution 1.0.0 → 1.0.1, PATCH): wording only. Principle II now names "scan result" where it named "grade". No principle is added or removed. Templates are unaffected.
Screenshots
From
astro previewwith reduced motion. Box is shown because it was graded F.The screenshots were committed once to get stable URLs and removed in the next commit, so the squashed diff has no images.
Code checklist
pnpm checkpasses (prose gate and enforced budgets included). 320 unit tests.scanner-grade.test.tsis nowscanner-summary.test.tsand covers every MUST/SHOULD status pair, the either-or rule in both directions, unknown, not scanned and no OAuth.refresh-screenshotslabel (tasks T10).I did not touch #71's files.
Generated by Claude Code