test(acl): ACL mutation-score baseline with Stryker.NET (closes #47) #52
Reference in New Issue
Block a user
Delete Branch "feat/47-acl-mutation-baseline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
S-04b finishes the last acceptance criterion split off S-04 (#5): a captured, enforced mutation-score baseline for the ACL. CLAUDE.md §3/§5 make "mutation (ratchet)" a Definition-of-Done gate for every slice, but no baseline existed — so this establishes the repo-wide one.
.config/dotnet-tools.json, v4.15.0) — reproducible locally and in CI, no global install.Acl.slnx(services/acl/stryker-config.json): mutatesAcl.Application+Acl.Infrastructure; the untestedAcl.Apiis skipped.make mutationtarget, wired intomake ciand a parallel Gitea Actionsmutationjob.breakthreshold 90% (one-mutant headroom).Closes #47
Closes #51 (the adr-proposal — ADR-0005 lands in this PR)
Definition of Done
refs #NN).make ci(lint, build, unit, mutation) green locally;compose-smokeunchanged by this slice and CI-gated.docker compose upfrom a fresh clone reaches green health checks within 3 minutes. (Unchanged — no infra touched.)docs/runbooks/ci.md, docs nav.)docs/architecture/if a non-obvious decision was made. (ADR-0005.)docs/demo-script.mdif user-visible. (N/A — not user-visible.)Notes for reviewers
10816f5) and the ratchet (break90%) failing CI on regression. Tests were strengthened, not padded.break90% → Stryker exits 0 at 95%; a temp floor of 96% exits non-zero with "score below threshold break". Later slices ratchet up, never down (§5).🤖 Generated with Claude Code
The artifact step failed the mutation job: upload-artifact@v4 bundles @actions/artifact v2, which hard-aborts on any non-github.com server ("not supported on GHES"), even though Gitea 1.25 stores artifacts fine. @v3 uses the older protocol Gitea speaks and has no GHES guard — a drop-in swap (same inputs). Document it as gotcha §4 and correct the CI runbook note. Refs #47. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>