Repository navigation
feat(report): publish what the rules find today, measured by the CLI - #503
Conversation
|
@claude /review |
|
Claude finished @theCodeDrift's task in 4m 28s —— View job Review completeReview mode: incremental — read 0 prior review thread(s) before reviewing.
SummaryThis is a clean, well-scoped implementation. I read the full diff and the whole contents of the touched files ( [New] Things I specifically verified rather than assumed:
I did not run the project's build/lint/test suite myself (per review instructions), and did not check CI status — that's CI's job to report on the PR. |
A published report never said what its rules find in the code today, though
checkmeasures exactly that. Every number on the page came from the agent's facts file, andfixedBasis: measuredcould be claimed with no method behind it. tskl.es has reshaped ReportV1 around measured findings, and today's nightly payload fails it (missingstate, unknownfixed/origin/perMonth), so every publish is a 400.What changes
reportruns the same scan ascheck --anonymous, which stays offline, and publishes per-ruleviolations/filesplusfindings: { violations, files }, wherefilescounts each file once across rules. Neither the draft nor the facts file lets an agent set them.id:differs from its directory).state(written/candidate),origin→surfaced,fixed/fixedBasisremoved,projection.perMonthno longer sent (tskl.es derives the rates). Vendored schema refreshed.surfaced: read each comment instead of matching keywords, and bot and author comments count. The agent's own recap has to label "in the code today" apart from "raised in review over the window".check's scan is extracted torules/scan-project.ts;check's output and exit codes are unchanged (113 check tests pass against the rebuilt CLI).Verified
pnpm typecheckandpnpm lintpass.build:nextand run against a copy of the mixed-engines fixture with one file duplicated. The draft'sfindings(6 violations, 3 files) and per-rule counts matchcheck --json --anonymousexactly.findings, against the refreshed schema.taskless reportis unreleased, so this extends its pendingstreamlined-onboarding-reportchangeset instead of adding a second one.