diff --git a/.clue/id-ledger.yaml b/.clue/id-ledger.yaml index a9307ff2e..1a984f768 100644 --- a/.clue/id-ledger.yaml +++ b/.clue/id-ledger.yaml @@ -4,8 +4,8 @@ counters: ARCH: "26" C: "4" CAP: "17" - CH: "31" - G: "1" + CH: "32" + G: "2" GTD: "1" IDR: "4" LOG: "1" @@ -658,11 +658,27 @@ entries: - id: CH-031-tasks kind: opaque state: live + - id: CH-032 + kind: numeric + state: live + prefix: CH + component: "32" + - id: CH-032-open-questions + kind: opaque + state: live + - id: CH-032-tasks + kind: opaque + state: live - id: G-001 kind: numeric state: live prefix: G component: "1" + - id: G-002 + kind: numeric + state: live + prefix: G + component: "2" - id: GTD-001 kind: numeric state: live diff --git a/docs/capabilities/CAP-015-rumble-result-data/design.md b/docs/capabilities/CAP-015-rumble-result-data/design.md index 2d6b12f74..42cf944eb 100644 --- a/docs/capabilities/CAP-015-rumble-result-data/design.md +++ b/docs/capabilities/CAP-015-rumble-result-data/design.md @@ -28,4 +28,4 @@ CI serializes ingestion and is the sole writer of facts and projections on `main ## External evidence -The external `robocode-dev/rumble-data` repository holds the implementation and focused suite for RDA-001 through RDA-004. [rumble-data#4](https://github.com/robocode-dev/rumble-data/pull/4) added every-ranked-type matchmaking advice and catalog-synchronization coverage and was accepted at merge commit `18e916e4a381c8108568d7ca77e3e14d88dd4583`; M-007 is complete. [rumble-data#7](https://github.com/robocode-dev/rumble-data/pull/7) at `83e71d4` adds RDA-005 positive and negative validation and advice-generation evidence, including TwinDuel member disjointness while preserving repeated member slots within a team. Run `python -m unittest discover -s tests -v` in that repository to reproduce the evidence. During P-001/M-002, the external-evidence reconciliation set must include RDA-001 through RDA-005 before this criteria artifact can become active without changing the criterion meanings. +The external `robocode-dev/rumble-data` repository holds the implementation and focused suite for RDA-001 through RDA-004. [rumble-data#4](https://github.com/robocode-dev/rumble-data/pull/4) added every-ranked-type matchmaking advice and catalog-synchronization coverage and was accepted at merge commit `18e916e4a381c8108568d7ca77e3e14d88dd4583`; M-007 is complete. [rumble-data#7](https://github.com/robocode-dev/rumble-data/pull/7) at `83e71d4` adds RDA-005 positive and negative validation and advice-generation evidence, including TwinDuel member disjointness while preserving repeated member slots within a team. [rumble-data#10](https://github.com/robocode-dev/rumble-data/pull/10) corrects the GitHub issue-submitter extraction with focused RDA-001 evidence. CH-032 then proved the live path: [rumble-data#11](https://github.com/robocode-dev/rumble-data/issues/11) accepted the client batch, and `f25c02f20e2938545563a0d2a017e53e9a208a7e` published the resulting facts and projections. Run `python -m unittest discover -s tests -v` in that repository to reproduce the evidence. During P-001/M-002, the external-evidence reconciliation set must include RDA-001 through RDA-005 before this criteria artifact can become active without changing the criterion meanings. diff --git a/docs/capabilities/CAP-016-rumble-client/design.md b/docs/capabilities/CAP-016-rumble-client/design.md index 68ff68bc2..6b0a132ec 100644 --- a/docs/capabilities/CAP-016-rumble-client/design.md +++ b/docs/capabilities/CAP-016-rumble-client/design.md @@ -44,4 +44,4 @@ The primary distribution is a rebuildable container containing the pinned Tank R ## External evidence -[rumble-client#7](https://github.com/robocode-dev/rumble-client/pull/7) at `cec7c8b` holds focused RCL-001, RCL-002, and RCL-004 through RCL-011 evidence; retired RCL-003 has no active evidence obligation. Its tagged integration and unit tests cover configuration before repository access, one validated ranked snapshot, team-aware seeded selection, ranked/practice state separation, Battle Runner execution and replay evidence, durable journaling, and bounded Issues-only submission. Run `./gradlew --no-configuration-cache -PtankRoyaleSource=../tank-royale clean build` in that repository to reproduce the hermetic client and real Runner evidence. RCL-008 and RCL-009 remain deferred by the approved CH-031 split, so P-003/M-008 remains incomplete. During P-001/M-002, the external-evidence reconciliation set must include RCL-010 and RCL-011 before this criteria artifact can become active without changing the criterion meanings. +[rumble-client#7](https://github.com/robocode-dev/rumble-client/pull/7) at `cec7c8b` holds focused RCL-001, RCL-002, and RCL-004 through RCL-011 evidence; retired RCL-003 has no active evidence obligation. Its tagged integration and unit tests cover configuration before repository access, one validated ranked snapshot, team-aware seeded selection, ranked/practice state separation, Battle Runner execution and replay evidence, durable journaling, and bounded Issues-only submission. [rumble-client#8](https://github.com/robocode-dev/rumble-client/pull/8) adds the RCL-006 regression proof that a terminally rejected issue leaves its records retryable. CH-032 completed RCL-009 through [rumble-data#11](https://github.com/robocode-dev/rumble-data/issues/11): the client submitted its retained journal, received durable receipts, and removed only receipt-covered records. Run `./gradlew --no-configuration-cache -PtankRoyaleSource=../tank-royale clean build` in that repository to reproduce the hermetic client and real Runner evidence. RCL-008 remains deferred by the approved CH-031 split because the public catalog does not yet cover every supported runtime. During P-001/M-002, the external-evidence reconciliation set must include RCL-010 and RCL-011 before this criteria artifact can become active without changing the criterion meanings. diff --git a/docs/goals/G-002-rumble-issues-token-runbook.md b/docs/goals/G-002-rumble-issues-token-runbook.md new file mode 100644 index 000000000..90efdd528 --- /dev/null +++ b/docs/goals/G-002-rumble-issues-token-runbook.md @@ -0,0 +1,16 @@ +--- +id: G-002 +type: goal +status: proposed +links: [G-001] +title: Internal Rumble Issues token runbook +provenance: verified +--- + +# G-002 — Internal Rumble Issues token runbook + +**Who:** Rumble maintainers and trusted contributors who operate a ranked-result client. + +**What:** An internal `rumble-data/docs/` runbook for creating, approving, supplying, rotating, and revoking the dedicated fine-grained GitHub token used by the Rumble client's Issues-only result transport. + +**Why:** Preserve the Rumble trust boundary during live submissions and operational recovery by making the minimum repository scope and permission set repeatable without recording a token value or publishing the procedure as participant-facing documentation. diff --git a/docs/goals/README.md b/docs/goals/README.md index 8cd0b83ec..8e16309db 100644 --- a/docs/goals/README.md +++ b/docs/goals/README.md @@ -6,4 +6,5 @@ A goal artifact answers three questions: who wants it, what they want, and why i - [G-001 — A programming game for learning and competition](G-001-programming-game-for-learning-and-competition.md) · `accepted` +- [G-002 — Internal Rumble Issues token runbook](G-002-rumble-issues-token-runbook.md) · `proposed` diff --git a/docs/plans/P-003-rumble.md b/docs/plans/P-003-rumble.md index 6515b91da..d3c4b8c82 100644 --- a/docs/plans/P-003-rumble.md +++ b/docs/plans/P-003-rumble.md @@ -19,7 +19,7 @@ The milestones mirror the design's Change Proposal Roadmap in order. Each milest | M-005 | Tank Royale prepared for rumble | `behaviorVersion` exists server-side and in the schema; SPDX `license` field in the booter bot config; Battle Runner exposes battle results for the client; rumble game presets defined; deterministic replay-regression hook in place | done | CH-009; server/runner/booter contracts and focused acceptance evidence | | M-006 | `rumble-bots` repository live | Repository scaffolded under the community organization with validation CI, templates, and governance; a sample bot PR passes validation end to end | done | CH-010; `robocode-dev/rumble-bots#1` merged as `c735e6ff4`; 4 external focused tests and the validator smoke check pass | | M-007 | `rumble-data` repository live | Result inbox drained by CI into immutable raw facts; aggregation produces leaderboard, pairings, and matches-needed projections; dashboard published on Pages | done | CH-011; [robocode-dev/rumble-data#4](https://github.com/robocode-dev/rumble-data/pull/4) merged on 2026-08-03, providing catalog synchronization and ranked advice for every V1 game type | -| M-008 | Rumble client runs ranked battles | After the official Tank Royale 1.1.0 release, the client pulls the bot catalog and matchmaking advice, runs a ranked battle, and its submitted result lands in `rumble-data` via issue-ops with no human in the loop | todo | | +| M-008 | Rumble client runs ranked battles | After the official Tank Royale 1.1.0 release, the client pulls the bot catalog and matchmaking advice, runs a ranked battle, and its submitted result lands in `rumble-data` via issue-ops with no human in the loop | done | CH-032; [rumble-data#11](https://github.com/robocode-dev/rumble-data/issues/11) accepted the client journal and `f25c02f20e2938545563a0d2a017e53e9a208a7e` published its immutable facts and projections | | M-010 | GUI supports TwinDuel | The GUI game-type dialog can select and start the `TwinDuel` preset using the common game-type contract; it is shipped in Tank Royale 1.1.0 | done | CH-013; CAP-017/GTD-001 and GUI acceptance evidence | | M-009 | Rumble documentation published | User guides live under `/web/docs/rumble/` with one quickstart per audience: bot author, battle contributor, moderator | todo | |