pog-mcp 0.9.10 → 0.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pog-mcp",
3
- "version": "0.9.10",
3
+ "version": "0.9.12",
4
4
  "type": "module",
5
5
  "description": "MCP server that lets an AI agent play Proof of Goal — wallet, sign-in, squad building, and matches as typed tools.",
6
6
  "license": "MIT",
@@ -1907,9 +1907,12 @@ runs from 1 to 5 depending on the core.
1907
1907
  Every match here runs at `cond: 5` with no workload carried between fixtures. So this
1908
1908
  measures **how much a new attribute vector improves one fresh XI** — market quality — and
1909
1909
  not **what depth buys by resting tired players**, which is the mechanism H exists to cap.
1910
- Simulating that needs a recovery rate and a neutral point, and those are C-2's to decide.
1911
- **H's maximum stays open.** What follows is a market-quality result, and it is worth having
1912
- on its own.
1910
+ Simulating that needs a recovery rate and a neutral point. **At this run's publication H's
1911
+ maximum stayed open.** Result 7e later crosses the selected F-2 curve with the maximum-role
1912
+ carrier and establishes the recovery prize; its first two-vector H treatment was later withdrawn
1913
+ under CAP=0. Result 7g closes the product value at `N=17` across every N17 registration in one
1914
+ immutable 18-asset owned universe;
1915
+ the figures below remain market-quality evidence, not that final bound.
1913
1916
 
1914
1917
  **Two errors point opposite ways, so this is not an upper bound.** The buyer is fully
1915
1918
  informed — it sees all 30 listings' vectors, while production hides attributes and even
@@ -2535,14 +2538,14 @@ identity (`tournament_id IS NOT NULL`) and applies 0.1375 to cups and 1 to ladde
2535
2538
  one helper shared by current accumulation and historical rebuild. The fixed population, zero-gap,
2536
2539
  opponent-role, and changing-bracket limitations are the same as in the historical run above.
2537
2540
 
2538
- ## What a same-sum vector transfer is worth (`attr-vs-cond.mts`)
2541
+ ## What a same-sum vector transfer is worth (`attr-vs-cond.mts`) [historical input]
2539
2542
 
2540
- F-6 lets a registration submission redistribute each player's four attributes **within
2541
- that player's own sum**. Two core players with equal sums can therefore submit each
2542
- other's vectors: every check passes, and the strong build lands on whichever ID the
2543
- manager picks. §3-12 answers with a per-registration cap on how far a vector may
2544
- move from its own previous one, which slows a transfer to `ceil(distance / CAP)`
2545
- registrations rather than blocking it; load is never moved. This probe measures what the transfer would have been worth.
2543
+ This probe was run while F-6 still proposed letting a registration redistribute each player's
2544
+ four attributes **within that player's own sum**. Two equal-sum core players could then submit
2545
+ each other's vectors and move the strong build to a rested ID. The intermediate §3-12 design
2546
+ slowed that transfer with a per-registration L1 cap. Result 7e later measures the missing distance
2547
+ family and rejects every effective positive integer cap, choosing **`CAP=0`**. Production F-6
2548
+ therefore permits no vector redistribution; this section remains evidence for why.
2546
2549
 
2547
2550
  ### Method
2548
2551
 
@@ -2629,12 +2632,13 @@ vector-identical pairs and prints what it skipped (35 cells).
2629
2632
  The exit code covers the control only. A cell failing equivalence is a **result** here,
2630
2633
  not a harness fault — §3-12's rule applies whether or not the swap moves value.
2631
2634
 
2632
- ### What this cannot decide
2635
+ ### What this could not decide
2633
2636
 
