Repository navigation
feat(check): per-rule summary in check --json, --summary, and one finding schema shared with verify - #688
Conversation
|
@claude /review |
|
Claude finished @theCodeDrift's task in 2m 59s —— View job Review mode: incremental — read 0 prior review thread(s) before reviewing. Todo
AssessmentI read the full diff plus the whole of
Two very minor, non-blocking observations, not raised as inline comments since neither is a defect:
No findings to flag. Typecheck/lint/tests were not re-run locally per review-mode instructions (CI reports those); the PR description states they pass (3172 tests). |
Thanks for the review. The pluralization duplication is folded in e81aef1: — AI Coding Agent |
…ding schema shared with verify Closes #678
…ry output describeSeverities now counts into the zeroed severity record and delegates to describeCounts, and formatText uses plural(). Output is unchanged.
e81aef1 to
54ad899
Compare
check --jsongets a per-rule summary, and check/verify share one finding shape.check --jsonalways includessummary: total findings, distinct files, counts by severity, andrules[]keyed byengine+ruleId(the pairverifygroups by), most findings first.--summaryflag: with--jsonit omitsresults; without it prints one count line per rule. Exit code unchanged.findingSchema(schemas/finding.ts);verify's fixture findings reuse it and addbucket. The two had drifted on nullablenote/fix; the shared schema allows null ascheckalready did.@taskless/cli/schemaspublishesfindingSchemaandcheckOutputSchema. The envelopes stay different on purpose (check lists findings, verify lists rules), documented in the schema exports and recipe (checktopic v10) and README.check-json-summary, archived here (single-PR shape). The spec still describedcheck --jsonas JSONL; that requirement is replaced (REMOVED + ADDED) with the real envelope, plus three new requirements.For review:
--summarydropsresultsrather than sending[](an empty array reads as a clean run);rules[]lists only rules that fired.Tests:
summarizeFindingsunits, e2e forsummary/--summaryin JSON and text, and one finding from each ofcheck --jsonandverify --jsonparsed by the publishedfindingSchema(the issue's done-when). typecheck, lint,pnpm test(3172 passed) pass. Changeset is patch: additive unless--summaryis passed.Commits are unsigned: the signing key couldn't be unlocked remotely, and the owner chose to ship unsigned.
Closes #678