DOT Wrapper — 05 KG Producer/Verifier Pilot Package
05 — KG Producer/Verifier Pilot Package (Workstream D)
One pair fully specified so the next macro can run a true dry-run without rediscovery.
Chosen pair
DOT_KG_EXPLAIN (producer) + DOT_KG_EXPLAIN_VERIFY (verifier). Both execution_engine=agent_api, paired_dot mutually set, pair_complete=t. (Runner-up DOT_KG_CONVERSE_EXTRACT+_VERIFY rejected: mixed engines agent_api/hybrid.)
Pilot specification (ready-to-run identifiers)
| field | value |
|---|---|
| process_candidate_code | PROC-CAND:dot:kg |
| process_run_id (format) | uuid v4, minted per run (e.g. gen_random_uuid()) |
| correlation_id (format) | DRYRUN:dot:kg:explain:<YYYYMMDD>:<short> (distinct prefix from SIMRUN:) |
| producer component_run_id | gen_random_uuid() |
| verifier component_run_id | gen_random_uuid() |
| idempotency_key — run | DRY:dot:kg:explain:run:<date> |
| idempotency_key — producer | DRY:dot:kg:explain:producer:<date> |
| idempotency_key — verifier | DRY:dot:kg:explain:verifier:<date> |
| source_system | dot_exec_wrapper (not dry_run_harness — distinguishes runner output from ledger sim) |
| evidence_type | DRY_RUN (only after a real plan-mode invocation; until then SIMULATED_DRY_RUN) |
Fixture / input (MISSING — must be defined by runner macro)
- Input fixture: a KG node/edge id or a small explain prompt. None wired today (
agent_apihas no input contract indot_tools). - Expected output: producer emits an explanation artifact →
output_ref; verifier consumes it asinput_refand emits a pass/fail verdict →output_ref. - No-mutation guarantee: the agent_api call MUST run in an asserted plan/verify-only mode that does NOT write
universal_edges/KG rows; output routed to a temp/test namespace or toevidence_refonly. - Cleanup: delete by
source_system='dot_exec_wrapper'+ correlation prefixDRYRUN:(same shape as the existingdry_run_harnesscleanup in the rollback).
Event sequence (when activated — default inactive)
process.run.started (header) → process.step.started (producer) → process.step.completed (producer) → process.step.started (verifier) → process.step.completed (verifier) → process.run.completed. Failure path → process.run.failed. (doc 06)
Observation rows expected (one true dry-run)
1 process_run_observation (evidence_type DRY_RUN, status completed) + 2 process_component_observation (producer + verifier, sharing run_id + correlation_id).
Classification: WRAPPER_READY_BUT_FIXTURE_MISSING → BLOCKED_BY_NO_RUNNER
The ledger/correlation/idempotency/safety path is DRY_RUN_READY (proven this macro). What is missing to reach a true DRY_RUN observation:
- a DOT runner that performs the
agent_apicall (does not exist), and - an asserted plan/verify-only mode for KG DOTs (does not exist), and
- a fixture (input + expected output) (does not exist).
⇒ Do not execute. The single committed observation stays SIMULATED_DRY_RUN. The next macro builds the runner + fixture, then this package runs unchanged.