2634
- One squad family, one tired/fresh gap (4.5 vs 5.5), and one cross-position pair. It does
2635
- not measure how often the rejection blocks an edit a manager legitimately wants; §3-12
2636
- bounds the geometry (four registrations to reach L1 distance 2, never closer), but the
2637
- distribution of wanted edits is unmeasured. C-2's stress cases own that.
2637
+ One squad family, one tired/fresh gap (4.5 vs 5.5), and one cross-position pair could not choose
2638
+ the cap. It also did not measure how often rejecting edits blocks a legitimate respec. Result 7e
2639
+ adds all 66 maximum roles and exact even distances 2–32, finds a distance-2 witness already worth
2640
+ 11.70pp [10.50, 12.89], and selects `CAP=0`. The distribution and UX value of honest requested
2641
+ edits remain unmeasured; the product deliberately chooses the closed fairness boundary anyway.
2638
2642
 
2639
2643
  ## What is one point of condition worth? (`cond-effect.mts`)
2640
2644
 
@@ -2776,9 +2780,12 @@ load **`L_neutral=1.146304`**, **`L₀=59.025216`** (4× D p95 `14.756304`),
2776
2780
  **`a=b·L_neutral/(L_neutral+L₀)=0.009361468442213193`**. The versioned equation is
2777
2781
  `cond=5+a−bL/(L+L₀)`. This does not activate fatigue: F-2 remains behind a default-OFF flag.
2778
2782
  The §3-15 follow-up closes #728-ladder role×condition and the shipped eight-match cup at the
2779
- pre-fixed two-dimensional boundary `s=0.1375, b=0.4914`. G-3 can flip only after the
2780
- launch-amplitude focused-role prize/cost ordering, H ceiling, and I-c CAP clear against this same
2781
- curve. Result 7d records the current rerun; the older C run and cup×1 result 7c remain audit trails.
2783
+ pre-fixed two-dimensional boundary `s=0.1375, b=0.4914`. Result 7e then closes the
2784
+ launch-amplitude focused-role recovery prize and I-c at `CAP=0`; result 7g closes H at `N=17`
2785
+ by comparing every admissible N17 registration against N18 in one immutable owned universe.
2786
+ F-2 stays default-OFF until
2787
+ F-3/F-4/J and G-3 are implemented. Result 7d records
2788
+ the current rerun; the older C run and cup×1 result 7c remain audit trails.
2782
2789
 
2783
2790
  ### F-1 implementation status — predicate D is now durable
2784
2791
 
@@ -3683,11 +3690,12 @@ The product choices are:
3683
3690
  condition 5. Zero load maps to 5.044, D p95 to 4.936, this window's observed maximum to 4.871,
3684
3691
  and the asymptote to 4.504. At `b=0.5399`, the independent worst upper bound is 3.69pp across
3685
3692
  all 18 actual cells.
3686
- - **Prize versus cost remains unresolved.** At the safe amplitude's maximum recoverable deficit
3693
+ - **Prize versus cost was unresolved at this revision.** At the safe amplitude's maximum recoverable deficit
3687
3694
  0.173, the prize is 0.19pp [−0.07, 0.45], the selected cheapest one-point replacement costs
3688
3695
  0.16pp, and paired cost−prize is −0.03pp [−0.50, 0.43]. The role×condition and cup extremes
3689
3696
  now clear in the §3-15 follow-up, but this ordering was not measured directly on the practical-
3690
- asymptote carrier. That focused prize/cost gate, H, CAP, the cup fold and G-3 keep F-2 OFF.
3697
+ asymptote carrier. At result 7c, that focused prize/cost gate, H, CAP, the cup fold and G-3 kept
3698
+ F-2 OFF; results 7d/7e/7f later close every item in that list except G-3.
3691
3699
 
3692
3700
  The canonical constants are therefore `τ=24h` and
3693
3701
  `cond = 5 + 0.044139 − 0.5399·L/(L + 90.717176)`. Implementation derives `a` from the other
@@ -3743,8 +3751,207 @@ The current constants are:
3743
3751
  from the other three constants rather than copying rounded prose.
3744
3752
 
3745
3753
  In the general-carrier diagnostic, a 0.173 deficit gives prize 0.26pp [0.04, 0.48], cost 0.10pp,
