Skip to content

chore: add maintainer issue triage skill - #4594

Merged
james-elicx merged 3 commits into
mainfrom
t3/issue-triage-skill
Nov 7, 2026
Merged

james-elicx merged 3 commits into
mainfrom
t3/issue-triage-skill

Conversation

@james-elicx

Copy link
Copy Markdown
Member

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, $triage in Codex). It covers the live state through gh, 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 on gh, git history, web access or .nextjs-ref say 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 .claude rule is removed.

Not offered to users

npx skills add cloudflare/vinext scans both .agents/skills/ and .claude/skills/. SKILL.md sets metadata.internal: true, so a normal install still offers only migrate-to-vinext.

Validation

  • npx skills@1.7.6 add . --list (also with --full-depth) on this branch lists only migrate-to-vinext. On a scratch repo, the internal skill was also excluded from --all, --skill '*' and -y installs. It's only installed when named with --skill triage or with INSTALL_INTERNAL_SKILLS=1.
  • vp fmt --check passes on the new files.
  • git check-ignore confirms .claude/settings*.json, .claude/worktrees/ and nested .claude/ directories stay ignored.

@james-elicx
james-elicx marked this pull request as ready for review November 7, 2026 01:07
@pkg-pr-new

pkg-pr-new Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@vinext/cloudflare

npm i https://pkg.pr.new/@vinext/cloudflare@4594

create-vinext-app

npm i https://pkg.pr.new/create-vinext-app@4594

@vinext/types

npm i https://pkg.pr.new/@vinext/types@4594

vinext

npm i https://pkg.pr.new/vinext@4594

@cloudflare/workers-response-store

npm i https://pkg.pr.new/@cloudflare/workers-response-store@4594

commit: 3ae8082

@clanky-the-clanker clanky-the-clanker Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 no fix skill or command. (.agents/skills/triage/SKILL.md:15)
  • [INFO] On Windows checkouts without symlink support, the .claude/skills/triage symlink becomes a plain text file. (.claude/skills/triage:1)
View full review
  • /fix handoff. SKILL.md sends valid bugs to /fix <url> (lines 3, 15 and 45). The only other skill under .agents/skills/ is migrate-to-vinext, and the repo defines no fix skill or command. Either name the actual next step, or say that /fix is a maintainer-local skill.
  • Windows checkouts. .claude/skills/triage is a git symlink. Windows checkouts without core.symlinks get 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

Comment thread .agents/skills/triage/SKILL.md Outdated

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>`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ℹ️ 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.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

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.

Comment thread .claude/skills/triage
@@ -0,0 +1 @@
../../.agents/skills/triage No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ℹ️ 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.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Update: reverted in 3ae8082. This skill is maintainer-only, so it gets no Windows note; declining this one.

@clanky-the-clanker clanky-the-clanker Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 .gitignore rules 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.md now says "the fix step". Line 15 defines it as the "Fixing Bugs" workflow in AGENTS.md, or a maintainer's own fix skill. No /fix <url> references remain.
  • Windows symlink (fixed). SKILL.md says the .claude/skills/triage symlink needs Developer Mode plus core.symlinks=true on 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

@james-elicx
james-elicx enabled auto-merge (squash) November 7, 2026 01:14

@clanky-the-clanker clanky-the-clanker Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ 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

@james-elicx
james-elicx disabled auto-merge November 7, 2026 01:16
@james-elicx
james-elicx merged commit e7a12de into main Nov 7, 2026
97 of 101 checks passed
@james-elicx
james-elicx deleted the t3/issue-triage-skill branch November 7, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant