Skip to content

CH-001: Reliable Rumble ranking publication - #12

Merged
flemming-n-larsen merged 8 commits into
mainfrom
ch-001-reliable-rumble-publication
Sep 13, 2026
Merged

CH-001: Reliable Rumble ranking publication#12
flemming-n-larsen merged 8 commits into
mainfrom
ch-001-reliable-rumble-publication

Conversation

@flemming-n-larsen

@flemming-n-larsen flemming-n-larsen commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Acceptance brief

  • Plan item and whether it remains wanted: Plan-less CH-001; reliable change-aware ranking publication and cumulative monthly history remain wanted.
  • The vision this change proceeds under: VIS-001 — Public, verifiable Tank Royale Rumble rankings.
  • Added or changed criteria and scenario-resolution verdicts:
    • RDA-006 (verifies): “Given eligible facts for the current behavior version and the catalog's active bot versions / When a game type's leaderboard is generated / Then each battle contributes the participant's share of that battle's total score, repeated battles are averaged within their exact participant pairing, and APS is 100 times the mean of those pairing averages / And each distinct pairing has equal weight regardless of its battle count / And superseded versions and facts from another behavior version do not contribute, while an active version with no samples has APS zero.”
    • RDA-007 (verifies): “Given a current leaderboard and its publication timestamp / When publication regenerates the current leaderboard / Then a visible ranking change advances lastUpdatedAt to the publication time / And identical ranking output preserves the previous lastUpdatedAt / And creating a history snapshot alone does not advance lastUpdatedAt.”
    • RDA-008 (verifies): “Given the current cumulative leaderboard and the month in which it was last rolled over / When a serialized writer first runs in a later UTC month / Then it copies the current leaderboard and bot detail JSON byte for byte into a snapshot for every completed month before accepting new input / And its first run initializes the current month without inventing earlier snapshots / And it adds each snapshot to the history manifest without resetting the live cumulative ranking / And it refuses to alter, delete, or overwrite an existing snapshot.”
    • RDA-009 (verifies-something-adjacent): “Given the publication history manifest and current and archived leaderboard data / When a viewer selects Current or a completed month and a game type / Then the dashboard loads the corresponding leaderboard and bot details / And it shows when that ranking data last changed / And an archived month is clearly identified as a read-only month-end snapshot.” Static site contract tests cover paths and labels; hosted browser behavior remains deployment-observed.
    • RBC-005 (verifies-something-adjacent): “Given the normalized local catalog and the reviewed source catalog / When the hourly synchronization runs / Then changed source content is stored and immediately regenerated into current rankings / And identical source content is not rewritten, aggregated, committed, or deployed / And catalog and result writers cannot overlap their publication sections.” Python integration tests cover change detection and workflow contract tests cover orchestration; actual scheduling remains hosted behavior.
  • What becomes binding on merge: inferred ADR-003 supersedes deleted ADR-001, retaining immutable facts and disposable current projections while adding cumulative immutable month-end publication snapshots, active-pool matchup filtering, and ranking-tree-based freshness. No unaccepted base is involved.

Summary

  • Poll the reviewed bot catalog hourly but stop without aggregation, commit, or deployment when normalized content is unchanged.
  • Serialize result and catalog writers, explicitly dispatch Pages for changed generated site data, and add an hourly deployment reconciliation fallback.
  • Publish current-data freshness and immutable cumulative month-end snapshots through a Current/month dashboard selector.
  • Define exact APS, behavior-version, active bot-version, and matchup eligibility semantics; the current table contains all five active sample bots at zero until active-pool battles arrive.
  • Update durable architecture, design, capability, governance, README, changelog, and dashboard guidance.