3746
- and paired cost−prize −0.16pp [−0.53, 0.21], still unresolved. It does not replace the next
3747
- focused maximum-role carrier gate, so F-2 remains default-OFF.
3754
+ and paired cost−prize −0.16pp [−0.53, 0.21], still unresolved. It does not replace the
3755
+ focused maximum-role carrier gate. Result 7e closes the recovery prize and I-c, but its first H
3756
+ cost treatment writes a second incumbent vector and is invalid under CAP=0; result 7g supplies the
3757
+ corrected same-owned-universe measurement.
3758
+
3759
+ ### Result 7e — launch role economics and I-c `CAP=0` (H cost verdict withdrawn, 2026-09-07)
3760
+
3761
+ `role-economics.mts` imports the result-7d product function directly and fixes the exact treatment
3762
+ at observed maximum `L=32.07`: **fresh 5.009361468442 versus tired 4.836364480324**, a deficit of
3763
+ **0.172996988118**. It uses the same six legal squads as §3-15, six offensive carriers plus 60
3764
+ non-GK defensive slots, the maximum pre-registered role multiplier ×1024, and a uniform 60-cell
3765
+ basket of six opponents by ten growth states. One observation first groups home/away ×
3766
+ regulation/knockout for one independently sampled basket cell, then applies knockout exposure
3767
+ **8.14%**.
3768
+ The unit is §3-15's win-rate-advantage pp, `win-equivalent-share difference × 2`, so one
3769
+ observation lies in [−200, 200]pp and the support width is 400pp.
3770
+
3771
+ Candidate selection uses **5,000** clusters from `role-economics-r1-select`; independent
3772
+ publication uses `role-economics-r1-final` with **200,000** economics clusters and **50,000** CAP
3773
+ clusters. For each role the selector exhausts **56–160** legal one-point-weaker replacements and
3774
+ **83–633** legal same-sum vectors, then confirms the top four economics candidates and top four
3775
+ high/low pairs at every exact even L1 distance on the publication column. The simultaneous family
3776
+ is **4,818 = 66×73**, each endpoint has `δ=5.188875e-6`, and the bounded empirical-Bernstein
3777
+ support width is **400pp**. Minimum–maximum context counts are **53–119 / 3,087–3,553 /
3778
+ 741–937** for selection/economics/CAP, with all 60/60 cells present for every role. The 80
3779
+ stock↔patch and 80 ×1-role identities per shard are all byte-identical, **5,280** of each in total.
3780
+ The run replays **1,477,620,000 matches**. SHA-256 of the 66 sorted `RESULT_JSON` records is
3781
+ `ea666c7e275a6559b2aa02db77f8069e618821b439d9a9bf518166f12e5c381f`.
3782
+
3783
+ **The valid part — the recovery prize is real.** The lower endpoint of the fresh-versus-tired
3784
+ prize is above zero in 66/66 roles. R1 then chose, per role, the finalist with the largest
3785
+ publication-column net `fresh one-point-weaker − tired anchor` and produced the following table.
3786
+ Its simultaneous-family accounting is sound, but the physical treatment does not implement H;
3787
+ the table is retained as audit history and is not a product verdict.
3788
+
3789
+ | role | prize point-estimate range | fresh replacement better | tired starter better | unresolved |
3790
+ | --- | ---: | ---: | ---: | ---: |
3791
+ | offense 6 | 0.44–0.84pp | **5** | 0 | 1 |
3792
+ | defense 60 | 0.28–1.15pp | **5** | 38 | 17 |
3793
+
3794
+ All finalists belong to the global simultaneous family, so choosing within the publication column
3795
+ does not invalidate their intervals. The largest reported value was
3796
+ `433/stars/atk|offense|slot8`, candidate `defense→slot1.defense`: prize **+0.44±0.16pp**,
3797
+ effect of the one-point-weaker role player plus the compensating point elsewhere
3798
+ **−1.08±0.37pp**, hence fresh replacement net **+1.52±0.37pp [1.15, 1.88]**. However,
3799
+ `costCandidates` lowers the role player's total by one and simultaneously raises a different
3800
+ incumbent's persisted vector and total by one. Adding asset 18 cannot perform that second write when
3801
+ `CAP=0`. This is a counterfactual two-vector XI effect, not the N17→N18 marginal slot, so its use as
3802
+ H evidence is **withdrawn** [Codex P1, 2026-09-07]. Result 7g owns the corrected H verdict.
3803
+
3804
+ **I-c — the assumption that nearby vectors are not worth changing is refuted.** The `ĝ(d)` rows
3805
+ below choose the largest publication mean among the four independently selected pairs. Selection
3806
+ error can miss the true argmax, so these are holdout-confirmed existence witnesses in the lower-
3807
+ bound direction, not mathematical upper bounds over the whole space. That direction is sufficient
3808
+ to reject a CAP.
3809
+
3810
+ | L1 distance d | holdout `ĝ(d)` | simultaneous interval | roles established over 5pp |
3811
+ | ---: | ---: | ---: | ---: |
3812
+ | 2 | **11.70pp** | [10.50, 12.89] | **64/66** |
3813
+ | 4 | 22.81pp | [21.35, 24.27] | 66/66 |
3814
+ | 6 | 33.75pp | [32.16, 35.35] | 66/66 |
3815
+ | 8 | 44.21pp | [42.54, 45.88] | 66/66 |
3816
+ | 10 | 53.74pp | [52.01, 55.46] | 66/66 |
3817
+ | 12 | 63.19pp | [61.44, 64.94] | 66/66 |
3818
+ | 14 | 70.59pp | [68.87, 72.32] | 65/65 |
3819
+ | 16 | 77.78pp | [76.06, 79.50] | 62/62 |
3820
+ | 18 | 76.64pp | [75.09, 78.20] | 50/50 |
3821
+ | 20 | 76.61pp | [75.04, 78.18] | 42/42 |
3822
+ | 22 | 76.77pp | [75.19, 78.35] | 39/39 |
3823
+ | 24 | 76.85pp | [75.27, 78.43] | 36/36 |
3824
+ | 26 | 77.11pp | [75.53, 78.69] | 28/28 |
3825
+ | 28 | 77.18pp | [75.60, 78.77] | 24/24 |
3826
+ | 30 | 77.22pp | [75.63, 78.80] | 17/17 |
3827
+ | 32 | 55.61pp | [54.02, 57.20] | 2/2 |
3828
+
3829
+ The distance-2 maximum witness is `433/stars/atk|defense|slot2`,
3830
+ `(1,6,1,4)→(2,6,1,3)`; both are legal same-sum vectors. Two is the minimum non-zero L1 distance
3831
+ for a sum-preserving integer edit, so every effective positive integer `CAP≥2` admits this
3832
+ 11.70pp move in one registration. `CAP=1` admits no change and is behaviourally equal to zero.
3833
+ Waiting more weeks or reasoning from maximum distance cannot rescue a positive CAP.
3834
+
3835
+ The explicit product value is therefore **`CAP=0`**. The four attributes fixed at creation or
3836
+ acquisition never change in later weekly registrations. This deliberately gives up honest respecs;
3837
+ it does not freeze pool membership, mutable positions/names for unminted players, or FK/PK choices.
3838
+ F-6 now enforces one shared vector-identity gate immediately before every squad write. This result
3839
+ closes C-2's recovery prize and I-c; result 7g below closes H. F-2 and the player pool remain
3840
+ default-OFF until F-3/F-4/J and G-3 are implemented.
3841
+ This is an existence result over the pre-fixed uniform 60-cell **mean** with shipped-default
3842
+ opponent role sheets. It does not bound crossed opponent-role sheets or the global engine space,
3843
+ but the positive allowed cases needed to reject every effective positive integer CAP already exist
3844
+ inside this scope.
3845
+
3846
+ ### Result 7f — first immutable actual-pool N17⊂N18 correction (H evidence withdrawn, 2026-09-07)
3847
+
3848
+ The Codex P1 reproduces exactly: result 7e's H candidate changes two incumbent vectors, so it is
3849
+ not an action that adding one asset can perform under the selected `CAP=0`. The corrected
3850
+ `MODE=pool-ceiling` directly imports and asserts
3851
+ `WEEKLY_PLAYER_POOL_PRODUCT_SIZE=17` and `WEEKLY_PLAYER_VECTOR_L1_CAP=0` before it runs.
3852
+
3853
+ The next Codex P1 also reproduces exactly. This run compares only one pre-selected N17 with N18.
3854
+ An owner holding the same 18 assets can register core eleven, the new fresh focal and any five low
3855
+ clones at N17, so that N17 already has both outcomes from this run. The exhaustive counts, values
3856
+ and hashes below remain an exact audit of those two specific pools, but they are **not the marginal
3857
+ effect of registration slot 18 or evidence for H. That attribution is withdrawn; result 7g owns
3858
+ the current verdict.**
3859
+
3860
+ The pre-fixed witness is `433/stars/atk|offense|slot8`. N17 consists of the legal source team's
3861
+ core eleven plus six distinct minted assets carrying the source's legal total-12 DF vector. N18
3862
+ preserves those 17 complete rows as a prefix and adds only a new minted asset with the tired slot-8
3863
+ player's same FW position, total 29 and `(pass,dribble,shoot,defense)=(6,9,9,5)` vector. No acquired
3864
+ name, position, attribute or designation is rewritten; the role sheet and condition are
3865
+ match-time tactic/derived values. N17 and N18's preserved-prefix SHA-256 are both
3866
+ `a43d28b29ee2474e2233f4f54315c3198d2a3d18f45ddee1834fc4761f3e1f9e`; full N18 is
3867
+ `147a312a0b3932e41f6530b19170301ef1037d4d215365ccc41458e03b7985cc`.
3868
+
3869
+ The probe exhausts `C(17,11)` and `C(18,11)` and sends every 212-point subset through the engine
3870
+ validator. N17 has **210 legal subsets**, all containing the tired focal, and **one** competitive
3871
+ projection. N18 has **420/two**; **210** use the new asset instead of the tired focal and form the
3872
+ second outcome. The projection contains position, attrs, total, condition, FK/PK and both role
3873
+ sheets, excluding only asset identity and display names, which do not enter the winner calculation.
3874
+ The unchanged N17 outcome remains available in N18, so the treatment is one fresh playerId rather
3875
+ than an incumbent rewrite.
3876
+
3877
+ The independent `role-economics-r2-pool-final` publication has **200,000 clusters** and covers all
3878
+ 60 contexts **3,188–3,481 times per cell**. Each observation is the same home/away × REG/KO group;
3879
+ support width is 400pp and the pre-fixed family of one uses two endpoint `δ=0.025` bounded
3880
+ empirical-Bernstein intervals. Across **1,600,000 matches**, the N18-only fresh outcome gains
3881
+ **+0.431679±0.078950pp [0.352728, 0.510629]**. Two separate processes reproduce byte-identical
3882
+ numbers and `POOL_RESULT_JSON`; its SHA-256 is
3883
+ `48615a458ee8e5696f6259bf8b9ff5d48056be96e50509db9f3d2a3abfcde606`.
3884
+ N17 has one competitive outcome and N18 has only that outcome plus the fresh one, so the positive
3885
+ simultaneous lower endpoint also establishes the fresh arm as N18's best on this pre-fixed mean.
3886
+
3887
+ The positive difference is valid between the pre-selected N17 and N18 above. A better N17
3888
+ registration contains both outcomes, however, so this value alone cannot select H's product maximum.
3889
+
3890
+ ```bash
3891
+ MODE=pool-ceiling POOL_SEEDS=200000 CONTROL_SEEDS=20 \
3892
+ POOL_COLUMN=role-economics-r2-pool-final \
3893
+ pnpm --filter pog-mcp exec tsx skill/reference/probes/role-economics.mts
3894
+ ```
3895
+
3896
+ ### Result 7g — every N17 registration versus N18 in one owned universe, H `N=17` (current product decision, 2026-09-07)
3897
+
3898
+ The second correction fixes the owned universe at 18 assets first and changes only the registration
3899
+ ceiling. The eleven core-XI IDs are mandatory on both sides. The optional assets are seven distinct
3900
+ minted clones byte-identical to the seven core vectors in slots 4–10. Their totals are
3901
+ **10, 13, 16, 19, 27, 28 and 29**; all are FWs, creating seven pre-fixed maximum offensive roles at
3902
+ ×1024. The other four players force GK/DF/DMF/OMF. The XI sums to 212 and exactly saturates
3903
+ `TEN_MAX=3` and `EIGHT_MAX=5`. SHA-256 of the 18-asset owned universe is
3904
+ `a62626d300ea675e82f61c11b06ef9b15577ad52bc173cf3bdf3b73d15adb73b`.
3905
+
3906
+ Because core eleven is mandatory, the maximal N17 registrations are **all seven** choices that omit
3907
+ one clone. Any smaller registration is weakly dominated by one of these because adding an owned
3908
+ asset cannot remove a legal XI. The probe exhausts each N17's `C(17,11)` and N18's `C(18,11)`, then
3909
+ sends every 212-point candidate through the actual engine validator. Each N17 has **293–385**
3910
+ 212-point candidates and exactly **64 legal XIs**; N18 has **876/128**. Every legal XI contains the
3911
+ four structurally mandatory cores and exactly one member of each of the seven core/clone pairs, and
3912
+ has one base competitive outcome after excluding asset identity and display name. In each focused
3913
+ role, N18 has tired/fresh outcomes; only the N17 missing that role's clone has one tired outcome,
3914
+ while the other six N17 registrations have both. The probe exhaustively asserts this **7×7
3915
+ frontier**, removing any opportunity to manufacture the gain by selecting a weak N17.
3916
+
3917
+ After a defensive pilot, the more direct seven offensive roles were fixed on a separate pilot
3918
+ column. The independent `role-economics-r3-pool-final` publication hashes one role and one of the 60
3919
+ opponent×growth cells uniformly per cluster, then replays that role's fresh/tired arms on identical
3920
+ home/away × REG/KO seeds. It has **1,000,000 clusters and 8,000,000 matches**, covering all 420/420
3921
+ role×context cells **2,255–2,511 times**. For each N17 registration, an observation is fresh−tired
3922
+ when the sampled role is its omitted clone and zero otherwise because the pools' best outcomes are
3923
+ identical. The pre-fixed family is seven, endpoint `δ=0.0035714285714285718`, with 400pp support
3924
+ width.
3925
+
3926
+ | omitted N17 clone | N18−that N17 best (pp) | simultaneous 95% interval |
3927
+ | --- | ---: | ---: |
3928
+ | `clone-04` | +0.096454±0.021319 | [0.075136, 0.117773] |
3929
+ | `clone-05` | +0.080273±0.020059 | [0.060214, 0.100332] |
3930
+ | `clone-06` | +0.066324±0.018963 | [0.047362, 0.085287] |
3931
+ | `clone-07` | +0.035576±0.016225 | [0.019351, 0.051801] |
3932
+ | `clone-08` | +0.024480±0.014288 | [0.010192, 0.038768] |
3933
+ | `clone-09` | +0.020601±0.014259 | [0.006342, 0.034861] |
3934
+ | `clone-10` | **+0.013387±0.013130** | **[0.000257, 0.026517]** |
3935
+
3936
+ All **7/7 lower endpoints are positive**. Selecting the lowest publication mean, `clone-10`, as the
3937
+ “best N17” is valid because all seven intervals are simultaneous. Two separate processes reproduce
3938
+ byte-identical complete output; SHA-256 of `POOL_RESULT_JSON` is
3939
+ `3013554c387daa709125b2077c17b22710761d70bf4a4c1d2c053fb21570b51b`.
3940
+
3941
+ H therefore sets the global product maximum to **`N=17`**. Core eleven plus the largest free grant
3942
+ of six already needs 17, and there is an allowed case where even the best N17 registration in the
3943
+ same owned universe is inferior to N18. This is an existence witness for one pre-fixed CAP0 owned
3944
+ universe under shipped-default opponent roles and the uniform role/60-cell mean, not a global lower
3945
+ bound on N18−N17 over every pool. H's P13 question needs one allowed case to show slot 18 is not
3946
+ structurally inert. N=17 still does not erase purchase advantage: the one-free-player branch can
3947
+ leave as many as five optional selected slots. Runtime accepts only
3948
+ `FORM_PLAYER_POOL_MAX_SIZE=17`; N18 remains a complete-enumeration regression case.
3949
+
3950
+ ```bash
3951
+ MODE=pool-ceiling POOL_SEEDS=1000000 CONTROL_SEEDS=20 \
3952
+ POOL_COLUMN=role-economics-r3-pool-final \
3953
+ pnpm --filter pog-mcp exec tsx skill/reference/probes/role-economics.mts
3954
+ ```
3748
3955
 
