Skip to content

chore: update coverage stats and badges - #14

Merged
matthewevans merged 1 commit into
mainfrom
chore/update-coverage-badges
Apr 8, 2026
Merged

chore: update coverage stats and badges#14
matthewevans merged 1 commit into
mainfrom
chore/update-coverage-badges

Conversation

@matthewevans

Copy link
Copy Markdown
Member

Automated update of README coverage badges from latest card data.

@matthewevans
matthewevans enabled auto-merge (squash) April 8, 2026 16:06
@matthewevans
matthewevans merged commit e1707c1 into main Apr 8, 2026
2 checks passed
@matthewevans
matthewevans deleted the chore/update-coverage-badges branch April 8, 2026 16:11
matthewevans added a commit to minion1227/phase that referenced this pull request Jul 13, 2026
…rkspace (phase-rs#5712)

Gate (C) in check-engine-authorities.sh froze the `ReplacementEvent::Draw`
producer surface by scanning 3 named crates (engine, engine-wasm,
mtgish-import) of a 13-crate workspace. That list was never a decision — it
was a workaround for a scanner ceiling: `strip_noncode` had no branch for Rust
raw strings, so a workspace-wide scan died on
`crates/draft-wasm/src/suggest.rs:437: brace tracking desynced`. phase-rs#5704 taught
the scanner raw strings, so the scope can now be what it always claimed to be.

SCOPES is now globbed (`crates/*/src`), not enumerated. A hand-written tuple is
a list that goes stale the moment crate phase-rs#14 lands — which is exactly how this
census went wrong twice before (v1 froze 6 producers while a 7th was live in
mtgish-import). The glob cannot go stale, and because the producer baseline is
an exact-match gate, a Draw producer minted in a brand-new crate fails the
build on the day it arrives.

Population: 3 -> 13 crates, 469 -> 701 .rs files scanned (+232).
Producers: 7 rows -> 7 rows. ZERO new producers. `ReplacementEvent::Draw`
occurs in exactly two crates (engine, mtgish-import), so no producer was
missing a CR 121.2 scope decision and no row's scope moved. The baseline diff
is header prose only.

The zero is not vacuous. phase-ai builds `ReplacementDefinition`s with the very
same constructor and struct-literal idioms this census matches (AddCounter,
Moved, ChangeZone) — just never with `Draw`. And a synthetic `Draw` producer
planted in phase-ai turns the widened gate RED (`ADDED
crates/phase-ai/src/cast_facts.rs scratch_t59_synthetic_draw_producer
constructor 1`) while the OLD 3-crate scope reports `PASS (7 rows)` — the
widening is what catches it.

Boundary, named rather than implied: the two Rust trees Cargo excludes from the
workspace (`client/src-tauri`, `lobby-worker/broker-wasm`; 4 .rs files) are not
scanned. Neither mentions `ReplacementEvent`. `client/src-tauri` also grows a
gitignored `target/` on any local Tauri build, which an rglob would descend
into — making the scanned population depend on whether a developer had run one.

CR 121.2 (grep-verified, docs/MagicCompRules.txt:1144): cards may only be drawn
one at a time. CR 121.2a (:1146): an instruction to draw multiple cards can be
modified by replacement effects that refer to the number of cards drawn.

Co-authored-by: matthewevans <matthewevans@users.noreply.github.com>
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.

1 participant