Baton start
Work-item lifecycle over a board — backend-agnostic CLI + Claude Code skills (GitHub Projects, Plane, ...)
npx -y skills add SOSkr/baton --skill baton-startAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 13 days oldThe repository was created 13 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Start implementation of an approved work-item: advance it to In Progress, create the feature branch, and drive it to Done/Shipped. Use when the user says "start X", "implement idea", "empezar/implementar", "work on <id>".
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.3 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
baton start
Implement an approved item following the target repo's git flow. baton tracks the
stage; the code lives in the target repo (which may differ from where the item lives).
Start
- Verify approved:
baton show <id>(check stage). - Identify the target repo —
baton doctorprints it. A single-repo project hasrepo:; a multi-repo one has arepos:map keyed by thearea:label value, so the item's own label says where the work goes. Ask the user only if neither resolves. Implementation happens there, not where the board lives. - Feature branch (in the target repo):
Prefix is one ofgit checkout "$(baton config git.integration)" && git pull git checkout -b "feat/<id>-<slug>"feat·fix·chore·hotfix— the same words the commit types use. The<id>is load-bearing, not decoration: the optional PR hook reads it off the branch to post the PR link back to the item, and a branch without one silently never gets linked. - Mark In Progress:
baton start <id>(config alias, defaultIn Progress). - Break down the acceptance criteria and implement. If the body has an "Out of scope", stay out of it; if it has a "Verification", run it and report the result before advancing the stage.
During
- Commits reference the item id; PR body references the item (cross-repo items don't auto-close on merge).
- Update any linked doc alongside the code.
Leave a trail on the item
Whoever picks this up next — another person, another agent, you in two weeks — can read the board but not your session. Comment at these three points, and only these: commits are too frequent to be worth reporting, and git already has them.
| When | What to write |
|---|---|
| PR opened | what it does, the PR link, what is still open |
| Blocked | what blocks it and who/what it waits on — the most valuable comment there is |
| Your part done (multi-part item) | what landed, what the next part needs to know |
baton comment <id> --body "Engine listo: endpoints del recorder + drift-check en CI.
PR https://github.com/acme/app/pull/77 · falta el consumidor en la app web."
Three lines beat thirty. Write what someone would otherwise have to ask you —
decisions taken, paths rejected and why, the surprise you hit. Not a changelog:
baton-catch-up cross-checks against git log for the facts.
Before writing, baton show <id> --comments — if it is already said, don't repeat it.
Finish
- Do not advance the item here. A merged PR is not the same as an item that did
what it said —
baton-verifychecks the diff against the acceptance criteria, theVerificationand the scope boundary, and it is what moves the item on. Hand off to it; if the project declaresstages.verify, baton refuses the jump anyway. - On release/deploy:
baton ship <id>(config alias, defaultDeployed), then close if that's your terminal state.
Multi-part items (checklist)
If the item has a "Checklist" — one box per repo, or one box per phase of a wide mechanical change — then on finishing your part: tick your box + link your PR in the item body:
baton body <id> --body "$(...updated body with your box ticked...)"
Do not mark Done or close while any box is unticked — the item stays In Progress until the last part lands. Only the final part → Done, then Ship/close. A single part's release must not close the item if siblings remain.
Phase boxes are ordered; repo boxes are not. Never start a phase while an earlier
one is still open. In an expand–contract that is the entire point: run contract
before the migrate batches have landed and you delete something that still has
callers. The board does not enforce this — the order in the body and the test suite
do, so read the body before you pick a box.
Notes
- Keep the item's stage current as work progresses (
baton list --stage @start). - State = board stage, not labels.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.