Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/target
pi-extension/node_modules
.bmo
.docket
docs/tdd
Expand Down
24 changes: 23 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ For an example of agents and skills that have been instructed to use `bmo` check

## Attribution

`bmo` was inspired by and adapted from [docket](https://github.com/ALT-F4-LLC/docket), an issue tracker for AI agents written by **ALT-F4-LLC**. The design, data model, and command structure of BMO all owe a direct debt to that project, and all credit for the underlying ideas belongs there.
`bmo` was inspired by and adapted from [docket](https://github.com/ALT-F4-LLC/docket), an issue tracker for AI agents written by **ALT-F4-LLC**.

In addition, the code in this repository was written by [Claude Code](https://claude.ai/claude-code), Anthropic's AI coding assistant. The repo owner directed this work.

Expand Down Expand Up @@ -44,10 +44,32 @@ bmo board
bmo web
```

## pi-code Integration

If you use [pi-code](https://pi.dev), the `pi-bmo` extension integrates bmo natively
into pi. This extension adds typed `bmo_*` tools that the LLM calls directly, in addition to a live board status widget, board
state injected into every agent turn's context, and `/board` `/next` `/plan` slash commands.

```bash
pi install git:github.com/erewok/bmo
```

A companion pi-code extension, [bmo-dev-team](https://github.com/erewok/bmo-agent-setup), adds a
full AI software development team (staff-engineer, project-manager, senior-engineer,
qa-engineer, ux-designer) that plans and executes work through bmo. Installing it also
pulls in `pi-bmo` automatically:

```bash
pi install git:github.com/erewok/bmo-agent-setup
```

See [docs/pi-extension.md](docs/pi-extension.md) for the full integration guide.

## Documentation

- [docs/commands.md](docs/commands.md) — Complete command reference
- [docs/agents.md](docs/agents.md) — Integration guide for AI agents
- [docs/pi-extension.md](docs/pi-extension.md) — pi-code extension and dev-team suite
- [docs/web.md](docs/web.md) — Web interface
- [docs/data.md](docs/data.md) — Data storage and database location
- [docs/migration-from-docket.md](docs/migration-from-docket.md) — Migrating from docket
Expand Down
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
|------|-------------|
| [commands.md](commands.md) | Complete command reference — all commands, flags, and JSON output shapes |
| [agents.md](agents.md) | Integration guide for AI agents — session setup, finding work, tracking progress |
| [pi-extension.md](pi-extension.md) | pi-code extension — native bmo tools, context injection, and the dev-team agent suite |
| [web.md](web.md) | Web interface — starting the server, flags, live updates |
| [data.md](data.md) | Data storage — SQLite location, directory walk behavior, `BMO_DB` env var |
| [migration-from-docket.md](migration-from-docket.md) | Migrating from docket to bmo |
Expand Down
112 changes: 112 additions & 0 deletions docs/pi-extension.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# bmo + pi-code Integration

[pi-code](https://pi.dev) is an AI coding agent that runs in the terminal. The `pi-bmo`
extension integrates bmo natively into pi, replacing raw shell commands with typed tools
the LLM can call directly and adding board-state awareness to every session.

## What the Extension Provides

| Feature | Description |
|---------|-------------|
| **`bmo_*` tools** | Typed wrappers for every bmo command — the LLM calls structured tools instead of constructing shell strings |
| **Context injection** | On every agent turn, the current board summary and next work-ready issues are silently injected into context — no extra tool call needed |
| **Status widget** | Compact board counts (`○3 ●2 ◐1 ◎0 ✔5`) displayed above the pi editor, updated after every turn |
| **Slash commands** | `/bmo-board`, `/bmo-ls`, `/bmo-show`, `/bmo-next`, `/bmo-plan`, `/bmo-stats`, `/bmo-init`, `/bmo-widget` |

### Available Tools

| Tool | Equivalent bmo command |
|------|------------------------|
| `bmo_init` | `bmo init` |
| `bmo_agent_init` | `bmo agent-init` |
| `bmo_board` | `bmo board --json` |
| `bmo_plan` | `bmo plan --json [--phase N]` |
| `bmo_next` | `bmo next --json` |
| `bmo_show` | `bmo show <id> --json` |
| `bmo_list` | `bmo list --json [--status] [--assignee]` |
| `bmo_create` | `bmo create -t ...` |
| `bmo_edit` | `bmo edit <id> ...` |
| `bmo_move` | `bmo move <id> -s ...` |
| `bmo_claim` | `bmo claim <id> --assignee ...` |
| `bmo_close` | `bmo close <id>` |
| `bmo_reopen` | `bmo reopen <id>` |
| `bmo_comment` | `bmo comment add/list` |
| `bmo_link` | `bmo link add <a> <rel> <b>` |
| `bmo_file` | `bmo file add <id> <path>` |
| `bmo_stats` | `bmo stats` |

The extension discovers the bmo project the same way the CLI does — by walking up from the
current working directory looking for `.bmo/issues.db`. No configuration needed.

## Installation

Install the extension into pi's global configuration:

```bash
pi install git:github.com/erewok/bmo
```

pi clones the repo, runs `npm install`, and loads the extension from `pi-extension/`
automatically on next start.

To try it without making it permanent:

```bash
pi -e git:github.com/erewok/bmo
```

### Local Development

If you have the bmo repo checked out locally, add the extension path to
`~/.pi/agent/settings.json` instead:

```json
{
"extensions": ["/path/to/bmo/pi-extension"]
}
```

## Dev-Team Extension

A companion extension, [bmo-dev-team](https://github.com/erewok/bmo-agent-setup),
builds on `pi-bmo` to provide a full AI software development team that plans and
executes work through bmo:

- **`staff-engineer`** — produces Technical Design Documents and reviews all implementation changes
- **`project-manager`** — decomposes requests into bmo issues with dependency graphs and file scoping
- **`senior-engineer`** — implements from bmo issues within their scoped files
- **`qa-engineer`** — verifies acceptance criteria and posts results as bmo comments
- **`ux-designer`** — produces UX design specs before technical planning
- **`dev-team` skill** — orchestration skill that sequences the team: design → plan → implement → review → verify

Installing `bmo-dev-team` also pulls in `pi-bmo` automatically — you do not need to
install both separately:

```bash
pi install git:github.com/erewok/bmo-agent-setup
```

### How the dev-team uses bmo

The dev-team workflow is built around bmo's dependency graph and parallel execution
model. A typical Medium-complexity feature looks like this:

1. **Staff engineer** explores the codebase and writes a TDD in `docs/tdd/`
2. **Project manager** decomposes the TDD into bmo issues with phases, dependencies,
and file attachments — calling `bmo_create`, `bmo_link`, and `bmo_file` for each
3. **Senior engineers** run in parallel within each phase, each claiming their issue
with `bmo_claim` and moving it to `review` with `bmo_move` on completion
4. **Staff engineer** reviews all changes and posts structured feedback as `bmo_comment`
calls — blockers prevent the issue from closing
5. **QA engineer** verifies acceptance criteria and posts results via `bmo_comment`
6. **Orchestrator** closes each issue with `bmo_close` once review passes

Because bmo file attachments scope each issue to specific files, the orchestrator can
detect collisions before spawning parallel agents and serialize any conflicting work.

## Requirements

- [bmo](https://github.com/erewok/bmo) installed and on `$PATH`
- [pi-code](https://pi.dev) installed

The extension has no additional runtime dependencies.
Loading
Loading