Skip to content

fix(stryker-config): correct stale project paths (prerequisite for B3 → A CI wire)#1395

Merged
AceHack merged 1 commit intomainfrom
fix/stryker-config-stale-paths-plus-tools-manifest
May 3, 2026
Merged

fix(stryker-config): correct stale project paths (prerequisite for B3 → A CI wire)#1395
AceHack merged 1 commit intomainfrom
fix/stryker-config-stale-paths-plus-tools-manifest

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 3, 2026

Summary

Pre-flight audit on the math-proofs assessment (#1383) B3 outstanding item (Stryker.NET CI wire-up) found the existing stryker-config.json had stale paths:

  • project: Zeta.Core.fsprojsrc/Core/Core.fsproj (verified exists)
  • test-projects[0]: tests/Zeta.Tests.FSharp/Zeta.Tests.FSharp.fsprojtests/Tests.FSharp/Tests.FSharp.fsproj (verified exists)

Without these fixes, any CI invocation of dotnet stryker would have failed immediately on path resolution.

Tool installation already in place

dotnet-stryker is already in tools/setup/manifests/dotnet-tools (the declarative-install manifest per GOVERNANCE §24 three-way-parity). Dev laptops + CI runners both have the tool available via tools/setup/install.sh.

Follow-up (separate PR)

CI wire-up itself is a substantial-design follow-up:

  • Mutation pass timing on the 471-test suite (probably 30+ min)
  • Runner allocation strategy (nightly schedule vs PR-triggered vs manual workflow_dispatch)
  • Kill-rate publication target (HTML report to GitHub Pages? release artifact?)
  • Threshold tuning (current: high=80, low=60, break=50)

Test plan

  • Verified actual project paths exist
  • dotnet-stryker available locally (/Users/.../dotnet/tools/dotnet-stryker)
  • Full Stryker mutation pass — deferred to CI wire follow-up

🤖 Generated with Claude Code

…src/Core/Core.fsproj; tests/Zeta.Tests.FSharp → tests/Tests.FSharp)

