Skip to content

Decisions

Choices that affect more than one repo. Each tool keeps its own ADRs; this page records the ones that bind them together.

Accepted means the owner decided it. Built means it is on main in every repo it touches. Proposed means it is written and waits for the owner. Tower and Spaceport are private repositories, so their ADRs and issues are named without links.

The planes and the harness

Decision Status Where it is recorded
Each tool owns one plane: the team harness repo defines, hangar runs, flightdeck judges, Tower decides. ai-dlc authors the optional workflow plugin. hangar does no analysis. Accepted hangar spec 0014 §1, flightdeck ADR 0001, ai-dlc ADR 0001
No big harness spec. A harness is native files plus a small lock, with no new format or compiler; its identity is harness_digest, computed the same way by the lock and the manifest. Accepted hangar spec 0014 §2, hangar docs/harness-lock.md
A public example harness, separate from the team's real one, which is internal to the owner's employer. The example is Sean-Koval/team-harness. Accepted (owner, 2026-10-17) agent-factory#4, hangar#138
ai-dlc refocuses on the workflow plugin, machine provisioning and the CI-gated work lifecycle. It neither defines nor evaluates harnesses; ai-dlc eval moved to flightdeck. Accepted ai-dlc ADR 0001, ai-dlc#189
Trackers are GitHub Issues, Jira and GitHub Projects. Linear is not supported. Accepted ai-dlc tracker boundary

Running and judging

Decision Status Where it is recorded
flightdeck reads exports and the outbox, never hangar's database or live API during analysis. Accepted flightdeck ADR 0001
Code is public, run data is private. Accepted flightdeck ADR 0002
The outbox layout is v1/runs/{date}/{session}.{run}/ with run.json written last as the completion marker. Built hangar docs/api/outbox.md, hangar#163 (PR #214)
The GCS → Parquet compactor belongs to flightdeck. Built flightdeck#5, flightdeck deploy/compactor/
flightdeck owns sampling. The hangar ↔ flightdeck seam is a trial against an immutable pin set; hangar runs each trial exactly as pinned. Built on hangar's side; flightdeck's client is flightdeck#25 hangar#178, hangar docs/api/trials.md
ADR checks: use flightdeck's behavior-spec grammar; the convention for ADRs is ai-dlc's. Built; the nightly runner is flightdeck#15 ai-dlc#207, flightdeck#14
Reviewer attention is the scarce resource. Admission holds a person's new jobs while five of their agent PRs wait on review (HANGAR_PERSON_MAX_OPEN_AGENT_PRS). Built hangar#159; attention per merged PR as a metric: hangar#278
flightdeck's line budget is 3,785 counted lines, up from the plan's 1,500 through flightdeck ADRs 0003–0005. ADR 0005 is agent-proposed and asks for owner review. Awaiting owner review flightdeck ADRs 0003, 0004, 0005

Governing

Decision Status Where it is recorded
The Govern plane's product is named Tower. It replaces "Agent workspace", "governed agent workspace" and "governed workspace" in user-facing text; the repository is Sean-Koval/tower. Accepted Tower ADR 0017 (Tower#36)
Tower decides and hangar enforces. Decisions fail closed and roll out per kind: off → shadow → enforce. Proposed; Tower's side is built (Tower#13) hangar spec 0015, Tower ADR 0015
Tower's events reach hangar on one HMAC-signed route; hangar re-reads the decision before acting. Proposed; Tower's side is built (Tower#17), hangar's is hangar#190 hangar spec 0015 §12
Team knowledge lives in git, which is the source of truth; the pull request is the only write gate; agents only propose. Proposed Tower ADR 0016
OpenSpaces is inspiration for Tower's UI only, not a base to build on: it lacks consistent authorization and agent execution. Plan; not yet in an ADR The suite architecture plan
Spaceport is frozen: security fixes and cleanup only, until its MCP tools ask Tower's decision point. Accepted (2026-10-16) spaceport#10; asking Tower: spaceport#14

Design

Decision Status Where it is recorded
One design system, Airframe, across every site and tool; this repo is its source of truth. Accepted airframe/, with its values in airframe/tokens.json