Skip to content
Back to skills

Jira Bugfix

ASecurity

End-to-end JIRA bugfix workflow: fetch issue, assign, branch, TDD, fix, test, update AGENTS.md, commit, PR, and update JIRA. Use when the user says "fix LT-XXXXX" or references a JIRA bug to resolve.

  • 111 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added June 11, 2026
code-qualityrustgoshellgitperformance

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add sillsdev/FieldWorks --skill jira-bugfix --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Jira Bugfix?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Jira Bugfix
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sillsdev-jira-bugfix/badge)](https://www.skillsdirectory.com/skills/sillsdev-jira-bugfix)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: jira-bugfix
description: >
  End-to-end JIRA bugfix workflow: fetch issue, assign, branch,
  TDD, fix, test, update AGENTS.md, commit, PR, and update JIRA.
  Use when the user says "fix LT-XXXXX" or references a JIRA bug
  to resolve.
license: MIT
compatibility: Requires atlassian-skills, atlassian-readonly-skills.
metadata:
  author: FieldWorks team
  version: "2.0"
---

# JIRA Bugfix

Fixing a bug sourced from an LT ticket, from triage to PR.

Tell the user the steps before starting, then work them in order. Pause at the
four decision points below; everything else proceeds.

## Steps

| # | Step | Notes |
| --- | --- | --- |
| 0 | Fetch the issue | Summary, status, components, comments. Comments often carry the repro |
| 1 | Assign, move to In Progress | Skip if already there |
| 2 | Branch | `LT-XXXXX-short-slug` off fresh `origin/main` |
| 3 | **Reproduce with a failing test** | The most important step. See below |
| 4 | Fix | The minimal change that makes the test pass |
| 5 | Widen coverage | Edge cases, other call sites of the changed code, backward compatibility |
| 6 | Devil's advocate | Challenge the fix and the tests before anyone else does |
| 7 | AGENTS.md | Update only if a contract or behaviour documented there changed |
| 8 | Commit | `commit-messages` skill. gitlint runs in CI |
| 9 | PR | `pr-preflight` -- the required entrypoint. Never hand-write a PR body |
| 10 | Comment on the ticket | Root cause, fix, PR link, tests added |

**Arriving from `jira-issue`?** If that skill just filed the ticket and the
user chose "start now", steps 0-2 are already done -- the issue is fetched,
assigned, In Progress, and the branch and worktree are named in a ticket
comment. Begin at step 3.

## Step 3 -- TDD, and the escape hatch

Write a failing test that captures the bug before writing any fix. Name it
`MethodName_Scenario_ExpectedBehavior`. Confirm it fails, then fix, then
confirm it passes.

```powershell
.\test.ps1 -TestFilter "Name~TestMethodName" -CommentHygiene
```

A filter that matches nothing still exits 0 and prints PASS. Check
`Total tests: N` is greater than zero.

If a test is genuinely impossible -- purely visual, needs an external service,
or lives in build/packaging -- say **which** of those it is, then ask whether
to proceed without one. Do not skip silently, and do not invent a test that
passes either way.

## Step 6 -- Devil's advocate

Before finalising, argue against your own work:

- Is there a simpler or more robust fix? If several are reasonable, present
  them with trade-offs and let the user choose.
- Does it regress anything, or change performance or compatibility?
- Is the scope right -- not so narrow it misses sibling cases, not so broad it
  becomes a refactor?
- Does the diff carry dead code, debug artefacts, or stray whitespace?

Surface any uncertainty to the user rather than resolving it silently.

## Branching and worktrees

`LT-XXXXX-short-slug`, for example `LT-22715-nc-delete-warning`. The number
keeps step 2's "contains the LT number" check working and makes the branch
greppable; the slug is what makes a list of a dozen worktrees readable.

Do not create a worktree without asking -- and do not refuse to create one
either. `scripts/Worktree-CreateFromBranch.ps1` and the `Worktree:` VS Code
tasks exist. If `.claude/.jira-issue-prefs.json` records a `workspace`
preference, follow it and say so. The script decides where worktrees go -- read
it rather than trusting a path written here, and match what `git worktree list`
already shows.

## JIRA mechanics

All of it -- create, comment, attach, link, transition, and the `custom_fields`
back doors for assignee and Affects Version -- is in
`.claude/skills/jira-issue/references/publish.md`. Do not duplicate it here.

**Never transition to Done or Resolved.** That follows a merged PR, and it is
not this skill's call.

## Pause for the user

1. The current branch does not match the ticket.
2. A failing test cannot be written.
3. Devil's advocate surfaced a real alternative or uncertainty.
4. The fix reveals a larger problem than the ticket describes.

## When things fail

- **JIRA unreachable** -- ask for the details, carry on, update the ticket at the end.
- **Tests fail after the fix** -- show the failures and ask; do not tune the test to pass.
- **Push rejected** -- pull with rebase, resolve, retry.

## Composes with

`jira-issue` (files the ticket, hands off here at step 3) ·
`atlassian-skills` (JIRA writes) · `commit-messages` (step 8) ·
`pr-preflight` (step 9) · `fieldworks-test-coverage` (step 5)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.