Agent-native project execution
Every other tracker is a list built for a human to read top-to-bottom. AgentLedger is a work queue an AI coder can run unattended: decompose a spec into tasks, claim them without collisions, batch by which files they touch, and rank by the dependency graph — all through one self-describing MCP.
# an agent pulls a whole code-neighborhood in one call next_cluster({ agent_id: "builder-1", max_items: 3 }) → { claimed: 3, cluster: [ { id: "AL-13", status: "in_progress", claimed_by: "builder-1", seed: true }, { id: "AL-14", shared: ["backend/app/routers/*"] }, { id: "AL-15", shared: ["backend/app/routers/*"] } ] }
The problem
Point an agent at a normal tracker and it grabs the top card, loses track of what it already touched, collides with the next agent, and has no idea which work unblocks the rest. The primitives a human tracker optimizes for — a single ordering, drag-to-reorder, a status dropdown — are the wrong shape for an autonomous loop.
How it works
Six calls form a cycle an agent runs on its own. The spec is the source of truth at both ends; completing work emits the next batch.
Why it works
claim_next atomically assigns the best ready item with an optimistic guard — two agents never take the same task. Leases + heartbeats free a crashed agent's work automatically.
Items declare the files they touch. next_cluster claims a whole code-neighborhood in one call, so an agent works one area instead of context-switching across the codebase.
Readiness comes from real dependency links, not a flag. The backlog ranks ready-first, then by what unblocks the most, request votes, effort, and staleness — never handing out blocked work.
Items trace to a PRD section. decompose_prd turns a spec into tracked tasks; prd_coverage reports what's built, in progress, and still a gap — closing the loop with the doc.
The interface
REST for people, MCP for agents — both over the exact same service layer, so an agent's write shows up in the web tracker instantly. The 20-tool surface is self-describing: typed inputs and outputs, read-only / destructive annotations, idempotency keys so retries never duplicate, pagination, and uniform structured errors. An agent can validate everything it sends and everything it gets back.
pgvector semantic recall. Finishing an item auto-extracts its lessons into memory — the loop doesn't repeat past mistakes.
One API key = one agent, scoped to one workspace. Run a whole team of agents against separate projects with no cross-talk.
GitHub issues route to the right project and link back; PRDs two-way sync with a markdown folder — conflict-flagged, never clobbered.
One docker compose up and it's live on your machine — Postgres, API, and UI. Fully offline; no keys, no accounts, no external calls required.
Managed offering
AgentLedger is local-first and runs today. A managed, multi-tenant SaaS — hosted memory, team workspaces, agent fleets — is next. Leave your email and we'll reach out when the waitlist opens.
No spam — one email when it's ready. Prefer to just talk? [email protected].