Runtime & Integrations · Integrations · optional · deletable
Optional Lanes
Power on existing ports — and how to delete one.
Four optional lanes attach to existing ports through
the lane framework. Each is opt-in and
deletable: removing its file leaves the required suite green. None grants authority.
These add power without contaminating the required path. Each declares a deletion rule, and the “delete” step is literally “remove the file.”
The four lanes
| Lane | Port · file | Behavior & deletion |
|---|---|---|
LiveJudgeModellive-judge | JudgeModel · judge_live.py | Stdlib urllib HTTPS POST — no provider SDK; a non-/https endpoint raises MissingPrerequisite; a non-finite score ⇒ MALFORMED. Delete: the required judge suite stays green. |
FileScorecardExportSinkscore-sink-export | ScoreSink · score_sink_export.py | Read-only to_dict() publish to a local dir; an OSError ⇒ LaneResult(BLOCKED); a failed publish must not change the verdict. Delete: local JSON + MD reports intact. |
StubBackendTraceSourcetrace-backend | TraceSource · trace_backend_stub.py | Reads a local {"spans": [...]} file — no SDK; the vendor wrapper is dropped so no vendor object reaches the core. Delete: local JSONL trace route intact. |
AsyncObservationTraceSourceasync-observation | TraceSource · async_observation.py | Reads a recording — observes, never orchestrates; carries parent_span_id/concurrent/timing as envelope metadata. Delete: required trace routes intact. |
Evidence, not authority
A lane may inform diagnostics but cannot override authority, and a ScoreSink failure cannot hide
or change the core verdict. See Extension Lanes
and docs/EXTENSION_GOVERNANCE.md.