agent-compose
docs
Compose the context, then diff it.
Agent-compose sits between the people who author reusable knowledge and the harnesses that consume it. A KDL request names a role, a delivery mode, and its sources, and what comes back is one immutable tree of plain files.
That tree carries no credential, no mount, and no command. A role changes what an agent knows and never what it may do, which is why the whole thing is readable before a session starts.
If you are still deciding whether any of that is your problem, the case for agent-compose is the better place to start. These pages assume you already decided.
Synced from agent-compose 73b35a7, 2026-08-26. A copy, so the repository is the source of truth if the two disagree.
Getting started
Guides
- Native role launch One command, one caller-assigned role.
- Launch-time refresh Freshen the context, then exec the real command.
- Cascade Doctrine sources into each harness's global context.
- The staged home Turn a bundle into a home tree a launcher can boot.
- Identity overlay One seat's identity, as a card or as JSON.
- Status line The composition facts worth keeping visible.
- whoami and short ids What a session calls itself, and how it knows.
- Person packages Replace the shipped roster entirely, never partly.
- Evaluation The board derives from the roster. A human grades it.
Reference
- KDL contracts Requests and policy, rejected on anything unknown.
- The bundle protocol One immutable tree, entered through `manifest.json`.
- Bundle manifest What was composed, and where its entry points are.
- Decision trace Every pick and its reason, recorded as it happens.
- Load-point projection Where each harness reads, and what gets placed there.
- The person contract The shape an external package has to match.
- Identity primitives Emblem, motif, geometry, sound, and the seat's name.
- Personalities Profiles, libraries, and the signature-and-bond pairing.
- Skill catalogues Read the effective profile. Inspection changes nothing.
- Skill selectors Which ordinary skills a role gets, and where they land.
- Claude launch identity Two flags, so nothing has to land in `~/.claude`.
- Claude Code UI surfaces Themes, status lines, and verbs, read off the binary.
- Harness vendoring and model tiers Three facts the harness never published, pinned in testdata.
- The mark and banner A spool of thread, and every raster it ships as.
Concepts
- Integration and delivery The cascade owns a host. Projection owns a container.
- Boundary and content ownership The owner is a relationship, never an authority.
- Role boundaries One behavior, taken out of many charters and given to one.
- Boundary omission What a defer means when nobody is there to receive it.
- Role briefings and methods What a charter carries, and what stays lazy.
- Role selection Task shape may suggest a role. It never overrides one.
- Role adjacency The two roles a seat is most likely to absorb.
- Native adaptation When a live session may switch, and when it may not.
- The eval role and its budget The evidence loop, and the context a role fits inside.
Contributing