Repository navigation
chore: add maintainer issue triage skill - #4594
Conversation
@vinext/cloudflare
create-vinext-app
@vinext/types
vinext
@cloudflare/workers-response-store
commit: |
There was a problem hiding this comment.
Superseded by the review of
78d58d7b.
This review, of 465bdd67
💬 Approved with comments — A docs and config-only change with no correctness or security concerns. Two INFO notes: the /fix handoff names a skill this repo doesn't define, and the symlink needs symlink support on Windows checkouts.
Findings: 2 info (2 are inline comments on the diff)
The decision is advisory: this review is a comment and never approves, blocks or requests changes on the pull request.
📋 Code Quality: 💬 2 info
The .gitignore and symlink layout are correct. The /fix handoff names a skill this repo doesn't define.
Recommendation: 💬 Optional Nits
- [INFO] SKILL.md hands valid bugs off to
/fix <url>, but this repo defines nofixskill or command. (.agents/skills/triage/SKILL.md:15) - [INFO] On Windows checkouts without symlink support, the
.claude/skills/triagesymlink becomes a plain text file. (.claude/skills/triage:1)
View full review
/fixhandoff.SKILL.mdsends valid bugs to/fix <url>(lines 3, 15 and 45). The only other skill under.agents/skills/ismigrate-to-vinext, and the repo defines nofixskill or command. Either name the actual next step, or say that/fixis a maintainer-local skill.- Windows checkouts.
.claude/skills/triageis a git symlink. Windows checkouts withoutcore.symlinksget a plain text file there, so Claude Code won't load the skill. The skill is maintainer-only, so the impact is small. .gitignore. The new rules behave as described.
✅ All other checks passed
🔒 Security: ✅ LGTM
No security concerns. The change adds skill documentation and config only.
📖 AGENTS.md: ✅ LGTM
No AGENTS.md changes. The skill follows the repo's existing guidance.
⚡ Performance: ✅ LGTM
No runtime code is changed.
📝 Documentation: ✅ LGTM
The skill documentation is clear. The paths it cites exist.
Reviewed commit: 465bdd67
|
|
||
| Issue: $ARGUMENTS | ||
|
|
||
| Establish the issue's live state below, then follow [`references/rules.md`](references/rules.md) for everything else: safety, the parity check, reproducing, the verdict and the reply. Its "Automated Runs" section doesn't apply here. In those rules, "the fix step" means `/fix <url>`. |
There was a problem hiding this comment.
ℹ️ INFO · Code Quality
SKILL.md hands valid bugs off to /fix <url>, but this repo defines no fix skill or command.
This line, the description on line 3 and the report step on line 45 all point to /fix <url>. The only other skill in .agents/skills/ is migrate-to-vinext, and the repo defines no fix skill or command. For a maintainer without a personal /fix skill (or $fix in Codex), the handoff leads nowhere. Either name the concrete next step (for example the Fixing Bugs workflow in AGENTS.md), or say that /fix is a maintainer-local skill.
There was a problem hiding this comment.
Fixed in 78d58d7: the hand-off now says "the fix step" everywhere and defines it as the "Fixing Bugs" workflow in AGENTS.md, or a maintainer's own fix skill.
| @@ -0,0 +1 @@ | |||
| ../../.agents/skills/triage No newline at end of file | |||
There was a problem hiding this comment.
ℹ️ INFO · Code Quality
On Windows checkouts without symlink support, the .claude/skills/triage symlink becomes a plain text file.
Git checks this symlink out as a one-line text file on Windows when core.symlinks is off or developer mode isn't enabled. Claude Code then won't find the skill under .claude/skills/. The skill is maintainer-only, so the impact is small. A short note in SKILL.md would save someone from debugging it.
There was a problem hiding this comment.
Fixed in 78d58d7: SKILL.md now notes that Claude Code loads the skill through the symlink, and that on Windows it needs Developer Mode plus core.symlinks=true.
There was a problem hiding this comment.
Update: reverted in 3ae8082. This skill is maintainer-only, so it gets no Windows note; declining this one.
There was a problem hiding this comment.
Superseded by the review of
3ae80829.
This review, of 78d58d7b
✅ Approved — This pull request changes only docs and config, and it raises no correctness or security concerns. Both earlier INFO notes are fixed in 78d58d7.
The decision is advisory: this review is a comment and never approves, blocks or requests changes on the pull request.
✅ All checks passed
🔒 Security: ✅ LGTM
This change adds skill docs and config only.
- The rules tell the agent never to run code supplied by the user.
- They require confirmation before it posts comments, changes labels or closes issues.
- The
.gitignorerules keep other.claude/content, such as settings files, ignored.
📖 AGENTS.md: ✅ LGTM
The skill follows the repository's existing guidance and defers to its "Fixing Bugs" workflow.
📋 Code Quality: ✅ LGTM
- Fix hand-off (fixed).
SKILL.mdnow says "the fix step". Line 15 defines it as the "Fixing Bugs" workflow inAGENTS.md, or a maintainer's own fix skill. No/fix <url>references remain. - Windows symlink (fixed).
SKILL.mdsays the.claude/skills/triagesymlink needs Developer Mode pluscore.symlinks=trueon Windows. .gitignore. The**/.claude/*rule, together with the!/.claude/skills/exception, re-includes only the root skills directory.- Referenced files. The paths that the rules cite exist in the repository.
⚡ Performance: ✅ LGTM
No runtime code is changed.
📝 Documentation: ✅ LGTM
The skill documentation is clear and consistent.
Reviewed commit: 78d58d7b
There was a problem hiding this comment.
✅ Approved — This pull request only adds skill docs and changes config, and it has no correctness or security issues. The last commit removes the Windows symlink note, which the author chose not to add because the skill is maintainer-only.
The decision is advisory: this review is a comment and never approves, blocks or requests changes on the pull request.
✅ All checks passed
🔒 Security: ✅ LGTM
This pull request adds skill docs and config only. The .gitignore rules still keep .claude/ settings files ignored.
📖 AGENTS.md: ✅ LGTM
The skill follows the repository's guidance and hands bug fixes to its "Fixing Bugs" workflow.
📋 Code Quality: ✅ LGTM
🔄 Since last review: 0 findings resolved, 0 preserved, 0 new.
The only change since the last review is in SKILL.md: the Windows symlink note is gone. The author declined that note because the skill is maintainer-only, which is reasonable. The fix step still points to the "Fixing Bugs" workflow in AGENTS.md.
⚡ Performance: ✅ LGTM
No runtime code changes.
📝 Documentation: ✅ LGTM
The skill documentation is clear and consistent.
Reviewed commit: 3ae80829
Adds a maintainer-only issue triage skill. It decides what an issue really is (valid bug, parity, documented limitation, upstream, needs info and so on), reproduces it with our checked-in fixtures, and drafts the reply. It never implements the fix: valid bugs are handed off to the fix step.
Layout
.agents/skills/triage/SKILL.md: the interactive entry point (/triage <issue-url>in Claude Code,$triagein Codex). It covers the live state throughgh, triaging against current main, the GitHub API budget, and report-and-confirm. Everything else lives in the shared rules..agents/skills/triage/references/rules.md: the shared rules. They read on their own, without the entry point, so an automated triage run can use the file directly as guidance. Steps that depend ongh, git history, web access or.nextjs-refsay what to do without them..agents/skills/triage/agents/openai.yaml: Codex runs the skill only when it's invoked explicitly..claude/skills/triage: a symlink to.agents/skills/triage. Claude Code only loads skills from.claude/skills/, and both tools follow symlinked skill folders..gitignore: tracks the root.claude/skills/and keeps everything else under any.claude/ignored. The duplicate.clauderule is removed.Not offered to users
npx skills add cloudflare/vinextscans both.agents/skills/and.claude/skills/.SKILL.mdsetsmetadata.internal: true, so a normal install still offers onlymigrate-to-vinext.Validation
npx skills@1.7.6 add . --list(also with--full-depth) on this branch lists onlymigrate-to-vinext. On a scratch repo, the internal skill was also excluded from--all,--skill '*'and-yinstalls. It's only installed when named with--skill triageor withINSTALL_INTERNAL_SKILLS=1.vp fmt --checkpasses on the new files.git check-ignoreconfirms.claude/settings*.json,.claude/worktrees/and nested.claude/directories stay ignored.