Community연구 & 데이터 분석github.com

ComposioHQ/issue-triage

트라이에이지 Linear 및 Jira 백로그를 정리하고 버그 스위프를 실행하는 CLI 도구입니다. UI를 거치지 않고 셸에서 직접 이슈를 대량으로 가져오고, 중복을 제거하며, 레이블을 변경하고, 담당자를 재배정하고, 요약을 게시합니다.

issue-triage란 무엇인가요?

이 스킬은 Composio CLI를 사용하여 Linear 또는 Jira의 이슈 트라이에이지 세션과 버그 스위프를 자동화합니다. 개발자는 셸에서 직접 백로그를 가져오고, 중복 이슈를 클러스터링하며, 레이블을 적용하고, 담당자를 할당할 수 있어 UI를 통한 수동 작업을 대폭 줄여줍니다. 주간 트라이에이지(미할당, 오래된, 우선순위 누락 이슈), 릴리스 후 버그 스위프(P1/P2 버그 클러스터링 및 중복 제거), Sentry → Linear 또는 PagerDuty → Jira와 같은 크로스 툴 동기화에 유용합니다. 이 스킬은 Linear와 Jira 모두를 지원하며, Composio CLI를 통해 이슈 목록 조회, 생성, 업데이트, 댓글 추가 등의 작업을 수행합니다. 또한 `composio run` 명령어로 실행할 수 있는 TypeScript 워크플로 파일을 제공하여 복잡한 자동화 로직을 구현할 수 있으며, Slack에 결과 요약을 게시하는 기능도 포함되어 있어 팀 협업을 강화합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ComposioHQ/awesome-codex-skills/tree/main/issue-triage

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

이슈 트라이에이지 (Linear / Jira)

Composio CLI를 사용하여 Linear 또는 Jira에서 트라이에이지 세션과 버그 스위프를 진행하세요. 백로그를 가져오고, 중복을 클러스터링하고, 레이블을 적용한 후 정리된 목록을 팀에 전달합니다.

사용 시기

  • 주간 트라이에이지: "미할당, 오래되거나 우선순위가 누락된 이슈는 무엇인가?"
  • 릴리스 후 버그 스위프: "모든 P1/P2 버그를 클러스터링하고, 중복을 제거하며, 담당자를 할당합니다."
  • 크로스 툴 동기화: Sentry → Linear, PagerDuty → Jira.

사전 요구 사항

curl -fsSL https://composio.dev/install | bash
composio login
composio link linear        # 또는: composio link jira

도구 검색

composio search "list issues" --toolkits linear
composio search "search issues" --toolkits jira
composio tools list linear
composio tools list jira

일반적인 슬러그 (--get-schema로 확인 가능):

Linear

  • LINEAR_LIST_ISSUES
  • LINEAR_CREATE_ISSUE
  • LINEAR_UPDATE_ISSUE
  • LINEAR_CREATE_COMMENT

Jira

  • JIRA_SEARCH_FOR_ISSUES_USING_JQL
  • JIRA_CREATE_ISSUE
  • JIRA_EDIT_ISSUE
  • JIRA_ADD_COMMENT
  • JIRA_ASSIGN_ISSUE

트라이에이지 워크플로

  1. 백로그 슬라이스 가져오기:
    # Linear
    composio execute LINEAR_LIST_ISSUES -d '{
      "filter": { "state": { "type": { "eq": "unstarted" } }, "assignee": { "null": true } },
      "first": 100
    }'
    
    # Jira
    composio execute JIRA_SEARCH_FOR_ISSUES_USING_JQL -d '{
      "jql": "project = APP AND statusCategory != Done AND assignee is EMPTY ORDER BY updated DESC",
      "maxResults": 100,
      "fields": ["summary","priority","labels","updated","reporter"]
    }'
    
  2. 클러스터링: 제목 유사성과 레이블을 기준으로 중복 항목을 로컬에서 그룹화합니다.
  3. 한 번에 업데이트 적용 (레이블, 우선순위, 담당자):
    composio execute LINEAR_UPDATE_ISSUE -d '{
      "id":"abc-123","priority":2,"labelIds":["label-bug","label-p1"],"assigneeId":"user-42"
    }'
    
    composio execute JIRA_EDIT_ISSUE -d '{
      "issueIdOrKey":"APP-482",
      "fields":{"priority":{"name":"High"},"labels":["bug","p1"]}
    }'
    
  4. 중복 연결: 기준이 되는 이슈를 참조하는 댓글로 중복을 연결합니다.
  5. 변경 사항 요약 게시: Slack에 변경된 내용을 요약하여 팀이 스위프 결과를 확인할 수 있도록 합니다.

