Skip to content

review + fleet-wide: ci-log-auditor's 'add' rationale misdescribes gh --paginate's array merge, plus ~15 sites omitting per_page=100 #2246

Description

@kyle-sexton

#2238 covers ci-log-auditor.md:22 (a missing per_page=100). This is a different defect in the same file — the prose, not the command — and a repo-wide sweep of the same conformance gap #2238 reports at one site.

Part 1 — the add rationale misdescribes what gh actually does

plugins/review/agents/ci-log-auditor.md:65 (mirrored in plugins/review/CHANGELOG.md:20):

Concatenated pages are arrays, so they are combined with add, not by reaching through a wrapper

Measured (gh api --paginate, per_page=10, jq -s 'length'):

array endpoint   (issues/<n>/comments)         -> 1 document
object endpoint  (commits/<sha>/check-runs)    -> 3 documents

gh --paginate merges top-level array responses into a single document; it emits one document per page only for object-envelope responses. So on the /annotations endpoint there is exactly one array, and add is unwrapping a 1-element slurp rather than concatenating pages.

The published command is correct — jq -s '... add | length' yields the right count, verified against output.annotations_count. Only the explanation is wrong. Worth fixing because it is a mechanism claim in a file whose whole subject is being factually right about pagination, and because a reader who believes it will mispredict the shape on the next endpoint.

Part 2 — repo-wide sweep of --paginate without per_page=100

#2238 reports this at one site; it holds at roughly fifteen runnable command sites across four plugins. Stated honestly: --paginate alone is complete — it fetches every page regardless — so these are not truncation defects. They are non-conformant with rule 1 as skills/pull-request/reference/readiness.md:55 publishes it (--paginate with per_page=100), and they cost 3.3x the requests.

Sites on main (c1b4c629), excluding prose mentions, single-resource GETs, and mutations:

file line
plugins/review/agents/ci-log-auditor.md 22 (already #2238 / #2239)
plugins/source-control/skills/pull-request/reference/merge.md 14, 15, 16
plugins/source-control/skills/pull-request/SKILL.md 166, 167, 168 (C1/C2/C3)
plugins/source-control/skills/pull-request/reference/monitor.md 195
plugins/source-control/scripts/fetch-all-pr-comments.sh 141
plugins/source-control/skills/babysit-loop/reference/telemetry-upsert.md 39
plugins/source-control/skills/babysit-prs/scripts/babysit_gh.py 441
plugins/source-control/skills/babysit-prs/scripts/request_review.py 186
plugins/claude-ops/skills/lanes/scripts/restart-consumer.sh 774
plugins/claude-ops/skills/lanes/scripts/telemetry-upsert.sh 344
plugins/work-items/skills/attend-queue/SKILL.md 136
plugins/work-items/skills/work-loop/reference/telemetry-upsert.md 43
plugins/work-items/tools/work-item-tracker/adapters/github/common.sh 189
plugins/work-items/tools/work-item-tracker/adapters/github/reclaim.sh 46, 50

merge.md:14-16 and SKILL.md:166-168 are worth a callout: they read the same three endpoints that #2163 changed elsewhere in the same skill, and SKILL.md's are 11-17 lines above lines #2163 did give ?per_page=100.

Verify each line before editing — main moves continuously and #2239 is already in flight against the first row.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageNot yet classified. Floor until a type and one priority tier are set.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions