| name | github-issue-triage |
| description | Monitor and triage GitHub issues against design docs and implementation status. Use when user asks to "check issues", "triage issues", "sync issues", "what issues are open", or wants to ensure issues are up-to-date with development progress. |
GitHub Issue Triage
Monitor open GitHub issues, match them to design docs, identify closable issues, and keep the issue tracker synchronized with actual development progress.
Current State
- GitHub auth: !'gh auth status 2>&1 | grep "Logged in" | head -1'
- Open issues: !'gh issue list --state open --limit 10 2>/dev/null || echo "gh not available"'
- Recent closed: !'gh issue list --state closed --limit 3 2>/dev/null || echo "none"'
- Current version: !'cat std/VERSION'
Use the data above first. Only re-run these commands manually if the injected context is empty or you need to refresh after making changes.
Quick Start
Most common usage:
.claude/skills/github-issue-triage/scripts/triage_report.sh
.claude/skills/github-issue-triage/scripts/list_open_issues.sh
.claude/skills/github-issue-triage/scripts/find_closable.sh
.claude/skills/github-issue-triage/scripts/match_design_docs.sh --planned
When to Use This Skill
Invoke this skill when:
- User asks "what issues are open?", "check our issues", "triage issues"
- Starting a new development cycle and need to understand backlog
- After completing a release to identify closable issues
- Periodic housekeeping to keep issue tracker clean
- User wants to understand which issues are covered by design docs
Available Scripts
scripts/check_auth.sh
Verify GitHub CLI authentication matches expected user.
Usage:
.claude/skills/github-issue-triage/scripts/check_auth.sh
What it checks:
gh CLI is installed
- User is authenticated to github.com
- Active account matches
github.expected_user in config
Exit codes:
0 - Auth OK, correct user active
1 - Auth failed or wrong user active
scripts/list_open_issues.sh [--json] [--labels LABELS]
List all open GitHub issues with details.
Usage:
.claude/skills/github-issue-triage/scripts/list_open_issues.sh
.claude/skills/github-issue-triage/scripts/list_open_issues.sh --json
.claude/skills/github-issue-triage/scripts/list_open_issues.sh --labels bug,enhancement
Output includes:
- Issue number and title
- Labels (bug, enhancement, etc.)
- Age (days since creation)
- Last updated date
- Assignee (if any)
scripts/match_design_docs.sh [--planned] [--implemented] [--all]
Match open issues to design documents.
Usage:
.claude/skills/github-issue-triage/scripts/match_design_docs.sh
.claude/skills/github-issue-triage/scripts/match_design_docs.sh --planned
.claude/skills/github-issue-triage/scripts/match_design_docs.sh --implemented
Matching strategy:
- Exact issue number references (
#123 in design doc)
- Title keyword matching (significant words from issue title)
- Bug ID matching (
M-BUG-XXX patterns)
Output:
Issue #29: Parser crash on empty input
Status: COVERED
Design doc: design_docs/planned/v0_6_1/m-bug-parser-crash.md
Match type: exact_reference (#29)
Issue #31: Add async support
Status: NOT COVERED
No matching design doc found
Suggestion: Create design doc in design_docs/planned/v0_7_0/
scripts/find_closable.sh [--close] [--dry-run]
Find issues that have been implemented and can be closed.
Usage:
.claude/skills/github-issue-triage/scripts/find_closable.sh
.claude/skills/github-issue-triage/scripts/find_closable.sh --dry-run
.claude/skills/github-issue-triage/scripts/find_closable.sh --close
What it checks:
- Issue referenced in
design_docs/implemented/ directory
- Issue mentioned in CHANGELOG.md
- Issue keywords match implemented features
scripts/triage_report.sh [--output FILE]
Generate a complete triage report combining all analysis.
Usage:
.claude/skills/github-issue-triage/scripts/triage_report.sh
.claude/skills/github-issue-triage/scripts/triage_report.sh --output /tmp/triage.md
Report includes:
- Summary: Total open, covered, closable, orphaned
- Closable Issues: Ready to close (implemented)
- Covered Issues: Have design docs (in progress)
- Orphaned Issues: No design doc coverage (need attention)
- Stale Issues: No activity in 30+ days
- Recommendations: Suggested actions
Triage Workflow
1. Check Authentication
Always verify correct GitHub account:
.claude/skills/github-issue-triage/scripts/check_auth.sh
If wrong account:
gh auth switch --user MarkEdmondson1234
2. Generate Triage Report
.claude/skills/github-issue-triage/scripts/triage_report.sh
3. Handle Closable Issues
Review and close issues that have been implemented:
.claude/skills/github-issue-triage/scripts/find_closable.sh --dry-run
.claude/skills/github-issue-triage/scripts/find_closable.sh --close
4. Review Orphaned Issues
For issues without design doc coverage:
- Assess priority and feasibility
- Create design doc if work should proceed:
/design-doc-creator
- Close with "won't fix" if out of scope
- Add to backlog for future versions
5. Handle Stale Issues
For issues with no activity in 30+ days:
- Check if still relevant
- Add comment requesting update from reporter
- Close if no response after additional time
Bot User Integration (sunholo-voight-kampff)
Status: ACTIVE - Bot is configured and ready to use.
Bot account: https://github.com/sunholo-voight-kampff
What Uses the Bot
| Tool | Uses Bot? |
|---|
gh issue close/comment | Yes (via gh auth) |
ailang messages send --github | Yes (via config) |
ailang messages import-github | Yes (via config) |
| Issue triage scripts | Yes (uses gh CLI) |
Current Configuration
The bot is configured in ~/.ailang/config.yaml:
github:
expected_user: sunholo-voight-kampff
default_repo: sunholo-data/ailang
Switching Accounts
gh auth switch --user sunholo-voight-kampff
gh auth switch --user MarkEdmondson1234
Benefits of Bot User
- Audit trail: All automated actions attributed to bot
- Rate limits: Separate from personal account limits
- Revocable access: Easy to disable without affecting personal auth
- CI/CD integration: Can use same token in automation
- Unified: Both
gh CLI and ailang messages use same account
For detailed setup and troubleshooting, see resources/bot_user_guide.md
Configuration
Current config in ~/.ailang/config.yaml:
github:
expected_user: sunholo-voight-kampff
default_repo: sunholo-data/ailang
Integration with Other Skills
With release-manager
.claude/skills/github-issue-triage/scripts/find_closable.sh
.claude/skills/release-manager/scripts/collect_closable_issues.sh 0.6.1 --close
With design-doc-creator
.claude/skills/github-issue-triage/scripts/match_design_docs.sh --planned
/design-doc-creator M-ISSUE-42 "Fix for issue #42"
With sprint-planner
.claude/skills/github-issue-triage/scripts/triage_report.sh --output /tmp/triage.md
Resources
Bot User Guide
See resources/bot_user_guide.md for complete bot account setup.
Triage Checklist
See resources/triage_checklist.md for step-by-step checklist.
Prerequisites
- GitHub CLI (
gh) installed and authenticated
- Correct user active (
gh auth status)
- Repository access (
sunholo-data/ailang)
~/.ailang/config.yaml with github.expected_user
Notes
- All scripts check auth before making changes
- Close operations add proper comments with release/commit references
- Designed for AILANG repo but can be adapted for others
- Works with existing
ailang messages GitHub integration