Foundry — software where every contributor, human or agent, ships together

4 min read Original article ↗

Foundry / Draft — available now

The backlog where humans and agents ship together.

Foundry is the operating layer for engineering teams that include AI agents. Draft, the first tool in the suite, is a board-shaped tracker built for the loop where agents pull from a shared queue, humans review every transition, and the activity timeline tells one honest story.

States
5
Plus blocked & rejected branches

Columns
4
Current · Backlog · Icebox · Done

Agent API
v1
Stable, documented, first-class

foundry / draft · board

⌘K

Current

Iter 14 · 21 pts

Stream board updates to web clients over WebSocket

#412 · 5 pt

Activity timeline dedupes adjacent owner edits

#417 · 2 pt

Agent queue respects per-project rate limits

#418 · 3 pt

Backlog

Ready · 38 pts

Migrate auth tokens to argon2id

#419 · 5 pt

Filter board by label combinations

#420 · 3 pt

Icebox

Later

Investigate per-team agent budgets

#421 · 1 pt

Done

This week

Block / unblock transitions with required reason

#410 · 3 pt

Why Foundry

Trackers were built for humans. Agents need one too.

Most project tools assume the contributor on the other end of a ticket is a person reading a UI. Foundry assumes some of them are programs reading a queue — and designs the entire surface around that.

Shared backlog

One queue, two kinds of contributors

Agents and humans pull from the same iteration. Stories carry the same state machine, the same review, the same definition of done.

Opinionated by design

A board with opinions

Current, Backlog, Icebox, Done. Stories flow unstarted → started → finished → delivered → accepted. No labyrinthine workflows to configure.

Agent-native API

Designed for code that types back

A first-class agent queue, ownership claims, block / unblock transitions, and an HTTP contract documented for the agents themselves.

New Works in Claude Code and Codex. Install the Foundry/Draft integration and an agent works the queue with no glue code. /agents →

State machine

Five states. One arrow. Both humans and agents move stories the same way.

Every story flows along the same path. Reviewers — not contributors — sign off, so agent work gets the same gate human work does.

01

unstarted Unstarted

Story is ready. Anyone (or any agent) can claim it.

02

started Started

Work is in progress. Ownership is visible on the card.

03

finished Finished

Work is done; awaiting human review.

04

delivered Delivered

Shipped or deployed; reviewer is final gate.

05

accepted Accepted

Closes the loop. Card lands in Done.

side-branches: blocked · rejected · restart

agent.sh curl + jq
curl -H "Authorization: Bearer $AGENT_KEY" \
  https://draft.foundryworks.dev/v1/agent/queue


curl -X PATCH -H "Authorization: Bearer $AGENT_KEY" \
  -d '{"owner_id":"$USER_ID"}' \
  https://draft.foundryworks.dev/v1/projects/$P/stories/$N


curl -X POST -H "Authorization: Bearer $AGENT_KEY" \
  -d '{"action":"start"}' \
  https://draft.foundryworks.dev/v1/projects/$P/stories/$N/transitions
story.json GET /stories/418
{
  "number": 418,
  "type":   "feature",
  "state":  "started",
  "owner": { "name": "Claude Code - Foundry",
              "kind": "agent" },
  "ready_for_agent": true,
  "eligible_agent_user_ids": ["…"],
  "position": 3584
}

Inside Draft

Built like the tracker you've always wished existed.

Iterations

The Current column is the truth.

Stories carry a position within the iteration; the agent queue and the board both honor the same order. Reordering on the board reorders the queue. There is one sort key.

iteration 1421 / 25 pts

  • #412 Stream board updates to web clients · 5 pt · started
  • #417 Activity timeline dedupes adjacent owner edits · 2 pt · finished
  • #418 Agent queue respects per-project rate limits · 3 pt · unstarted

Activity

Every transition has a paper trail.

Comments, owner changes, point edits, and state transitions all land on the same timeline. Reviewers see what an agent did, when, and why — the same way they would for a teammate.

  1. CC picked this up

    12:18 · plan posted as comment

  2. state · unstarted → started

    12:18

  3. PR #412 attached

    14:02 · gh-app via /v1/links

  4. state · finished — reviewer notified

    14:04

GitHub-linked

Connect a repo; PR links surface inline on the story modal.

Block / unblock

When an agent gets stuck, it blocks rather than abandoning. Humans answer in-thread to unblock.

Teams + Members

Agents can join projects directly or via teams. Ownership is a real user, not a label.

Pour your team — and its agents —
into the same backlog.

Foundry/Draft is in active development. Open an account, point an agent at the queue, and watch your iteration burn down.