Good To Go (gtg) is a Python CLI tool that helps AI agents determine if a GitHub Pull Request (PR) is ready to merge. It aggregates CI status, classifies review comments to distinguish actionable feedback from noise, and tracks thread resolution, returning a simple 'READY' or 'NOT READY' status. The tool addresses a pain point for developers using AI coding assistants that struggle to know when their work on a PR is truly complete.
A starter prompt for Claude Code, what you'll need, and how to reach them.
You are an expert Python developer. Build a CLI tool named `gtg` (Good To Go) that helps AI agents and developers determine if a GitHub Pull Request (PR) is ready to merge. The tool should take a PR number as input and output 'OK PR #<num>: READY' or 'NOT READY' along with a breakdown of reasons. CORE FUNCTIONALITY: 1. **GitHub API Integration**: Use the `requests` library to fetch PR details, status checks, and comments for a given repository and PR number. Assume the repo is configured via environment variables (e.g., `GITHUB_REPO_OWNER`, `GITHUB_REPO_NAME`, `GITHUB_TOKEN`). 2. **CI Status Aggregation**: Check all GitHub 'checks' and 'status' API results related to the PR. Determine if all required checks have passed. Return 'FAILED' if any required check is not successful. 3. **Comment Classification**: Analyze all PR comments. Implement a basic classification logic using regex and keyword matching to identify 'actionable' comments (e.g., containing 'fix this', 'critical', 'bug', 'blocking', 'review required') vs. 'non-actionable' comments (e.g., 'LGTM', 'nice', 'suggestion', 'nit', 'question' if already answered). Account for common AI review tool patterns like 'Critical:' or 'Blocking:' from CodeRabbit/Greptile. 4. **Thread Resolution Tracking**: Determine if all actionable comment threads are resolved. A thread is resolved if the comment itself is marked resolved or a subsequent comment from the original author or reviewer explicitly acknowledges resolution (e.g., 'fixed', 'done', 'resolved'). 5. **Unified Readiness Check**: Combine CI status, actionable comment resolution, and overall thread resolution into a single 'READY' or 'NOT READY' verdict. 6. **Output**: Provide both human-readable text output and a JSON output option (e.g., `--json` flag). MVP SCOPE: - Focus on GitHub PRs only. - Initial comment classification can be rule-based (regex/keywords) rather than ML-driven. - Assume `GITHUB_TOKEN` has read access to the repo. STACK: Pure Python, `requests` library, `argparse` for CLI. BUILD/VERIFY GATE: - Write unit tests for GitHub API parsing, CI status aggregation, and comment classification. - Manually test with a few example PRs from public GitHub repos with varying CI statuses and comment types (resolved, unresolved, actionable, non-actionable).
Reach developers using AI coding tools and building agent workflows; this tool complements their existing efforts in automating build/ship loops and evaluating agents by providing critical feedback on PR readiness.
I've been using Claude Code heavily, and kept hitting the same issue: the agent would push changes, respond to reviews, wait for CI... but never really know when it was done. It would poll CI in loops. Miss actionable comments buried among 15 CodeRabbit suggestions. Or declare victory while threads were still unresolved. The core problem: no deterministic way for an agent to know a PR is ready to merge. So I built gtg (Good To Go). One command, one answer: $ gtg 123 OK PR #123: READY CI: success (5/5 passed) Threads: 3/3 resolved It aggregates CI status
Reply in the Hacker News thread to 'dsifry'.
“I've built a prototype of gtg with a robust comment classification engine and reliable CI status aggregation. Here's a link to the repo. I'd love to share it and get your feedback, as I'm also building agent orchestration systems and see the clear need for this.”
Open the original ↗