3749
3956
  ### Stage 3 — a multi-wallet feeder is exempt, not merely advantaged
3750
3957
 
@@ -3755,9 +3962,11 @@ honest player while a team taking the same match count as the away side accumula
3755
3962
  is exemption, not a ratio — bounded only by what bounds the feature. The historical `g=0.4`
3756
3963
  single-player prize is 0.59pp [0.25, 0.93]; at the selected D product amplitude the maximum
3757
3964
  recoverable deficit gives 0.26pp [0.04, 0.48] in the general-carrier diagnostic, and the
3758
- independently certified team-level worst upper bound is 3.48pp across the 18 observed cells. The §3-15 follow-up establishes the #728 role
3759
- ladder through ×1024 below 5pp, but the 0.173 prize/cost ordering has still not been measured
3760
- directly on that focused carrier, so this is not yet an activation verdict.
3965
+ independently certified team-level worst upper bound is 3.48pp across the 18 observed cells. The
3966
+ §3-15 follow-up establishes the #728 role ladder through ×1024 below 5pp, and result 7e measures
3967
+ the 0.173 recovery prize directly on all 66 focused roles. Its original two-vector H cost is
3968
+ withdrawn; result 7g provides the same-owned-universe H comparison. The feeder decision itself remains a
3969
+ product tradeoff; the now-closed H/I-c numeric gates do not decide it.
3761
3970
 
