Turn-based board engine for human/AI delivery teams.
Welcome to Keel. This is not a notes app with automation bolted on; it is a board engine designed for the era of human-agent collaboration. Keel treats software development as a high-fidelity operating system where Formal Rules act as the physics, Turns are the unit of progress, and Play remains a first-class tool for discovery.
brew tap spoke-sh/tap
brew install keelcurl --proto '=https' --tlsv1.2 -LsSf https://github.com/spoke-sh/keel/releases/latest/download/keel-installer.sh | shnix run github:spoke-sh/keelkeel upgrade
keel upgrade --ref v0.2.2Download the latest pre-built binaries and installers for your platform from the GitHub Releases page. We provide:
- Linux:
.tar.gzarchives plus the cross-platform shell installer - macOS:
.tar.gzarchives plus the cross-platform shell installer - Windows:
.ziparchives,.msi, and the PowerShell installer
- Install Keel: follow the Installation instructions above.
- Create a board:
keel new my-project && cd my-project - Orient:
keel turn - Inspect:
keel mission next --status - Pull:
keel next --role managerorkeel next --role operator - Ship & Close: move one slice, record proof, land the sealing commit, and repeat the turn cycle
Release-installer installs can be refreshed with keel upgrade. If you need a specific upstream tag or commit instead of the latest published release, use keel upgrade --ref <tag-or-sha>.
Everything flows down: Vision โ Epic โ Voyage โ Story โ Implementation. Everything loops back: Reflection โ Knowledge โ Patterns โ Bearings โ Architecture.
Keel is designed to meet you where you are in your journey of comprehension. As you interact with the engine, you naturally level up through three distinct roles:
Comprehension: Low
The Move: keel doctor
Start here. The engine will tell you exactly where the board is "broken" (Scaffold Drift, Structural Drift). By fixing these objective issues, you learn the structural invariants of the system without needing to understand the full architecture yet.
Comprehension: Medium
The Move: keel turn
Once the board is healthy, you move into the canonical Turn Loop. You orient, inspect, pull, ship, and close one visible state change at a time. You learn how requirements flow from planning into verified code.
Comprehension: High
The Move: keel adr new / keel voyage plan
At the highest level, you define the physics of the sandbox. You author the Architecture Decision Records (ADRs) and tactical plans (SRS/SDD) that constrain how agents and other operators execute.
We believe that planning should be preceded by exploration. Keel encourages Play as a first-class citizen to reduce the "fog of war" before requirements are frozen.
- Use
keel play --theaterto launch narrative discovery sessions. - Cross-pollinate ideas with
keel play --cross <id1> <id2>. - Let the Theater Personas (Shakespeare, Stand-up, Action) help you look at a technical problem through a different mask.
The canonical operating rhythm is:
- Orient:
keel turn,keel heartbeat,keel health --scene,keel flow --scene,keel doctor - Inspect:
keel mission next --status,keel pulse - Pull:
keel roles,keel next --role <role>,keel next --role <role> --explain - Ship:
keel story start <id>,keel story record <id>,keel story submit <id> - Close:
keel story accept <id> --role manageror the equivalent planning transition plus a sealing commit
keel flow is the readiness surface, not a second copy of keel doctor. It short-circuits on blocking doctor failures, but while the heartbeat is energized it can keep the circuit open during active mission intake when the only errors are transitional mission-wiring debt such as missing children or no in-flight work.
The engine uses a 2-lane pull model to prevent strategic fog:
- MANAGEMENT LANE:
keel next --role managerreturns management-lane decisions and never returns implementationWork. - DELIVERY LANE:
keel next --role operatorreturns implementation work from the delivery lane (in-progressthenbacklog).
Use keel roles to inspect the resolved lane topology and keel next --role <role> --explain to understand why a role pulls from a particular lane.
Constraint: keel next requires --role; there is no implicit manager default.
turn Inspect the canonical Orient/Inspect/Pull/Ship/Close loop
next Pull the next item using explicit role-based queue routing
roles Show resolved roles, lanes, and operational contracts
flow Show workflow lane dashboard from configured topology
doctor Validate board health and optionally fix issues
Keel's day-one path is still direct board work through mission, epic,
voyage, and story commands. When Keel is embedded inside a larger runtime
such as Keeper, the boundary should stay explicit:
- Keel owns planning truth and board artifacts.
- Keeper owns provider ingress, routing, execution, and replay.
- External requests should normalize into a provider-neutral mission request
envelope instead of mutating
.keelstate out-of-band. - The first documented provider shape is a GitHub issue whose title begins
Keel Mission Request:. - The documented direction is a native
keel mission request ...command family for parse, validate, draft, apply, and acknowledgement composition. - Stronger multiplayer guarantees belong at the boundary through backend-agnostic audit proofs and high-consequence attestation, not as a requirement for every local turn.
See ARCHITECTURE.md and PROTOCOL.md for the foundational contract.
Keel is governed by a strict set of operational invariants. These rules ensure that as the simulation grows in complexity, it never drifts into chaos.
Use this order when authoring or reviewing decisions:
- ADRs (
.keel/adrs/) โ binding architectural decisions - CONSTITUTION.md โ collaboration philosophy and governance intent
- POLICY.md โ operational invariants and engine constraints
- ARCHITECTURE.md โ implementation structure and technical constraints
- CONFIGURATION.md โ role-based and config-driven topology
- RELEASE.md โ release capabilities and overview
- Planning artifacts (
PRD.mdโSRS.md/SDD.mdโ storyREADME.md) โ scoped executable work
- AGENTS.md: The turn loop and operator contract for AI contributors.
"The goal is not to automate humans out of the loop, but to place human judgment where it is irreplaceable."





