pog-mcp 0.9.6 → 0.9.7
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 +1 -1
- package/skill/reference/measurements.md +46 -15
package/package.json
CHANGED
|
@@ -2549,12 +2549,41 @@ that was an artefact of an unattainable +4 buff and is withdrawn.
|
|
|
2549
2549
|
**This section does NOT close C-2.** An earlier version said it did; that was wrong. `τ` was
|
|
2550
2550
|
never measured — the probe's 24h default was simply used — and the neutral point was left
|
|
2551
2551
|
unchosen between its two branches. An F-1 implementer following that decision would have made
|
|
2552
|
-
a probe default the production recovery rate. And `τ` cannot be measured from this data:
|
|
2553
|
-
|
|
2554
|
-
What measurement CAN do is price the choices, which is what the τ sweep
|
|
2555
|
-
|
|
2556
|
-
published values
|
|
2557
|
-
−5.3%/−10.4%. That measures the price of the choice,
|
|
2552
|
+
a probe default the production recovery rate. And `τ` cannot be measured from this data: at the
|
|
2553
|
+
time of this measurement F-1 did not exist, so production had no fatigue and there was no observed
|
|
2554
|
+
recovery curve to fit. What measurement CAN do is price the choices, which is what the τ sweep
|
|
2555
|
+
does. Predicate C versus D was the third product choice at publication; it was subsequently
|
|
2556
|
+
resolved as **D** on 2026-09-04. The published values remain conditional on C; switching to D
|
|
2557
|
+
moves τ=24h median/p95 `L` by −5.3%/−10.4%. That measures the price of the choice, and selecting D
|
|
2558
|
+
does not retroactively relabel C-conditioned calibration as D-conditioned evidence.
|
|
2559
|
+
|
|
2560
|
+
### F-1 implementation status — predicate D is now durable
|
|
2561
|
+
|
|
2562
|
+
F-1 persists version `f1-d-growth-neutral-v1`: actor plus responder selections minus only the
|
|
2563
|
+
actor/responder selections produced by a zero-weight `weightedPick` fallback. Legitimate direct
|
|
2564
|
+
defender selections, fixed set-piece/post-play actors, and penalty keepers remain counted. This
|
|
2565
|
+
keeps the measured defensive participation while preventing the known all-zero ZP table from
|
|
2566
|
+
turning the first non-GK slot into a fatigue lever.
|
|
2567
|
+
|
|
2568
|
+
The engine instrumentation is opt-in and consumes no RNG. The existing growth-buffed simulation
|
|
2569
|
+
still decides the real result; one separate engine instance projects `total` back to the public
|
|
2570
|
+
attribute sum and emits only unsigned slot counters. Scheduled processing claims the complete due
|
|
2571
|
+
batch before either real or shadow simulation, freezes one external batch epoch into
|
|
2572
|
+
`MatchInputSnapshot v3.capturedAt`, and reuses it on retries. A first locked transaction commits the
|
|
2573
|
+
snapshot and durable per-player reservation; a second commits the real result, replay events,
|
|
2574
|
+
`match_workloads` root, 11/22 `player_workload_events`, and reservation release. Interactive ladder
|
|
2575
|
+
play holds the same player locks from snapshot through both simulations and the durable write.
|
|
2576
|
+
|
|
2577
|
+
Cup classification is structural (`tournament_id IS NOT NULL`) and credits both sides. Ladder
|
|
2578
|
+
credits home, plus away only when the shared `isAI || isSystemOwnedWallet` rule identifies a bot;
|
|
2579
|
+
human away produces no workload rows. Durable players retain `playerId`; daily cup fill-bots use a
|
|
2580
|
+
separate salt over cup date, team and slot. Listing, fixed purchase, auction settlement, custody
|
|
2581
|
+
activation/delivery finalization, and shared ownership transfer all participate in the same lock
|
|
2582
|
+
and reservation fence. Recovery discovers exactly
|
|
2583
|
+
`(tournament_id IS NOT NULL OR match_type='playoff') AND status='complete' AND completed_at > cursor`,
|
|
2584
|
+
never filters on kickoff, and records explicit legacy exemptions. Friendly, paid trial and sandbox
|
|
2585
|
+
write no workload and pin both route-local engine copies to `cond=5`. EWMA decay, neutral point and
|
|
2586
|
+
actual condition derivation remain F-2; F-1 alone changes no competitive input.
|
|
2558
2587
|
|
|
2559
2588
|
### Growth-leak gate: use a zero-growth shadow, not the real action trace
|
|
2560
2589
|
|
|
@@ -2578,7 +2607,7 @@ stored seed and `gameFlg`. F-1 consumes unsigned engagement counters only from t
|
|
|
2578
2607
|
The real result still uses the growth-buffed input; the shadow cannot change its score, events,
|
|
2579
2608
|
ratings or growth. It is therefore a **zero-growth counterfactual workload**, never the action
|
|
2580
2609
|
record of the match that happened. Runtime cost is one extra pure simulation per competitive match;
|
|
2581
|
-
F-1
|
|
2610
|
+
F-1 persists its counters atomically with the computed result. The workload timestamp must be
|
|
2582
2611
|
growth-invariant too: fix every due match's first-condition-snapshot (claim-start) time before ANY
|
|
2583
2612
|
real or shadow engine in that scheduler batch runs, then use that match's one stored value for both.
|
|
2584
2613
|
A sequential loop that timestamps match B only after simulating match A would carry A's
|
|
@@ -2604,8 +2633,8 @@ projection to the synthetic variations above and got byte-identical candidate-F-
|
|
|
2604
2633
|
**1,201/1,201 matches and all 2,402 sides**. Unit tests pin erasure, preservation, non-mutation and
|
|
2605
2634
|
idempotence; `match-growth.test.ts` pins that the real `applyMatchGrowth` producer projects exactly
|
|
2606
2635
|
back to its innate team, and the existing squad-hash test independently pins that `total` is outside
|
|
2607
|
-
the hash.
|
|
2608
|
-
exposure contracts.
|
|
2636
|
+
the hash. That closed the §3-5 prerequisite; F-1 now uses it and G-1 is complete, while F-3 and F-4
|
|
2637
|
+
retain their own implementation and exposure contracts.
|
|
2609
2638
|
|
|
2610
2639
|
**The gate is not a per-mode ceiling — it is defined on the exposure-weighted mix.**
|
|
2611
2640
|
`band-worstcase.mts` holds the canonical statement (`01-engine-expansion.md:319-329` puts
|
|
@@ -2765,7 +2794,8 @@ counts; on expected rates it is 14%. Within-match noise had been read as between
|
|
|
2765
2794
|
structure. The argument survives in a different form.
|
|
2766
2795
|
|
|
2767
2796
|
The keeper still accrues almost nothing — it enters a contest only at the A0 one-on-one and
|
|
2768
|
-
at penalties
|
|
2797
|
+
at penalties. F-1 deliberately accepted that limitation when it selected D rather than adding a
|
|
2798
|
+
separate goalkeeper source; whether it yields usable rotation belongs to F-2.
|
|
2769
2799
|
|
|
2770
2800
|
Predicate D now subtracts fallbacks on BOTH sides of the contest: zone press picks its ACTOR
|
|
2771
2801
|
through the fallback too, and an earlier version recorded only the responder's, so "C without
|
|
@@ -3007,8 +3037,9 @@ conversion.
|
|
|
3007
3037
|
|
|
3008
3038
|
### τ cannot be measured — only priced
|
|
3009
3039
|
|
|
3010
|
-
`τ` is the recovery rate §6 C-2 asks for.
|
|
3011
|
-
|
|
3040
|
+
`τ` is the recovery rate §6 C-2 asks for. This measurement window predates F-1 and fatigue,
|
|
3041
|
+
so there is no observed curve to fit. The later F-1 ledger still does not derive condition;
|
|
3042
|
+
`τ` remains a DESIGN choice, not a measurement. What
|
|
3012
3043
|
measurement can do is re-run everything at each candidate and report what follows. Each row
|
|
3013
3044
|
below re-integrates the timeline, re-runs that τ's full cell set, and re-searches for the safe
|
|
3014
3045
|
amplitude (one run, one snapshot).
|
|
@@ -3126,7 +3157,7 @@ it leaves open — does an opponent outside the basket exceed? — is asked sepa
|
|
|
3126
3157
|
only **62 distinct XIs**. The old pool held 95 objects, of which only **47** were distinct
|
|
3127
3158
|
lineups — 48 were duplicates. And **35 of the 95 teams fielded more than one XI** inside the
|
|
3128
3159
|
window, every later one discarded. The new pool CONTAINS the old one and adds 15 lineups.
|
|
3129
|
-
(Snapshot `cond` is 5 for everyone in this window — F-1
|
|
3160
|
+
(Snapshot `cond` is 5 for everyone in this historical window — it predates F-1 — so "fielded XI"
|
|
3130
3161
|
is squad identity here, not condition.)
|
|
3131
3162
|
|
|
3132
3163
|
**Taking only the top three was arbitrary — all 13 teams that played are measured.** Two
|
|
@@ -3537,8 +3568,8 @@ understated. Engine changes are input-dependent, so interspersed failures are a
|
|
|
3537
3568
|
possibility rather than a clean release boundary.
|
|
3538
3569
|
|
|
3539
3570
|
`LOAD_PRED` selects the integration predicate (default `C`). C is published, and the probe also
|
|
3540
|
-
integrates at D at every τ and prints the difference
|
|
3541
|
-
|
|
3571
|
+
integrates at D at every τ and prints the difference. F-1 subsequently selected D, but the
|
|
3572
|
+
published figures remain C-conditioned: calibration must always carry the predicate it used.
|
|
3542
3573
|
|
|
3543
3574
|
Without `TAU_SWEEP` only `TAU_H` runs. **Calling a single-τ run a "decision" makes a probe
|
|
3544
3575
|
default the production recovery rate** — that is why the sweep exists.
|