Description
Loop11 focused review of the missing-daily dormancy fix proved two pre-existing usage aggregation gaps explicitly excluded from GCI-0088 (missing daily counts out of dormant findings): daily_total still coerces missing/null daily counts to zero, and a partially missing currentActiveUsers denominator can produce estate stickiness. Real usage.build repro: stack active5/daily2 plus stack missingactive/daily2 publishes stickiness0.8. Initial CodeRabbit major also requested withholding the Daily users summary when daily input is incomplete. Both remain out of loop11 admission; no gate or finding was hidden. Follow-up needs its own bounded scope and acceptance.
Acceptance Criteria
- #1 Red-first real usage.build reproductions cover missing/null daily input and mixed estates with missing/null active denominators; unqualified totals and ratios are absent or explicitly qualified by measured coverage.
- #2 Fully measured zero and positive inputs preserve intended behavior; per-stack dormancy and stickiness semantics accepted by GCI-0088 remain unchanged.
- #3 No unrelated pillar scoring or permission changes; final just check, complete review and exact-SHA CI identify the correction.
Definition of Done
- #1 just test
- #2 just tf-validate
- #3 just check-identifiers and just no-em-dashes both return clean
Implementation Plan
Red-first usage.build incomplete daily and active denominator reproductions; withhold unqualified summaries while preserving complete zero/positive and per-stack semantics; review and gate before landing.
Implementation Notes
Loop12: 1 implementation attempt, 0 review-repair rounds. Landed 642d74468f63ad73e1d80296782f081f37c16ac2; public usage.build reds independently replayed, CodeRabbit complete zero findings, independent review PASS, real-.venv prelanding gate and composed gate green, exact-SHA CI 37327167189 success. Initial DNS gate failure and nonconforming shared symlink proof disclosed and replaced; two skips are not passes.
Final Summary
Incomplete daily or active count coverage now withholds unqualified totals and estate stickiness while preserving fully measured zero/positive and per-stack semantics. Existing no-active fixture changed from null to measured zero because null is unknown, with new missing/null regressions. Verified against landed 642d74468f63ad73e1d80296782f081f37c16ac2 and composed gate; evidence /Users/rob/repos/grafana-cloud-org-insights/codex/loop12-evidence/L-usage/.