CtrlK
BlogDocsLog inGet started
Tessl Logo

fix-issue

End-to-end flow for resolving a GitHub issue — fetch and understand the issue, create a feature branch off `beta`, implement and verify the fix, then hand off to the open-pr skill. Use when the user says "fix issue <n>", "work on issue <n>", or wants to take an issue from investigation through to a PR.

76

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Drive a GitHub issue from investigation to a ready-to-review fix on a feature branch. This skill owns understanding, branching, and implementing. It hands the commit/push/PR step off to the open-pr skill.

Take the issue number/URL from the user. If none is given, ask for it.

1. Understand the issue

  • gh issue view <n> --json title,body,state,labels,comments,author,createdAt to read it. (Plain gh issue view <n> may fail on Projects-classic GraphQL — prefer the --json form.)
  • Read any linked reproduction repo, error output, and referenced files. Identify the affected package/area.
  • Trace the root cause in the codebase before writing anything — read the relevant source, not just the symptom. Delegate broad searches to the Explore agent when the cause could live in several places.
  • Restate the root cause and intended fix to the user, and confirm the approach before large or behavior-changing edits. Surface trade-offs and regression risks.

2. Create a feature branch off beta

  • Branch from the base branch (beta by default; honor a different base if the user names one). First sync the base with its remote so the new branch starts from the latest tip: git checkout <base> && git pull --ff-only && git checkout -b <type>/<n>-<short-slug> <base> — pick <type> from the change (fix, feat, chore, docs, refactor, test) and a short kebab slug referencing the issue, e.g. fix/2348-dts-in-source.
  • If git pull --ff-only fails (local diverged from remote), stop and surface it to the user — don't force or rebase silently.
  • If the user already created/named a branch, use that instead. Never implement on the base branch.

3. Implement the fix

  • Make the minimal, well-scoped change that addresses the root cause. Match the surrounding code's style and idioms.
  • Add or update tests when the repo's conventions call for them — but respect explicit user direction (e.g. "no snapshot test").
  • Verify as far as the environment allows: run the affected package's tests/typecheck if dependencies are installed; if they aren't, say so plainly rather than claiming success. Consider the verify or code-review skills for behavior changes.
  • Reason explicitly about regressions: who else hits this code path, and does the change alter their behavior?

4. Hand off to open-pr

  • Once the fix is on the feature branch and verified, invoke the open-pr skill to format, commit (with Closes #<n>), push, and open the PR against beta.
  • Don't duplicate open-pr's logic here — it owns commit message conventions, the PR template, scope mapping, and the outward-facing confirmation.

Notes

  • Keep investigation findings concise but show the evidence (file:line) for the root cause.
  • If the issue turns out to be invalid, already fixed, or a usage question rather than a bug, report that instead of forcing a fix.
Repository
analogjs/analog
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.