PD Runtime Observation Apply + Safe Dry-Run — 00 Readme First
00 — Readme First
Macro: PROCESS_DISCOVERY_RUNTIME_OBSERVATION_APPLY_AND_SAFE_DRY_RUN
Date: 2026-06-04 · Status: PARTIAL (all safe branches done live) · Execution mode: EXECUTION_MODE
Live mutation: YES — 2 new tables + 4 new RO views + 1 SIMULATED_DRY_RUN observation set (1 run + 2 components). 0 births (birth_registry 1,158,162 before == after). 0 process born / 0 canon / 0 approval approved / 0 taxonomy node / 0 IU edit / 0 DOT executed / 0 workflow run / 0 events activated.
What this macro moved
From "runtime observation substrate is apply-ready" → "substrate is LIVE and a safe observation proves the discovery chain distinguishes structural / simulated / dry-run / real evidence."
Headline results
- Observation substrate LIVE.
process_run_observation+process_component_observationcommitted. Amended over the staged DDL to add the first-classevidence_typecolumn (REAL_RUN | DRY_RUN | SIMULATED_DRY_RUN | BACKFILLED_EVIDENCE) the macro requires — the staged version only had a jsonbdry_runflag. - Write-path proven. One SIMULATED_DRY_RUN run for the KG pilot pair
DOT_KG_EXPLAIN + DOT_KG_EXPLAIN_VERIFY, idempotency-keyed, read back through two independent channels. - v3 runtime-aware views LIVE.
runtime_observed,candidate_status_v3,verified_candidates_v3,birth_readiness_v3. Invariant enforced and proven: simulated/dry-run evidence can NEVER raiseverified_candidate. - dot:kg rescored honestly: v2
runtime_missing→ v3simulated_observed(gateSIMULATED_PROOF_ONLY_NOT_VERIFIED). Still not verified. - True dry-run = WRAPPER_NEEDED. No DOT runner exists (KG DOTs are
agent_api/pg_function,script_pathNULL,usage_count0). No execution performed. - Next macro: DOT_EXECUTION_WRAPPER_CORRELATION_PATCH.
Read order
01 live state → 02 substrate apply → 03 write-path proof → 04 dry-run feasibility → 05 v3 views → 06 rescoring → 07 RP/UI → 08 rollback → 09 next macro → 10 final summary → 11 MCP checkpoint.
Channels
RO = query_pg (MCP, read-only role). RW = ssh contabo → docker exec -i postgres psql -U directus -d directus. KB = upload_document. Container psql had no 5s timeout; query_pg has a 5s cap (heavy birth_readiness_v2 joins time out there — use container psql).