Verification

  • python -m unittest discover -s tests -v — 39 passed.
  • python scripts/check_snapshots.py --base origin/main — additive snapshot changes only.
  • python scripts/aggregate.py --root . plus generated-data diff — clean.
  • Python compile, JavaScript syntax, workflow YAML parse, and publication-hash consistency — passed.
  • clue validate --forbid-changes — OK (16 artifacts).
  • git diff --check origin/main HEAD — passed.
  • Hosted verify and validate / validate — passed on 80c52ac5a980cec59727cf3ffaa035797a6a3c66.
  • The only local untracked path is the pre-existing user-owned .idea/; the scoped change worktree is clean and that directory is not part of this PR.

Cliewen proposal

  • Change ID: CH-001
  • Plan item served: explicitly plan-less; serves G-001, G-002, CAP-001, and CAP-002.
  • Proposal location: /changes/CH-001-reliable-rumble-publication/proposal.md in the proposal commit; removed by digest.
  • Agentic review mode, reviewed commit, and pass count: in-context fallback; 80c52ac5a980cec59727cf3ffaa035797a6a3c66; 4 passes.
  • Outstanding advisory findings: none.
  • Hosted head reviewed before this update: 80c52ac5a980cec59727cf3ffaa035797a6a3c66.
  • Outstanding actionable findings: none; all three blocking review conversations were resolved after their repairs reached the hosted branch.

Traceability and Decisions

  • Acceptance criteria or capability meaning changed: RDA-006, RDA-007, RDA-008, RDA-009, and RBC-005; existing Python-backed criteria are explicitly @draft because Cliewen does not classify Python evidence, while their tests remain hosted and passing.
  • Decision records added or changed: inferred ADR-003, superseding ADR-001.
  • Constraints assessed: C-001 held by clue validate; C-002 retained through CI-only writers and generated-data verification; C-003 retained with standard-library scripts and repository-native GitHub facilities; C-004 retained because no accepted raw fact or rollup changed.

Cliewen checklist

  • This is the initiating author's only initiated Cliewen change; review or update help on an existing PR does not consume another slot.
  • The full proposal was committed before implementation.
  • The plan item or plan-less declaration is truthful, and all artifact links resolve.
  • Consequential decisions are recorded, and active constraints were assessed.
  • Changed active acceptance criteria satisfy the evidence contract through per-criterion @draft plus focused hosted Python evidence.
  • User-visible impact is described under [Unreleased] in CHANGELOG.md.
  • Full-change tasks are complete, plan bookkeeping is current, and no transient /changes/ workspace remains.
  • Generated artifacts were regenerated from their canonical sources where applicable.
  • The current commit received a clean agentic review pass; all blocking repairs triggered another pass and no advisories remain.
  • Reviews name their hosted heads, and actionable conversations were resolved only after reviewed fixes were published.
  • Applicable repository tests, strict Cliewen validation, aggregate drift, and base diff checks pass.

Review boundary

  • The branch started from the current accepted tip of main and does not build on unmerged work.
  • Every intended edit is committed, the scoped worktree is clean, and verification ran against the current commit.
  • The branch was updated without force, and this PR's hosted head equals the locally verified branch and HEAD.
  • This pull request existed as a draft from first publication; every changed work turn was pushed, and readiness is the explicit verification-bound claim.
  • Satisfied review conversations were resolved only after their reviewed fixes reached this hosted head.
  • The full change is ready for human review and merge; no agent will accept its own full change.

Comment thread scripts/aggregate.py Outdated
Comment thread scripts/publication.py
Comment thread scripts/aggregate.py
@flemming-n-larsen
flemming-n-larsen marked this pull request as ready for review September 13, 2026 11:42
The dashboard now drops leaderboard responses that belong to a superseded
selection, so the table, status, archive notice and bot links always match
the selected period.

The snapshot immutability check now also requires every existing
history.json snapshot entry to remain unchanged, so a pull request can no
longer remove or rewrite an archived month from the period selector.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TumFGXBzSvL3FFd6SWiZt6
@flemming-n-larsen
flemming-n-larsen merged commit 6fd7239 into main Sep 13, 2026
2 checks passed
@flemming-n-larsen
flemming-n-larsen deleted the ch-001-reliable-rumble-publication branch September 13, 2026 12:32
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