KB-4130

PD Runtime Observation Apply + Safe Dry-Run — 00 Readme First

3 min read Revision 1

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_observation committed. Amended over the staged DDL to add the first-class evidence_type column (REAL_RUN | DRY_RUN | SIMULATED_DRY_RUN | BACKFILLED_EVIDENCE) the macro requires — the staged version only had a jsonb dry_run flag.
  • 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 raise verified_candidate.
  • dot:kg rescored honestly: v2 runtime_missing → v3 simulated_observed (gate SIMULATED_PROOF_ONLY_NOT_VERIFIED). Still not verified.
  • True dry-run = WRAPPER_NEEDED. No DOT runner exists (KG DOTs are agent_api/pg_function, script_path NULL, usage_count 0). 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).

Back to Knowledge Hub knowledge/dev/reports/architecture/process-discovery-runtime-observation-apply-safe-dryrun-2026-06-04/00-readme-first.md