ralph-two-pass-scan

Filters GitHub issues with a lightweight list scan before selectively hydrating full issue details.

Updated Jun 2, 2026
One-click install
npx skills add https://github.com/codebytes/btt --skill ralph-two-pass-scan-codebytes
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ralph-two-pass-scan
Source: https://github.com/codebytes/btt/tree/main/.squad/templates/skills/ralph-two-pass-scan
Command: npx skills add https://github.com/codebytes/btt --skill ralph-two-pass-scan-codebytes

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Scanning open GitHub issues one-by-one wastes API calls: fetching full details for every issue turns triage into an N+1 query problem. This Skill cuts GitHub API calls from N+1 to roughly 7 per round (~72% reduction) by separating cheap list scanning from expensive full hydration. ## Core Features & Use Cases - Pass 1 Lightweight Scan: Runs gh issue list --json number,title,labels,assignees --limit 100 and skips issues that are already assigned, blocked, done, or low-signal (e.g., [chore], [auto] titles). - Pass 2 Selective Hydration: Fetches full details (body, comments, state) only for issues surviving the filter, then applies normal triage logic. - Use Case: An autonomous triage agent scans a repository with 100 open issues each round; instead of 100+ API calls, it hydrates at most ~30% of issues, staying within rate limits while still catching actionable work. ## Quick Start Scan the open issues in this repository using the two-pass method and hydrate only the issues that pass the skip filters.

Frequently Asked Questions about ralph-two-pass-scan

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I reduce GitHub API calls when scanning issues?

Use a two-pass approach: first run gh issue list with only lightweight fields like number, title, labels, and assignees, then call gh issue view only for issues that pass your filters. This cuts calls from N+1 to a small constant per round.

How to filter GitHub issues before fetching full details?

Fetch the issue list with --json number,title,labels,assignees and skip issues that are already assigned, labeled status:blocked or status:done, or have noisy titles like [chore] or [auto]. Hydrate only the survivors with gh issue view.

What gh CLI fields should I use for a lightweight issue scan?

Use number, title, labels, and assignees with gh issue list --limit 100. These fields are enough to decide ownership and status without paying for body, comments, or full state on every issue.

When should I not use two-pass issue scanning?

Avoid it when more than 30 percent of scanned issues survive the filter, since the savings disappear. In that case tighten the skip rules, or if you need every issue's full content anyway, hydrate directly in one pass.

Why is my issue triage hitting GitHub rate limits?

Rate limits are usually hit because every issue is fully hydrated with gh issue view, creating N+1 requests per round. Filtering on list-level fields first and hydrating only actionable issues reduces calls by roughly 72 percent.