KB-1BB5

KG/dot-kg Discovery — 04 dot-kg Process Evidence Graph

8 min read Revision 1
dot-kgevidence-graphprocess-discoveryworkstream-c2026-06-04

04 — dot-kg Process Evidence Graph (Workstream C)

Evidence drawn live from dot_tools (36 DOT_KG_*), v_axis_process_inventory, dot_iu_command_run, job_queue, event_type_registry, and the law §6/§7. No DOT executed.

4.1 Per-DOT evidence (all 36, by pair)

Common to all 36: status=active, execution_engine=pg_function, script_path/file_path NULL, last_executed NULL (0 runs), paired_dot set, component_count=1 in inventory. Input/output below are hypotheses from the law's process A–J text (no per-DOT spec exists).

pair producer (Cấp B, on-demand, orphaned) verifier (Cấp A, cron/dual, in inventory) domain proc input → output (hypothesis)
1 EXTRACT COMPLETENESS (cron) kg.formation A row → entities+relations / audit coverage
2 CLASSIFY VALIDATE (dual) kg.formation A candidates → species+labels / validate→quarantine
3 LINK CONSISTENCY (cron) kg.formation A entities → edges+Qdrant / consistency audit
4 INTENT-CAPTURE INTENT-RECALC (cron) kg.business B chat/form → intent signal / recalc weights
5 RECOMMEND FEEDBACK (cron) kg.business B context → recommendation / feedback loop
6 JOURNEY-UPDATE TIMELINESS (cron) kg.business B event → journey node / staleness audit
7 CORRECT ORPHAN (cron) kg.quality C flag → correction / orphan-edge scan→auto-link
8 SIMILARITY HEALTH (cron) kg.quality C/D embedding → similar set / health snapshot 07:00
9 SCAFFOLD-BUILD SCAFFOLD-VALIDATE (cron) kg.scaffold E Đ38 → scaffold subgraph (dirty) / validate→clear dirty
10 SCOPE-PROJECT SCOPE-VERIFY (cron) kg.priority F person+role+goal → subgraph / ACL verify
11 PRIORITY-DECOMPOSE PRIORITY-RECALC (cron) kg.priority F goal → HTN priority tree / recalc on action done
12 DISCOVER+PROPOSE CONSTRAINT-CHECK (cron) kg.governance G/C2 data → proposed edges (APR) / realtime compliance gate
13 PROVENANCE-TAG PROVENANCE-AUDIT (cron) kg.governance gov edge → provenance JSONB / audit "no-prov=quarantine"
14 EXPLAIN EXPLAIN-VERIFY (dual) kg.explain C7 decision → explanation_path / verify path validity
15 SELF-SCORE SELF-LEARN (dual) kg.learning I outcome → self score / bounded weight update+snapshot
16 CONVERSE-EXTRACT CONVERSE-VERIFY (cron) kg.conversational J chat → extracted knowledge / auto-or-APR verify
17 EVICT-SCAN EVICT-VERIFY (cron) kg.eviction H stale scan → eviction candidates / verify→soft-delete
18 OVERRIDE-LOG OVERRIDE-AUDIT (cron) kg.governance C12 override → log (who/what/why) / audit outcomes

Health/error signal: none available (0 executions, kg_quality_log not yet producing). Confidence per DOT: structural HIGH (defined, paired, governed, law-backed), runtime ZERO (never run).

