ADR 0100: Step contract and composition checks

Status: accepted, 2026-09-26

Context

The engine must run steps written by many hands — built-ins, repository authors, later step families — without any of them reaching past the ports (#39). Steps need one contract for what they declare (name, schema, ports, policy class), and the harness must refuse bad compositions loudly and completely before anything runs.

Decision

Consequences