You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Per-check deltas treat the 100/A placeholder of skipped/unavailable checks as a real score — removing a tool reads as an improvement #107
Since #52, a check that did not run (disabled, not applicable, Pro key missing, tool missing) is written with a placeholder score: 100, grade: "A" (src/core.ts:326-327; rationale at src/runners/toolchain.ts:51-55). The composite excludes it (score.ts:19) and the check tables render it as skipped (cli.ts:213-220, :644-646; pr-comment.ts:113). The per-check deltas do not:
delta.ts:52-54, :117-122 and trend.ts:34-41 subtract raw scores, then pr-comment.ts:92-96, cli.ts:187-191 and report/pages.ts:1004 print them.
Dart SDK removed (or a Pro key dropped) → "✅ lint: 64 → 100 (+36)": uninstalling a tool is reported as a quality improvement.
analyzer-snapshot.ts:9 writes score: 100 into meta.analyzerSnapshots for not-run checks, although AnalyzerSnapshot.score is optional (schema/src/report-schema.ts:52).
What to do
delta.ts / trend.ts: when either side's status is skipped or unavailable (fall back to details.skipped/unavailable/comingSoon for older reports, as github-app/src/metric-history.ts:250-260 does), emit no numeric delta; report a status transition instead ("lint: unavailable → 72").
Renderers (pr-comment.ts, cli.ts, report/pages.ts) list status transitions separately from score changes.
analyzer-snapshot.ts: omit score for not-run checks.
score: null / grade: null. Breaking: CheckResultSchema requires z.number() and GradeSchema (report-schema.ts:32-39); consumers pin ^0.5.0; mcp does arithmetic on it (mcp/src/index.ts:415); stored history already holds 100s. github-app#9 already settled "read status, not score". Revisit only for a v2 report contract.
Acceptance criteria
Delta between a report with lint unavailable and one where it scored 72 shows no "100 → 72" line in markdown, PR comment or HTML, and does show the status transition.
The reverse direction shows no "+N" improvement.
meta.analyzerSnapshots has no score for skipped/unavailable checks.
Related
#52 (introduced the placeholder), github-app#9 (consumer-side fix). Siblings: vibecodeqa/mcp#8, vibecodeqa/app#78.
Delivered in #115 (fix/107-not-run-deltas, ec86546). Steps 1–3:
a status transition instead of a numeric delta when either side did not run, with the details.* fallback for older reports
transitions listed separately in the PR comment, CLI markdown and HTML
no score in analyzer snapshots for not-run checks
Step 4 (CheckResult.status in the schema) waits for schema#6 0.6.0.
Verified: pnpm build is clean; pnpm lint has 0 errors (62 warnings, same as main); pnpm test passes 751/751. The new tests in delta, pr-comment, report/pages and analyzer-snapshot cover both directions, and they fail with the fix removed.
#100's unavailable change (#111) should land together with this. This stays open until #115 merges.
Activity
serge-ivo commentedon Oct 5, 2026
Delivered in #115 (
fix/107-not-run-deltas, ec86546). Steps 1–3:details.*fallback for older reportsscorein analyzer snapshots for not-run checksStep 4 (
CheckResult.statusin the schema) waits for schema#6 0.6.0.Verified:
pnpm buildis clean;pnpm linthas 0 errors (62 warnings, same as main);pnpm testpasses 751/751. The new tests indelta,pr-comment,report/pagesandanalyzer-snapshotcover both directions, and they fail with the fix removed.#100's
unavailablechange (#111) should land together with this. This stays open until #115 merges.fix(delta): cover checks that disappeared and drop placeholder scores…
refactor(trend): match computeDelta for dropped checks; remove unused…
fix(report): stop plotting and diffing placeholder scores on the Tren…
fix(delta): show a crashed runner as a status transition, not a 0 sco…
fix(delta): do not count issues of a check that did not run as fixed …
fix(report): show the full runner-error reason on a single check's Tr…
docs(changelog): note not-run check deltas and the nullable CheckDelt…
Merge pull request #115 from vibecodeqa/fix/107-not-run-deltas