Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Bugbot Triage

ASecurity

Analyze Cursor Bugbot PR comments through a root-cause lens: is the finding valid, and is the suggested fix the real fix or a bandaid over a deeper problem? Use when the user asks to check, assess, or triage bugbot comments.

33 stars
0 votes
0 copies
0 views
Added 9/20/2026
developmentgobashtestingapifrontendbackendsecurity

Works with

cursorapi

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add ayunis-core/ayunis-core --skill bugbot-triage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bugbot Triage?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Bugbot Triage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ayunis-core-bugbot-triage/badge)](https://www.skillsdirectory.com/skills/ayunis-core-bugbot-triage)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: bugbot-triage
description: "Analyze Cursor Bugbot PR comments through a root-cause lens: is the finding valid, and is the suggested fix the real fix or a bandaid over a deeper problem? Use when the user asks to check, assess, or triage bugbot comments."
---

# Bugbot Triage

Bugbot findings are usually *locally* correct but *shallowly* scoped: it sees the flagged lines, not why the surrounding construct exists. Your job is not to confirm the finding — it is to decide what the finding is a **symptom of**. Never jump straight to applying bugbot's suggested fix.

## Fetching the Comments

Bugbot posts as `cursor[bot]`. Findings live in **inline review comments**; the PR body only carries its summary.

```bash
gh pr view --json number --jq .number   # if no PR number given
gh api --paginate repos/{owner}/{repo}/pulls/<number>/comments \
  --jq '.[] | select(.user.login == "cursor[bot]") | {path, line, body}'
```

**Always pass `--paginate`.** The comments endpoint returns 30 per page; without it, bugbot findings past the first page are silently dropped and you will report a PR clean while findings are still open. If you must build the URL yourself, add `?per_page=100` as a backstop, but `--paginate` is the reliable fix.

**On a stacked PR, triage every PR in the stack — not just the top.** Bugbot comments on each PR independently, so a stack that looks clean at the tip can still carry open findings on a lower branch. After a restack or a round of fixes, re-fetch comments for *all* PRs in the stack (`gt log`/`gh pr list` to enumerate them) and confirm each is resolved before declaring the stack review-clean.

Strip the HTML boilerplate (Fix-in-Cursor buttons, `BUGBOT_BUG_ID`); the substance is the severity line, the description, and the `LOCATIONS` block.

## The Triage Lens

Classify every finding into exactly one verdict:

1. **Invalid** — bugbot misread the code (wrong assumption about control flow, missed a guard, flagged intentional behavior). Requires evidence: cite the file:line that refutes it.
2. **Valid & simple** — the finding is self-contained and the suggested fix *is* the root-cause fix (a real off-by-one, a missing await, a wrong error type). Fix as suggested.
3. **Valid but symptom** — the finding is true, but it points at scaffolding whose *reason to exist* is gone or wrong. Applying the literal fix would polish code that should be deleted or redesigned. Propose the structural fix instead.

The default temptation is verdict 2. Most low-severity "dead code / needless indirection / unused parameter" findings are actually verdict 3 — dead code is rarely lonely; it usually signals a dead *contract*.

## Root-Cause Tracing (before settling on a verdict)

Work through these steps; stop early only for verdict 1:

1. **Read the whole flagged file**, not just the flagged lines. Understand what the construct's job is *now*, after the PR's changes.
2. **Trace every consumer across all packages** (backend, frontend, other services — `grep -rn` the identifiers, response-body fields, config keys). An unconsumed output means the contract, not just the parameter, is dead.
3. **Trace the stated purpose**: comments in the file, sibling files that reference it, module registrations, the PR description. Ask: *does the stated reason to exist still hold after this PR?* PRs that remove behavior routinely leave the scaffolding (helpers, flags, filters, rethrow branches, comments) standing.
4. **Find all coupling points** that would be affected by removing the construct entirely (registrations, filters/guards ordering, comments in other modules referencing it, tests asserting its output).
5. **Apply the structural test**: does deleting/redesigning the construct make the whole bug class *structurally impossible*, versus patching or testing around it? Prefer the fix where the vulnerable/dead code path no longer exists at all.

## Reporting

Report the assessment; do **not** implement a fix unless asked. Structure:

- **Verdict** first: valid/invalid, and simple vs. symptom. If symptom: one sentence naming the actual disease ("the finding is the symptom, not the disease").
- **Evidence** with `file:line` references for every claim — especially the consumer trace ("grepped both packages: only the filter and its spec reference these fields").
- **Root-cause fix** as a concrete numbered change list (what to delete, what registrations/comments/tests to update, what stays and why).
- **Caveats**: behavioral changes (e.g. response body shape), possible external consumers, test coverage that becomes moot.
- **Scope recommendation**: does the root-cause fix belong in the PR under review, or in a small stacked follow-up PR (keep security/feature fixes independently revertible; respect large-PR warnings)? If deferring, suggest replying to bugbot that the construct is removed in the follow-up.

If the honest answer is verdict 2, say so plainly and keep it short — not every finding hides a deeper problem, and inventing one is as wrong as missing one.

Attribution

ayunis-coreayunis-core
View sourceMore from ayunis-core →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →