Community코딩 & 개발github.com

ComposioHQ/sentry-triage

Sentry 이슈를 스택 트레이스를 복사-붙여넣기 하지 않고 진단합니다. Composio CLI를 사용하여 이슈 세부 정보, 이벤트, 브레드크럼 및 의심스러운 커밋을 가져온 다음 프레임을 로컬 소스에 매핑하여 에이전트가 직접 수정을 제안할 수 있도록 합니다.

sentry-triage란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Cursor, Codex 등)가 Composio CLI를 통해 Sentry 이슈 데이터를 직접 가져와 디버깅 및 수정을 자동화할 수 있게 해줍니다. 개발자는 스택 트레이스를 수동으로 복사하여 에이전트에 전달할 필요 없이, 에이전트가 Sentry API로부터 이슈 세부 정보, 전체 이벤트(스택 + 브레드크럼 포함), 의심스러운 커밋을 조회할 수 있습니다. 그런 다음 에이전트는 각 스택 프레임의 파일과 라인 번호를 로컬 소스 코드에 매핑하여 컨텍스트를 읽고, 패치를 제안한 후, 테스트를 실행하고, 최종적으로 이슈를 해결 상태로 업데이트할 수 있습니다. 배치 처리 워크플로우(예: 최근 24시간 동안 가장 빈번한 미해결 이슈 요약)도 지원하며, Linear 또는 Slack과 같은 다른 도구와 체인하여 티켓을 자동 생성할 수 있습니다. 이 스킬은 개발자가 반복적인 수동 작업 없이 Sentry 알림을 신속하게 분석하고 수정하도록 도와줍니다.

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

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

문서

Sentry 트라이어지

Composio CLI를 통해 Sentry 이슈, 이벤트, 및 의심스러운 커밋을 에이전트로 직접 가져옵니다. 스택 트레이스를 복사-붙여넣기하는 번거로움을 건너뛰세요.

사용 시기

  • 새로운 Sentry 알림이 왔을 때, 에이전트가 단순히 제목만 인용하는 것이 아니라 직접 조사하길 원할 때.
  • 회귀(regression) 진단: 릴리스, 의심스러운 커밋, 영향을 받은 파일을 찾습니다.
  • 재현 힌트가 포함된 "상위 10개 미해결 이슈" 요약을 작성할 때.

사전 요구 사항

curl -fsSL https://composio.dev/install | bash
composio login
composio link sentry        # event:read + project:read 권한이 있는 인증 토큰

도구 검색

composio search "get sentry issue" --toolkits sentry
composio search "list events for issue" --toolkits sentry
composio tools list sentry

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

  • SENTRY_GET_AN_ISSUE
  • SENTRY_LIST_AN_ISSUES_EVENTS
  • SENTRY_RETRIEVE_AN_EVENT_FOR_A_PROJECT
  • SENTRY_LIST_A_PROJECTS_ISSUES
  • SENTRY_UPDATE_AN_ISSUE

단일 이슈 진단

  1. 이슈 가져오기 (짧은 ID PROJ-1F4 또는 숫자 ID 사용):
    composio execute SENTRY_GET_AN_ISSUE -d '{"issue_id":"PROJ-1F4"}'
    
  2. 최신 이벤트 가져오기 (전체 스택 + 브레드크럼 포함):
    composio execute SENTRY_LIST_AN_ISSUES_EVENTS \
      -d '{"issue_id":"PROJ-1F4","full":true,"limit":1}'
    
  3. 각 프레임을 로컬 소스에 매핑합니다. 스택의 각 filename + lineno에 대해 에이전트가 파일을 열고 ±20줄을 읽습니다. 수동 복사-붙여넣기가 필요 없습니다.
  4. 의심스러운 커밋 확인 (릴리스 추적이 설정된 경우 Sentry가 첨부) — 로컬에서 git show <sha>로 엽니다.
  5. 수정 제안 (diff 포함), 테스트 실행, 그리고 통과하면 이슈를 해결로 표시:
    composio execute SENTRY_UPDATE_AN_ISSUE \
      -d '{"issue_id":"PROJ-1F4","status":"resolved","statusDetails":{"inNextRelease":true}}'
    

배치 처리

composio execute SENTRY_LIST_A_PROJECTS_ISSUES -d '{
  "organization_slug":"acme",
  "project_slug":"api",
  "query":"is:unresolved age:-24h",
  "sort":"freq",
  "limit":20
}'

jq로 파이핑하여 순위 요약:

composio execute SENTRY_LIST_A_PROJECTS_ISSUES -d '{"organization_slug":"acme","project_slug":"api","query":"is:unresolved"}' \
  | jq -r '.[] | "\(.count)\t\(.shortId)\t\(.title)"' | sort -rn | head

워크플로우 파일

scripts/sentry-diag.ts, 실행: composio run --file scripts/sentry-diag.ts -- --id PROJ-1F4:

const id = process.argv[process.argv.indexOf("--id") + 1];

const issue = await execute("SENTRY_GET_AN_ISSUE", { issue_id: id });
const [event] = await execute("SENTRY_LIST_AN_ISSUES_EVENTS", {
  issue_id: id, full: true, limit: 1
});

const frames = (event?.entries ?? [])
  .filter(e => e.type === "exception")
  .flatMap(e => e.data.values.flatMap(v => v.stacktrace?.frames ?? []))
  .filter(f => f.inApp)
  .map(f => ({ file: f.filename, line: f.lineno, fn: f.function }));

console.log(JSON.stringify({ title: issue.title, culprit: issue.culprit, frames }, null, 2));

에이전트는 각 file을 line ± 20 위치에서 읽고 패치를 초안으로 작성합니다.

Linear / Slack으로 연결

도구를 체인하여 상위 미해결 이슈에 대한 티켓을 엽니다:

composio run '
  const [top] = await execute("SENTRY_LIST_A_PROJECTS_ISSUES", {
    organization_slug: "acme", project_slug: "api",
    query: "is:unresolved", sort: "freq", limit: 1
  });
  await execute("LINEAR_CREATE_ISSUE", {
    teamId: "TEAM_ID",
    title: `[Sentry] ${top.title}`,
    description: `Short ID: ${top.shortId}\nPermalink: ${top.permalink}\nCount: ${top.count}`
  });
'

문제 해결

  • 404 on issue_id → URL 슬러그가 아닌 짧은 ID (PROJ-1F4)를 사용하세요.
  • 빈 이벤트 → 이슈가 해결/보관되었습니다. query:"is:resolved"로 쿼리하거나 limit를 늘리세요.
  • 의심스러운 커밋 누락 → Sentry에 릴리스 추적이 설정되지 않았습니다. CI에서 sentry-cli releases를 설정하세요.
  • inApp 프레임 없음 → 소스 맵이 업로드되지 않았습니다. 스택은 벤더 코드만 표시됩니다.

전체 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.

관련 스킬