3762
3971
  ### What this does not settle
3763
3972
 
@@ -3791,12 +4000,12 @@ states while `allCells` did not. A deficit of exactly zero is not evidence of cl
3791
4000
  gate either, so such teams are excluded outright and the output says how many. None occur in
3792
4001
  this window.
3793
4002
 
3794
- The prize-versus-cost ordering at the D product amplitude remains unresolved: at its maximum
3795
- recoverable deficit 0.173, the general-carrier diagnostic prize is 0.26pp [0.04, 0.48], cost is
3796
- 0.10pp, and paired cost−prize is −0.16pp [−0.53, 0.21]. The neutral-point fork is now closed at the D
3797
- active-appearance median, and the §3-15 synthetic basket closes the pre-registered role ladder.
3798
- What remains here is to measure that 0.173 ordering directly on its practical-asymptote carrier;
3799
- the replay was what happened, not that role stress. Player identity is the snapshot's `actorIds` playerId, keyed GLOBALLY rather than per team —
4003
+ The general-carrier prize-versus-cost ordering remains unresolved on its own: at maximum
4004
+ recoverable deficit 0.173 its prize is 0.26pp [0.04, 0.48], cost is 0.10pp, and paired
4005
+ cost−prize is −0.16pp [−0.53, 0.21]. Result 7e does not relabel that diagnostic; it supplies the
4006
+ missing direct 66-role recovery-prize and I-c measurement. Its two-vector H use is withdrawn;
4007
+ result 7g closes H across all admissible N17 registrations in one immutable owned universe. Player identity is
4008
+ the snapshot's `actorIds` playerId, keyed GLOBALLY rather than per team —
3800
4009
  a minted player sold mid-window would otherwise get two chains starting from zero, understating
