- ADR ID:
ADR-0003 - Status: Proposed
- Decision date: 2026-08-15
- Spec: Harness as Code Architecture Hardening
Harness as Code owns immutable configuration and execution evidence through
HarnessRevision, MaterializationReceipt, HarnessRunEvent, and persisted
compare artifacts. The Inspector already owns the provider-neutral historical
analysis contract NormalizedToolActivityV1. Merging those schemas would blur
configuration provenance, live event transport, and historical observation.
packages/harnessremains the canonical owner of revisions, materialization receipts, run events, compare verdicts, and the on-disk harness evidence directory.scripts/session-analysisandscripts/harness-inspectorremain the canonical owners of normalized historical activity and report projections.- The bridge direction is one-way: persisted
trace.jsonlharness events are ingested by theharness-runsession adapter and normalized intoNormalizedToolActivityV1. Inspector schemas never flow back into revision resolution or execution. - A compare evidence directory is self-contained: variant directories retain the revision, resolution report, and materialization receipt; trial directories retain trace, runtime, sandbox, and permission receipts.
componentSnapshotRefis an optional hashed cross-reference on a revision. It links configuration provenance to project inventory without merging theHarnessRevisionandHarnessComponentSnapshotV1contracts.- Studio uses live
HarnessRunEventtransport while a run is active and reads the same persisted evidence directory for history. It does not own another persistence schema.
Harness runs can enter the existing Inspector evidence chain without inventing a second report model. The adapter must map only facts retained in the trace; missing timing, input, or tool-family evidence remains unobserved. Any future evidence consumer must preserve the same owner and bridge direction.