버그 스위프 (릴리스 후)

# Jira: 최근 7일 동안 생성된 모든 버그를 심각도 순으로 정렬
composio execute JIRA_SEARCH_FOR_ISSUES_USING_JQL -d '{
  "jql":"type = Bug AND created >= -7d ORDER BY priority DESC, created ASC",
  "fields":["summary","priority","labels","reporter","components"]
}' | jq -r '.issues[] | "\(.fields.priority.name)\t\(.key)\t\(.fields.summary)"'

워크플로 파일

scripts/triage-linear.ts, composio run --file scripts/triage-linear.ts로 실행:

const { nodes: issues } = await execute("LINEAR_LIST_ISSUES", {
  filter: { state: { type: { eq: "unstarted" } }, assignee: { null: true } },
  first: 100
});

const stale = issues.filter(i => {
  const age = (Date.now() - new Date(i.updatedAt).getTime()) / 86400000;
  return age > 14;
});

for (const i of stale) {
  await execute("LINEAR_CREATE_COMMENT", {
    issueId: i.id,
    body: "Auto-triage: stale for 14+ days. Please assign or close."
  });
}

await execute("SLACK_SEND_MESSAGE", {
  channel: "triage",
  text: `Weekly triage: pinged ${stale.length} stale issues.`
});

크로스 툴: Sentry → Linear

composio run '
  const hot = await execute("SENTRY_LIST_A_PROJECTS_ISSUES", {
    organization_slug:"acme", project_slug:"api",
    query:"is:unresolved", sort:"freq", limit:5
  });
  for (const s of hot) {
    await execute("LINEAR_CREATE_ISSUE", {
      teamId: "TEAM_ID",
      title: `[Sentry] ${s.title}`,
      description: `${s.permalink}\nCount: ${s.count}`,
      labelIds: ["label-bug","label-from-sentry"]
    });
  }
'

문제 해결

  • 알 수 없는 필드 이름 → composio execute <SLUG> --get-schema 명령어로 정확한 필터 형태를 확인하세요 (Linear는 중첩 객체를 사용하고 Jira는 JQL 문자열을 사용합니다).
  • Linear에서 403 오류 → 올바른 워크스페이스로 composio link linear를 다시 실행하세요.
  • Jira 사용자 정의 필드 누락 → fields 배열에 명시적으로 요청하세요.
  • 대량 편집 속도 제한 → composio run 루프에 250ms 지연을 추가하고 --parallel은 사용하지 마세요.

전체 CLI 참고: docs.composio.dev/docs/cli

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ComposioHQ/-21risk-automation

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

ComposioHQ/-2chat-automation

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

ComposioHQ/ably-automation

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

ComposioHQ/abstract-automation

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

ComposioHQ/abuselpdb-automation

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

ComposioHQ/abyssale-automation

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

ComposioHQ/accelo-automation

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

ComposioHQ/accredible-certificates-automation

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

ComposioHQ/acculynx-automation

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

ComposioHQ/active-campaign-automation

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

ComposioHQ/addresszen-automation

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

ComposioHQ/adobe-automation

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

ComposioHQ/adrapid-automation

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

ComposioHQ/adyntel-automation

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

ComposioHQ/aeroleads-automation

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

ComposioHQ/aero-workflow-automation

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

ComposioHQ/affinda-automation

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

ComposioHQ/affinity-automation

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

ComposioHQ/agencyzoom-automation

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

ComposioHQ/agent-deep-links

Build, validate, and troubleshoot deep links for Codex, Cursor, VS Code, Visual Studio, and similar tools. Use when users ask for clickable links (especially in Slack) that open threads, files, folders, or app settings.

관련 스킬