ln-911-github-triager

Scan open GitHub issues, PRs, discussions. Produce prioritized triage report with engagement metrics and recommended actions

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ln-911-github-triager" with this command: npx skills add levnikolaevich/claude-code-skills/levnikolaevich-claude-code-skills-ln-911-github-triager

Paths: File paths (shared/, references/, ../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.

ln-911-github-triager

Type: L3 Worker (standalone) Category: 9XX Community Engagement Caller: ln-910-community-engagement (or standalone)

Scans all open issues, PRs, and discussions in the current repository. Categorizes by urgency. Produces an actionable triage report.


Arguments

$ARGUMENTS controls scope and staleness threshold:

TokenEffectDefault
issuesScan issues onlyAll three
prsScan PRs onlyAll three
discussionsScan discussions onlyAll three
Number (e.g., 14)Staleness threshold in days7
issues 30Combine: scope + threshold--
summaryCompact output for coordinator: skip Phase 4 preview, return red flags + priority counts + metrics onlyFull interactive report

Parse $ARGUMENTS: extract scope tokens (issues, prs, discussions), numeric threshold, and summary flag. If no scope tokens, scan all three. If no number, default to 7 days.


Phase 0: GitHub Discovery

MANDATORY READ: Load shared/references/community_github_discovery.md

Execute the discovery protocol. Extract:

  • {owner}/{repo} for --repo flag and URLs
  • maintainer login (authenticated user) for maintainer detection
  • Verify gh is authenticated

Load strategy: check docs/community_engagement_strategy.md in target project, fallback to shared/references/community_strategy_template.md. Extract Section 5 (Engagement Metrics) for targets and red flags.


Phase 1: Fetch Data

Run these gh commands based on scope. Execute all applicable fetches in parallel.

1a. Issues

gh issue list --repo {owner}/{repo} --state open --limit 100 --json number,title,labels,createdAt,updatedAt,author,comments,assignees

1b. Pull Requests

gh pr list --repo {owner}/{repo} --state open --limit 100 --json number,title,labels,createdAt,updatedAt,author,reviewDecision,reviewRequests,isDraft,comments,assignees

1c. Discussions (GraphQL)

gh api graphql -f query='
  query($owner: String!, $name: String!) {
    repository(owner: $owner, name: $name) {
      discussions(first: 100, states: OPEN) {
        nodes {
          number
          title
          category { name }
          createdAt
          updatedAt
          author { login }
          answerChosenAt
          labels(first: 5) { nodes { name } }
          comments(first: 20) {
            totalCount
            nodes {
              author { login }
              createdAt
            }
          }
        }
      }
    }
  }
' -f owner="{owner}" -f name="{repo}"

Gate: If all sources return zero items, report "No open items. Triage complete." and stop.


Phase 2: Classify Each Item

For every fetched item, evaluate these conditions. An item can match multiple -- use highest priority.

Priority Matrix

PriorityConditionApplies to
P0 CriticalLabel contains bug AND no assigneeIssues
P0 CriticalLabel contains breakingIssues, PRs
P1 UrgentAuthor != maintainer AND zero comments from maintainerIssues, Discussions
P1 UrgentQ&A discussion with answerChosenAt is null AND author != maintainerDiscussions
P1 UrgentreviewDecision is null or REVIEW_REQUIREDPRs
P2 StaleNo activity for > threshold days (updatedAt older than threshold)All
P3 MonitorPR marked as draft (isDraft is true)PRs
P3 MonitorAuthor == maintainer AND 0 community repliesDiscussions
P4 InfoItems not matching any above conditionAll

Maintainer Detection

The maintainer login comes from Phase 0 discovery (viewer.login). An item "has maintainer reply" if any comment's author.login equals the maintainer login.

For issues: check comments array authors. For discussions: check comments.nodes[].author.login.

Staleness Calculation

Days since last activity: (today - updatedAt) in days. Compare against threshold (default 7, or from $ARGUMENTS).

Label Urgency Signals

Labels that elevate priority: bug, breaking, security, urgent.

Labels that signal engagement opportunity (not urgency): help wanted, good first issue.


Phase 3: Engagement Metrics

Calculate aggregate metrics per strategy Section 5:

MetricCalculationTargetRed Flag
Time to First ResponseAvg(first maintainer comment - item created) for items WITH reply<24h>72h
Unanswered discussionsCount where author != maintainer AND no maintainer comment AND age > threshold0Any >7 days
Community-to-maintainer ratioNon-maintainer comments / maintainer comments across all items>0.30
New discussions this monthDiscussions created in last 30 days>20
Zero-engagement itemsItems with 0 comments total----

Phase 4: Preview Table

If $ARGUMENTS contains summary → skip this phase entirely. Output compact summary (red flags, priority counts per category, health metrics table) and stop. Do NOT compose the full Phase 5 report.

Otherwise (standalone mode): present a compact summary table of ALL classified items for user review. Wait for user approval before proceeding to Phase 5.

### Triage Preview -- {total count} items found

| # | Type | Title | Priority | Age | Key Signal |
|---|------|-------|----------|-----|------------|
| {number} | {Issue/PR/Discussion} | {title (truncated to 50 chars)} | {P0/P1/P2/P3/P4} | {days}d | {short reason} |

Sort by priority (P0 first), then by age (oldest first) within each priority group.

After presenting, ask the user:

  • Confirm priorities look correct
  • Whether to exclude any items from the full report
  • Whether to adjust the staleness threshold

Proceed to Phase 5 only after user confirms.


Phase 5: Compose Report

Present the full triage report in this format:

## GitHub Triage Report -- {YYYY-MM-DD}

**Scope:** {issues/PRs/discussions or "all"} | **Threshold:** {N} days | **Open items:** {total count}

Red Flag Alerts

If any red flags from Phase 3 are triggered, add BEFORE Health Metrics:

> [!WARNING]
> **Red flags detected:**
> - {description, e.g., "2 unanswered discussions older than 7 days"}

Health Metrics Table

| Metric | Value | Target | Status |
|--------|-------|--------|--------|
| Unanswered (>{N}d) | {count} | 0 | {OK / RED FLAG} |
| Avg first response | {hours}h | <24h | {OK / RED FLAG} |
| Community:maintainer ratio | {ratio} | >0.3 | {OK / RED FLAG} |
| New discussions (30d) | {count} | >2 | {OK / RED FLAG} |
| Zero-engagement items | {count} | -- | {count} |

Priority Tables

For each priority P0..P3, show header with count. If count is 0, show header (0) and skip table.

P0 Critical:

#TypeTitleLabelsAgeAction Needed

P1 Urgent:

#TypeTitleAuthorAgeWhy

P2 Stale:

#TypeTitleLast ActivityDays Stale

P3 Monitor:

#TypeTitleNote

P4 Info: Do NOT list individually -- only include in total count.

Recommended Actions

### Recommended Actions

1. **Respond:** {items needing maintainer reply, with GitHub URLs}
2. **Review:** {PRs needing review, with GitHub URLs}
3. **Close or bump:** {stale items -- suggest close if resolved, bump if relevant}
4. **Engage:** {items that could benefit from community call-to-action}

Formatting Rules

  • Sort items within each priority group by age (oldest first)
  • URL format: https://github.com/{owner}/{repo}/{issues|discussions|pull}/{number}
  • Dates in YYYY-MM-DD, ages in days
  • All items in Recommended Actions must have direct GitHub URLs

Rules

  • Read-only: this skill fetches and reports -- never create, modify, or close any GitHub item
  • No publishing: do not create issues, comments, labels, or any other GitHub state change
  • Maintainer login: from Phase 0 discovery (authenticated user)
  • Default threshold: 7 days (per strategy Section 5)
  • Rate limits: if GraphQL rate limit hit, report partial results with a warning

Definition of Done

  • GitHub data fetched for all scoped item types (issues/PRs/discussions)
  • Every item classified by priority (P0-P4)
  • Engagement metrics calculated per strategy targets
  • Report composed (full interactive report OR compact summary for coordinator)

Version: 1.0.0 Last Updated: 2026-03-13

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

ln-782-test-runner

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-140-test-docs-creator

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-110-project-docs-coordinator

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-210-epic-coordinator

No summary provided by upstream source.

Repository SourceNeeds Review