tracker-brief-sync
Turn a brief or PRD (such as prd-draft output) into tracker-ready epics and issues — title, description, acceptance criteria, labels and a link back to the doc section — as a CSV for Jira, a mapped CSV for other importers, or gh commands for GitHub; and in reverse, report drift between the doc and the tracker (issues with no section, sections with no issue, issues for Won't-have requirements). Use when the user wants to load a PRD into Jira, Linear or GitHub, says "create tickets from this brief", or asks "does the tracker still match the PRD?".
Other ways to install
With the sibling skills it hands off to:
The whole pack it belongs to:
By hand, from a clone of the repo:
In Claude Code, with the trackers plugin installed, invoke it as:
Try it
A realistic prompt from the skill's acceptance evals:
Turn examples/prd-guest-checkout.md into Jira epics and stories we can import. Link each one back to the PRD; the wiki copy is https://wiki.northwind.example/checkout/prd-guest-checkout.
What a good result looks like
Example output
Example: guest checkout, from PRD to Jira and back · the skill's own worked example, source
Two runs on one PRD. First the user asks for Jira-ready issues from the PRD. Two weeks later they ask whether the tracker still matches the doc.
Files:
prd-guest-checkout.md: a PRD in prd-draft's shape, with goals G1–G2 and requirements R1–R7 (R7 is Won't have)guest-checkout-spec.json: the issues spec written from the PRDtracker-after-two-weeks.csv: the Jira export two weeks later
Run 1: PRD to issues
"Turn this PRD into Jira epics and stories. Link each back to its section. The wiki copy is at https://wiki.northwind.example/checkout/prd-guest-checkout."
Mapping, before writing the spec. One epic per goal, one story per requirement:
| Doc section | Becomes | Why |
|---|---|---|
| G1 | Epic E1 "Checkout without an account" | Goal; R1–R3 map to it |
| G2 | Epic E2 "Support and safety for guest orders" | Goal; R4–R6 map to it |
| R1–R6 | Stories S1–S6 under their goal's epic | One testable requirement each; the acceptance criteria restate the requirement's observable behaviour |
| R7 | Nothing | Won't have. Listed under "Not created" so nobody adds it later by mistake |
| Non-goals, open question | Nothing | Not work. The open question about 3-D Secure goes back to the user as an unresolved dependency |
The spec is guest-checkout-spec.json. Then:
python3 scripts/brief_sync.py export examples/guest-checkout-spec.json --target jira \
--doc examples/prd-guest-checkout.md -o guest-checkout-jira.csv
Script output, unedited:
wrote guest-checkout-jira.csv: 8 items (2 epics, 6 others)
First three rows of the CSV, unedited:
Issue Id,Parent Id,Issue Type,Summary,Description,Labels,Labels
1,,Epic,Checkout without an account,"Let first-time shoppers pay without creating an account. Goal: sign-up-step drop-off from 38% to under 20% within 4 weeks of launch.
Source: https://wiki.northwind.example/checkout/prd-guest-checkout#goals (G1)",guest-checkout,
2,,Epic,Support and safety for guest orders,"Guest orders can be found, screened and returned like account orders.
Source: https://wiki.northwind.example/checkout/prd-guest-checkout#goals (G2)",guest-checkout,
3,1,Story,Pay as a guest with email and delivery details,"As a first-time shopper, I can pay without creating an account, so I can buy in one sitting.
Acceptance criteria:
- Given a shopper with no account at checkout, when they choose Continue as guest, then they can pay after entering only an email address and delivery details
- Given a guest payment succeeds, then no account is created
Source: https://wiki.northwind.example/checkout/prd-guest-checkout#requirements (R1)",guest-checkout,checkout
The spec check catches mistakes before anything reaches the tracker. Here's the same spec with five deliberate errors (a story with no criteria, a missing parent, a Won't-have source, a section that isn't in the doc, a label with a space):
spec has 5 problem(s):
- S1: a story needs acceptance_criteria
- S2: parent 'E9' is not an item in the spec
- S3: source 'R7' is marked Won't have in the doc
- S4: source 'R12' is not a section in the doc
- S5: label 'guest checkout' has a space; Jira labels can't
The script exits 1 and writes nothing.
What the user gets back: the CSV, the mapping table above, and:
- Import steps: in Jira's CSV importer, map
Issue IdandParent Idso stories land under their epics, and map bothLabelscolumns to Labels. - Not created: R7 (Won't have), the three non-goals.
- Unresolved: the PRD's open question (does the PSP need an account ID for 3-D Secure on guest payments?) may add work to R1. No issue was created for it, because the doc doesn't define any.
Run 2: drift, two weeks later
"Here's the Jira export for guest checkout. Does it still match the PRD?"
python3 scripts/brief_sync.py drift --doc examples/prd-guest-checkout.md \
--export examples/tracker-after-two-weeks.csv -o drift.md
Script output, unedited:
# Drift: prd-guest-checkout.md vs tracker-after-two-weeks.csv
9 sections in the doc (6 need an issue, 1 marked Won't have) · 11 issues in the export (1 canceled or duplicate, ignored)
Sections are IDs matching `R\d+`.
| Drift | Count |
|---|---:|
| Doc sections with no issue | 1 |
| Issues with no doc section | 1 |
| Issues pointing at a section the doc doesn't have | 1 |
| Issues for a Won't-have requirement | 1 |
## Doc sections with no issue
- R3 (S): After paying, a guest shopper is offered an account, pre-filled from the order, which they can decline
## Issues with no doc section
- CHK-210 Klarna for guest orders (Backlog, Story)
## Issues pointing at a section the doc doesn't have
- CHK-211 3-D Secure exemption handling for guest payments: points at R8
## Issues for a Won't-have requirement
- CHK-209 Save card for guest shoppers: R7 is Won't have in the doc
## Coverage
| Section | MoSCoW | Issues |
|---|---|---|
| G1 | - | CHK-201 (In Progress) |
| G2 | - | CHK-202 (To Do) |
| R1 | M | CHK-203 (In Progress) |
| R2 | M | CHK-204 (To Do) |
| R3 | S | - |
| R4 | M | CHK-206 (To Do) |
| R5 | M | CHK-207 (To Do) |
| R6 | S | CHK-208 (To Do) |
| R7 | W | CHK-209 (To Do) |
Linked by mentioning the ID rather than a Source line (check these): CHK-207
What the user gets back, after reading the four flagged issues:
| Drift | Item | What happened | Fix |
|---|---|---|---|
| Doc section with no issue | R3 (Should) | CHK-205 was cancelled: "growth team will run this as an experiment later" | Either move R3 to Won't have in the PRD, or reopen CHK-205. The doc and the tracker currently disagree |
| Issue for a Won't-have requirement | CHK-209 Save card for guest shoppers | Added because "Sales asked for this"; the PRD rules it out | Close CHK-209, or change R7 in the PRD first. Scope changes go through the doc |
| Issue pointing at a missing section | CHK-211 3-D Secure exemption (In Progress) | Points at R8, which the PRD doesn't have. Its description answers the PRD's open question | Add the answer and a requirement to the PRD, then relink CHK-211 |
| Issue with no doc section | CHK-210 Klarna for guest orders | Not in the PRD | Ask whether Klarna-on-guest is in scope. If yes, add a requirement; if not, move it out of the epic |
| Linked by mention | CHK-207 | Its Source line was deleted; it mentions R5 | Restore the line: Source: …#requirements (R5) |
R1, R2, R4, R5 and R6 each have exactly one live issue.
How it's checked
Measured against plain Claude Code (2026-10-23): it met 84% of its checks, against 55% without it, and a blind judge preferred it. How skills are checked
28 assertions across 4 acceptance evals, and 8 trigger queries. Every skill's checks
What the output must do
When it should and shouldn't activate
Should activate:
- Turn this PRD into Jira epics and stories as a CSV I can import
- Create GitHub issues from this brief, each linked back to the section it came from
- Does our Linear project still match the PRD? Find tickets with no requirement and requirements with no ticket
- Load the guest checkout requirements into our tracker with acceptance criteria and labels
Should leave to another skill:
- Draft a PRD for guest checkout from these interview notes
- Break the guest checkout epic into thin vertical slices with a build order
- Find duplicates and stale items in our Jira backlog
- Summarise the guest checkout PRD in one page for the leadership team
Hands off to
- user-story-splitter — when a requirement is too large for one story. Slice it into independently shippable stories before it goes into the spec.
Related skills
Source
SKILL.md · the whole folder on GitHub.