Product

Every primitive that holds the task together.

Agent work needs a task-native record, not a commit-shaped one. Run Heddle inside the Git repo you already use, and these primitives compose into one coherent task. Threads as named tasks. Annotations attached to symbols. Attribution at the object model. Stable identity across rewrites.

01

Task threads

Many agents. One repo. No silent rewrites.

A thread is a named pointer into the DAG. Opening one creates an isolated worktree, sharing the main repository's object store. Many threads, zero extra disk. No coordination, no merge dance before the work is ready.

Threads track lineage structurally. A rebase, a collapse, or a merge produces a new state without overwriting the original, so another agent that forked earlier on the same thread keeps its view intact.

Most threads stay lightweight: a named pointer plus a lazy worktree that materializes only the files an agent reads. When a thread needs the full filesystem to operate freely (running tests, dropping scratch files, building artifacts), promote it to a heavy worktree with heddle thread promote. You only pay disk for the threads that actually need it.

bash$ heddle start task/biscuit-authz --task "require minting keypair at boot"thread started · worktree: .heddle/threads/biscuit-authz$ heddle start task/biscuit-callersthread started · worktree: .heddle/threads/biscuit-callers# threads keep intent — every fork stays addressable as the work moves.
02

Context annotations

Annotations that survive the refactor.

Constraints, rationale, and design intent belong next to the code they govern. Not in a wiki, not in a Slack thread, not in the session transcript of an agent that has already expired.

Annotations are structural. Each one is scoped to a file, a symbol, or a line range, and carried forward on every snapshot that touches its anchor. When the next agent opens the same function, it sees the reasoning before it starts editing.

atlas · Context

claude-opus-5-5 agent on reconnect in crates/grpc_hosted/src/sync.rs:88–121 at 711ec9de

Reconnect must hold the session lock; racing reconnects corrupt the stream cursor.

invariant

Luke on require_minting_keypair in crates/auth/src/keys.rs:33–60 at e81a6c3b

Production startup must call require_minting_keypair. configured_minting_keypair returns None for verifier-only deploys, so a deploy that picks it looks healthy and accepts tokens it can't sign.

constraintstartup

03

Attribution

Who made each change, and with which model.

Every capture records who made it, person or agent, and the model behind it. Recorded when the work was saved, never parsed from a commit message or guessed from a Git email.

Ask who wrote a file and the answer comes line by line: each person, each agent model, and what was there before.

atlas · feature/auth

crates/auth/src/verifier.rs
  • feature/auth Reconnect the sync stream without dropping the session in review 1 open discussionactive 2m ago
04

History model

Rebase creates a new object. The original still resolves.

States are content-addressed with BLAKE3. IDs are stable across clones, forks, and time. Rebase and collapse create new objects; the originals survive, reachable from whatever reference held them.

The kind of history you can point to a year from now, not because you remember, but because the record is structural.

atlas · feature/auth

  1. Base9c41e2a0

    Nothing recorded on this revision

  2. Earlier revision3f2b9e10

    Luke · anthropic claude-opus-5-5 pushed 2 filesHold the session lock on reconnect

    • cargo test passed
    • mara approvedon an earlier revision; doesn't carry to the headLock order matches the session store's.
  3. Head711ec9de

    Luke · anthropic claude-opus-5-5 pushed 1 filewire reconnect into sync loop

    • cargo test passed
    • clippy passed

    To land here

    • An approval on the head: mara's was on the revision before it
05

Governance

Access and review rules live on the spool.

A spool is Heddle's repository, and a spool can hold other spools. People join a spool by invitation, as reader, writer or administrator, and a grant can include the spools inside it.

What it takes to land is set on the spool too: required approvals, approval groups, required checks. See spools.

atlas · People and rules

  • @luke Luke WardAdministrator · owner · includes spools inside
  • @mara Mara OkaforWriter · includes spools inside
  • @anan Anan IyerReader

Protected changes

Changes into main touching crates/auth/**

  1. Checks cargo testclippy all must pass
  2. Review 1 approval from writers or above
  3. Security 1 from Mara Okafor, Anan Iyer
  4. Lands
  • The author's own approval doesn't count
  • Approvals reset when the change is revised