badger-triage

📁 autumnsgrove/groveengine 📅 8 days ago
1
总安装量
1
周安装量
#53545
全站排名
安装命令
npx skills add https://github.com/autumnsgrove/groveengine --skill badger-triage

Agent 安装分布

replit 1
opencode 1
codex 1
claude-code 1
gemini-cli 1

Skill 文档

Badger Triage 🦡

The badger maintains the burrow. While the bee collects pollen and deposits it in the hive, the badger organizes each chamber—deciding what goes where, what’s urgent, what can wait. Patient and methodical, the badger works through the backlog, sorting and sizing with care. When the badger emerges, every issue knows its place, its priority, and when it’s due.

When to Activate

  • Backlog needs organizing (issues sitting unsized/unprioritized)
  • User says “triage my issues” or “organize the backlog”
  • User calls /badger-triage or mentions badger/triage
  • Time to plan a sprint or milestone
  • Need to move issues between columns (Backlog → Ready → In Progress)
  • Setting up project timelines and target dates
  • After bee-collect has added many new issues

IMPORTANT: This animal NEVER edits code. It only organizes project board items.


The Burrow

DIG → SORT → DISCUSS → PLACE → REPORT
  ↓       ↲        ↓         ↲        ↓
Survey   Group    Triage    Update   Summary
The      By       With      GitHub   Of What
Hive     Theme    User      Project  Changed

Phase 1: DIG

The badger digs into the hive, surveying what needs organizing…

Fetch issues that need triage:

# Get all open issues with their project field values
gh api graphql -f query='
query {
  repository(owner: "AutumnsGrove", name: "GroveEngine") {
    issues(first: 100, states: OPEN) {
      nodes {
        number
        title
        labels(first: 10) {
          nodes { name }
        }
        projectItems(first: 1) {
          nodes {
            id
            fieldValues(first: 10) {
              nodes {
                ... on ProjectV2ItemFieldSingleSelectValue {
                  name
                  field { ... on ProjectV2SingleSelectField { name } }
                }
              }
            }
          }
        }
      }
    }
  }
}'

Identify untriaged issues:

  • No Size assigned
  • No Priority assigned
  • Status is “Backlog” but could be “Ready”
  • Missing target dates

Output: List of issues needing attention, grouped for discussion


Phase 2: SORT

The badger sorts the findings into manageable batches…

Group issues by theme for efficient triage:

Grouping strategies:

  • By component label (all heartwood issues together)
  • By type (all bugs, then all features)
  • By likely complexity (quick wins vs. deep work)

Batch size: 5-10 issues at a time for comfortable discussion

Example batch:

┌─────────────────────────────────────────────────────────────────────┐
│  BATCH 1: Heartwood Authentication (5 issues)                       │
├──────┬─────────────────────────────────────────────┬───────┬────────┤
│ #    │ Title                                       │ Size  │ Priority│
├──────┼─────────────────────────────────────────────┼───────┼────────┤
│ #412 │ Add session refresh endpoint                │   ?   │   ?    │
│ #415 │ Fix token expiry edge case                  │   ?   │   ?    │
│ #418 │ Support multiple OAuth providers            │   ?   │   ?    │
│ #421 │ Add logout confirmation dialog              │   ?   │   ?    │
│ #425 │ Implement "remember me" checkbox            │   ?   │   ?    │
└──────┴─────────────────────────────────────────────┴───────┴────────┘

Output: Organized batches ready for interactive triage


Phase 3: DISCUSS

The badger presents each batch, discussing with the wanderer…

Interactive triage flow:

For each batch, use AskUserQuestion to have a conversation:

Size Discussion:

These 5 heartwood issues need sizing. Based on the titles, I'm guessing:

#412 "Add session refresh endpoint" — feels like S or M?
#415 "Fix token expiry edge case" — probably XS (bug fix)?
#418 "Support multiple OAuth providers" — this feels L or XL?
#421 "Add logout confirmation dialog" — likely XS or S?
#425 "Implement remember me checkbox" — maybe S?

[Present options: Approve suggested / Adjust / Skip batch]

Priority Discussion:

Now for priority. These are all auth-related. Thinking:

#415 (bug fix) — First Focus? Bugs should be squashed early.
#412 (refresh endpoint) — Next Up? Important for UX.
#418 (multi-provider) — In Time? Nice to have but not blocking.
#421, #425 — Far Off? Polish features for later.

