Skip to content

fix(skills): Replace invalid ${CLAUDE_SKILL_ROOT} with bare relative paths#111048

Merged
dcramer merged 2 commits intogetsentry:masterfrom
jonathanhefner:remove-claude_skill_root-references
Mar 19, 2026
Merged

fix(skills): Replace invalid ${CLAUDE_SKILL_ROOT} with bare relative paths#111048
dcramer merged 2 commits intogetsentry:masterfrom
jonathanhefner:remove-claude_skill_root-references

Conversation

@jonathanhefner
Copy link
Contributor

${CLAUDE_SKILL_ROOT} is not a recognized Claude Code variable, so all 22 file references using it were passed through as literal strings and never resolved. While ${CLAUDE_SKILL_DIR} does work, it is scoped to bash injection commands (backtick-bang syntax) where the working directory may differ from the skill directory. For plain markdown file references like these, bare relative paths (e.g. references/endpoint-patterns.md) are the standard approach per the Agent Skills spec.

@jonathanhefner jonathanhefner requested review from a team as code owners March 18, 2026 22:58
@jonathanhefner jonathanhefner force-pushed the remove-claude_skill_root-references branch 2 times, most recently from a2e955b to 7c2ebc4 Compare March 18, 2026 22:59
@jonathanhefner jonathanhefner changed the title Replace invalid ${CLAUDE_SKILL_ROOT} with bare relative paths fix(agents): Replace invalid ${CLAUDE_SKILL_ROOT} with bare relative paths Mar 18, 2026
`${CLAUDE_SKILL_ROOT}` is not a recognized Claude Code variable, so all
22 file references using it were passed through as literal strings and
never resolved. While `${CLAUDE_SKILL_DIR}` does work, it is scoped to
bash injection commands (backtick-bang syntax) where the working
directory may differ from the skill directory. For plain markdown file
references like these, bare relative paths (e.g.
`references/endpoint-patterns.md`) are the standard approach per the
Agent Skills spec.
@jonathanhefner jonathanhefner force-pushed the remove-claude_skill_root-references branch from 7c2ebc4 to cc7a998 Compare March 18, 2026 23:00
@jonathanhefner jonathanhefner changed the title fix(agents): Replace invalid ${CLAUDE_SKILL_ROOT} with bare relative paths fix(skills): Replace invalid ${CLAUDE_SKILL_ROOT} with bare relative paths Mar 18, 2026
@dcramer
Copy link
Member

dcramer commented Mar 18, 2026

i would run this through skill-writer - the harnesses are supposed to shape some of this but if you dont give them certain hints they will just call random locations

(and if this is wrong, skill-writer needs adjusted so its not mishandled in future skills)

@jonathanhefner
Copy link
Contributor Author

@dcramer I'm not sure what you're referring to. 😅

I found a post of yours on X that mentioned these skills, and I noticed a few minor issues, so I decided to submit PRs for them (this PR and #111040).

If there's an upstream process responsible for the issues, though, I agree that should be fixed instead.

(By the way, thank you for sharing your insights about skills! ❤️)

@dcramer
Copy link
Member

dcramer commented Mar 19, 2026

@jonathanhefner i totally didnt realize this was an external contribution :)

let me just grab this and run our tools on it

we have https://github.com/getsentry/skills and we have this pr-writer skill we use in there

Update the backend and frontend bug-review skills to match the current diff-first review workflow and review harness expectations. Broaden the trigger language so the skills match how PR and branch audits are actually invoked, and document the same conventions in AGENTS.md so agent guidance stays in one place.

Co-Authored-By: Codex <noreply@openai.com>
@dcramer dcramer requested a review from a team as a code owner March 19, 2026 22:22
@dcramer dcramer added the Trigger: getsentry tests Once code is reviewed: apply label to PR to trigger getsentry tests label Mar 19, 2026
@dcramer
Copy link
Member

dcramer commented Mar 19, 2026

getsentry/skills#103

@dcramer dcramer merged commit cceaa5f into getsentry:master Mar 19, 2026
69 of 74 checks passed
Copy link
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

description: 'Sentry backend bug pattern review based on real production errors. Use when reviewing Python/Django backend code for common bug patterns. Trigger keywords: "backend bug review", "common errors", "error patterns", "sentry bugs".'
allowed-tools: Read, Grep, Glob, Bash
description: 'Review Sentry Python and Django changes for bug patterns drawn from real production issues. Use when reviewing a backend diff or PR, checking Warden findings, auditing the current branch, reviewing production-error patterns, or looking for common regressions in `src/` and `tests/`.'
allowed-tools: Read Grep Glob Bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

allowed-tools changed to undocumented space-separated format

Medium Severity

The allowed-tools value was changed from comma-separated (Read, Grep, Glob, Bash) to space-separated (Read Grep Glob Bash). Claude Code's own documentation specifies comma-separated format for this field. The space-separated format may cause the parser to not recognize individual tools, potentially resulting in the skill losing pre-approved tool access and prompting for permission on every tool invocation. The other skill in this repo (react-component-documentation/SKILL.md) still uses comma-separated format, making this inconsistent as well.

Additional Locations (1)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Trigger: getsentry tests Once code is reviewed: apply label to PR to trigger getsentry tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants