Agent skill

Sentry Issue Campaign

by boardsesh in boardsesh/boardsesh

Drive Sentry-derived GitHub issues to merged PRs at scale — pick by priority label, self-assign, plan then implement via subagents, pair adversarial reviews, and shepherd every PR to ready-for-review.

Apache-2.0Auto-check passed

Install Sentry Issue Campaign

skills CLI
$ npx skills add boardsesh/boardsesh --skill sentry-issue-campaign -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install boardsesh/boardsesh sentry-issue-campaign --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/boardsesh/boardsesh.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/sentry-issue-campaign .claude/skills/sentry-issue-campaign && rm -rf skills-src

Use ~/.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/

Facts

Skill name
sentry-issue-campaign
GitHub stars
163
Token cost
~2k tokens
SKILL.md length
1,154 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
Apache-2.0

At a glance

Drive Sentry-derived GitHub issues to merged PRs at scale — pick by priority label, self-assign, plan then implement via subagents, pair adversarial reviews, and shepherd every PR to ready-for-review.

  • Works in 8 steps: Pick and claim → Plan, then implement → The P2 rule → …
  • Asked to pick up N sentry errors
  • SKILL.md covers 1. Pick and claim, 2. Plan, then implement, 3. The P2 rule and 4. Standards every agent must…, plus 4 more sections
  • Calls git and gh

What it does

Sentry Issue Campaign is an agent skill from boardsesh/boardsesh. Drive Sentry-derived GitHub issues to merged PRs at scale — pick by priority label, self-assign, plan then implement via subagents, pair adversarial reviews, and shepherd every PR to ready-for-review. Use when asked to "pick up N sentry errors", work from-sentry issues, turn a Sentry triage sweep into fixes, or continue an in-flight Sentry fix campaign. Repo boardsesh/boardsesh.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Sentry and GitHub. The licence is Apache-2.0.

When your agent uses it

  • Asked to pick up N sentry errors
  • Work from-sentry issues
  • Turn a Sentry triage sweep into fixes
  • Continue an in-flight Sentry fix campaign

Example prompts

  • “pick up N sentry errors”
  • “/sentry-issue-campaign”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Pick and claim
  2. Plan, then implement
  3. The P2 rule
  4. Standards every agent must meet
  5. PR lifecycle
  6. Resolving the underlying Sentry issues
  7. Hazards that cost real time
  8. What to hand back

What it can do on your machine

Read from SKILL.md and the folder at commit 93cf9a7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Sentry Issue Campaign loads about 2k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 1,154 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~2k

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.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

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.

SKILL.md

The full file from boardsesh/boardsesh at commit 93cf9a7, republished under its Apache-2.0 licence (© boardsesh). 1,154 words, ~2,018 tokens.