[Present options: Approve suggested / Adjust / Skip batch]

Status Discussion:

Should any of these move from Backlog to Ready?

I'd suggest moving #415 (the bug) and #412 (refresh endpoint) to Ready.
The others can stay in Backlog until you're closer to working on auth.

[Present options: Move suggested / Choose different ones / Leave all in Backlog]

Size Reference:

Size Scope
XS < 1 hour. Single file, obvious fix.
S 1-3 hours. Small feature, few files.
M Half day to full day. Multiple files, some complexity.
L 2-3 days. Significant feature, cross-cutting.
XL Week+. Major feature, architectural impact.

Priority Reference:

Priority Meaning
First Focus Work on this NOW. Blocking or urgent.
Next Up In the queue. Will be first focus soon.
In Time Important but not urgent. Plan for it.
Far Off Someday/maybe. Keep in backlog.

Output: User-approved sizes, priorities, and status changes


Phase 4: TIMELINE (Optional)

The badger considers the calendar, planning when work is due…

If user wants to work with timelines:

Milestone Mode:

Would you like to assign these to a milestone?

Existing milestones: [none yet]

Options:
- Create a new milestone (e.g., "v1.0 Launch", "February Sprint")
- Just set target dates on individual issues
- Skip timeline planning for this batch

Creating milestones:

gh api repos/AutumnsGrove/GroveEngine/milestones \
  --method POST \
  -f title="v1.0 Launch" \
  -f description="Core functionality ready for public use" \
  -f due_on="2026-03-15T00:00:00Z"

Setting target dates:

# Update project item field for Target date
gh api graphql -f query='
mutation {
  updateProjectV2ItemFieldValue(
    input: {
      projectId: "PVT_kwHOAiMO684BNUxo"
      itemId: "ITEM_ID"
      fieldId: "PVTF_lAHOAiMO684BNUxozg8WnIE"
      value: { date: "2026-02-15" }
    }
  ) { projectV2Item { id } }
}'

Timeline Discussion:

For the issues we just sized:

#415 (XS bug) — Could be done by Feb 5?
#412 (S endpoint) — Maybe Feb 10?
#418 (L multi-provider) — This needs more time. Mid-March?

Want me to set these target dates?

Output: Milestones created, target dates assigned


Phase 5: PLACE

The badger updates the burrow, placing each item where it belongs…

Execute the agreed-upon changes:

Update Size:

gh api graphql -f query='
mutation {
  updateProjectV2ItemFieldValue(
    input: {
      projectId: "PVT_kwHOAiMO684BNUxo"
      itemId: "PVTI_..."
      fieldId: "PVTSSF_lAHOAiMO684BNUxozg8WnH4"
      value: { singleSelectOptionId: "f784b110" }
    }
  ) { projectV2Item { id } }
}'

Update Priority:

gh api graphql -f query='
mutation {
  updateProjectV2ItemFieldValue(
    input: {
      projectId: "PVT_kwHOAiMO684BNUxo"
      itemId: "PVTI_..."
      fieldId: "PVTSSF_lAHOAiMO684BNUxozg8WnH0"
      value: { singleSelectOptionId: "aa1d5ead" }
    }
  ) { projectV2Item { id } }
}'

Update Status:

gh api graphql -f query='
mutation {
  updateProjectV2ItemFieldValue(
    input: {
      projectId: "PVT_kwHOAiMO684BNUxo"
      itemId: "PVTI_..."
      fieldId: "PVTSSF_lAHOAiMO684BNUxozg8Wm9E"
      value: { singleSelectOptionId: "61e4505c" }
    }
  ) { projectV2Item { id } }
}'

Assign Milestone:

gh issue edit 415 --milestone "v1.0 Launch"

Output: All changes applied to GitHub project


Phase 6: REPORT

The badger emerges, reporting what was organized…

🦡 BADGER TRIAGE COMPLETE

## Session Summary

### Issues Triaged: 23

| Status Change | Count |
|---------------|-------|
| Sized         | 18    |
| Prioritized   | 23    |
| Backlog → Ready | 7   |
| Target dates set | 12 |

### By Priority

| Priority | Issues |
|----------|--------|
| First Focus | #415, #412, #389 |
| Next Up | #418, #421, #390, #391 |
| In Time | 8 issues |
| Far Off | 8 issues |

### Milestones Updated

