You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A maintainer review-stack × Autonomous Miner System (AMS) integration audit (2026-07-09) found that the maintainer recap digest's aggregation contract has no cohort dimension at all — unlike a missing dashboard card (additive), this requires an upstream schema change before a rendering fix is even possible.
Evidence
src/services/maintainer-recap.ts:40 — export type MaintainerRecapRepoInput = { gatePrecision: GatePrecisionReport; calibration: OutcomeCalibration }; — no actor/origin/cohort field.
A repo-wide search for miner|actor|contributor|login in src/services/maintainer-recap.ts returns zero matches (the file's only "top contributors" mention is an already-known dead code path — maintainer-recap-top-contributors.ts, added by closed issue feat(notifications): top-N contributor summary section for the maintainer recap (public-safe) #2244, is never imported outside its own test file).
src/services/gate-precision.ts explicitly documents it carries "repo full name + PR-derived counts + gate-type codes ONLY — no actor logins," and outcome-calibration.ts likewise has no cohort dimension — so the aggregation contract genuinely has no path to a miner-vs-human split without new upstream fields.
Why this matters for the Autonomous Miner System
Once the dashboard-side gap (see the sibling issue extending Wave-3's analytics cards) is closed and gatePrecision/calibration gain a cohort-aware computation path, the recap digest — the maintainer's periodic pulse without opening a dashboard — should be able to report something like "N of this week's merges were miner-originated, precision X%" rather than only a blended aggregate. Today it structurally cannot, at any level of rendering effort, until the upstream types gain the field.
Deliverables
Extend MaintainerRecapRepoInput (and its upstream GatePrecisionReport/OutcomeCalibration sources) with an optional miner-vs-human cohort split, once the upstream gate-eval split lands
Add a recap section (or extend an existing one) that renders the cohort split when available, degrading gracefully to the current blended view when it isn't
Tests: cohort-aware and cohort-absent recap rendering both produce valid output; no privacy regression (aggregate counts only, no actor logins in the recap output)
Docs: note the new field in the recap/config documentation
Surfaced by a maintainer review-stack × AMS integration audit (2026-07-09). Depends on the miner-vs-human split landing in the underlying gate-eval aggregates first (see the companion Wave-3 dashboard issue). Related: #1963 (the recap digest's own parent epic), #2244 (the closed, currently-dead top-contributors section this issue's schema work is adjacent to but distinct from).
Context
A maintainer review-stack × Autonomous Miner System (AMS) integration audit (2026-07-09) found that the maintainer recap digest's aggregation contract has no cohort dimension at all — unlike a missing dashboard card (additive), this requires an upstream schema change before a rendering fix is even possible.
Evidence
src/services/maintainer-recap.ts:40—export type MaintainerRecapRepoInput = { gatePrecision: GatePrecisionReport; calibration: OutcomeCalibration };— no actor/origin/cohort field.miner|actor|contributor|logininsrc/services/maintainer-recap.tsreturns zero matches (the file's only "top contributors" mention is an already-known dead code path —maintainer-recap-top-contributors.ts, added by closed issue feat(notifications): top-N contributor summary section for the maintainer recap (public-safe) #2244, is never imported outside its own test file).src/services/gate-precision.tsexplicitly documents it carries "repo full name + PR-derived counts + gate-type codes ONLY — no actor logins," andoutcome-calibration.tslikewise has no cohort dimension — so the aggregation contract genuinely has no path to a miner-vs-human split without new upstream fields.Why this matters for the Autonomous Miner System
Once the dashboard-side gap (see the sibling issue extending Wave-3's analytics cards) is closed and
gatePrecision/calibrationgain a cohort-aware computation path, the recap digest — the maintainer's periodic pulse without opening a dashboard — should be able to report something like "N of this week's merges were miner-originated, precision X%" rather than only a blended aggregate. Today it structurally cannot, at any level of rendering effort, until the upstream types gain the field.Deliverables
MaintainerRecapRepoInput(and its upstreamGatePrecisionReport/OutcomeCalibrationsources) with an optional miner-vs-human cohort split, once the upstream gate-eval split landsSurfaced by a maintainer review-stack × AMS integration audit (2026-07-09). Depends on the miner-vs-human split landing in the underlying gate-eval aggregates first (see the companion Wave-3 dashboard issue). Related: #1963 (the recap digest's own parent epic), #2244 (the closed, currently-dead top-contributors section this issue's schema work is adjacent to but distinct from).