Download SKILL.mdSave it as .claude/skills/sentry-issue-campaign/SKILL.md (or your agent's skills folder).
name
sentry-issue-campaign
description
Drive Sentry-derived GitHub issues to merged PRs at scale — pick by priority label, self-assign, plan then implement via subagents, pair adversarial reviews, and shepherd every PR to ready-for-review. Use when asked to "pick up N sentry errors", work `from-sentry` issues, turn a Sentry triage sweep into fixes, or continue an in-flight Sentry fix campaign. Repo boardsesh/boardsesh.

Sentry issue campaign

Turn from-sentry issues into merged PRs. The work is orchestration: you pick, claim, delegate, verify, and shepherd. You rarely write the fix yourself.

For bugs without the from-sentry label, use bug-bash-campaign instead. This skill adds the Sentry-specific steps ("Resolving the underlying Sentry issues") to the same loop.

1. Pick and claim

gh issue list --label from-sentry --state open --limit 100 \
  --json number,title,labels,assignees

Sort by priority:P0 → P1 → P2. Take the count asked for, highest priority first.

For each: gh issue edit <n> --add-assignee marcodejongh, then post a claim comment naming the session so parallel automation picks something else. Skip issues already assigned to someone else.

Before starting any issue, check whether it already has a PR — gh issue view <n> and the issue's own timeline/linked PRs. A closed event ~1s after a PR merge is an auto-close, i.e. evidence of a fix. Never conclude "no fix exists" from a paginated gh pr list --state merged --limit N sweep; a matching branch can fall outside the page and read as absence.

If a PR exists but is unmerged, the job is get that PR ready for review, not start over.

2. Plan, then implement

Spawn a read-only planning agent per issue. Require it to verify the issue's claims against the code and say so if the issue is wrong — stale and fabricated issues are common (see §6).

Read every plan yourself and judge it:

  • Solid → spawn an implementation agent with the plan embedded.
  • Unsure → spawn an adversarial review of the plan before implementing.

Model by complexity: Sonnet for mechanical/bounded work, Opus for crashes, concurrency, data correctness, security, native code.

3. The P2 rule

A follow-up at P2 or worse gets a fix PR immediately, not just an issue. File the issue and spawn the implementation agent in the same turn. P3 and below can stay an issue. This applies to findings you generate yourself — review results, hazards spotted mid-task — not only to tickets handed to you.

4. Standards every agent must meet

Put these in every spawn prompt. They are what makes the output trustworthy at 15-agent scale.

  • Mutation-tested guards. Revert the fix, watch the test go red, restore, and paste the real red output. A guard whose red nobody saw is not a guard.
  • Honesty over green. An unverified step must be reported as unverified. "Guard A's red was not confirmed locally; CI is authoritative" is an acceptable report. Dressing it up is not.
  • Commit before mutating. git checkout -- <file> to undo a mutation also reverts uncommitted real work in that file. After any such restore, run git status and read the diff.
  • Uniquely named scratch files (pr-body-<issue>.md, mutate-<issue>.py). Agents share one scratchpad directory; PR bodies and mutation scripts have both been silently overwritten mid-task. Re-read the published PR body with gh pr view after creating it.
  • Verify, don't assert. Fingerprint impact resolved with expo-updates runtimeversion:resolve (or the PR's own OTA check), not asserted. Upstream claims read out of node_modules, not memory.

Read the diff and the red output yourself before you believe a report.

5. PR lifecycle

  • Open as draft; mark ready once CI is green. Exception: a PR stacked on another PR stays draft until its base lands — a review against a base about to be rewritten is wasted.
  • Label every PR from-sentry so PRs and issues filter together.
  • ## Risk must be its own heading with a separate Risk: N/5 — why line (packages/shared/pr-body/src/risk.ts regex is ^#{2,3}\s+risk\s*$). A combined heading fails.
  • Scope must be an allowed conventional-commit scope; commit-lint reads the webhook payload, so a rerun reuses the stale title — amend and force-push.
  • Conflicts: rebase and --force-with-lease without asking. GitHub's mergeable is computed lazily and reads UNKNOWN; test locally instead: git merge-tree --write-tree origin/main <branch> | grep CONFLICT.
  • A conflicted PR dispatches no CI at all — a PR with no checks may be conflicted, not queued.
  • Codex reviews come from chatgpt-codex-connector[bot] and fire when a draft is marked ready. A draft has no codex review because it has never been ready. Promoting a batch triggers a batch of reviews; work through them.

When the user relays review feedback, treat it as authoritative input: revert the PR to draft if the finding is substantive, send the verbatim quote to an agent, and require it to verify the finding before fixing — reviewers are sometimes wrong about the mechanism while right about the bug, and their suggested fix can be wrong even when the finding is right.

Show full SKILL.md (429 more words)Show less

6. Resolving the underlying Sentry issues

Only after the fix has merged. Use resolvedInNextRelease for anything shipping by OTA (it is still firing on the current fleet; resolved would read as a false claim), resolved for backend work that deploys on merge. Always pass reason — the fix PR, the mechanism, and any follow-up.

