Triagebot Action Bug Triage
withastro/astro
Takes a bug report for the triagebot-action GitHub Action through reproduction, root-cause diagnosis, an intended-behavior check and a fix attempt.
Walks through open Sentry issues for the tooll3 project, latest first, proposing a fix for each and committing them one at a time with your review between.
$ npx skills add tixl3d/tixl --skill sentry-fix -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tixl3d/tixl sentry-fix --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/sentry-fix .claude/skills/sentry-fix && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sentry-fix" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/sentry-fix into .claude/skills/sentry-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-fix", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tixl3d/tixl/tree/main/.claude/skills/sentry-fixType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tixl3d/tixl --skill sentry-fix -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tixl3d/tixl sentry-fix --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/sentry-fix .agents/skills/sentry-fix && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sentry-fix" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/sentry-fix into .agents/skills/sentry-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-fix", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tixl3d/tixl --skill sentry-fix -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tixl3d/tixl sentry-fix --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/sentry-fix .cursor/skills/sentry-fix && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sentry-fix" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/sentry-fix into .cursor/skills/sentry-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-fix", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tixl3d/tixl.git --path .claude/skills/sentry-fix--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tixl3d/tixl --skill sentry-fix -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tixl3d/tixl sentry-fix --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/sentry-fix .gemini/skills/sentry-fix && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sentry-fix" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/sentry-fix into .gemini/skills/sentry-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-fix", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tixl3d/tixl sentry-fixInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tixl3d/tixl --skill sentry-fix -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/sentry-fix .github/skills/sentry-fix && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sentry-fix" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/sentry-fix into .github/skills/sentry-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-fix", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tixl3d/tixl --skill sentry-fix -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tixl3d/tixl sentry-fix --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tixl3d/tixl.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/sentry-fix .opencode/skills/sentry-fix && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sentry-fix" agent skill from https://github.com/tixl3d/tixl/tree/main/.claude/skills/sentry-fix into .opencode/skills/sentry-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-fix", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sentry-fixWalks through open Sentry issues for the tooll3 project, latest first, proposing a fix for each and committing them one at a time with your review between.
Before anything else the agent checks that SENTRY_AUTH_TOKEN is set in .env and that Scripts/sentry-issues.ps1 exists. The token needs both event:read and event:write scopes, since write is used to mark issues resolved at hand-off; a 403 on resolve means the token is read-only and has to be recreated, because Sentry does not allow editing scopes afterward. The token is never stored, echoed or printed.
Step one lists open issues through the script, newest lastSeen first, and shows a compact table of short ID, title, level, count and lastSeen. The agent asks you to confirm where to start and never starts automatically, since some issues may be known noise. For each chosen issue it fetches the details, including title, culprit, exception stack frames, tags and runtime context, then maps stack-trace paths back to repo files by stripping the CI build prefix and fixing slashes; Sentry's line numbers match the main branch. The description says each fix is committed separately, and the excerpt is cut off after the mapping step.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9ce9691. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitdotnetFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
sentry.ioFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SENTRY_AUTH_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sentry Issue Fix Loop loads about 2.1k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 1,182 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
1. **Token present.** Read `.env` at repo root. If `SENTRY_AUTH_TOKEN=` is empty or the file does not exist, stop and te- Copy `.env.example` to `.env` and paste the token in.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from tixl3d/tixl at commit 9ce9691, republished under its MIT licence (© tixl3d). 1,182 words, ~2,137 tokens.
.claude/skills/sentry-fix/SKILL.md (or your agent's skills folder).Drive a review-gated loop over open Sentry issues for the tooll/tooll3 project. One commit per issue, user reviews between each.
.env at repo root. If SENTRY_AUTH_TOKEN= is empty or the file does not exist, stop and tell the user:event:read and event:write scopes. event:read covers listing/fetching; event:write is required to mark issues resolved at hand-off..env.example to .env and paste the token in.Scripts/sentry-issues.ps1 exists. If not, the skill is incomplete — tell the user.If a -Resolve call returns 403 Forbidden, the token is read-only — tell the user to regenerate it with event:write (Sentry doesn't allow editing scopes after creation).
Do not store the token, do not echo it, do not print it.
Run:
.\Scripts\sentry-issues.ps1 -List -Limit 25That returns slimmed JSON, latest-lastSeen first. Parse it.
Show the user a compact table — short ID, title, level, count, lastSeen — and ask them to confirm they want to start with #1, or pick a different issue / skip filter. Do not auto-start without a confirm; some issues may be already-known noise.
If the list is empty, say so and stop.
For the chosen issue:
.\Scripts\sentry-issues.ps1 -Issue <numericId>This returns { issue, event }. The interesting bits:
issue.title, issue.culprit, issue.metadataevent.entries[?type=='exception'].data.values[*].stacktrace.frames — frames with filename, function, lineNo, inAppevent.tags — release, environment, os, runtimeevent.contexts — useful runtime/device contextSentry stack-trace filenames look like D:\a\tixl\tixl\Core\Operator\Symbol.cs (CI build path) or relative like Gui\Windows\SymbolLib\NamespaceTreeNode.cs. To resolve:
D:\a\tixl\tixl\) — what remains is repo-relative.\ to / if needed for the Read tool.lineNo from Sentry is 1-based and lines up with the file in main.Read the named function plus ~20 lines of surrounding context. Read every inApp: true frame from the top of the stack until you've understood the trigger. Stop reading once you have enough to explain the cause — don't open every frame in the trace.
Write a short root-cause statement to the user — 2-4 sentences. State which null reference, which invariant was broken, which input was unexpected. Cite the exact file:line you read. If you genuinely can't determine the cause from the trace (missing context, intermittent timing bug, third-party code), say so and ask if the user wants to skip or annotate the issue in Sentry instead of fixing blind.
Describe the fix in 1-3 bullets before editing. Mention:
Wait for user "go" / "yes" / "do it" — or pushback. Do not edit without an ack.
Edit minimally. Follow .agentic/AGENT_INSTRUCTIONS.md rules:
.cs files unless the file is LF.Identify the project from the changed file's path (Core, Editor, Operators/Lib, etc.) and run:
dotnet build <project>.csprojIf the build fails, fix the build error before continuing. Do not hand off a broken build for review.
The user commits the change themselves, so they're forced to review every diff before it lands. After the build is green:
Run git status --short and git diff --stat so the user sees what they're reviewing.
Draft a suggested commit message in a fenced block (don't run git commit). Format:
<area>: <one-line fix summary>
Fixes Sentry tooll3 issue <SHORT-ID> (<permalink>).
<2-4 lines: what was happening, what the fix does, any caveats.>Examples of <area>: Core, Editor, Operators, Gui. Match the project root the file lives in. Do not include Co-Authored-By unless the user has asked for it project-wide — check git log for the recent convention.
State the next issue from the list (short-ID + title) so the user knows what's queued.
Stop and wait. Do not run git commit, git add, or move to the next issue. End the hand-off message with the question:
Resolve Sentry
<SHORT-ID>as fixed-in-next-release? Replynextto mark resolved and continue,next noresto continue without resolving, orskip/revert/stop.
User reply mapping:
next / yes / continue — first run Scripts\sentry-issues.ps1 -Resolve <numericId> -InNextRelease, then proceed to the next issue (step 2a). Sentry auto-resolves on the next release tag and auto-reopens as a regression if it recurs.next nores / next no — proceed to the next issue without resolving. Use this when the user committed but isn't confident enough to mark resolved (e.g. wants to manually verify first).skip — drop the current next-issue, present the one after. Don't resolve.revert / undo — they've reverted the working-tree edit themselves; re-examine or move on. Don't resolve.stop — end the session. Don't resolve.If the user only says next without any explicit yes/no on resolution, treat it as the default (next = resolve). If they previously said next nores for some issues, don't assume that sticks for the next one — re-ask each time.
If the user says nothing or asks a question, answer the question and stay paused.
Some issues aren't fixable from TiXL's code: driver bugs (DXGI E_NOTIMPL), library version mismatches we don't control, user environment problems (missing .NET runtime on the target machine in a way TiXL can't detect), broken installs we can't recover. For these, mark the issue archived on Sentry instead of resolved-in-next-release:
.\Scripts\sentry-issues.ps1 -Archive <numericId>Sentry hides archived issues from the default unresolved view. They auto-reopen if Sentry's "escalation" detector decides the issue has become significant again (e.g. starts hitting a much wider user base). The right surface for "won't fix from our side."
When triaging, propose Archive rather than Resolve for clearly out-of-our-hands cases, and let the user confirm.
git commit or git add — the user commits themselves so they're forced to review every diff.git push).next / yes at step 2h. The hand-off question is the trigger; silence is not consent.Resolve an issue we didn't actually fix — that falsely claims a fix landed and will mark it as a regression when it recurs. Use Archive for won't-fix.(12 additional frames were not displayed) and you need them, ask the user to open the issue in the Sentry web UI and paste the full trace.git worktree. The project explicitly forbids worktrees (see .claude/CLAUDE.md).Stop the loop and report up if:
.agentic/Plans/, and move on or stop.© tixl3d, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/sentry-fix of tixl3d/tixl.
Open the folder on GitHubat commit 9ce9691
Sentry Issue Fix Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sentry Issue Fix Loop this skilltixl3d/tixl | 5.1k | — | ~2.1k | Automated safety check: Notes | MIT | |
| Triagebot Action Bug Triagewithastro/astro | 63k | — | ~639 | Automated safety check: Pass | Custom licence | |
| Issue TracerZaxbyHub/opencode-swarm | 490 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Sentrymitsuhiko/agent-stuff | 3.2k | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| LazyCodex Bug Reportercode-yeongyu/oh-my-openagent | 70k | — | ~3k | Automated safety check: Pass | Custom licence | |
| Production Error Huntdifferent-ai/openwork | 24k | — | ~803 | Automated safety check: Pass | Custom licence |
withastro/astro
Takes a bug report for the triagebot-action GitHub Action through reproduction, root-cause diagnosis, an intended-behavior check and a fix attempt.
ZaxbyHub/opencode-swarm
Drives a bug report from validation and root-cause tracing through a critic-reviewed plan, an approved minimal fix and a PR-ready closure, never merging without recorded human approval.
mitsuhiko/agent-stuff
Fetch and analyze Sentry issues, events, transactions, and logs.
code-yeongyu/oh-my-openagent
Investigates a LazyCodex or Codex CLI defect, decides which GitHub repository owns it, and drafts an evidence-backed issue or pull request with repro steps.
different-ai/openwork
Traces an opaque production error in an OpenWork build to its cause using local server logs and Sentry, names the regressing PR and files a report.
superset-sh/superset
Root-cause a production error with Sentry's evidence before touching code — pull the issue, read the stack trace and breadcrumbs, and separate the crash from its trigger.
tixl3d/tixl
Turns transcribed TiXL tutorial videos into an exhaustive, timestamped list of every operator mention, feeding the documentation editor's deep-link index without touching the wiki or YouTube text.
tixl3d/tixl
Works through the In progress column of the TiXL road-map board unattended, turning simple tickets into git stashes and writing plans for the rest under .agentic/Plans.
tixl3d/tixl
Fills in empty embedded help text for TiXL's UI topics by distilling the maintainer's own video explanations into short, user-facing doc entries.
tixl3d/tixl
Review a TiXL feature or change set for elegance, naming, robustness (exceptions, null refs, initialization order, threading) and realtime performance…
Works with
Categories
Walks through open Sentry issues for the tooll3 project, latest first, proposing a fix for each and committing them one at a time with your review between. ps1 exists. The token needs both event:read and event:write scopes, since write is used to mark issues resolved at hand-off; a 403 on resolve means the token is read-only and has to be recreated, because Sentry does not allow editing scopes afterward.
Sentry Issue Fix Loop fits situations like: working through the open Sentry backlog for tooll3; fixing a specific Sentry issue with a reviewed, separate commit; deciding which open Sentry issues are noise and which need a fix; mapping a Sentry stack trace back to files in the repository.
Run `npx skills add tixl3d/tixl --skill sentry-fix -a claude-code`. Or copy the skill folder (.claude/skills/sentry-fix in tixl3d/tixl) into .claude/skills/sentry-fix in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tixl3d/tixl --skill sentry-fix -a codex`. Or copy the skill folder (.claude/skills/sentry-fix in tixl3d/tixl) into .agents/skills/sentry-fix in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tixl3d/tixl --skill sentry-fix -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sentry-fix, .gemini/skills/sentry-fix, .github/skills/sentry-fix and .opencode/skills/sentry-fix in your project.
Going by SKILL.md and its folder, Sentry Issue Fix Loop needs the command-line tools its instructions call (git and dotnet) and credentials named SENTRY_AUTH_TOKEN. Our summary lists: A Sentry auth token with event:read and event:write scopes in SENTRY_AUTH_TOKEN; PowerShell to run Scripts/sentry-issues.ps1.
SKILL.md names 1 domain. As links in the text: sentry.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Sentry Issue Fix Loop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Sentry Issue Fix Loop: Triagebot Action Bug Triage (withastro/astro, 63k stars), Issue Tracer (ZaxbyHub/opencode-swarm, 490 stars), Sentry (mitsuhiko/agent-stuff, 3.2k stars) and LazyCodex Bug Reporter (code-yeongyu/oh-my-openagent, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tixl3d (a GitHub organization) maintains it in tixl3d/tixl, which has 5,129 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.
Source: tixl3d/tixl on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.