task-synclisted
Install: claude install-skill loncadev/baron
# Sync the board with PR reality
Trackers often can't auto-advance a work item when its PR merges, so cards rot in the wrong state.
This skill detects that drift **from facts, not guesses** — every fact comes from a Baron primitive —
and offers a batch fix. It works on any provider Baron binds (Azure DevOps, GitHub), because it reads
normalized roles and PR state, not vendor columns.
## The drift rule (fixed — you apply it, you don't judge it)
For each in-flight item, correlate it to its branch's PR via the **core-derived `branchName`**:
- **A — merged-but-stuck** (the common one): role is `in_progress` AND its branch has a **merged** PR
→ should be `in_review`. Auto-fixable.
- **C — closed with a stale role label** (label-keyed providers): the item's role reads `done`
(the provider closed it — a PR merging with `Closes #N`) but `labels` still carries another
role's label, so boards and label filters keep showing it as in-flight. Auto-fixable: run the
`task-reconcile` recipe. It commands no role — it clears the label the provider's own state
contradicts. Prefer it over a transition here: transitioning would work on GitHub and be wrong on a
provider where a close does not mean `done`. Since task-land reconciles after
every merge, this class should now only appear for items landed before that, or where the
provider had not closed the item yet when the run finished.
- **D — merged-but-still-in-review**: role is `in_review` AND its branch has a **merged** PR