4.2 Component graph

                 ┌──────────────── PRODUCERS (Cấp B, on-demand, event-fired) ────────────────┐
   Đ38 / data /  │  EXTRACT CLASSIFY LINK  INTENT-CAPTURE RECOMMEND JOURNEY-UPDATE  CORRECT   │
   chat / goal → │  SIMILARITY SCAFFOLD-BUILD SCOPE-PROJECT PRIORITY-DECOMPOSE               │ → universal_edges / KG state
                 │  DISCOVER+PROPOSE PROVENANCE-TAG EXPLAIN SELF-SCORE CONVERSE-EXTRACT       │
                 │  EVICT-SCAN OVERRIDE-LOG                                                   │
                 └───────────────────────────────┬───────────────────────────────────────────┘
                                                  │  each producer pairs 1:1 with…
                 ┌────────────────────────────────▼──────────────────────────────────────────┐
                 │  VERIFIERS (Cấp A, cron/dual, scheduled)  — "Cấp A IDLE = Cấp B đúng"        │
   cron 02–07h → │  COMPLETENESS VALIDATE CONSISTENCY INTENT-RECALC FEEDBACK TIMELINESS ORPHAN │ → kg_quality_log
                 │  HEALTH SCAFFOLD-VALIDATE SCOPE-VERIFY PRIORITY-RECALC CONSTRAINT-CHECK      │
                 │  PROVENANCE-AUDIT EXPLAIN-VERIFY SELF-LEARN CONVERSE-VERIFY EVICT-VERIFY     │
                 │  OVERRIDE-AUDIT                                                              │
                 └─────────────────────────────────────────────────────────────────────────────┘

The cluster is a continuous 24/7 loop (no single linear start→end): producers fire on events, verifiers audit on cron; HEALTH (07:00) snapshots the whole.

4.3 Suspected start / end nodes

  • Start nodes (event-driven): EXTRACT (A, on PG insert/update), SCAFFOLD-BUILD (E, on Đ38 enact), INTENT-CAPTURE / CONVERSE-EXTRACT (B/J, on chat), DISCOVER+PROPOSE (G, weekly). There is no single start — the law defines 10 parallel processes, each with its own trigger.
  • End nodes: none are terminal; HEALTH (D, 07:00 snapshot → kg_quality_log) is the closest to a "settle" point; SELF-LEARN (I) closes the feedback loop. The process is cyclic, not terminating — a key reason it cannot be modelled as one start→end pipeline.

4.4 Missing edges

  • No materialised edges between DOTs. Pairing is the only relation (paired_dot); the producer→verifier and A→J sequencing exists only in the law text, not in any edge table (universal_edges has no DOT→DOT edges).
  • No correlation edge: nothing links a producer run to its verifier run (no shared process_run_id).

4.5 Orphan components (the headline finding)

  • 18 producer DOTs (on-demand) are orphaned from v_axis_process_inventory (which only ingests cron/event/dual/on-deploy). Surfaced live in v_process_discovery_orphan_components with orphan_class='ORPHAN_PRODUCER_PAIR_COVERED' — i.e. each one's verifier IS counted but the producer is not. This means the process axis literally shows half the KG automation.
  • Inventory granularity orphan: even the 18 counted verifiers are component_count=1 singletons — the 18 pairs and the single A–J cluster are not represented as composite processes anywhere.

4.6 Duplicate / obsolete components

None obsolete. Possible near-duplicate by token outside KG (e.g. *-validate, *-verify across families) but within KG the 18 pairs are distinct. The law explicitly forbids splitting/renumbering the matrix (pair #12 silent-patch note).

4.7 Relation to IU 10649925

IU 10649925 (#7-36-dot-kg, technical_spec) is the sole content artifact describing these 36 DOTs. It is the textual bridge: topic knowledge_graph → this IU → 36 DOT_KG_* rows. The pairing matrix in the IU is reproduced 1:1 in dot_tools.paired_dot. No per-DOT IU exists below this one — D2 reconstructs operations from it + the process A–J text.

4.8 Scoreability

The graph is complete enough to score: nodes (36), pairs (18), roles (producer/verifier), triggers, domains, inventory-coverage, runtime-evidence (all zero), correlation (none for DOTs). The live v_process_discovery_quality_score consumes exactly this and returns dot:kg = strong_candidate_structural (confidence 50/100): full structure, zero runtime/correlation. See doc 08 for the scoring detail.

Back to Knowledge Hub knowledge/dev/reports/architecture/kg-dot-process-discovery-and-document-building-pilot-2026-06-04/04-dot-kg-process-evidence-graph.md