Uh oh!
There was an error while loading. Please reload this page.
chore(audit): record the adversarial mutation test scan - #23
Conversation
Adds the scan record the org health check reads to answer which release was last audited. This is the first entry for this repo, so the file is created here. The record holds at a4692fd. testsAfterCommit is set equal to commit because this run was instructed not to merge, so no coverage landed on the default branch; the run's tests are in the two open PRs the entry names, and the entry says what should supersede it once they land. REUSE.toml covers audit/**/ which matches files inside subdirectories, so the new file at the top of audit/ is listed explicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Warning Review limit reached
Next review available in:42 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…t total `testsAfter` was projected as 21 in the note. The two coverage PRs take LibCast 4 -> 9 and LibConvert 2 -> 6, so the merged tree runs 15 — confirmed by a combined probe whose baseline is green at 15 passed. The note also called 15 "the run's 15 tests". 15 is the post-merge total; the run added 9 and strengthened 4 existing ones in place. `mutantsProbed` 37 -> 38 (M38 was authored late), with the note now explaining why killedBefore + survivedBefore total 36 instead: M37 and M38 did not exist when the pre-existing suite was probed. The combined re-probe over all 38 is 37/38 killed, 0 no-run, 0 harness errors, the lone survivor being the already documented equivalent mutant M23. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
Closes an adversarial mutation test run over the whole of this repo by recording
it where the org health check looks. This repo had
audit/protofire/but noaudit/mutation-test-scans.json, so the file is created here with the firstentry.
The run scanned
a4692fddbb95a0018cec42969ef6c7fa1b0cf86c: 23 behaviours acrosssrc/LibCast.solandsrc/LibConvert.sol, 38 mutants authored in all, and 3findings filed as #20, #21 and #22. The pre-existing suite was probed against the
36 that existed at that point — 27 killed, 9 survived — because M37 and M38 were
written later; that is why
killedBefore+survivedBeforetotals 36 ratherthan
mutantsProbed.testsAfterCommitis set equal tocommit, which is the documented encodingfor a run that landed nothing. This run was explicitly instructed not to merge
anything, so no coverage has reached the default branch. The 9 tests it added —
along with 4 existing ones strengthened in place — are in #18 and #19, both open.
The record says so in its own
notefield and states what should supersede itonce those land: an entry whose
testsAfterCommitnames the merged tree andwhose
testsAfterreads 15 (LibCast 4 -> 9, LibConvert 2 -> 6). The alternative,quoting an after-count that holds at no tree in the range, is exactly the
unfalsifiable record the template warns against.
Re-probing both PRs' tests together against all 38, on a green 15-test baseline,
is 37/38 killed with 0 no-run and 0 harness errors — the lone survivor being the
equivalent mutant M23 the record documents.
REUSE.tomllistsaudit/**/, which matches files inside subdirectories such asthe existing
audit/protofire/…pdfbut not a file sitting directly inaudit/,so the new path is listed explicitly.
QA
Discriminating tests: n/a - this PR adds a JSON record and one REUSE path, and changes no executable code, so there is no behaviour for a test to discriminate. The full suite was run on this branch and is green at 6 passed / 0 failed, unchanged from the base, confirming the diff is inert.
jq -e .confirms the JSON parses.Mutations applied: n/a - no executable code in the diff to mutate. The mutation results this record reports were produced against
src/LibCast.solandsrc/LibConvert.soland are evidenced in test(LibCast): observe the intermediate and pin the in-place contract #18 and test(LibConvert): pin aliasing, source lifetime and the write bounds #19, which carry the per-mutant tables.Oracle: the scan record template and field semantics in the
adversarial-mutation-testREADME at skill version 0.34.0, which specifies the five must-have fields, the two-tree rule that every before number holds atcommitand every after number attestsAfterCommit, and the rule that a run which landed nothing setstestsAfterCommitequal tocommitrather than null or absent.publishedTagandcommitsAheadOfTagwere read from the repo withgit describe --tags --abbrev=0andgit rev-list --count v0.1.0..main, not assumed.Category check: no issue drives this PR; it is the closing step the skill requires of every run, clean or not. Covered: the timestamp, scanned commit, tests-after commit, published tag and distance, scope, tool and skill version, and a summary naming the filed issues. Not covered, deliberately: a merged-tree
testsAfterCommit, because merging was out of scope for this run.🤖 Generated with Claude Code