Per the math-proofs honest assessment (#1383) outstanding-work
matrix B3 entry, Stryker.NET CI wire-up was a P0 item. Pre-flight
audit found the existing `stryker-config.json` paths were stale —
they referenced `Zeta.Core.fsproj` and
`tests/Zeta.Tests.FSharp/Zeta.Tests.FSharp.fsproj`, neither of
which exists in the current repo layout.

Verified actual paths:
  - src/Core/Core.fsproj exists (Zeta.Core library)
  - tests/Tests.FSharp/Tests.FSharp.fsproj exists (xUnit tests)

Verified `dotnet-stryker` is installed via the existing
`tools/setup/manifests/dotnet-tools` declarative-install pattern
(GOVERNANCE §24 three-way-parity), so dev laptops + CI runners
both have the tool available. CI wire-up itself is a separate
follow-up PR (needs timeout strategy, runner allocation for the
mutation pass, kill-rate publication target — all design
decisions worth their own PR scope).

This PR is the prerequisite path-fix; the CI wire-up follow-up
will land Stryker as a workflow job after design.
Copilot AI review requested due to automatic review settings May 3, 2026 12:22
@AceHack AceHack enabled auto-merge (squash) May 3, 2026 12:22
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the repository’s Stryker.NET configuration to point at the current Core and F# test project locations so future dotnet stryker runs (including CI wiring) won’t fail on missing project paths.

Changes:

  • Update project from Zeta.Core.fsproj to src/Core/Core.fsproj.
  • Update test-projects[0] from tests/Zeta.Tests.FSharp/Zeta.Tests.FSharp.fsproj to tests/Tests.FSharp/Tests.FSharp.fsproj.

@AceHack AceHack merged commit 35f3ab9 into main May 3, 2026
25 checks passed
@AceHack AceHack deleted the fix/stryker-config-stale-paths-plus-tools-manifest branch May 3, 2026 12:25
AceHack added a commit that referenced this pull request May 3, 2026
…6-05-03 EOD progress (#1402)

Reflects substantive progress this session across the math-proofs
honest assessment matrix. Key state changes:

**P0 items — 3 of 3 closed:**
- Lean lake-build CI job ✓ (#1394)
- A4 registry rows ✓ (#1393)
- Peer-review email draft ✓ (#1387)
- Stryker B3 → partial (config-fix #1395; CI wire deferred to
  follow-up substantial-design)

**P1 items — significant progress:**
- Alloy B2 → A ✓ (#1396 — silent-no-op was the failure mode;
  spec-path fixed)
- Semgrep B4 → A ✓ (verify-then-claim correction; was already
  in CI)
- B1 4 deferred specs → 2 of 4 done:
  - DbspSpec ✓ #1397 (1M states / 11s)
  - CircuitRegistration ✓ #1401 (B-0180 closed; 3538 states / <1s)
  - SpineAsyncProtocol B-0179 still open (counterexample inv.)
  - SpineMergeInvariants B-0181 still open (counterexample inv.)

**Sibling work tracked:**
- Phase 0 substrate-discovery PoC ✓ (#1392 — 4.0 MB AOT binary
  on osx-arm64; cross-platform CI matrix)
- 3 broken-spec backlog rows filed (#1398 → B-0179 + B-0180 +
  B-0181); B-0180 closed (#1401)
- `.ts/.sh` parity bug in `tools/backlog/generate-index.ts`
  closed ✓ (#1400 — both generators byte-identical)

This update is bounded substrate work documenting the actual
state of the matrix; doesn't add new work, just captures
completion. Future matrix re-grades happen as work-items land
(per the assessment doc's audit-trail discipline).

Composes with #1383 (the original assessment) + every PR
referenced above.

§33 archive-header lint passes.
AceHack added a commit that referenced this pull request May 3, 2026
…ster + cache-clobber discipline encoded (#1408)

Substantial multi-tick session shard. 18 PRs touched (#1383 + #1387
+ #1392-#1407 inclusive); 14 merged + 4 in-flight as of shard time.

**Math-proofs assessment progress** (#1383 outstanding-work matrix):
- A1+A2 → A-with-CI ✓ (#1394 Lean lake-build workflow)
- A4 registry rows ✓ (#1393)
- B1 → 2 of 4 deferred specs in CI ✓ (#1397 DbspSpec + #1401
  CircuitRegistration B-0180 closed)
- B2 Alloy → A ✓ (#1396 silent-no-op spec-path fix)
- B4 Semgrep → A ✓ (correction)
- Peer-review email template ✓ (#1387)
- Phase 0 substrate-discovery PoC ✓ (#1392)
- Stryker config-fix ✓ (#1395; CI wire deferred)
- 3 broken-spec backlog rows filed ✓ (#1398)

**Cache-clobber silent-bug class discovered + fully encoded:**
B-0180 fix passing locally + failing CI → verify-then-claim
identified gate.yml + low-memory.yml caching whole tools/tla and
tools/alloy directories. Fix cluster: #1403 (gate.yml) + #1404
(low-memory.yml + audit-ci-cache-paths.ts) + #1406 (CI lint gate)
+ #1407 (memory file + bug-locus disambiguation per Aaron's 'real
github bug?' question — answer: usage-bug, not tool-bug).

**Other substrate work:** #1399 BACKLOG.md regen, #1400 .ts/.sh
parity bug, #1402 assessment matrix doc update, #1405 B-0182
backlog row (Linux-only formal verification — orthogonal-axes
split per Aaron 2026-05-03).

**Discipline lessons captured:** chat-is-assertion-channel,
substrate-corrections-cluster, search-first-before-architectural-
expansion, verify-then-claim CI fidelity, documentation-is-
current-state-not-history.

Carved sentence: 'When a lucky catch surfaces a class of bug,
build the structural fix that eliminates the luck — audit + lint
gate + carved-sentence rule + memory file.'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants