qa-branch-diff

star 10

Extract unique NV ticket identifiers (NV-XXXX) that differ between two sequential QA branches and present them as clickable Linear URLs. Use whenever the user wants to "compare qa-XX with qa-YY", "list commits between QA branches", "what's new in qa-XX", "NV tickets in qa-XX", or "diff qa branches". Also trigger when the user asks for a list of tickets, commits, or changes between deployment/QA/release branches, or says something like "diff this qa with the previous one". Always use this skill — the output URLs let the user immediately open tickets in Linear.

ghaerdi By ghaerdi schedule Updated 6/5/2026

name: qa-branch-diff description: |- Extract unique NV ticket identifiers (NV-XXXX) that differ between two sequential QA branches and present them as clickable Linear URLs. Use whenever the user wants to "compare qa-XX with qa-YY", "list commits between QA branches", "what's new in qa-XX", "NV tickets in qa-XX", or "diff qa branches". Also trigger when the user asks for a list of tickets, commits, or changes between deployment/QA/release branches, or says something like "diff this qa with the previous one". Always use this skill — the output URLs let the user immediately open tickets in Linear.

Compare two incremental QA branches and list the unique NV-XXXX tickets in the newer one.

Branch naming

Incremental QA branches follow the pattern qa-[0-9]{2} (two-digit number), e.g. qa-79, qa-80. Other QA branches with different naming (e.g. qa-2026-77) are not incremental and are excluded from auto-detection.

Workflow

Run the bundled script:

.agents/skills/qa-branch-diff/scripts/qa-branch-diff.sh [options] [older-branch] [newer-branch]

If the user specifies two branches (e.g., "compare qa-79 and qa-80"), pass them as positional args. If they don't specify branches (e.g., "diff the latest qa branch"), run with no args — the script auto-detects the two most recent qa-[0-9]{2} branches from the remote.

Options

Flag Effect
--full Show full commit messages instead of just NV IDs
-h, --help Show usage

Output

The script outputs a sorted markdown list of NV-XXXX tickets with clickable Linear URLs:

=== NV tickets unique to qa-XX (vs qa-YY) ===
Found 12 tickets:

- NV-1234 (https://linear.app/nectarvet/issue/NV-1234)
- NV-5678 (https://linear.app/nectarvet/issue/NV-5678)
...

Present the result as-is. If the output is "(none)", tell the user no NV tickets were found.

Edge cases

The script handles these internally:

  • Cherry-picked commits — matches the older branch's HEAD commit message in the newer branch's history (not by hash)
  • Message not found — falls back to git merge-base
  • Multiple matches — picks the first and warns
  • Stale remote refs — script auto-prunes stale refs before giving up on a branch

Troubleshooting

If auto-detection fails ("no qa-[0-9]{2} branches found"), the most common cause is stale remote tracking refs from pruned branches. Run git remote prune origin to clean them, then re-run. If branches still aren't found, specify them explicitly.

Install via CLI
npx skills add https://github.com/ghaerdi/dotfiles --skill qa-branch-diff
Repository Details
star Stars 10
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator