Skip to content

fix: add --limit 200 and targeted --query filters to all gh project item-list calls#77

Merged
gringolito merged 1 commit into
masterfrom
fix/gh-project-item-list-truncation-76
May 24, 2026
Merged

fix: add --limit 200 and targeted --query filters to all gh project item-list calls#77
gringolito merged 1 commit into
masterfrom
fix/gh-project-item-list-truncation-76

Conversation

@gringolito
Copy link
Copy Markdown
Owner

Summary

  • Fixes silent truncation from the default 30-item limit on gh project item-list, which caused /execute-backlog-item to miss candidates ranked ≥31 and fall through to wrong tiers
  • All 9 affected commands/*.md files audited and updated
  • Targeted --query filters pushed server-side throughout to reduce response size and improve correctness

Rank-preservation investigation

Test method: compare item order from gh project item-list 2 --owner gringolito --format json --query "status:Todo" against gh project item-list 2 --owner gringolito --format json --limit 200 | jq '[.items[] | select(.status == "Todo")]'

Result: sequences are identical — --query preserves Project rank order. Same test confirmed for milestone:v0.3.0 status:Todo.

Conclusion: --query DOES preserve Project rank.

Changes per file

File Fix applied
execute-backlog-item.md Tier 1: --query "is:issue status:Todo milestone:<v>" --limit 200; Tier 2: --query "is:issue status:Todo no:milestone" --limit 200; single-item lookup: --query "#<n>"
add-backlog-item.md --query "status:Todo" --limit 200 for rank fetch
refine-backlog-item.md --query "#<n>" for membership check; --query "status:Todo" --limit 200 for rank fetch
refine-backlog.md Targeted label queries for Pool A/B, --limit 200; removed separate gh issue list call
plan-release.md Mode A/B: --query "is:issue status:Todo no:milestone ..." with type/blocker label filters; re-planning: --query "is:issue milestone:<v>"
release-status.md --query "is:issue milestone:<v>" --limit 200 for status lookup map
backlog-health.md --query "is:issue" --limit 200
validate-backlog.md --query "is:issue -status:Done" --limit 500
resolve-external-blocker.md --query "#<stub>" for single-item ID lookup

Acceptance Criteria

  • /execute-backlog-item uses targeted queries with --limit 200 and no longer drops items ranked 31+
  • All commands/*.md files that call gh project item-list audited and fixed
  • Rank-preservation investigation documented with reproducible test and clear conclusion
  • --query preserves rank: affected commands use targeted queries for Tier 1 and Tier 2
  • Consistency greps from CLAUDE.md still pass after edits
    Closes Fix gh project item-list truncation: missing --limit causes silent candidate drops #76

…tem-list calls

Default limit of 30 silently truncated projects with >30 items, causing execute-backlog-item
to miss ranked candidates and fall through to wrong tiers (discovered when #40 at position 34
was never returned). All 9 affected command files audited and fixed.

All calls now include either --limit 200/500 or are single-item #<n> queries (which return
at most one result and need no limit). Targeted --query filters applied throughout:
- is:issue to exclude PRs and draft items from all project item queries
- status:Todo for rank-analysis calls (add-backlog-item, refine-backlog-item)
- no:milestone for unassigned-candidate queries (plan-release, execute-backlog-item Tier 2)
- milestone:<v> for milestone-scoped status lookups (release-status, plan-release re-planning)
- Label and type filters pushed server-side where possible (plan-release mode A/B, refine-backlog)
- -status:Done for validate-backlog to reduce audit dataset size (raised limit to 500)
- #<n> targeted queries for single-item lookups (execute-backlog-item item ID, resolve-external-blocker)

--query confirmed to preserve Project rank order: filtered output sequence matches rank-ordered
--limit 200 output for the same items (reproducible test: compare item order from
`--query "status:Todo"` vs `--limit 200` then jq filter to Todo — sequences are identical).

Refs #76

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@gringolito gringolito self-assigned this May 24, 2026
@gringolito gringolito merged commit fbe03b8 into master May 24, 2026
1 check passed
@gringolito gringolito deleted the fix/gh-project-item-list-truncation-76 branch May 24, 2026 15:30
gringolito added a commit that referenced this pull request May 25, 2026
The broad `gh issue list` call was superseded by the targeted
`gh project item-list` Tier 1/Tier 2 queries introduced in #77.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix gh project item-list truncation: missing --limit causes silent candidate drops

1 participant