Skip to content

feat(cybergym): v3 lane bottom-fill payout curve (leader takes remainder) - #146

Open
ai-hpc wants to merge 1 commit into
mainfrom
ai-hpc/cybergym-v3-bottom-fill
Open

feat(cybergym): v3 lane bottom-fill payout curve (leader takes remainder)#146
ai-hpc wants to merge 1 commit into
mainfrom
ai-hpc/cybergym-v3-bottom-fill

Conversation

@ai-hpc

@ai-hpc ai-hpc commented Aug 25, 2026

Copy link
Copy Markdown
Member

Implements jared's v3 CyberGym-lane payout curve (STAGE A of the v3 lane redesign). With fewer than five qualified miners, the bottom ranks take their fixed level shares from the bottom up and rank 1 absorbs the remainder (winner-take-most), replacing the old renormalize:

N shares
1 [1.00]
2 [0.96, 0.04]
3 [0.89, 0.07, 0.04]
4 [0.79, 0.10, 0.07, 0.04]
5 [0.65, 0.14, 0.10, 0.07, 0.04]

Level scores are the existing TOURNAMENT_SHARES; shares always sum to 1. The change is byte-identical in cathedral-validator and cathedral-distill cybergym_tournament.py (BOUNDARY.md fork hazard), guarded by an identical golden test in both.

N=0 (empty lane) is unchanged here; the N=0->compute redirect is a follow-up (it touches the validator re-derivation and is a v3 contract-shape change).

Reward-path; not self-merged.

🤖 Generated with Claude Code

…takes remainder

The v3 CyberGym lane (30%) previously RENORMALIZED the top-N fixed shares when
fewer than five miners qualified. _award_shares now gives the BOTTOM ranks their
fixed level shares from the bottom up (rank n -> S5, rank n-1 -> S4, ...) and
rank 1 the remainder, so the lane still pays its full 1.0 while a thin field
concentrates on the leader (winner-take-most):

  N=1 [1.00]  N=2 [0.96, 0.04]  N=3 [0.89, 0.07, 0.04]
  N=4 [0.79, 0.10, 0.07, 0.04]  N=5 [0.65, 0.14, 0.10, 0.07, 0.04]

Level scores are the existing TOURNAMENT_SHARES; shares always sum to 1. Change
is byte-identical in cathedral-distill's cybergym_tournament (BOUNDARY.md fork
hazard), guarded by an identical golden test in both repos. N=0 (empty lane) is
unchanged here; the N=0->compute redirect lands in a follow-up.

Reward-path; for wallscaler review, not self-merged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ai-hpc

ai-hpc commented Aug 25, 2026

Copy link
Copy Markdown
Member Author

Co-merge required (fork hazard). This _award_shares change is duplicated byte-identically in the sibling repo (cathedral-validator #146cathedral-distill #161, per BOUNDARY.md — the two vendored cybergym_tournament.py copies must stay identical). An adversarial review confirmed they are byte-identical today and that the golden test test_award_shares_curve_is_the_fixed_v3_schedule pins the same table in both — but nothing asserts cross-repo identity, so these two PRs must land together; merging one without the other silently diverges the live payout curve from the vendored copy. (The idle-redirect PR #147 is independent — different files — but also assumes this curve on the live path.)

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