PD Runtime Observation — 04 True Dry-Run Feasibility
04 — True Dry-Run Feasibility (Workstream C)
Pilot pair chosen
DOT_KG_EXPLAIN (producer) + DOT_KG_EXPLAIN_VERIFY (verifier), from v_process_discovery_dot_family_pairs (pair_group=DOT_KG_EXPLAIN, pair_complete=t). Chosen because: KG is the only family with 18/18 complete pairs; clean producer→verifier semantics; both legs already structurally start+end. (Runner-up DOT_KG_CONVERSE_EXTRACT+_VERIFY rejected: verifier engine hybrid vs producer agent_api — extra surface.)
Live inspection of the pair (dot_tools)
| code | paired_dot | trigger_type | engine | script_path | file_path | last_executed | usage_count |
|---|---|---|---|---|---|---|---|
| DOT_KG_EXPLAIN | DOT_KG_EXPLAIN_VERIFY | on-demand | agent_api | NULL | NULL | NULL | 0 |
| DOT_KG_EXPLAIN_VERIFY | DOT_KG_EXPLAIN | dual | agent_api | NULL | NULL | NULL | 0 |
Feasibility findings
- Input requirements: none wired — no fixture, no input contract. (
agent_apiengine implies an external agent call, not a SQL function.) - Output destination: undefined — no
output_refconvention exists for DOT tools; KG writes would land inuniversal_edges/ knowledge graph (production). - Mutation behavior: unknown/unbounded — KG DOTs (classify/validate/link/explain) are designed to write graph rows; there is no asserted
mutating=falseplan mode forDOT_*tools. - Dry-run flag: none for DOT tools. Plan/verify modes exist only in the IU-command layer (
dot_iu_command_run.run_mode ∈ plan/verify/apply) — a different layer that governs IU mutation commands, not DOT execution. - Test fixture: none.
- Rollback/cleanup: none defined for a DOT run.
- Worker/queue dependency: KG DOTs are not queue-driven; there is no live runner that picks a DOT and executes it.
script_path/file_pathNULL,usage_count0 confirm they are declared-but-never-invoked.
Classification: WRAPPER_NEEDED
A true dry-run is impossible today without a wrapper that: (1) mints process_run_id/correlation_id; (2) invokes the DOT in an asserted plan/verify-only mode (no apply, no business write); (3) routes any output to a temp/test namespace; (4) logs evidence_type=DRY_RUN observations; (5) guarantees birth_registry and KG edges unchanged; (6) cleans up. None of (1)–(6) exists.
Decision: DO NOT EXECUTE. 0 production DOT executed this macro.
The SIMULATED_DRY_RUN observation (doc 03) substitutes for runner proof: it proves the ledger + correlation + scoring path end-to-end without touching any DOT. The remaining gap is purely the execution wrapper → next macro (doc 09).