Verify the Sentry ID before touching it. Run search_issues(query="issue:BOARDSESH-XX") and read the error text back. In one sweep, three IDs cited in our own issue bodies pointed at entirely different, live bugs — resolving on the citation would have closed two real problems and left them firing. When one grouping swallows many causes, the issue's headline impact belongs to the bucket, not the sampled error.

7. Hazards that cost real time

  • Concurrency. Backend worker DBs are keyed only by pool id, so two vp test run --project backend runs corrupt each other. Serialize with flock /tmp/boardsesh-backend-tests.lock, scope to your own files, and treat CI as the authoritative full run. Better: a test that mocks its dependencies and touches no DB runs under a throwaway vitest config omitting globalSetup/setupFiles — no lock, seconds.
  • Load. Many concurrent agents push the box past load 100, where suites produce a shifting failure set. A shifting set is contention; a real regression fails the same tests every time. Prove it by stashing to a clean tree and re-running.
  • Disk. df -h /home before creating worktrees. Reclaim from packages/web/.next in idle worktrees; remove your own finished agent worktrees only after confirming the commits are on GitHub (git fetch origin refs/pull/<n>/head).
  • vp test filters are positional: vp test run --project mobile <path>. vp run test:mobile -- <pattern> ignores the filter and runs everything.
  • Squash-merge retarget. When a stacked PR's base is squash-merged, GitHub moves the base to main but leaves the head on pre-squash commits — the child silently absorbs the parent's files and goes red on blobs that were never its own. Fix: git rebase --onto origin/main <old-base-tip>.
  • Parallel PRs in one file. Checking for file overlap is not enough. Two PRs can each pass CI against a base without the other and still land a broken main — e.g. one moves a constant into a shared export while the other hardcodes its old value. After both merge, run the shared suite on main.

8. What to hand back

Surface these rather than deciding them: anything that moves the native fingerprint (forces a TestFlight/Play build and pauses OTA reach), anything needing a secret or operator action to take effect, and anything that mutates stored user data. State plainly when a merged fix is inert until someone acts.

© boardsesh, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/sentry-issue-campaign of boardsesh/boardsesh.

Open the folder on GitHubat commit 93cf9a7

Compare with similar skills

Sentry Issue Campaign 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.

Sentry Issue Campaign compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sentry Issue Campaign this skillboardsesh/boardsesh163—~2kAutomated safety check: PassApache-2.0
Scraps Reviewgetsentry/sentry46k—~1.2kAutomated safety check: NotesCustom licence
Create Pull Request with Work Item IDmakeplane/plane61k—~824Automated safety check: PassAGPL-3.0
Dotagentsgetsentry/sentry-wizard295—~900Automated safety check: PassCustom licence
Reviewgetsentry/sentry-react-native1.8k—~1.9kAutomated safety check: PassMIT
Superset Automatesuperset-sh/superset15k—~1.4kAutomated safety check: PassCustom licence

