Skip to content

P1: Every Component Is A Harness

Every component is a harness.

A harness wraps execution with a declared contract, verification, evidence, failure modes, and a fallback. In code this is an AIBlock carrying a BlockContract. There is no separate class Harness โ€” "harness" is the conceptual name, AIBlock is what you import.

Why it matters

If a component is not a harness, it cannot be safely routed, verified, or learned from. The contract is what lets the orchestrator decide whether a result is verified, qualified-draft, or blocked-escalated, attach evidence, and fall back when a check fails. A bare function call has none of that โ€” so every G6 component is built as a harness.

How it is enforced

The @block_contract decorator is mandatory for allow-listed components, and verification is owned by the harness itself (C5). Together they make "every component is a harness" a checked invariant rather than a convention.

Primary gate: C1: Block contract mandatory. Related: C5: Verify on harness ยท Production Harnesses.