3801
4010
  the buyer's vector. A missing actor map or even one player that fails to join is rejected by the
3802
4011
  replay-completeness gate; there is no name-key fallback. **Two code paths went
@@ -3882,6 +4091,35 @@ ENTRY_PROFILES=/tmp/cup-entry-r36.json CUP_SCALE_INDEX=8 TRIALS=3000 \
3882
4091
  SEED_COLUMN=cup-role-r44-final \
3883
4092
  pnpm --filter pog-mcp exec tsx skill/reference/probes/cup-role-load.mts \
3884
4093
  > /tmp/cup-r44-final-b05026-s8.out
4094
+
4095
+ # 2026-09-07 r1 role recovery / I-c run. Its two-vector H diagnostic is
4096
+ # audit-only. Each one-role shard still pays for the full 4,818-interval
4097
+ # family; grouping only limits concurrency.
4098
+ for focal_index in 0 1 2 3 4 5; do
4099
+ FOCAL_INDEX="$focal_index" ROLE_SIDE=offense \
4100
+ SELECT_SEEDS=5000 ECON_SEEDS=200000 CAP_SEEDS=50000 CONTROL_SEEDS=20 \
4101
+ SELECT_COLUMN=role-economics-r1-select PUBLISH_COLUMN=role-economics-r1-final \
4102
+ pnpm --filter pog-mcp exec tsx skill/reference/probes/role-economics.mts \
4103
+ > "/tmp/role-economics-r1-${focal_index}-offense.out" &
4104
+ for role_slot in 1 2 3 4 5 6 7 8 9 10; do
4105
+ FOCAL_INDEX="$focal_index" ROLE_SIDE=defense ROLE_SLOT="$role_slot" \
4106
+ SELECT_SEEDS=5000 ECON_SEEDS=200000 CAP_SEEDS=50000 CONTROL_SEEDS=20 \
4107
+ SELECT_COLUMN=role-economics-r1-select PUBLISH_COLUMN=role-economics-r1-final \
4108
+ pnpm --filter pog-mcp exec tsx skill/reference/probes/role-economics.mts \
4109
+ > "/tmp/role-economics-r1-${focal_index}-defense-${role_slot}.out" &
4110
+ done
4111
+ wait
4112
+ done
4113
+ rg --no-filename '^RESULT_JSON ' /tmp/role-economics-r1-*.out \
4114
+ | sed 's/^RESULT_JSON //' | jq -s 'sort_by(.roleIndex)' \
4115
+ > /tmp/role-economics-r1-results.json
4116
+ shasum -a 256 /tmp/role-economics-r1-results.json
4117
+
4118
+ # Corrected H: every N17 registration versus N18 in one owned universe.
4119
+ MODE=pool-ceiling POOL_SEEDS=1000000 CONTROL_SEEDS=20 \
4120
+ POOL_COLUMN=role-economics-r3-pool-final \
4121
+ pnpm --filter pog-mcp exec tsx skill/reference/probes/role-economics.mts
4122
+ # POOL_RESULT_SHA256 3013554c387daa709125b2077c17b22710761d70bf4a4c1d2c053fb21570b51b
3885
4123
  ```
3886
4124
 
3887
4125
  **The window's end is now stated explicitly, so these figures can be rebuilt.** The default is