burl is a minimal, file-based workflow orchestrator for coding and review pipelines.
- Workflow state is folders plus markdown task files in a dedicated Git worktree (
.burl/on branchburlby default). - Each claimed task gets its own Git worktree under
.worktrees/. - Validation gates are deterministic and diff-based (scope, stubs, optional build/test profile).
- You are inside a Git repository (not a submodule) with at least one commit.
- If your default branch is not
main, setmain_branchin.burl/.workflow/config.yamlafterburl init.
cargo install --path .# One-time setup (idempotent)
burl init
# Create task in READY/
burl add "Implement player jump" --priority high --affects-globs "src/player/**"
# Claim task (READY -> DOING) and create task worktree
burl claim TASK-001
# In task worktree: commit code, then submit to QA
burl submit TASK-001
# Run validation without status transition
burl validate TASK-001
# Finalize
burl approve TASK-001
# or
burl reject TASK-001 --reason "Scope exceeded; touched src/net/**"mkdir my-project && cd my-project
git init -b main
echo "# my-project" > README.md
git add README.md
git commit -m "Initial commit"
burl initDurable workflow state lives on the burl branch. The .burl/ directory is just a checkout of that branch.
- Push from machine A:
git push <remote> burlgit push <remote> <task-branch>
- Attach from machine B:
git fetch <remote> burl:burlburl init
# Agent profiles
burl agent list
# Run a configured agent on a claimed task
burl agent run TASK-001
burl agent run TASK-001 --agent claude-code
burl agent run TASK-001 --dry-run
# Workflow dashboard
burl monitor
# Automation loop
burl watch
burl watch --approve
burl watch --dispatch --approveburl agent run requires .burl/.workflow/agents.yaml and a task in DOING.
.burl/ # Canonical workflow worktree (branch: burl)
.workflow/
READY/ DOING/ QA/ DONE/ BLOCKED/
config.yaml
agents.yaml
prompts/
agent-logs/ # Untracked
events/events.ndjson
locks/ # Untracked, machine-local
.worktrees/
task-001-.../ # Per-task Git worktrees
Workflow config is .burl/.workflow/config.yaml.
Common keys:
main_branch,remotebuild_command(legacy single-step build/test hook)validation_profiles,default_validation_profilestub_patterns,stub_check_extensionsmerge_strategy,conflict_detection,conflict_policyworkflow_auto_commit,workflow_auto_push
Agent profiles are in .burl/.workflow/agents.yaml.
For full prompt template and placeholder reference, see burl.md.
burl.md: product requirements and specARCHITECTURE.md: code map and invariantsROADMAP.md: short- and long-term planAGENTS.md: contributor and agent quick referenceCLAUDE.md: repo constraints and implementation notes
cargo fmt
cargo test
cargo clippy --all-targets -- -D warningsIf cargo check or cargo clippy fails with Invalid cross-device link (os error 18), treat it as an environment/toolchain issue and use cargo build plus cargo test as the mechanical gate.