Add Muter mutation testing harness and PR GitHub Action#128
Add Muter mutation testing harness and PR GitHub Action#128craigjbass with Copilot wants to merge 6 commits into
Conversation
Agent-Logs-Url: https://github.com/craigjbass/clearancekit/sessions/4ab352b7-692b-4616-9f67-250889cfbe3e Co-authored-by: craigjbass <1889973+craigjbass@users.noreply.github.com>
|
@copilot Restricts mutations to Shared/ by excluding clearancekit/, opfilter/, and Tests/ — keeps focus on the pure domain logic where coverage requirements are highest this is faulty logic, I care more about opfilter |
…ests/ Agent-Logs-Url: https://github.com/craigjbass/clearancekit/sessions/e6902cdb-73b7-4038-af8a-5206ca2d6edb Co-authored-by: craigjbass <1889973+craigjbass@users.noreply.github.com>
Fixed in 927d893. |
|
@copilot 2026-04-07T11:35:32.5635170Z ##[group]Run muter run --output-json muter-report.json |
Agent-Logs-Url: https://github.com/craigjbass/clearancekit/sessions/527273e7-4601-4e7a-a5e3-a9c7b286e0de Co-authored-by: craigjbass <1889973+craigjbass@users.noreply.github.com>
Fixed in 5ce14c0. |
|
2026-04-07T12:24:53.5658850Z ##[group]Run muter run --format json @copilot |
Agent-Logs-Url: https://github.com/craigjbass/clearancekit/sessions/ac896333-0379-4e85-83e6-d4de8b0b0379 Co-authored-by: craigjbass <1889973+craigjbass@users.noreply.github.com>
Fixed in 0958cf4. The |
|
2026-04-07T12:39:40.9948070Z ##[group]Run muter run --format json @copilot |
…is step Agent-Logs-Url: https://github.com/craigjbass/clearancekit/sessions/a892a4e8-736f-4feb-925d-6c1275dba4b6 Co-authored-by: craigjbass <1889973+craigjbass@users.noreply.github.com>
Fixed in 99548c8. The segfault occurs during Muter's coverage-analysis step (where it runs xcodebuild with coverage to filter out untested files) — a known crash in v16. Added |
|



Adds mutation testing via Muter to surface gaps in the test suite, plus a GitHub Actions workflow to run it automatically on every PR.
muter.conf.ymlclearancekitTestsscheme onplatform=macOSShared/(domain logic) andopfilter/(adapter layer) — excludes onlyclearancekit/(GUI app) andTests/.github/workflows/pr-mutation.ymlmain; samemacos-26runner and pinnedactions/checkoutSHA as the existingpr-test.ymlmuter-mutation-testing/formulae/muterHomebrew tapmuter run --output-json muter-report.jsonand uploads the report as a workflow artifact withif: always()so results are preserved regardless of surviving mutants