Skip to content

chore: update coverage stats and badges - #31

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

chore: update coverage stats and badges#31
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 19:43
@matthewevans
matthewevans merged commit 63ca110 into main Apr 8, 2026
2 checks passed
@matthewevans
matthewevans deleted the chore/update-coverage-badges branch April 8, 2026 19:47
matthewevans added a commit that referenced this pull request Jul 12, 2026
* docs(engine): sweep CR 609.3 citations — per-site reclassification (#32)

CR 609.3 is "If an effect attempts to do something impossible, it does only
as much as possible." Of 158 citations, 97 genuinely implement that rule
(impossible/no-op/empty-pool/do-as-much-as-possible) and are left untouched.
61 were misattributed and are reclassified per-site:

- optionality ("you may" / accept-decline) -> CR 608.2d, the rule for choices
  an effect offers during resolution; its worked example is literally "You may
  sacrifice a creature". NOT CR 603.5, which is scoped to triggered abilities
  only. The sibling field `optional_for` already carried CR 608.2d.
- "choose any number" -> CR 107.1c ("any number" = any positive number or zero).
- repeat_for loop-count and iteration driving -> CR 608.2c (instructions are
  followed in the order written). NOT CR 107.1, which only says the game uses
  integers.
- preceding-effect / tracked-set back-references ("the number of cards drawn
  this way") -> CR 608.2c.

Every replacement number was grep-verified against docs/MagicCompRules.txt.
Comment-only; no behavior change.

* docs(engine): sweep CR 701.16a citations — per-site reclassification (#31)

CR 701.16a is Investigate ("Create a Clue token"). Of 30 citations, 15 genuinely
implement Investigate and are left untouched. 15 were misattributed:

- sacrifice contexts (6) -> CR 701.21a ("To sacrifice a permanent, its controller
  moves it from the battlefield directly to its owner's graveyard"): the Forge
  sacrifice effect, the Sacrifice AST count field, the sacrifice AST builder's
  ObjectCount filter lift, the "target opponent sacrifices" controller override,
  Pox Plague's chain test, and Krark-Clan Ironworks' sacrifice-as-cost assert.
- private "look at" contexts (9) -> CR 701.20e ("Some effects instruct a player to
  look at one or more cards ... shown only to the specified player"): the Dig
  look-step parsers, Gonti's look-then-exile-face-down idiom, and both
  reveal-vs-look contrast pairs, whose public side (CR 701.20a, Reveal) was
  already correct.

Every replacement number was grep-verified against docs/MagicCompRules.txt.
Comment-only; no behavior change.

* docs(engine): sweep CR 614.12a citations — per-site reclassification (#41)

CR 614.12a is "If a replacement effect that modifies how a permanent enters the
battlefield requires a choice, that choice is made before the permanent enters."
133 of 145 citations genuinely implement it (as-enters choices, Devour co-entry,
Karoo / Mox Diamond MayCost, enters-with-your-choice-of-counter, enter-as-copy,
deferred-entry replay) and are left untouched. 12 were misattributed onto the
post-replacement continuation machinery, which is event-type agnostic and fires
for damage/life replacements where no permanent enters the battlefield:

- cross-event-type substitution (Lich-class "if you would gain life, draw that
  many cards instead") and the generic continuation lifecycle (9) -> CR 614.6,
  "If an event is replaced, it never happens. A modified event occurs instead."
  NOT CR 615.5, which is prevention-specific (it speaks of the amount of damage
  that was prevented).
- Swans of Bryn Argoll's prevented-damage-source stash (1) -> drop 614.12a; that
  site's CR 615.5 + CR 609.7 citations were already correct and sufficient.
- two serde backward-compat migration sites -> annotation dropped entirely, per
  CLAUDE.md "do not annotate boilerplate, serialization, or plumbing."

HOLD-OUT: parser/swallow_check.rs is under concurrent edit and is excluded; its
one 614.12a site is CORRECT as written (MayCost is the Karoo/Mox as-enters cost).

Every replacement number was grep-verified against docs/MagicCompRules.txt.
Comment-only; no behavior change.

---------

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