composio-community/awesome-codex-skills

sentry-triage

Diagnose Sentry issues without copy-pasting stack traces. Uses the Composio CLI to pull issue details, events, breadcrumbs, and suspect commits, then maps the frames to local source so the agent can propose a fix directly.

First seen Apr 24, 2026

Installation

$ npx skills add composio-community/awesome-codex-skills --skill sentry-triage

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from composio-community/awesome-codex-skills · top by installs.

npx skills add composio-community/awesome-codex-skills

Browse all from composio-community/awesome-codex-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 16.3K
Default branch master
Open issues 13
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

More metadata
short-description
Sentry error diagnosis via the Composio CLI

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,440 B
  • docs SUMMARY.md 240 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 423 installs

SKILL.md

Sentry Triage

Pull Sentry issues, events, and suspect commits straight into the agent via the Composio CLI. Skip the copy-paste-stack-trace dance.

When to Use

  • New Sentry alert and you want the agent to investigate, not just quote the subject line.
  • Diagnosing a regression: find the releases, suspect commit, and affected files.
  • Building a "top 10 unresolved issues" digest with reproduction hints.

Prereqs

curl -fsSL https://composio.dev/install | bash
composio login
composio link sentry        # auth token with event:read + project:read

Discover Tools

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

Common slugs (verify with --get-schema):

  • SENTRYGETAN_ISSUE
  • SENTRYLISTANISSUESEVENTS
  • SENTRYRETRIEVEANEVENTFORAPROJECT
  • SENTRYLISTAPROJECTSISSUES
  • SENTRYUPDATEAN_ISSUE

Diagnose a Single Issue

  1. Fetch the issue (by short ID like PROJ-1F4 or numeric ID):

``bash composio execute SENTRYGETANISSUE -d '{"issueid":"PROJ-1F4"}' ``

  1. Grab the latest event with full stack + breadcrumbs:

``bash composio execute SENTRYLISTANISSUESEVENTS \ -d '{"issue_id":"PROJ-1F4","full":true,"limit":1}' ``

  1. Map each frame to local source. For each filename + lineno in the stack, the agent opens the file and reads ±20 lines. No manual copy-paste.
  2. Check suspect commits (Sentry attaches these when release tracking is set up) — open them with git show <sha> locally.
  3. Propose a fix with a diff, run tests, and — once green — mark the issue resolved:

``bash composio execute SENTRYUPDATEANISSUE \ -d '{"issueid":"PROJ-1F4","status":"resolved","statusDetails":{"inNextRelease":true}}' ``

Triage a Batch

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

Pipe into jq for a ranked summary:

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

Workflow File

scripts/sentry-diag.ts, run with 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));

The agent then reads each file at line ± 20 and drafts a patch.

Route to Linear / Slack

Chain tools to open a ticket for the top unresolved issue:

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}`
  });
'

Troubleshooting

  • 404 on issue_id → use the short ID (PROJ-1F4), not the URL slug.
  • Empty events → the issue was resolved/archived; query with query:"is:resolved" or bump limit.
  • Missing suspect commit → release tracking isn't configured in Sentry; set up sentry-cli releases in CI.
  • No inApp frames → source maps not uploaded; stack will only show vendor code.

Full CLI reference: docs.composio.dev/docs/cli