One contract. Every tracker.
The agent asks for a role. Each tracker gets its own state. Your team confirms the mapping once, at baron init, and commits it with the repo, so the model never guesses it again.
| Tracker | backlog | ready | in_progress | in_review | done |
|---|---|---|---|---|---|
| Azure DevOpsa real team | New | — | Active | Test | Closed |
| Jiraexample | To Do | — | In Progress | In Review | Done |
| Linearexample | Backlog | — | In Progress | Code Review | Done |
| GitHubexample | open | — | label: in-progress | label: in-review | closed |
A dash is a role that tracker leaves unmapped. Why a tracker cannot be normalized by mapping four states onto everything: You can't set a status in Jira.
When a tracker can't, you hear about it.
Every capability gap is decided by a policy you set. None is dropped quietly.
error- Stop with an actionable message. A board column the item cannot take is refused before anything is written.
emulate:labels- Synthesize it. GitHub has no native parent and child, so the hierarchy rides a
parent:<id>label. degrade- Skip it and log a warning. A sprint asked of a tracker without sprints is skipped, and the warning says so.
The daily loop is four calls.
Workflow lives in declarative recipes, not in prompts. Each runs as one journaled call that checks before it writes, and a run that stops halfway resumes where it stopped.
task-newFiles the item with its type and parent.task-startCuts the canonical branch, moves the item toin_progress, assigns you.task-finishOpens a draft PR linked to the item, and says so if the link did not land.task-landRefuses red or pending checks, takes the PR out of draft, merges it.
Baron ▸ runs the task-start recipe as a single call:✓ Loaded STORE-142 "Add rate limiting to the login endpoint" (type role: task)✓ Checked it: not done, has a canonical branch, not assigned to someone else✓ Branched feature/STORE-142 from the repo's default branch✓ Moved STORE-142 → in_progress, assigned to you✓ Commented on the item: "Started work — on branch feature/STORE-142."Two ways in.
Claude Code plugin
/plugin marketplace add zanaat-dev/baron
/plugin install baron@baronAny MCP client
npx -y @zanaat/baron-mcp-server@latestListed in the official MCP Registry as io.github.zanaat-dev/baron.