Skip to content

Enforce September bans for Ekko Recurrent and Stacked Deck - #5

Merged
abueide merged 1 commit into
mainfrom
fix/september-2026-bans
Sep 22, 2026
Merged

abueide merged 1 commit into
mainfrom
fix/september-2026-bans

Conversation

@abueide

@abueide abueide commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Official update

Riot announced on September 15, 2026 that Ekko, Recurrent and Stacked Deck are banned in Standard and Constructed 2v2, effective September 18, 2026. No effective time of day/timezone or simultaneous unbans are specified.

Source: https://playriftbound.com/en-us/news/announcements/september-ban-list-updates-effective-september-18-2026

Change

  • Add a central, deterministic current-policy ban list and Rule::Banned / Grade::Break findings.
  • Support explicit Mode::Constructed2v2 alongside Standard.
  • Match the exact full named card across supported punctuation/print variants, with known reference-ID fallback; do not ban every Ekko.
  • Check all registered zones, including chosen champion and sideboard, and ignore zero-count rows.
  • Preserve imports, saved historical lists, card scripts and free-table policy. No live network/clock reads, in-game fold changes or serialized-format changes.
  • Document caller enforcement requirements: reject Verdict::Broken for enforced constructed play; a warning badge alone is not enforcement.

Validation

  • Red/green regressions proved the old checker accepted both the banned main-deck entry and banned sideboard entry.
  • Deck library: 47 passed in each repository.
  • Agni importer suite: 117 passed, including a real OPP Stacked Deck print and historical Kha import/storage/revalidation without deleting its three copies.
  • Independent source review: no blocking findings.
  • bash ci/check.sh: passed in both repositories, including all workspace targets.
  • Formatting check is recorded in a follow-up validation comment once the pinned Nix formatter finishes.

Integration / compatibility

This PR is paired with the same policy update in the other Riftbound rules repository because Kai still consumes Agni. A companion Kai PR will pin the combined audited changes and enforce the policy at application deal boundaries. Updating this crate alone does not retroactively update installed Kai builds.

The new public enum variants may require downstream exhaustive matches to be extended, although no wire/blob/snapshot schema changes occur. This is a current-policy snapshot, not an as-of-date scheduler or a complete validator for unrelated formats such as Limited.

Reject Ekko, Recurrent and Stacked Deck across registered deck zones and printings under Standard and Constructed 2v2. Preserve historical import/storage and card behavior while exposing dated, sourced legality failures for enforced clients.
@abueide

abueide commented Sep 22, 2026

Copy link
Copy Markdown
Contributor Author

Mirrored rules PR: abysl/agni-rfb#4 . Kai integration will pin the combined audit fixes; no main branch has been merged by this task.

@abueide

abueide commented Sep 22, 2026

Copy link
Copy Markdown
Contributor Author

Final validation: both rules repositories passed bash ci/check.sh through the workspace/all-targets check and the pinned Nix treefmt --ci check (zero formatting changes). Agni importer coverage is 117 passing tests, including the real OPP Stacked Deck printing. The aggregate dependency combining all four fixes also passed 47 deck tests and 4,587 turns tests (169 pre-existing ignored).

@abueide

abueide commented Sep 22, 2026

Copy link
Copy Markdown
Contributor Author

Kai companion is now open as draft: abysl/kai#2 . It pins the combined rules changes and adds fresh validation at normal selection/deal/reload/AI-CLI boundaries. Keep it draft until the four Agni dependencies are merged and refresh its pin for release.

@abueide
abueide merged commit 6c20200 into main Sep 22, 2026
3 checks passed
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