Add a skill that reviews Rust code changes against Sentry's Rust
conventions. Covers error handling, iterator patterns, async code,
field visibility, import organization, naming, documentation, and
versioning. Designed to be invoked when validating or finishing a PR.
Based on https://develop.sentry.dev/engineering-practices/rust.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(skill-creator): Synthesize upstream best practices into skill-creator
Research and incorporate patterns from Anthropic's and OpenAI's
skill-creators, the Agent Skills spec, and best practices docs.
Adds planning step, description guidelines, validation script,
Claude Code extension docs, workflow/output patterns, and
expanded anti-patterns.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: Add skill synthesis guide
Document the agent-driven workflow for researching upstream
implementations and best practices when creating new skills.
Pairs with the skill-creator skill — synthesis handles research,
skill-creator handles implementation.
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Add strong steering to both skill descriptions so they are always
triggered in their respective contexts. Update commit skill to
default to creating a feature branch when on main/master unless
the user explicitly asks otherwise.
Co-authored-by: Claude <noreply@anthropic.com>
Review bots (Sentry, Warden, Cursor, Bugbot, CodeQL, etc.) post
actionable code feedback that was being silently ignored because all
bot comments were dumped into a single "bot" bucket. Split bot
classification so review bot feedback flows through LOGAF content
categorization into high/medium/low with a review_bot flag, while
informational bots (Codecov, Dependabot, etc.) remain in the bot
bucket for silent skipping.
Co-authored-by: Claude <noreply@anthropic.com>
Second-pass Warden skill that evaluates first-pass findings and proposes
deterministic lint rules to permanently catch the same patterns. Requires
Warden's multi-pass pipeline (phase 2).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(skills): Standardize allowed-tools to comma-separated format
Claude Code docs specify comma-separated format for allowed-tools.
Update all skill frontmatters, documentation, and the scan_skill.py
parser to use and support comma-separated tool lists.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(skills): Remove model attribute from skill documentation
Skills should not hardcode model overrides — let users control
which model runs their skills.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Quote the description in django-access-review to fix YAML parse failure
caused by unescaped colons. Remove hardcoded model overrides from
django-access-review, django-perf-review, security-review, and
code-simplifier so skills use the user's default model.
Co-authored-by: Claude <noreply@anthropic.com>
* feat(skills): Add skill-creator skill for guided skill authoring
Adds a new skill that walks agents through creating skills for this
repository, covering requirements gathering, writing SKILL.md with
proper frontmatter, creating supporting files, and completing all
registration steps.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* ref(skill-creator): Generalize skill to work in any repository
Remove sentry-skills-specific paths and registration steps. The skill
now teaches general Agent Skills spec conventions and defers to the
target repository's CLAUDE.md for project-specific registration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Fix re.PatternError when combining patterns with inline (?i) flags by
using re.IGNORECASE flag in re.search() instead
- Add note that scripts must run from repository root directory
- Update all script references to use ${CLAUDE_SKILL_ROOT} for full paths
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Without explicit Python version metadata, uv defaults to requiring
Python 3.13+, which may not be installed. Adding requires-python = ">=3.9"
ensures compatibility with the Python version the scripts were designed for.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
The gh pr checks --json workflow field returns a string, not an object.
The previous code assumed it was a dict with a "name" key, causing an
AttributeError when accessing .get("name") on a string.
Also update SKILL.md to use uv run instead of python directly, and add
skill design guideline to AGENTS.md for consistent script invocation.
Co-authored-by: Claude <noreply@anthropic.com>
The union syntax (dict | list) requires Python 3.10+. Adding
`from __future__ import annotations` enables this syntax on 3.7+.
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(iterate-pr): Add scripts for structured CI and feedback data
Add helper scripts that pre-process GitHub API data to reduce token
usage and improve feedback categorization:
- fetch_pr_checks.py: Fetches CI checks and extracts relevant failure
snippets using pattern matching instead of full logs
- fetch_pr_feedback.py: Categorizes PR feedback as blocking, suggestion,
bot, or resolved
Update SKILL.md to:
- Reference the optional helper scripts with fallback to gh commands
- Add Step 6 for handling subjective feedback with user prompts
- Present suggestion-type feedback as numbered list for user selection
Co-Authored-By: Claude <noreply@anthropic.com>
* ref(iterate-pr): Make scripts primary, reduce verbosity
Restructure SKILL.md to follow OpenAI skill patterns:
- Scripts are now the primary approach, not optional
- Reduced from 185 to 131 lines by removing redundant gh CLI docs
- Moved fallback commands to a single section at the end
- Clearer workflow with numbered steps
Co-Authored-By: Claude <noreply@anthropic.com>
* feat(iterate-pr): Support LOGAF scale for feedback categorization
Update fetch_pr_feedback.py to detect and use Sentry's LOGAF scale:
- h: / [h] / high: → high priority (must fix)
- m: / [m] / medium: → medium priority (should fix)
- l: / [l] / low: → low priority (optional)
Categories renamed from blocking/suggestion to high/medium/low to
align with Sentry's code review guidelines.
Refs: https://develop.sentry.dev/engineering-practices/code-review/#logaf-scale
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Sync the code-simplifier agent as a skill to make it directly usable in
Warden. Adds SKILL.md with frontmatter, examples, and refinement
principles based on Anthropic's official code-simplifier agent.
- Add missing quotes around skill name in JSON example
- Remove "Missing Prefetch on Single Object" category - 2 queries vs 1
on a single fetch is a micro-optimization not worth reporting
- Add explicit guidance in "What NOT to Report" section
Co-Authored-By: Claude <noreply@anthropic.com>
Add skill for reviewing Django code for validated performance issues:
- N+1 queries with full data flow tracing
- Unbounded querysets and pagination
- Missing database indexes
- Write loops (bulk_create/update patterns)
- Missing prefetch on single object fetches
Includes validation requirements and false positive guidance to ensure
only real, impactful issues are reported.
Co-Authored-By: Claude <noreply@anthropic.com>
The skills CLI parser expects YAML frontmatter to be at the very
beginning of the file. The HTML attribution comment was preventing
the skill from being detected.
Also updated docs to clarify frontmatter positioning requirements.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a focused security code review skill that evaluates specific files
or changes against OWASP vulnerability patterns.
Features:
- 10 security categories: Injection, XSS, Auth, Authorization, Crypto,
Data Exposure, SSRF, Deserialization, File Operations, Modern Threats
- Reference files with detailed patterns and remediation guidance
- Reports only actual vulnerabilities, not best-practice suggestions
- Focused on single file/change review, not codebase mapping
Reference material derived from OWASP Cheat Sheet Series (CC BY-SA 4.0).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Create PRs in draft state by default, giving authors time to review
before requesting feedback. Skip fetching repository PR templates in
favor of the skill's own consistent format.
Co-authored-by: Claude <noreply@anthropic.com>
Add the doc-coauthoring skill from anthropics/skills to help Sentry
employees with structured documentation workflows for proposals,
technical specs, decision docs, and similar content.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a new skill that helps write copy following Sentry's brand
guidelines. Covers both Plain Speech (default for UI) and Sentry Voice
(personality-rich) tones, with guidance on tone selection, word choices,
dash usage, UI element guidelines, and anti-patterns.
Co-authored-by: Claude <noreply@anthropic.com>
* fix(create-pr): Replace broken gh pr edit with gh api
The `gh pr edit` command fails with a GraphQL error about Projects
(classic) deprecation, even when editing unrelated fields like title
or body. Use `gh api` PATCH requests instead which bypass this issue.
- Remove Step 5 "Add Reviewers" section that used gh pr edit
- Add new "Editing Existing PRs" section with working gh api commands
Co-authored-by: Claude <noreply@anthropic.com>
* Replace deslop skill with code-simplifier
- Add new code-simplifier skill with comprehensive simplification guidelines
- Remove old deslop skill directory
- Update README.md to reference code-simplifier instead of deslop
- Update .claude/settings.json with code-simplifier permission
- Update claude-settings-audit skill to include code-simplifier in recommendations
The code-simplifier skill is based on Anthropic's approach and provides more comprehensive code simplification beyond just removing slop, including simplifying complex logic, removing unnecessary abstractions, and improving code readability while maintaining functionality.
Co-authored-by: david <david@sentry.io>
* Convert code-simplifier from skill to subagent
- Create agents/ directory for subagents
- Add code-simplifier.md subagent using Anthropic's official version
- Remove code-simplifier from skills directory
- Update README.md to document subagents separately from skills
- Update .claude/settings.json to remove code-simplifier skill permission (subagents don't require permissions)
- Update claude-settings-audit to not recommend code-simplifier skill
- Update repository structure documentation
The code-simplifier is now a proper subagent following Anthropic's official implementation from claude-plugins-official repo.
Co-authored-by: david <david@sentry.io>
* Add attribution for code-simplifier subagent
- Add source attribution comment to code-simplifier.md pointing to Anthropic's official repo
- Create agents/README.md to document subagents and their sources
- Ensures proper credit and traceability for externally sourced subagents
Co-authored-by: david <david@sentry.io>
* Update attribution to note prior art without license
- Changed attribution from license reference to prior art acknowledgment
- Verified that anthropics/claude-plugins-official has no license file
- Updated both code-simplifier.md and agents/README.md accordingly
- Clarifies we're noting this as prior art from Anthropic rather than claiming any specific license
Co-authored-by: david <david@sentry.io>
* Simplify attribution to just note source
- Remove license commentary from code-simplifier.md
- Remove license mention from agents/README.md
- Keep clean attribution showing it's based on Anthropic's subagent
Co-authored-by: david <david@sentry.io>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Fetch the repository's PR template using `gh repo view --json
pullRequestTemplates` before writing the PR description. This ensures
PRs follow the repo's expected format and fill in required sections.
Co-Authored-By: Claude <noreply@anthropic.com>
New skill that guides agents to create and maintain concise AGENTS.md
documentation with CLAUDE.md as a symlink. Enforces minimal style with
headers, bullets, and skill references instead of verbose prose.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Apply the same gh repo view pattern for consistency across all skills
that diff against the default branch.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Dynamically detect the default branch using git symbolic-ref instead of
hardcoding "main". Falls back to "main" if detection fails.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document that commits with changes primarily generated by a coding agent
should include the Co-Authored-By attribution in the footer. Clarify that
this is the only indicator of AI involvement that should appear in commits.
Co-Authored-By: Claude <noreply@anthropic.com>
The skill was recommending a command-based MCP server using uvx, but
Sentry MCP is a hosted service using streaming HTTP. Update to use
the correct URL-based configuration with type "http".
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add workflow prerequisites to ensure proper git hygiene:
- commit skill: Check if on main/master and prompt to create feature branch
- create-pr skill: Check for uncommitted changes and invoke commit skill first
- AGENTS.md: Add step to include new skills in .claude/settings.json allowlist
These changes help enforce the expected workflow where changes are made on
feature branches and properly committed before creating PRs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Bare `git push` may push all tracked branches depending on git config.
Specify origin and current branch explicitly to ensure only the
working branch is pushed.
- Add Skill() permissions for all sentry-skills to the recommendation
- Update AGENTS.md to remind contributors to update the skills list
when adding new skills
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Never suggest commands with user-specific absolute paths
- Never suggest custom scripts that may have side effects
- Only include the package manager actually used by the project
(e.g., if pnpm is detected, don't suggest npm/yarn commands)
- Reorganize stack-specific commands by detection criteria
- Add explicit "Package Manager Rules" table for clarity
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New skill that guides PR creation following Sentry's engineering practices:
- PR description structure (what, why, alternatives, context)
- Title format following commit conventions
- Issue reference syntax (Fixes/Refs)
- Guidelines on PR scope and reviewer assignment
Notably excludes "Test plan" sections per Sentry conventions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New skill that automates the CI feedback loop:
- Checks CI status first, waits for bot checks (sentry/codecov/cursor/bugbot/seer)
- Gathers review feedback from humans and bots
- Investigates failures via gh run view --log-failed
- Validates feedback before acting on it
- Commits fixes and waits for CI to complete
- Repeats until all checks pass
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds a skill to identify and remove common AI code patterns like
unnecessary comments, defensive checks, any casts, and inline imports.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>