본문으로 건너뛰기
cccskills
무료GitHub에 공개

issue-triage

Triage Linear or Jira backlogs and run bug sweeps via the Composio CLI. Bulk-fetch issues, deduplicate, relabel, reassign, and post summaries all from the shell.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Jira
설치 방법 보기

포함된 파일(1)

  • SKILL.md7.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Issue Triage (Linear / Jira)

Use This Skill When

  • Running weekly triage sessions on backlogs
  • Bug sweeps after releases to prioritize and assign
  • Cleaning up unassigned or stale issues
  • Cross-tool sync (Sentry errors to Linear issues)
  • Deduplicating multiple reports of same bug
  • Bulk-updating labels, priorities, or assignments
  • Generating triage summaries for team sync

When NOT to Use

  • Individual issue creation (use Linear/Jira UI)
  • Complex workflow automation (use native workflows)
  • Issues requiring detailed investigation (do manually)
  • Sensitive security issues (handle separately)

Context: Triage Efficiency Maturity

Undeveloped: Manual clicking through UI, slow, inconsistent prioritization.

Target: CLI-based bulk fetch, dedupe, label, assign, and report in one command.

Optimized: Automated daily sweeps, smart dedup, predictive prioritization, team alerts.

Core Principle

Triage at scale requires automation. Instead of clicking through the UI for every issue, fetch the backlog, apply logic programmatically, and hand back a clean list — saving hours and improving consistency.

Instructions

Step 1: Install and Link Composio CLI

Install:

curl -fsSL https://composio.dev/install | bash
composio login

Link Linear or Jira:

composio link linear  # For Linear
# or
composio link jira    # For Jira

Step 2: Discover Available Actions

Search for issue management tools:

ActionPurposeToolkit
List IssuesFetch backlog slicelinear / jira
Create IssueAdd new issuelinear / jira
Update IssueChange status/labels/prioritylinear / jira
Add CommentReply to issue threadlinear / jira
Assign IssueAssign ownerlinear / jira
Create LabelAdd new label if neededlinear

Get schemas:

composio tools get-schema LINEAR_LIST_ISSUES
composio tools get-schema LINEAR_UPDATE_ISSUE

Step 3: Pull Backlog Slice

Fetch unstarted/unassigned issues:

Linear:

composio execute LINEAR_LIST_ISSUES -d '{
  "filter": {
    "state": { "type": { "eq": "unstarted" } },
    "assignee": { "null": true }
  },
  "first": 100,
  "orderBy": "createdAt"
}'

Jira:

composio execute JIRA_SEARCH_FOR_ISSUES_USING_JQL -d '{
  "jql": "status = \"To Do\" AND assignee is EMPTY ORDER BY created DESC",
  "maxResults": 100
}'

Step 4: Analyze and Categorize

Cluster issues for processing:

## Triage Results: 45 Unassigned Issues

### By Label/Type

**Critical (5 issues)** — Needs immediate attention
- [ISSUE-123]: App crashes on login (Error rate: 15%)
- [ISSUE-124]: Database backup failing
- [ISSUE-125]: Payment processing down

**High (12 issues)** — Assign this sprint
- [ISSUE-201]: Search results pagination broken (affects 20% queries)
- [ISSUE-202]: Mobile menu not responsive (design regression)

**Medium (18 issues)** — Backlog candidates
- [ISSUE-301]: Add dark mode toggle (feature request)
- [ISSUE-302]: Improve error messages (UX enhancement)

**Low (10 issues)** — Someday/Maybe
- [ISSUE-401]: Update documentation (no user impact)
- [ISSUE-402]: Refactor legacy code (tech debt)

### Duplicates Found (3)
- [ISSUE-150, ISSUE-151, ISSUE-152] — All about "login timeout" issue
  → Consolidate into ISSUE-150, close others

Step 5: Apply Bulk Updates

Update priority/labels for batch:

# Mark all critical issues with "critical" label
composio execute LINEAR_UPDATE_ISSUE -d '{
  "issueIdOrKey": "ISSUE-123",
  "labels": ["critical", "blocking"],
  "priority": "URGENT"
}'

# Assign high-priority batch to team lead
composio execute LINEAR_UPDATE_ISSUE -d '{
  "issueIdOrKey": "ISSUE-201",
  "assignee": "team-lead-id",
  "priority": "HIGH"
}'

Or use script for bulk:

// triage.ts
const triageScript = async (payload) => {
  const { issues, action } = payload;
  
  for (const issue of issues) {
    if (action === "mark-critical") {
      await execute("LINEAR_UPDATE_ISSUE", {
        issueIdOrKey: issue.id,
        labels: ["critical"],
        priority: "URGENT"
      });
    } else if (action === "assign-to-sprint") {
      await execute("LINEAR_UPDATE_ISSUE", {
        issueIdOrKey: issue.id,
        cycle: "current-sprint",
        priority: "HIGH"
      });
    } else if (action === "close-duplicate") {
      await execute("LINEAR_UPDATE_ISSUE", {
        issueIdOrKey: issue.id,
        state: "DUPLICATE",
        related: issue.relatedIssueId
      });
    }
  }
};

Step 6: Deduplicate and Link

Handle duplicate issues:

# Close duplicate, link to primary
composio execute LINEAR_UPDATE_ISSUE -d '{
  "issueIdOrKey": "ISSUE-151",
  "state": "DUPLICATE",
  "relatedIssues": [
    { "issueId": "ISSUE-150", "relationType": "is duplicated by" }
  ]
}'

# Add comment explaining consolidation
composio execute LINEAR_CREATE_COMMENT -d '{
  "issueIdOrKey": "ISSUE-151",
  "body": "Closed as duplicate of ISSUE-150. See that issue for tracking."
}'

Step 7: Generate Triage Summary

Create report for team:

# Weekly Triage Summary — April 28, 2026

## Overview
- Total issues processed: 45
- New issues created: 3
- Issues closed: 8
- Issues assigned this sprint: 12
- Duplicates consolidated: 3

## Action Items This Week

### Critical (Assign immediately)
1. **[ISSUE-123]** App crashes on login
   - Status: Unstarted
   - Assigned to: @engineer-1
   - ETA: Friday EOD

2. **[ISSUE-124]** Database backup failing
   - Status: Unstarted
   - Assigned to: @devops-lead
   - ETA: By Monday

### High Priority (Add to sprint)
- [ISSUE-201]: Search pagination — @engineer-2
- [ISSUE-202]: Mobile menu — @engineer-3
- [ISSUE-203]: Error messages — @engineer-1 (when Issue-123 done)

### Consolidated
- ✓ Closed ISSUE-150, 151, 152 → Merged into primary tracking

### Recommended
- [ ] Create "on-deck" label for issues ready to work
- [ ] Set up automated daily email for critical issues
- [ ] Review "Low" category (10 items) for archival

---

**Next Triage**: May 5, 2026 (weekly Monday 10am)
**Owner**: @triage-lead

Step 8: Schedule Recurring Triages

Automate workflow:

# Create weekly triage script
cat > scripts/weekly-triage.sh << 'EOF'
#!/bin/bash

# Fetch unstarted, unassigned issues
composio execute LINEAR_LIST_ISSUES -d '{
  "filter": { "state": { "type": { "eq": "unstarted" } }, "assignee": { "null": true } },
  "first": 100
}' > /tmp/triage-$(date +%Y%m%d).json

# Post summary to Slack
composio execute SLACK_SEND_MESSAGE -d "{
  \"channel\": \"#engineering\",
  \"text\": \"Weekly Triage Ready — $(jq '.[] | length' /tmp/triage-*.json) issues to review\"
}"
EOF

chmod +x scripts/weekly-triage.sh

# Run via cron (every Monday 9am)
# Add to crontab: 0 9 * * 1 /path/to/scripts/weekly-triage.sh

Troubleshooting

IssueSolution
Not authenticatedRun composio login and link Linear/Jira again
Rate limitingWait a few mins; Composio has rate limits
Wrong filter resultsTest filter syntax; verify field names with --get-schema
Updates not applyingCheck permissions; ensure issue ID/key format correct

Output

Deliver:

  1. Backlog Summary (count by priority/label)
  2. Categorized Issues (critical, high, medium, low)
  3. Bulk Updates Applied (labels, assignments, consolidations)
  4. Triage Report (for team sync)
  5. Next Steps (recommendations for follow-up)

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

manu14357/zskills162026년 7월 24일 업데이트

manu14357의 스킬 모두 보기

이 스킬의 문제 신고