Skip to content
/

maverick

maverick-get2knowio · get2knowio/maverick · ★ 3 · last commit 2026-05-26

Orchestrates PRD-to-merged-code via a bead dependency graph where agents and humans create work for each other, with enriched review context (spec + contrarian briefing + runway history).

Best whenCode review is only valuable if the reviewer has the same context as the implementer — every review agent receives the bead spec, a contrarian pre-flight bri…
Skip ifReviewing code without reading the acceptance criteria, Silent failure on agent retry exhaustion
vs seeds
taskmaster-ai(bead-based task graph, per-task acceptance criteria, multi-agent execution) but Maverick adds enriched review context (…
Primitive shape 14 total
Commands 9 Subagents 5
00

Summary

Maverick — Summary

Maverick is a Python CLI (maverick) that orchestrates a complete PRD-to-deployed-code pipeline on top of airframe, a vendor-neutral agent runtime protocol. Its central architectural metaphor is the "bead" — every unit of work (implementation task, review finding, human escalation, correction task) is a bead in a dependency graph managed by the bd CLI tool, ensuring all work flows through the same tracking system regardless of whether it was created by an agent or a human. The pipeline has four commands: plan (generate flight plan from PRD), refuel (decompose into work units with acceptance criteria), fly (implement + validate per bead), and land (curate commit history + merge). What distinguishes Maverick from other PRD frameworks is the enriched code review context — every review agent receives the full work unit spec, a pre-flight briefing (contrarian findings, risk assessment), and runway historical context from previous bead outcomes. It also supports five canonical agent roles (implement, review, briefing, decompose, generate) with per-role model binding in maverick.yaml. At version 0.2.0.dev9 with 3 stars, Maverick is early-stage but architecturally sophisticated. Compared to seeds, it most resembles taskmaster-ai (bead-based task graph, per-task acceptance criteria, multi-agent execution) but adds enriched review context, multi-provider binding per role, and Jujutsu VCS instead of Git.

01

Overview

Maverick — Overview

Origin

Created by get2knowio (get2knowio/maverick). MIT license. Version 0.2.0.dev9 (alpha). Pushed 2026-05-26 (very active — updated same day as analysis). Python 3.11+.

Philosophy

From README:

"Everything is a bead. A bead is a unit of work managed by the bd CLI tool. Implementation beads, review findings, human escalations, and correction tasks all live in the same dependency graph."

Maverick is built on the premise that agent-generated code review is only valuable if the reviewer has the same context as the implementer. Most review agents receive only the diff; Maverick's reviewers receive: the full work unit spec (acceptance criteria, file scope), a pre-flight briefing (contrarian findings, risk assessment), and runway historical context (outcomes of similar past beads). This "enriched review context" is the framework's primary differentiator.

The second premise is deterministic spec compliance — before any review, a grep-based convention checker (maverick fly) catches project-specific antipatterns (e.g., unwrap() in runtime code, blocking subprocess calls in async functions) without requiring a model to "know" the rules.

Key concepts

  • Bead: Unit of work with acceptance criteria, file scope, priority, and status
  • Flight plan: The structured decomposition of a PRD into epics
  • Runway: Knowledge store of episodic records from past bead outcomes
  • Refuel: Decompose a flight plan into work units (beads)
  • Fly: Implement + validate beads autonomously
  • Land: Curate commit history and merge

Provider support

maverick.yaml maps five canonical roles to any of: claude (OAuth via Claude Max), github-copilot, opencode, opencode-go, opencode-zen, openrouter, bedrock

VCS choice

Jujutsu (jj) for write operations. GitPython for read-only operations. This is unusual — no other framework in this batch uses Jujutsu.

02

Architecture

Maverick — Architecture

Distribution

  • Python package: maverick-cli
  • Binary: maverick (also maverick-cli)
  • Install: uv tool install maverick-cli
  • Or: uv tool install git+https://github.com/get2knowio/maverick.git
  • Version: 0.2.0.dev9

Required runtime

  • Python >= 3.11
  • uv (fast Python package manager)
  • gh (GitHub CLI)
  • jj (Jujutsu VCS)
  • bd (bead/work-item management CLI)
  • Authentication for at least one airframe provider

Key dependencies

airframe-agents[all]>=0.9.0rc1  # vendor-neutral agent runtime
burr>=0.40                       # Apache Burr workflow state machines
pydantic>=2.0                    # Data models
click>=8.1                       # CLI
rich>=13.0                       # Terminal UI
structlog>=24.1                  # Structured logging
pygithub>=2.1                    # GitHub operations
rank-bm25>=0.2.2                 # BM25 text search for runway

Directory tree (project state)

<project>/
├── maverick.yaml              # Role→provider binding, conventions
├── specs/                     # Per-bead feature specs (001-xxx/, 002-xxx/)
│   └── 001-maverick-foundation/
│       └── spec.md
├── .maverick/
│   └── runway/                # Episodic knowledge store
├── .specify/
│   ├── memory/
│   ├── scripts/
│   └── templates/
├── .claude/
│   ├── commands/
│   │   └── speckit.*          # 9 speckit-derived slash commands
│   └── skills/
└── CLAUDE.md

Airframe providers

claude, github-copilot, opencode, opencode-go, opencode-zen, openrouter, bedrock — each speaks its native vendor SDK directly.

Workflow engine

Apache Burr Application state machines. Each command (plan, refuel, fly) is a Burr Application of @action-decorated async functions over a per-workflow Squadron that owns the airframe runtimes. Single-process, all coroutines on one event loop.

Target AI tools

Claude (primary), GitHub Copilot, OpenCode, OpenRouter, AWS Bedrock

03

Components

Maverick — Components

CLI Commands

Command Purpose
maverick init Initialize project, configure maverick.yaml
maverick runway seed Seed runway with codebase knowledge
maverick plan generate <epic> --from-prd <file> Generate flight plan from PRD
maverick refuel <epic> Decompose flight plan into beads
maverick fly --epic <id> --auto-commit Implement + validate beads
maverick fly --watch Continuous fly mode (polls for new beads)
maverick brief --human Prepare briefing for human review
maverick review <bead-id> Human review (approve/reject/defer)
maverick land --yes Curate commit history + merge

Speckit Slash Commands (9, from spec-kit)

Maverick bundles speckit-derived commands in .claude/commands/:

Command Purpose
speckit.specify Create/update feature specification → creates branch
speckit.clarify Clarify specification requirements
speckit.analyze Analyze spec for gaps
speckit.plan Create technical plan
speckit.implement Implement spec
speckit.tasks Break into tasks
speckit.taskstoissues Convert tasks to GitHub issues
speckit.checklist Quality checklist
speckit.constitution Project constitution

Five Canonical Agent Roles (configured in maverick.yaml)

Role Purpose
implement Write code per bead acceptance criteria
review Review diff with full enriched context
briefing Generate pre-flight briefing (contrarian findings, risk)
decompose Break flight plan into beads
generate Generate PRD / flight plan from brief

Bead Lifecycle

queued → assigned → in_progress → review → [approve → done] | [reject → correction_bead] | [defer → human_bead]

State Files

File/Dir Purpose
maverick.yaml Role→provider binding, project conventions
specs/ Per-bead spec directories (001-xxx pattern)
.maverick/runway/ Episodic knowledge store
.specify/ Specification memory and templates
05

Prompts

Maverick — Prompts

Excerpt 1: speckit.specify — Branch + Spec Creation

Source: .claude/commands/speckit.specify.md

Given that feature description, do this:

1. **Generate a concise short name** (2-4 words) for the branch:
   - Analyze the feature description and extract the most meaningful keywords
   - Create a 2-4 word short name that captures the essence of the feature
   - Use action-noun format when possible (e.g., "add-user-auth", "fix-payment-bug")
   - Preserve technical terms and acronyms (OAuth2, API, JWT, etc.)

2. **Check for existing branches before creating new one**:
   a. First, fetch all remote branches to ensure we have the latest information:
      ```bash
      git fetch --all --prune
      ```
   b. Find the highest feature number across all sources for the short-name:
      - Remote branches: `git ls-remote --heads origin | grep -E 'refs/heads/[0-9]+-<short-name>$'`
      - Local branches: `git branch | grep -E '^[* ]*[0-9]+-<short-name>$'`
      - Specs directories: Check for directories matching `specs/[0-9]+-<short-name>`

Technique: Branch naming as part of spec creation. The spec command creates a numbered branch (001-user-auth) matching the spec directory (specs/001-user-auth/) atomically, ensuring branch and spec stay in sync. The deduplication check prevents creating duplicate branches across remote/local/specs.


Excerpt 2: maverick.yaml — Convention Enforcement

Source: maverick.yaml (project configuration)

project_conventions: |
  ### Canonical Third-Party Libraries

  Use ONLY these libraries for their domains. Do NOT introduce alternatives or
  write custom implementations for what they already provide.

  - **VCS writes** (commit, push, branch): `maverick.library.actions.jj` (Jujutsu).
    Do NOT shell out to raw VCS CLIs for write operations.
  - **Retry logic**: `tenacity` (`@retry`, `AsyncRetrying`). Do NOT write manual
    `for attempt in range(retries):` loops.
  - **Secret detection**: `maverick.utils.secrets.detect_secrets`. Do NOT write
    custom regex for secret detection.

  ### Async-First

  - All agent interactions and workflows MUST be async.
  - Never call `subprocess.run` from an `async def` path — use `CommandRunner`.

Technique: YAML-based convention document injected into agent context. The project_conventions field in maverick.yaml is a verbatim text block that agents receive as their constraint set. The grep-based checker validates the same conventions pre-implementation, making the YAML both a human-readable guideline and a machine-checkable ruleset.


Excerpt 3: Enriched Review Context (described in README)

Source: README.md

Reviewer agents receive the full work unit spec
(acceptance criteria, file scope), pre-flight briefing (contrarian findings,
risk assessment), and runway historical context

Technique: Multi-source context enrichment for review agents. Rather than reviewing a diff in isolation, Maverick's review agent receives: (1) the acceptance criteria that define success, (2) a contrarian briefing that argues against the implementation approach, (3) historical outcomes of similar beads from the runway. This is the most sophisticated review context assembly in this batch.

09

Uniqueness

Maverick — Uniqueness

Differs from Seeds

Closest seed is taskmaster-ai (task graph with acceptance criteria, per-task decomposition, multi-agent execution). Maverick differs from taskmaster-ai in four ways: (1) enriched review context — Maverick's review agents receive the bead spec + contrarian briefing + runway history, not just the diff; (2) multi-provider role binding — five canonical roles are each independently configurable to any supported provider, whereas taskmaster-ai hard-codes its model tiers; (3) Jujutsu VCS for write operations, providing snapshot/rollback safety that Git branches alone don't offer; (4) human-in-the-loop escalation as a first-class primitive — when agents exhaust fix attempts, the work becomes a human-assigned bead rather than a failure, enabling mobile-friendly human review. The Apache Burr state machine as the workflow engine is unique in this batch — no other framework uses a formal state machine library.

Positioning

Maverick is the most architecturally sophisticated PRD-to-code pipeline in this batch that isn't Loki Mode. It is distinguished by the enriched review model and the bead-based unified work graph (agents and humans create work for each other in the same graph). It targets teams running Claude Max subscription OAuth or GitHub Copilot without separate API keys.

Observable Failure Modes

  1. Alpha quality (0.2.0.dev9): API instability expected. Not recommended for production.
  2. Jujutsu requirement: jj is not widely installed. Adds a non-trivial prerequisite.
  3. bd CLI dependency: The bead management tool is a separate product — teams must adopt or integrate it.
  4. Airframe dependency at rc1: airframe-agents>=0.9.0rc1 is itself pre-release.
  5. No web UI: The maverick review interface is terminal-only, limiting accessibility for non-developer stakeholders.
  6. Cross-epic serialization: All epics serialize even when independent, limiting parallelism for large multi-epic projects.
04

Workflow

Maverick — Workflow

Pipeline Phases

Phase Command Agent Roles Artifact
Init maverick init maverick.yaml
Seed maverick runway seed .maverick/runway/
Plan maverick plan generate <epic> --from-prd <file> generate + decompose flight plan
Refuel maverick refuel <epic> decompose beads with acceptance criteria
Fly maverick fly --epic <id> implement + review + briefing code + audit log
Review maverick review <bead-id> human approve/reject/defer
Land maverick land --yes curated commits + merge

Fly Phase Detail

Per bead:

  1. Grep-based convention check (pre-implementation) → block on antipattern violations
  2. implement agent writes code per acceptance criteria
  3. briefing agent generates pre-flight briefing (contrarian findings, risk)
  4. review agent receives: diff + bead spec + briefing + runway context
  5. Review outcome:
    • Approve → bead complete → commit
    • Reject → create correction bead → back to implement
    • Defer (after N fix attempts exhausted) → create human-assigned review bead

Cross-Epic Dependency Wiring

New epics automatically depend on existing open epics. Tasks within an epic can parallelize; epics execute serially.

Continuous Mode

maverick fly --watch polls for new beads continuously, enabling concurrent plan/refuel in another terminal while fly drains work.

Human Escalation

When agents exhaust fix attempts, they create human-assigned beads with full escalation context. maverick review provides approve/reject/defer UI. Correction beads flow back to agents after human review.

Approval Gates

  1. Convention check: grep-based antipattern scan blocks before implementation
  2. Per-bead review: approve/reject/defer
  3. Human escalation: after N agent fix failures
  4. Land gate: maverick land requires explicit --yes

Artifacts

Artifact Location
Flight plan specs/<epic>/
Bead specs specs/<N>-<name>/spec.md
Runway knowledge .maverick/runway/
Audit log per-bead in runway
06

Memory Context

Maverick — Memory & Context

State Storage

File-based under:

  • specs/ — per-bead spec directories
  • .maverick/runway/ — episodic knowledge store (bead outcomes, review findings, fix attempts)
  • .specify/memory/ — specification memory

Runway Knowledge Store

Episodic records accumulated over time:

  • Bead outcomes (what succeeded/failed)
  • Review findings (patterns reviewers have flagged)
  • Fix attempts (what approaches were tried per bead)

These are searched via BM25 full-text search (rank-bm25) and injected into reviewer context.

Persistence Scope

Project-level. .maverick/runway/ accumulates context across all bead executions in the project.

Cross-Session Handoff

Yes — all state is file-based. maverick fly --watch polls continuously, enabling interruption and resumption.

Context Compaction

Apache Burr manages state transitions. Each command is a bounded state machine — the Squadron that owns airframe runtimes is per-workflow, not per-session, enabling clean context boundaries.

Memory Type

File-based with BM25 full-text search. Not vector-based.

Search Mechanism

BM25 full-text search for runway knowledge retrieval.

Prompt Chaining

Yes — flight plan → bead specs → enriched review context → correction beads. Each stage's output becomes a named input to the next.

07

Orchestration

Maverick — Orchestration

Multi-Agent

Yes. Five canonical agent roles run as separate airframe agent instances. Tasks within an epic can parallelize; epics serialize via cross-epic dependency wiring.

Orchestration Pattern

Task-decomposition-tree with intra-epic parallelism. The flight plan is a dependency graph; epics serialize, tasks within epics fan out.

Isolation Mechanism

Jujutsu (jj) snapshots per bead provide rollback safety. No explicit git-worktree per bead, but jj's snapshot semantics serve a similar purpose.

Multi-Model

Yes. Five canonical roles, each binding to a separate provider+model in maverick.yaml:

Role Configurable Provider
implement claude, copilot, opencode, openrouter, bedrock
review independent binding
briefing independent binding
decompose independent binding
generate independent binding

Each provider speaks its native SDK. Misconfigured bindings fail at maverick fly open with a clear UnsupportedBindingError.

Execution Mode

Continuous + event-driven. maverick fly --watch polls continuously. Apache Burr state machine transitions are async.

Crash Recovery

Yes — Apache Burr state machine tracks transitions. Bead status (queued/in_progress/review/done/failed) is persisted. Failed beads are retried; exhausted beads become human-assigned beads.

Context Compaction

Per-workflow Squadron scope. State machines own their runtimes, enabling clean context boundaries between beads.

Cross-Session Handoff

Yes — bead status and runway knowledge persist in .maverick/.

Consensus Mechanism

None — review is approve/reject/defer by a single review agent (no quorum).

Prompt Chaining

Yes — bead spec → implementation → briefing → enriched review context → correction/approval.

08

Ui Cli Surface

Maverick — UI & CLI Surface

CLI Binary

  • Name: maverick (also maverick-cli)
  • Package: maverick-cli (Python)
  • Entry: maverick.main:cli (Click)
  • Version: 0.2.0.dev9

Subcommands

Command Purpose
init Initialize project
runway seed Seed runway knowledge
plan generate Generate flight plan from PRD
refuel Decompose into beads
fly Implement + validate beads
brief --human Generate human review briefing
review Human review UI
land Curate commits + merge

Local UI

Terminal UI (Rich-based). maverick review provides an interactive approve/reject/defer interface in the terminal. No web dashboard.

IDE Integration

.claude/commands/speckit.* — 9 slash commands for Claude Code. CLAUDE.md, GEMINI.md, AGENTS.md are all present in the repo.

Observability

  • Per-bead audit records in .maverick/runway/ (structured, searchable via BM25)
  • structlog for structured logging in all modules
  • Apache Burr progress events stream out during workflow execution

Terminal Output

Rich (rich library) for formatted terminal output throughout. Click for command parsing.

Related frameworks

same archetype · same primary tool · same memory type

Claude-Flow / Ruflo ★ 55k

Eliminates single-agent context limits and sequential bottlenecks by orchestrating fault-tolerant swarms of specialized AI agents…

Hermes Agent (NousResearch) ★ 168k

Self-improving personal AI agent with closed learning loop, 7 terminal backends, and messaging gateway — not tied to any AI…

OpenCode ★ 165k

Terminal-first AI coding agent with multi-model routing, native desktop app, and a typed .opencode/ configuration system for…

OpenHands ★ 75k

Open-source AI software development platform (open-source Devin alternative) with Docker sandbox isolation, 77.6% SWE-bench…

DeerFlow ★ 70k

Long-horizon superagent that researches, codes, and creates by orchestrating parallel sub-agents with isolated contexts in Docker…

oh-my-openagent (omo) ★ 60k

Multi-provider AI agent orchestration for OpenCode: escape vendor lock-in by routing Sisyphus (Claude/Kimi/GLM) and Hephaestus…