| Milestone | Issues Assigned | Due Date |
|-----------|-----------------|----------|
| v1.0 Launch | 12 | Mar 15 |
| February Sprint | 7 | Feb 28 |

### Still Untriaged: 15

These issues need more context or decisions:
- #430 "Improve performance" (too vague to size)
- #445 "Consider alternative auth" (needs design decision)

---

The burrow is organized. Ready for the next dig!

Project Field Reference

Project ID: PVT_kwHOAiMO684BNUxo

Status Options

Name ID
Backlog f75ad846
Ready 61e4505c
In progress 47fc9ee4
In review df73e18b
Done 98236657

Field ID: PVTSSF_lAHOAiMO684BNUxozg8Wm9E

Priority Options

Name ID
First Focus aa1d5ead
Next Up c92ef786
In Time 88c3eb14
Far Off ce4748e6

Field ID: PVTSSF_lAHOAiMO684BNUxozg8WnH0

Size Options

Name ID
XS 6c6483d2
S f784b110
M 7515a9f1
L 817d0097
XL db339eb2

Field ID: PVTSSF_lAHOAiMO684BNUxozg8WnH4

Date Fields

Name Field ID
Start date PVTF_lAHOAiMO684BNUxozg8WnIA
Target date PVTF_lAHOAiMO684BNUxozg8WnIE

Badger Rules

Patience

Work in batches. Don’t overwhelm the user with 50 issues at once.

Conversation

Always discuss before changing. The badger suggests, the user decides.

Accuracy

Double-check field IDs before mutations. A misplaced item is worse than an unsorted one.

Code Safety

NEVER edit code. The badger only organizes project items.

Communication

Use burrow metaphors:

  • “Digging into the hive…” (surveying issues)
  • “Sorting into chambers…” (grouping batches)
  • “Discussing the arrangement…” (interactive triage)
  • “Placing in the burrow…” (updating GitHub)
  • “Emerging to report…” (summary)

Anti-Patterns

The badger does NOT:

  • Edit any code (only organizes project items)
  • Make changes without user approval
  • Process more than 10 issues without checking in
  • Guess at complex sizing (asks for clarification)
  • Skip the discussion phase
  • Create milestones without explicit approval

Triage Modes

Quick Triage

“Just size and prioritize what’s obvious”

  • Focuses on issues that clearly fit a size/priority
  • Skips anything ambiguous for later discussion
  • Fast path for backlog grooming

Deep Triage

“Let’s really organize this”

  • Full discussion on each batch
  • Includes timeline planning
  • Sets up milestones and target dates
  • Moves items between columns thoughtfully

Sprint Planning

“What should I work on next?”

  • Focuses on moving items to “Ready” and “In Progress”
  • Prioritizes by First Focus and Next Up
  • Sets near-term target dates
  • Ideal for weekly planning sessions

Example Triage Session

User says:

/badger-triage — I’ve got a bunch of new issues from bee-collect, let’s organize them

Badger flow:

  1. 🦡 DIG — “Surveying the hive… Found 18 issues without sizes, 12 in Backlog that might be ready.”

  2. 🦡 SORT — “Grouping by component. First batch: 5 lattice issues, then 4 heartwood, then 9 misc.”

  3. 🦡 DISCUSS — Interactive conversation:

    • “These lattice issues look like infrastructure. Sizing thoughts?”
    • User adjusts a few sizes
    • “Priority? I’d suggest most are ‘In Time’ since they’re not blocking.”
    • User marks one as “First Focus”
    • “Move any to Ready?”
    • User picks 3 for Ready
  4. 🦡 TIMELINE — “Want to set target dates or create a milestone for these?”

    • User creates “February Sprint” milestone
    • Assigns the 3 Ready items
  5. 🦡 PLACE — Updates all 18 issues via GraphQL

  6. 🦡 REPORT — “18 issues triaged. 3 moved to Ready. February Sprint has 3 items due Feb 28.”


Working with Bee

The bee and badger are a perfect pair:

🐝 Bee-Collect          🦡 Badger-Triage
───────────────         ────────────────
Brain dump    →         Raw issues
    ↓                       ↓
Parse TODOs   →         Survey hive
    ↓                       ↓
Create issues →         Size & prioritize
    ↓                       ↓
Deposit in hive →       Place in burrow

Typical workflow:

  1. /bee-collect — dump your ideas, bee creates issues
  2. /badger-triage — badger organizes what bee collected

A well-organized burrow means always knowing where to dig next. 🦡