The runner. One package per component; each gets its own contract README.md when its code
lands (created together with its first failing test — see ../docs/tdd.md).
To work on a component, read only: this map → that package's README → the spec/plan section it serves. Nothing else.
| Package | Purpose | Serves |
|---|---|---|
runner/ |
engine, scenario framework, manifest, run context, result model, scheduler | all |
fixtures/ |
built cloud services: gateway, cds_stub, est_stub, dhcp, dns, net_control |
all plans |
observation/ |
signal collectors → unified timeline → assertion API | all plans |
oracle/ |
conformance reference verdict (+ rendered UCI for L2) | config-conformance |
corpus/ |
config corpus generators (golden, schema-walk, mutation, capability-mismatch) | config-conformance |
coverage/ |
schema-node inventory + coverage gate | config-conformance |
pki/ |
PKI authority — pre-creates the CA hierarchy + static cert bundles | pki, discovery |
dut/ |
DutController boundary + drivers (poe_tftp, manual, ssh, wired_client) |
all plans |
suites/ |
certification scenarios per plan (the product), grouped ucentral/ discovery/ pki/ config_conformance/ |
all plans |
Conventions and rules: ../docs/coding-standard.md. Runner tests live in ../tests/, not here.