Tackle issue
This skill provides a standardized, rigorous workflow for handling GitHub issues. It ensures that issues are properly vetted before work begins and that all changes meet the project's quality standards before a Pull Request is opened.
Trigger
Use this skill whenever the user says /tackle-issue <number> or asks to "tackle", "handle", or "fix" a specific issue number in a structured way.
Workflow
1. Readiness check & context gathering
Before starting any work, you MUST verify that the issue is ready for an agent.
- Retrieve Issue Details: Fetch the issue context, including labels and comments.
gh issue view <issue-number> --json title,body,labels,comments - Verify "ready for agent" Label: Check if the
ready for agentlabel is present in thelabelsarray.- If the label is MISSING: Abort the process immediately. Inform the user:
Issue #<number> is not marked as 'ready for agent'. Please ensure it is fully specified and labeled correctly before proceeding. - If the label is PRESENT: Continue to the next step.
- If the label is MISSING: Abort the process immediately. Inform the user:
2. Development setup
- Setup Development Branch: Create and checkout a linked development branch.
Note: If a branch already exists, this command will switch to it.gh issue develop <issue-number> --checkout
3. Implementation
Proceed with the standard Research -> Strategy -> Execution lifecycle.
- Research: Understand the issue and surrounding code.
- Strategy: Plan the fix or feature.
- Execution: Apply changes surgically. Ensure that:
- New tests are added to verify the fix or feature.
- Relevant documentation is updated.
- JSDoc comments are added or updated for all new or modified functions according to the
jsdocskill.
4. Validation & quality assurance
Once implementation is complete, you MUST run the following validation suite in the project root:
- Type Check:
pnpm run typecheck - Test Suite:
pnpm run test - Lint & Format Check:
pnpm run fix
If this step fails (some lint/formatting issues cannot be auto-fixed), you MUST diagnose and fix the errors before proceeding.
5. Changeset creation
After validation passes, you MUST create a changeset using the changeset skill ONLY if your changes affect a published package, a private package, or anything that gets imported by other packages. Do not create a changeset if the changes are isolated strictly to playgrounds or examples.
- Determine the appropriate bump type (
patchorminorfor v0) based on thechangesetguidelines. - Provide a clear, concise description starting with a
####header.
6. Pull request creation
When the task is complete and validated:
- Commit and Push: Stage all changes (including the changeset if created) and push.
git add . git commit -m "fix: tackle issue #<issue-number>" git push -u origin HEAD - Create Pull Request:
- Title: Use
fix: <issue-title>orfeat: <issue-title>. - Body: MUST include
Fixes #<issue-number>to link the PR to the issue. - Labels: Apply relevant labels from the original issue (excluding
ready for agent).
gh pr create --title "fix: <issue-title>" --body "Fixes #<issue-number>\n\n<brief-description-of-changes>" --label "<labels>" - Title: Use
Best practices
- Strict Readiness: Never bypass the
ready for agentcheck. It ensures the task is well-defined. - Validation First: Never open a PR that fails
typecheck,test, orcheck. - Link Everything: Always use
gh issue developandFixes #<num>for traceability. - Changesets: Include a changeset for changes affecting published packages, private packages, or anything imported by other packages. Avoid changesets when changes are isolated to playgrounds or examples.