.omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/QA-SUMMARY.md
Real paginated GitHub releases output is represented at the script boundary.
gh api repos/code-yeongyu/oh-my-openagent/releases --paginate --slurp | bun -e '<summarize pages/releases/downloads>'.pages: 3, releases: 207, asset_downloads: 12615..omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/gh-slurp-shape.txt.Download aggregation handles slurped paginated release pages.
bun test script/stats.test.ts.expected object, received array at page indices..omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/red-bun-test-stats.txt.bun test script/stats.test.ts.#given slurped GitHub release pages #when collected #then stats aggregate every page..omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/green-bun-test-stats.txt.The real stats CLI can run through the GitHub + npm data path without uploading.
bun run script/stats.ts --dry-run.12615, matching the direct slurp probe..omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/cli-dry-run.txt.TypeScript/script quality gates pass for the touched surface.
bun run typecheck:script..omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/typecheck-script.txt.bun run packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts script/stats.ts script/stats.test.ts..omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/no-excuse-typescript.txt.git diff --check..omo/evidence/20260629-prepublish-blocker-fixes/stats-pagination/git-diff-check.txt.The failing test pins the exact release blocker shape chosen for the fix: GitHub CLI pagination with --slurp, where the JSON value is an array of pages. The implementation now calls gh api --paginate --slurp and parses both historical flat release arrays and slurped page arrays into the same aggregation path. The direct GitHub probe and dry-run script show the live command shape and the stats script agree on the same GitHub asset download total.
No PostHog send was performed; --dry-run was used to avoid writing analytics events. No OpenCode or Codex harness QA was run because this change is limited to a repository script and its workflow-facing data parsing.