Repository navigation
feat: reorganize scripts into AI-friendly development tools - #306
Conversation
This commit implements issue #301 to reorganize scattered shell scripts into structured, AI-assistant-friendly Go-based development tools. ## Changes Made ### New Development Tools - **bin/gh-helper**: Generic GitHub operations - reviews check: PR review monitoring with state tracking - threads list: List unresolved review threads - threads reply: Reply to threads with stdin/heredoc support - **bin/spanner-mycli-dev**: Project-specific tools - worktree setup/list/delete: Phantom worktree management - docs update-help: Generate help output for README.md ### Enhanced Makefile - make build-tools: Build development tools - make check: Combined test && lint (required before push) - make test-quick: Quick development tests - make docs-update: Use new tools - make worktree-setup/gh-review: Use new tools ### AI-Friendly Design Patterns - stdin/heredoc support (no temporary files) - Comprehensive --help output for tool discovery - Unified Go module: github.com/apstndb/spanner-mycli/dev-tools - Clear separation: generic vs project-specific commands ### Documentation Updates - Updated all .md files to reference new tools - Removed all old script references - Added development insights section documenting AI-friendly patterns ### Removed Files - scripts/check-pr-reviews.sh → bin/gh-helper reviews check - scripts/dev/list-review-threads.sh → bin/gh-helper threads list - scripts/dev/review-reply.sh → bin/gh-helper threads reply - scripts/dev/setup-phantom-worktree.sh → bin/spanner-mycli-dev worktree setup - scripts/docs/update-help-output.sh → bin/spanner-mycli-dev docs update-help Fixes #301 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Summary of Changes
Hello @apstndb, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request significantly improves the developer experience by reorganizing scattered shell scripts into structured, Go-based development tools. The change centralizes common development tasks, making them more discoverable and enhancing their usability, particularly for AI assistants, through features like stdin/heredoc support and comprehensive help outputs. It also updates the project's build system and documentation to reflect these new utilities.
Highlights
- New AI-Friendly Tools: Introduced two new Go-based development tools:
bin/gh-helperfor generic GitHub operations (PR reviews, thread management) andbin/spanner-mycli-devfor project-specific tasks (phantom worktree management, documentation generation). These tools are designed with AI-friendly patterns like stdin/heredoc support. - Enhanced Makefile Integration: The
Makefilehas been significantly updated with new targets such asbuild-tools,check(for combined test and lint),docs-update,worktree-setup, andgh-review. These targets provide convenient wrappers for the new Go tools, streamlining common development workflows. - Script Consolidation and Removal: Five existing shell scripts have been replaced and consolidated into the new Go-based tools, leading to a more unified, structured, and maintainable codebase for development utilities.
- Comprehensive Documentation Updates: All relevant Markdown documentation files (
CLAUDE.md,README.md,dev-docs/README.md,dev-docs/architecture-guide.md,dev-docs/development-insights.md,dev-docs/issue-management.md) have been updated to reflect the new tool paths and usage. A new section indev-docs/development-insights.mddetails insights on AI-friendly design patterns.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Code Review
This pull request introduces new Go-based CLI tools, gh-helper and spanner-mycli-dev, refactoring existing shell scripts. The changes enhance usability, especially for AI assistants, and include thorough documentation updates. The review focuses on potential improvements to error handling in cmd/gh-helper/main.go.
Fix bug where state tracking was saving the first review instead of the latest review due to incorrect array indexing. - Use reviews[len(reviews)-1] for latest review (GraphQL 'last: 15' returns chronologically) - Tested with PR #306 reviews - now correctly tracks state between runs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Fix bug where state tracking was saving the first review instead of the latest review due to incorrect array indexing. - Use reviews[len(reviews)-1] for latest review (GraphQL 'last: 15' returns chronologically) - Tested with PR #306 reviews - now correctly tracks state between runs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Address code review feedback from @gemini-code-assist: - Add proper error handling when writing state file - Log warning if state write fails to prevent misreporting - Improves tool reliability for review tracking 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request refactors shell scripts into Go-based CLI tools, gh-helper and spanner-mycli-dev, to improve developer experience, especially for AI assistants. The changes include new Makefile targets, updated documentation, and AI-friendly design patterns like stdin support. A high-severity issue was identified related to error handling in JSON string escaping which could lead to incorrect behavior when replying to GitHub threads.
Address code review feedback from @gemini-code-assist: - Improve jsonEscape function with proper error handling - Add 'gh-helper threads show' command for detailed thread inspection - Add 'gh-helper reviews wait' command for monitoring reviews - Enhanced error messages for better debugging New features for AI-friendly development: - Detailed thread view with diff context and full comment history - Autonomous review waiting with configurable timeout - Better error propagation prevents silent failures 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add best practices for review thread replies: - Include commit hashes when code changes are made - Use explanation-only replies when no changes needed - Enhanced examples with new 'threads show' command - Template responses for consistent communication This improves traceability and makes review discussions more actionable. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add project-specific Gemini review automation: - New 'spanner-mycli-dev review gemini' command for complete workflow - Integrates gh-helper for review monitoring and thread management - Automated 3-step process: request review → wait → display threads - Enhanced documentation with Gemini-specific best practices Project-specific features: - 15-minute timeout optimized for Gemini response time - Automatic fallback between local and PATH gh-helper - Clear next-steps guidance for manual review handling - Template responses for AI code review feedback This creates a seamless experience for AI assistants managing code review cycles in the spanner-mycli project. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add important clarification that /gemini review is only needed for pushes made AFTER PR creation, not for the initial PR submission. Key clarifications: - Gemini automatically reviews initial PR creation - Manual /gemini review only needed for subsequent changes - Updated both CLAUDE.md and detailed documentation - Enhanced command help text with timing guidance This prevents unnecessary Gemini review requests and clarifies the proper workflow for the spanner-mycli project. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add smart auto-detection and explicit commands for PR creation vs review cycles: 1. **Auto-detecting command**: - spanner-mycli-dev review gemini <PR> now detects initial vs subsequent pushes - Compares PR creation time with latest commit time - Checks commit messages for review-related keywords - --force-request flag to override detection 2. **Explicit scenario commands**: - spanner-mycli-dev pr-workflow create - Create PR + wait for auto review - spanner-mycli-dev pr-workflow review <PR> - Handle post-push review cycle 3. **Detection algorithm**: - Uses GraphQL to compare PR creation vs latest commit time - More than 5 minute difference suggests post-creation push - Scans recent commits for fix/address/review keywords - Provides clear feedback on detection reasoning This addresses user request for unified commands that handle both initial PR creation and subsequent review cycles with automatic scenario detection or explicit control. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add 'wait-all' command to monitor both reviews and CI checks completion: ## New gh-helper command: - `reviews wait-all <PR>` - Wait for BOTH new reviews AND PR checks completion - Uses combined GraphQL query for efficiency - 15-minute default timeout (configurable) - Shows real-time status for both conditions ## Enhanced workflow commands: - All PR workflow commands now support `--wait-checks` flag - `pr-workflow create --wait-checks` - Wait for review + CI after PR creation - `pr-workflow review <PR> --wait-checks` - Wait for review + CI after pushes - `review gemini <PR> --wait-checks` - Smart detection + review + CI waiting ## Implementation details: - Combined GraphQL query fetches reviews + statusCheckRollup in single request - Monitors rollup state: SUCCESS/FAILURE/ERROR = complete - Reuses existing review state tracking for consistency - Clear status reporting for both conditions This addresses the user request to wait for both review completion and PR check completion simultaneously, useful for CI-dependent workflows. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
/gemini review |
1 similar comment
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request successfully reorganizes shell scripts into two new Go-based CLI tools, gh-helper and spanner-mycli-dev, aiming for better AI-assistant friendliness. The changes are comprehensive, including updates to the Makefile, extensive documentation revisions, and well-structured Go applications using Cobra. The new tools provide functionalities for GitHub operations, worktree management, documentation generation, and project-specific PR workflows. My review focused on identifying critical or high severity issues related to correctness, security, efficiency, and maintainability. I identified a potential logic error in state management for review checking in gh-helper that needs to be addressed. No other issues meeting the high or critical severity threshold were identified. The PR significantly improves the developer tooling and documentation.
|
/gemini review |
Add --request-review flag to gh-helper reviews wait-all command: ## Enhancement: - `wait-all --request-review` now automatically requests Gemini review before waiting - Eliminates need for separate review request + wait commands - Useful for post-push scenarios where review triggering is needed ## Usage examples: ```bash # Request review then wait for both reviews and checks bin/gh-helper reviews wait-all 306 --request-review # Traditional separate steps (still supported) gh pr comment 306 --body "/gemini review" bin/gh-helper reviews wait-all 306 ``` ## Implementation: - Added --request-review boolean flag to wait-all command - Uses gh pr comment with "/gemini review" before starting monitoring - Maintains all existing functionality when flag not used - Updated help documentation and CLAUDE.md This addresses the user feedback that wait-all should be able to trigger Gemini reviews, not just wait for them passively. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request introduces a significant and positive refactoring of development scripts into Go-based CLI tools, gh-helper and spanner-mycli-dev. The changes enhance maintainability, AI-friendliness, and provide structured command-line interfaces for various development and GitHub operations. Documentation has been thoroughly updated to reflect these new tools and workflows. The Makefile is also enhanced to support building and using these tools. One high-severity issue was found in gh-helper related to a hardcoded owner name, which could affect its generic usability. Overall, this is a well-executed improvement to the project's tooling.
There was a problem hiding this comment.
Code Review
This pull request significantly refactors development scripts into Go-based CLI tools (gh-helper and spanner-mycli-dev), enhancing AI-assistant friendliness and developer experience. The changes include new Makefile targets, updated documentation across multiple files (README.md, CLAUDE.md, dev-docs), and the core Go tool implementations. The reorganization is well-executed, and the new tools offer improved structure and functionality. Key areas for improvement involve safer GraphQL query construction and correcting a contradiction in the documentation regarding API usage.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request successfully reorganizes shell scripts into structured Go-based development tools (gh-helper and spanner-mycli-dev), enhancing AI-assistant friendliness. The changes include new tool implementations, Makefile updates, and comprehensive documentation revisions. The new tools are well-designed, and the documentation, particularly the insights on AI-friendly tool development, is excellent. No issues of critical or high severity were found in the review of the provided code changes.
BREAKING CHANGE: Default behavior for 'reviews wait' now includes both reviews and PR checks. ## Changes: - **New Default**: `reviews wait` now waits for BOTH reviews AND checks - **Exclude Flags**: Use `--exclude-reviews` or `--exclude-checks` to wait for only one - **Shorter Timeout**: Reduced default timeout from 15min to 5min (more realistic) - **Better UX**: `--request-review` flag for automatic Gemini review triggering ## Migration: - Old: `reviews wait` (reviews only) → New: `reviews wait --exclude-checks` - Old: `reviews wait-all` (both) → New: `reviews wait` (now default) ## Rationale: In practice, developers need both review feedback AND CI status before proceeding. Making this the default reduces cognitive load and matches real workflow needs. Individual components can still be excluded when needed. ## Usage Examples: ```bash # New default (recommended for most cases) bin/gh-helper reviews wait 306 --request-review # Specific exclusions for edge cases bin/gh-helper reviews wait 306 --exclude-checks # Reviews only bin/gh-helper reviews wait 306 --exclude-reviews # Checks only ``` 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Move cmd/gh-helper -> dev-tools/gh-helper - Move cmd/spanner-mycli-dev -> dev-tools/spanner-mycli-dev - Update Makefile build paths to reflect new structure - Add comprehensive documentation for development tools - Consolidate knowledge from issue #301 script reorganization The directory structure now matches the Go module path github.com/apstndb/spanner-mycli/dev-tools for better consistency. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
/gemini review |
1 similar comment
|
/gemini review |
- Add user-friendly error messages when PR number is incorrect - Parse GraphQL errors from response body - Extract meaningful error details from stderr output - Provide actionable guidance for common mistakes Example: "PR not found - please check the PR number is correct" instead of raw GraphQL error output. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Code Review
This pull request significantly refactors development tooling by migrating shell scripts to Go-based applications, gh-helper and spanner-mycli-dev, resulting in impressive GitHub API call reductions and improved developer workflows. The documentation updates are extensive and largely align with these changes. The core changes are well-executed.
I've identified two high-severity issues:
- Potential unreliability in the
Makefile'sbuild-toolstarget when locating thegh-helperbinary. - A possible inconsistency or error in the documented
gh-helpersubcommand (reply-commit) withindev-docs/issue-management.md.
Addressing these points will enhance the robustness of the new tooling setup and ensure documentation accuracy.
…ation - Remove obsolete shell-to-go-migration.md (dev-tools implementation details) - Delete development-tools-guide.md (merged into issue-management.md) - Update all references from bin/gh-helper to go tool gh-helper - Update .octocov.yml to use tmp/coverage.out instead of dev-tools/ - Update .gitignore comment to reflect symlink nature of bin/ - Update architecture-guide.md directory structure (remove dev-tools/) - Update Makefile help and targets to use go tool gh-helper - Integrate development tools usage guide into issue-management.md The repository now accurately reflects the current Go 1.24 tool management approach with no references to the deleted dev-tools structure. All documentation is consistent with actual implementation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Remove references to deleted development-tools-guide.md - Update issue-management.md description to include development tools usage - Replace bin/spanner-mycli-dev with make docs-update command - Reflect current file structure without dev-tools references The documentation navigation now accurately reflects the current repository structure after the dev-tools cleanup. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
/gemini review |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Code Review
This pull request refactors the development tooling using Go-based utilities and enhances the Makefile with new targets. The GitHub API optimizations and AI-friendly architecture are notable. The worktree-delete Makefile target should be reviewed to prevent accidental data loss in worktrees with uncommitted changes.
This comment has been minimized.
This comment has been minimized.
- Remove bin/ directory dependencies from build-tools target - Simplify Makefile by removing PATH/symlink management - Update README.md comments to reference make docs-update - Remove bin/gh-helper references from documentation - Delete dev-tools implementation sections from development-insights.md - Remove bin/ from .gitignore (no longer needed) This completes the migration to Go 1.24's native tool management without any reliance on PATH or symlink management. All tools are accessed via "go tool <name>" pattern exclusively. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
/gemini review |
There was a problem hiding this comment.
Code Review
The pull request reorganizes shell scripts into Go-based development tools, optimizes GitHub API calls, and improves developer experience. The changes include updates to .gitignore, .octocov.yml, CLAUDE.md, Makefile, README.md, and several dev-docs files. There are a few issues related to numbering, command completeness, and consistency in documentation that should be addressed.
This comment has been minimized.
This comment has been minimized.
- Emphasize CRITICAL importance of using specific file names - Explicitly prohibit both `git add .` and `git add -A` - Explain rationale: prevents accidental commits of untracked files - Add verification step: check git status before committing This reinforces proper git hygiene to avoid committing temporary files like .claude, .idea/, tmp/, etc. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
/gemini review |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Code Review
This pull request significantly refactors developer tooling by migrating shell scripts to Go-based applications, gh-helper and spanner-mycli-dev, leading to substantial GitHub API performance gains and improved AI-assistant compatibility. The changes include extensive Makefile updates to support the new tools and comprehensive documentation revisions. The overall direction is positive, enhancing maintainability and efficiency. A high-severity concern regarding the robustness of the documentation generation script in the Makefile has been raised, as it could lead to malformed help text in README.md. Also, a critical git practice has been identified that needs to be addressed.
- Fix CLAUDE.md numbering sequence (was 1,3,4,5 now 1,2,3,4) - Standardize Gemini Review Rules formatting to use consistent ✅ icons - Improve document readability and professional appearance 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This comment has been minimized.
This comment has been minimized.
- Add --timeout 15m to go tool gh-helper reviews analyze command - Prevents indefinite waiting during review analysis - Aligns with timeout patterns used throughout the project Addresses review feedback about missing timeout protection. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a significant and well-documented reorganization of development scripts into Go-based tools, focusing on GitHub API optimization and AI-assistant friendliness. The performance gains and improved developer experience are notable. The changes are comprehensive, updating Makefiles, documentation, and adding new Go tool dependencies.
One area for improvement is ensuring consistency in Git usage advice across all documentation to prevent accidental commits, as highlighted in a specific comment.
| ```bash | ||
| # Complete workflow example | ||
| # 1-2. Make changes and commit | ||
| git add . && git commit -m "fix: address review feedback" |
There was a problem hiding this comment.
The example workflow uses git add ., which contradicts the critical advice in CLAUDE.md (line 163) that states: "CRITICAL: Always use git add <specific-files> (never git add . or git add -A)".
This inconsistency can lead to confusion and potentially encourage the practice that CLAUDE.md aims to prevent (accidental commits of untracked files). Please update this example, and similar examples in other documentation files (e.g., dev-docs/issue-management.md line 562), to use git add <specific-files> or provide context if git add . is intentionally used here after careful consideration (e.g., after running git status and confirming only desired files are present).
For consistency and safety, it's best if all examples align with the primary critical guidance.
| git add . && git commit -m "fix: address review feedback" | |
| git add <specific-file1> <specific-file2> && git commit -m "fix: address review feedback" |
This comment has been minimized.
This comment has been minimized.
- Add comprehensive review analysis step using tmp/review-analysis.yaml - Introduce fix planning with tmp/fix-plan.md for complex reviews - Implement commit-first, reply-with-resolve pattern for efficiency - Consolidate related fixes into single commits for clarity - Update CLAUDE.md workflow examples to reflect best practices This workflow ensures: 1. All feedback is analyzed comprehensively before changes 2. Changes are planned and coordinated across multiple threads 3. Threads are resolved immediately with commit references 4. Planning artifacts are properly organized in tmp/ 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Code Metrics Report
Details | | main (0937754) | #306 (b011e73) | +/- |
|---------------------|----------------|----------------|------|
| Coverage | 64.5% | 64.5% | 0.0% |
| Files | 30 | 30 | 0 |
| Lines | 3447 | 3447 | 0 |
| Covered | 2226 | 2226 | 0 |
| Code to Test Ratio | 1:0.6 | 1:0.6 | 0.0 |
| Code | 8334 | 8334 | 0 |
| Test | 5814 | 5814 | 0 |
+ | Test Execution Time | 1m17s | 1m9s | -8s |Reported by octocov |
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a significant reorganization of development scripts into Go-based tools, focusing on AI-assistant friendliness and GitHub API optimization. The changes are extensive, particularly in documentation and the Makefile, reflecting a major shift in developer workflow. The claimed performance improvements from API optimization are substantial. It's important to ensure consistency and correctness in the updated documentation and Makefiles, adhering to the requested severity levels of high and critical.
| - **CRITICAL**: Always use `git add <specific-files>` (never `git add .` or `git add -A`) | ||
| - **Reason**: Prevents accidental commits of untracked files (.claude, .idea/, tmp/, etc.) |
There was a problem hiding this comment.
It's critical to only use git add <specific-files> to prevent accidental commits of untracked files. The reason for this is well documented on line 169 and is important to follow.
| - **CRITICAL**: Always use `git add <specific-files>` (never `git add .` or `git add -A`) | |
| - **Reason**: Prevents accidental commits of untracked files (.claude, .idea/, tmp/, etc.) | |
| git add <specific-files> |
| - **CRITICAL**: Always use `git add <specific-files>` (never `git add .` or `git add -A`) | ||
| - **Reason**: Prevents accidental commits of untracked files (.claude, .idea/, tmp/, etc.) |
There was a problem hiding this comment.
- CRITICAL: Always use
git add <specific-files>(nevergit add .orgit add -A) - Reason: Prevents accidental commits of untracked files (.claude, .idea/, tmp/, etc.)
| - **CRITICAL**: Always use `git add <specific-files>` (never `git add .` or `git add -A`) | |
| - **Reason**: Prevents accidental commits of untracked files (.claude, .idea/, tmp/, etc.) | |
| - **CRITICAL**: Always use `git add <specific-files>` (never `git add .` or `git add -A`) | |
| - **Reason**: Prevents accidental commits of untracked files (.claude, .idea/, tmp/, etc.). Always check `git status` before committing to verify only intended files are staged. |
Summary
Implements issue #301 to reorganize scattered shell scripts into structured, AI-assistant-friendly Go-based development tools with significant GitHub API optimization.
Key Achievements
🚀 Performance Optimization
ghcommands to 2 GraphQL queries🛠 AI-Friendly Tool Architecture
bin/gh-helper: Generic GitHub operations (reviews, threads, GraphQL)bin/spanner-mycli-dev: Project-specific workflows (worktrees, docs, Gemini integration)dev-tools/module with shared utilities packagemake build-tools,make check)🎯 Critical Features Implemented
✅ Comprehensive review analysis: Single GraphQL query fetches reviews + threads (prevents missing critical feedback)
✅ Smart number resolution: Auto-detect issue vs PR, current branch PR detection
✅ Data-driven timeouts: 5-minute defaults based on real Gemini/CI performance data
✅ Parameterized GraphQL queries: Injection-safe with proper variable binding
✅ stdin/heredoc support: No temporary files needed for AI assistants
🔧 Developer Experience Improvements
--helpat every levelTechnical Implementation Highlights
GitHub API Optimization Strategy
Unified Review Analysis
@includedirectives for flexible data fetchingCommand Examples
Migration Completed
.mdfiles reference new toolsghCLI integrationCritical Lessons Documented
Test Plan ✅
make build-tools)make test)make lint)Related Documentation
Update History
Fixes #301
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com