Similar skills

  • Scraps Review

    getsentry/sentry

    Official

    Filter large Sentry Scraps design-system migration PRs for review by separating mechanical import-path changes, generated baseline updates, snapshot mocks, and pure renames from substantive…

    46k GitHub stars~1.2k tokensUpdated today
    Frontend & DesignAuto-check: notes
  • Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.

    61k GitHub stars~824 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Dotagents

    getsentry/sentry-wizard

    Official

    Manage agent skill dependencies with dotagents. An agent skill from getsentry/sentry-wizard.

    295 GitHub stars~900 tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Review

    getsentry/sentry-react-native

    Official

    Three-axis review of the branch diff — Standards (this repo's documented standards + public API/bridge surface), Spec (the originating Linear/GitHub issue or PR), and Correctness (runtime bugs + the…

    1.8k GitHub stars~1.9k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Superset Automate

    superset-sh/superset

    Turns a recurring chore into a scheduled or event-triggered Superset agent, drafting its prompt, picking a target and trigger, and reviewing the first run.

    15k GitHub stars~1.4k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Spec

    getsentry/sentry-react-native

    Official

    Produce a verified spec — problem, desired outcome, and acceptance criteria — before building.

    1.8k GitHub stars~1.1k tokensUpdated today
    Product & Project ManagementAuto-check passed

More from boardsesh/boardsesh

  • Bug Bash Campaign

    boardsesh/boardsesh

    Run a multi-agent bug bash — pick a batch of open bugs by priority label, claim them, investigate then implement via subagents, pair adversarial reviews, and shepherd every PR to ready-for-review…

    163 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Discord Feedback Triage

    boardsesh/boardsesh

    Classify collected Boardsesh Discord messages into GitHub issue decisions — bug, feature, question, noise, or duplicate — deduplicating against the existing tracker.

    163 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Posthog Product Health Audit

    boardsesh/boardsesh

    Mine Boardsesh's PostHog telemetry (error tracking, session recordings, product analytics) with a multi-agent workflow, then file verified, deduplicated, severity-labelled GitHub issues.

    163 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Android Screenshots

    boardsesh/boardsesh

    Capture screenshots of the Boardsesh React Native app (packages/mobile/) running on an Android emulator, driven against Metro with a cached dev-client APK.

    163 GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Works with

Questions about Sentry Issue Campaign

What does Sentry Issue Campaign do?

Drive Sentry-derived GitHub issues to merged PRs at scale — pick by priority label, self-assign, plan then implement via subagents, pair adversarial reviews, and shepherd every PR to ready-for-review. Sentry Issue Campaign is an agent skill from boardsesh/boardsesh. Drive Sentry-derived GitHub issues to merged PRs at scale — pick by priority label, self-assign, plan then implement via subagents, pair adversarial reviews, and shepherd every PR to ready-for-review.

When should I use Sentry Issue Campaign?

Sentry Issue Campaign fits situations like: asked to pick up N sentry errors; work from-sentry issues; turn a Sentry triage sweep into fixes; continue an in-flight Sentry fix campaign.

How do I install Sentry Issue Campaign in Claude Code?

Run `npx skills add boardsesh/boardsesh --skill sentry-issue-campaign -a claude-code`. Or copy the skill folder (.claude/skills/sentry-issue-campaign in boardsesh/boardsesh) into .claude/skills/sentry-issue-campaign in your project. Claude Code loads it when a task matches its description.

How do I install Sentry Issue Campaign in Codex?

Run `npx skills add boardsesh/boardsesh --skill sentry-issue-campaign -a codex`. Or copy the skill folder (.claude/skills/sentry-issue-campaign in boardsesh/boardsesh) into .agents/skills/sentry-issue-campaign in your project. Codex loads it when a task matches its description.

Can I use Sentry Issue Campaign in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add boardsesh/boardsesh --skill sentry-issue-campaign -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-issue-campaign, .gemini/skills/sentry-issue-campaign, .github/skills/sentry-issue-campaign and .opencode/skills/sentry-issue-campaign in your project.

What does Sentry Issue Campaign need to run?

Going by SKILL.md and its folder, Sentry Issue Campaign needs the command-line tools its instructions call (git and gh).

Does Sentry Issue Campaign access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Sentry Issue Campaign safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Sentry Issue Campaign use?

Sentry Issue Campaign is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Sentry Issue Campaign use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Sentry Issue Campaign?

Skills that share tags, products or a category with Sentry Issue Campaign: Scraps Review (getsentry/sentry, 46k stars), Create Pull Request with Work Item ID (makeplane/plane, 61k stars), Dotagents (getsentry/sentry-wizard, 295 stars) and Review (getsentry/sentry-react-native, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sentry Issue Campaign?

boardsesh (a GitHub organization) maintains it in boardsesh/boardsesh, which has 163 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.

Source: boardsesh/boardsesh on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.