Reviews and categorizes GitHub issues by difficulty (easy/medium/hard)...
All issues are tracked on the Anubis Issue Tracker project board:
| Status | Description |
|---|---|
| Backlog | Future ideas or deferred work; not ready for action yet |
| Triage | New issues not yet added to the project board |
| Needs Agent Review | Issues ready for agent to review and categorize |
| Needs Human Review | Agent has questions; waiting for human clarification |
| Ready to Implement | Agent reviewed, wrote plan, no questions remaining |
| Needs Code Review | Implementation in progress (has active branch) |
| Done | Closed and completed (automatic via GitHub) |
Important: Issues in Backlog should be completely ignored by this skill. These are deferred tasks that are not ready for review. Do not triage, categorize, or write implementation plans for Backlog issues.
difficulty: easy, difficulty: medium, or difficulty: hardThis skill ensures the project board accurately reflects the current state of all issues by:
Collect all information needed to determine correct status:
# Get all open issues with full details
gh issue list --state open --json number,title,body,labels,comments,assignees,state --limit 100
# Get all open branches (to detect active implementation)
git ls-remote --heads origin | grep -E 'claude/|issue-' | awk '{print $2}' | sed 's|refs/heads/||'
# Get all PRs and their linked issues
gh pr list --state open --json number,title,state,isDraft,body,url,headRefName --limit 100
# Get current board state
gh project item-list 8 --owner forrestthewoods --format json
For each issue, check for active branches:
# Check if issue has an active branch (branch name contains issue number)
git ls-remote --heads origin | grep -i "issue-<number>\|#<number>\|-<number>-"
# Check if issue has linked PRs
gh pr list --search "#<number>" --state all --json number,title,state,isDraft,headRefName
Apply these rules in order (first match wins):
IF issue is closed (merged PR or manually closed)
THEN status should be "Done"
Note: GitHub automation handles this automatically
IF issue has an open PR that references it
OR issue has an active branch with the issue number in the name
THEN status should be "Needs Code Review"
IF issue comments contain an "## Implementation Plan" section
AND the plan appears complete (has steps, files to modify)
AND no unanswered clarifying questions
THEN status should be "Ready to Implement"
IF the most recent comment contains "## Clarification Needed" or similar question format
AND the issue author/maintainer hasn't responded yet
THEN status should be "Needs Human Review"
IF issue has a description
AND issue is on the project board
AND no outstanding clarifying questions have been posted
THEN status should be "Needs Agent Review"
IF issue is not on the project board
OR none of the above apply
THEN status should be "Triage"
For each issue in "Needs Agent Review", perform a full review:
CRITICAL: Never mix questions and implementation plans in the same comment. If you have questions, post only the questions and wait for answers. Only write an implementation plan when you have zero unanswered questions.
Difficulty Assessment Criteria:
| Difficulty | Criteria |
|---|---|
| Easy | Single file change, clear requirements, isolated scope, minimal testing needed |
| Medium | Multiple files, some design decisions, moderate testing, touches 1-2 modules |
| Hard | Architectural changes, complex logic, extensive testing, cross-cutting concerns |
Completeness Check:
For issues needing clarification (move to "Needs Human Review"):
Important: Always use temp files for GitHub comments. Inline comment syntax with special characters breaks easily.
# Add difficulty label first
gh issue edit <number> --add-label "difficulty: easy|medium|hard"
# Write comment to temp file (create directory if needed)
mkdir -p ./.anubis-temp/github
Write the comment content to ./.anubis-temp/github/issue-<number>-comment.md:
## Clarification Needed
Thank you for opening this issue. Before I can create an implementation plan, I need some clarification:
1. [Specific question about requirements]
2. [Question about expected behavior]
3. [Question about scope/constraints]
Once these questions are answered, I'll write a detailed implementation plan.
# Post comment using the temp file
gh issue comment <number> --body-file ./.anubis-temp/github/issue-<number>-comment.md
# Move to Needs Human Review on the project board
For issues ready for implementation (move to "Ready to Implement"):
Important: Always use temp files for GitHub comments. Inline comment syntax with special characters breaks easily.
# Add difficulty label
gh issue edit <number> --add-label "difficulty: easy|medium|hard"
# Write comment to temp file (create directory if needed)
mkdir -p ./.anubis-temp/github
Write the implementation plan to ./.anubis-temp/github/issue-<number>-plan.md:
## Implementation Plan
**Difficulty:** [easy|medium|hard]
### Overview
[Brief description of the approach]
### Steps
1. [First implementation step]
2. [Second implementation step]
...
### Files to Modify
- `path/to/file.rs` - [what changes]
### Testing
- [Test case 1]
- [Test case 2]
### Considerations
- [Any edge cases or concerns]
# Post implementation plan using the temp file
gh issue comment <number> --body-file ./.anubis-temp/github/issue-<number>-plan.md
# Move to Ready to Implement on the project board
CRITICAL: After updating any issue's board status, always verify the change took effect. The GitHub API can silently fail or changes may not persist.
# After moving an issue, verify its new status
gh project item-list 8 --owner forrestthewoods --format json | findstr "<issue_number>"
# Or use GraphQL for more precise checking
gh api graphql -f query='{ user(login: "forrestthewoods") { projectV2(number: 8) { items(last: 10) { nodes { id fieldValueByName(name: "Status") { ... on ProjectV2ItemFieldSingleSelectValue { name } } content { ... on Issue { number } } } } } } }'
If the status doesn't match what you set, retry the gh project item-edit command.
Before moving to the next issue, ensure ALL of these are complete:
gh issue edit <number> --add-label "difficulty: X")gh project item-edit ...)Do not batch these operations across multiple issues. Complete the full checklist for one issue before starting on the next.
Scan for issues that have implementation work in progress:
# List all remote branches
git ls-remote --heads origin
# For each issue, check if there's a matching branch
# Branch patterns to look for:
# - claude/issue-<number>-*
# - issue-<number>-*
# - feature/<number>-*
# - fix/<number>-*
Issues with active branches should be moved to "Needs Code Review".
## Issue Status Sync Report
### Status Mismatches (Need Update)
| Issue | Title | Current Status | Correct Status | Reason |
|-------|-------|----------------|----------------|--------|
| #25 | Add caching | Needs Agent Review | Needs Code Review | Has active branch |
| #18 | Fix build | Needs Code Review | Ready to Implement | Branch was deleted |
| #12 | New feature | Triage | Needs Human Review | Questions posted 3 days ago |
### Issues with Active Branches
| Issue | Branch | PR | Status Should Be |
|-------|--------|-----|------------------|
| #25 | claude/issue-25-caching | #31 | Needs Code Review |
| #30 | claude/issue-30-parallel | - | Needs Code Review |
### Issues Needing Agent Review
| Issue | Title | Difficulty | Action Needed |
|-------|-------|------------|---------------|
| #8 | Add --verbose flag | Medium | Write implementation plan |
| #14 | Improve error handling | Easy | Write implementation plan |
### Issues in Needs Human Review
| Issue | Title | Days Waiting | Question Summary |
|-------|-------|--------------|------------------|
| #12 | Support ARM64 | 3 | Asked about target platforms |
| #15 | New config format | 7 | Asked about backwards compat |
### By Difficulty
| Difficulty | Count | Issues |
|------------|-------|--------|
| Easy | 5 | #3, #7, #10, #12, #20 |
| Medium | 8 | #4, #8, #11, #14, #15, #18, #22, #25 |
| Hard | 3 | #5, #9, #30 |
| Unlabeled | 2 | #1, #2 |
## Issue Review Summary
### Board Sync Status
- **Total Open Issues:** 20
- **Correctly Categorized:** 15
- **Need Status Update:** 5
### Actions Taken
- Reviewed issues: #8, #14, #22
- Posted clarifying questions: #12, #15 ā Moved to "Needs Human Review"
- Wrote implementation plans: #8, #14 ā Moved to "Ready to Implement"
- Added difficulty labels: #1, #2, #8, #14
- Detected active branches: #25, #30 ā Moved to "Needs Code Review"
### Issues Ready for Work
**Easy (Quick Wins):**
- #3 - Fix typo in error message
- #7 - Update help text
**Medium:**
- #8 - Add --verbose flag (plan written)
- #14 - Improve error handling (plan written)
**Hard:**
- #9 - Refactor job system (plan written)
### Issues Needing Human Input
- #12 - Waiting for ARM64 target clarification (3 days)
- #15 - Waiting for backwards compat decision (7 days)
Issue #25: "Add build caching"
- Current board status: Needs Agent Review
- Has branch: claude/issue-25-add-caching
- Has open PR #31
ā Correct status: Needs Code Review
ā Action: Update board status
Issue #12: "Support ARM64"
- Current board status: Needs Agent Review
- Agent posted "## Clarification Needed" 3 days ago
- No response from author yet
ā Correct status: Needs Human Review
ā Action: Update board status
Issue #8: "Add --dry-run flag"
- Current board status: Needs Agent Review
- Has comment with "## Implementation Plan"
- Plan includes steps and files to modify
- Has "difficulty: easy" label
ā Correct status: Ready to Implement
ā Action: Update board status
Issue #14: "Log compilation times"
- Not on project board yet
- Has clear description and acceptance criteria
- No questions needed
ā Add to project board
ā Move to: Needs Agent Review
ā Action: Review issue, assess difficulty, write plan
Issue #12: "Support ARM64"
- Current board status: Needs Human Review
- Agent asked questions 5 days ago
- Author responded 1 day ago with answers
ā Correct status: Needs Agent Review (for follow-up review)
ā Action: Agent should review response and write plan
Issue #20: "Add parallel builds"
- Agent posted comment with BOTH:
- "## Implementation Plan" with partial steps
- "## Open Questions" asking about thread count
ā THIS IS WRONG - never mix questions and plans
ā Correct action: Post ONLY questions, move to "Needs Human Review"
ā Wait for answers, THEN post implementation plan
When implementing an issue, create a branch following this pattern:
claude/issue-<number>-<short-description>
Examples:
claude/issue-25-add-cachingclaude/issue-12-arm64-supportclaude/issue-8-dry-run-flagThis naming convention allows automatic detection of active implementation work.
gh project item-edit, verify the status actually changed by querying the board. The API can silently fail. Never assume a command succeeded just because it returned no error../.anubis-temp/github/ and use gh issue comment --body-file. Inline --body syntax with slashes, backticks, and special characters breaks easily.Check for branches that reference issue numbers:
# List all remote branches with issue numbers
git ls-remote --heads origin | grep -E 'issue-[0-9]+|#[0-9]+|-[0-9]+-'
# Check specific issue
git ls-remote --heads origin | grep -i "<number>"
Branch patterns that indicate active work:
claude/issue-<number>-*feature/issue-<number>-*fix/issue-<number>-**-issue-<number>-*For a bug report:
For a feature request: