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.