A protoAgent plugin that turns an idea into merged PRs. A lean board backed by
beads-rust (br), a loop that hands each card to a
coding agent in its own git worktree, an adversarial planning layer, and a Kanban console view.
Install it into any protoAgent agent from this git URL.
backlog → ready → in_progress → in_review → done
│
└── blocked (a flag, not a lane)
- A board that can't drift. Cards are a projection over beads, so the work graph has one source of truth.
- A loop that ships. It takes the top
readycard, builds it in a disposable worktree, runs the gate, opens the PR, and moves the card todonewhen it merges. - Gates at each edge. A Ready gate on the way in, a fast local gate before the PR, then CI, a review gate and (opt-in) auto-merge.
- Self-healing. Transient failures retry, capability failures can climb to a stronger model, and a restart recovers cards stranded mid-build.
- Planning built in. Skills turn an idea into epics and cards, onboard a new repo, and learn from past failures.
python -m server plugin install https://github.com/protoLabsAI/projectBoard-plugin --ref mainInstalling doesn't enable it. Turn it on in Settings → Plugins → Project Board; it hot-mounts, no restart. Then point it at a repo and a coder:
# config/langgraph-config.yaml
plugins:
enabled: [delegates, project_board]
delegates:
- { name: proto, type: acp, command: proto, args: ["--acp"], workdir: ~/dev/my-repo, permissions: allowlist }
project_board:
coder: proto # required: the ACP delegate the loop dispatches to
repo: ~/dev/my-repo
loop_enabled: true # start the background pullerYou need git, an authenticated gh, and an ACP coder. br is fetched for you on first run.
The board checks all of this itself and says what's missing instead of booting green
(requirements and install).
| To | Do this |
|---|---|
| Add work | board_create_feature (title, spec, acceptance criteria, files_to_modify), then board_mark_ready |
| See the board | The Board view in the console's left rail, or board_list |
| Plan a project | Ask for the decompose-project skill: "decompose <idea>" |
| Onboard a repo | The onboard-project skill, before pointing the board at a new repo |
| Learn from failures | The loop-retro skill |
More in Using the board.
| Doc | What's in it |
|---|---|
| Requirements and install | What you need, install, enable |
| Annotated configuration | A commented project_board: block and where the board lives |
| How it works | The store, the loop, escalation, coder.solve(), the planning layer |
| Using the board | Tools, skills, the HTTP surface, the console view |
| Lifecycle | The lanes, the in_review sub-states, blocked-card self-heal |
| The gate | The fast local gate, auto discovery, preflight, environment |
| Setup preflight | "Can the board run at all?", and the first-run br fetch |
| The task lane | Cards that ship a deliverable instead of a PR |
| Publish gates | Cross-repo chains: waiting on an npm version or a release |
| Console settings | The fields you can edit in the UI |
| Configuration reference | Every key, its default, and live / reload / restart |
| Tools · HTTP API | Every agent tool and route |
| Decision records | This plugin's own ADRs |
| Development | Layout, test seams, scripts, releasing |
A working example host is roxy: it installs this plugin as its coding-orchestration layer and shows the wiring end to end.