KB-2A88

dot-iu-cutter v0.5 — evidenced_by Edge APR Draft (design-only, NOT APPROVED)

20 min read Revision 1
dot-iu-cutterv0.5fabric-addendumedge-aprevidenced_bydesign-onlyapr-draftnot-approved

dot-iu-cutter v0.5 — evidenced_by Edge APR Draft

Phase: v0.5 fabric-addendum — v0_5_evidenced_by_edge_APR_draft Nature: design_only_APR_draft Date: 2026-05-18 Authority basis: WS-3 GPT review (PASS_WITH_BLOCKERS, next_phase: v0_5_evidenced_by_edge_APR_draft) + WS-1 edge-APR-minimization note (minimized set = { evidenced_by }, 1) + WS-1 binding/authority clarification note + P44-4A 05-relation-edge-conformance-design.md §3.3.

⚠️ GATING BANNER — read first

apr_status: DRAFT_ONLY
edge_type_evidenced_by: NOT_APPROVED
edge_created: false
edge_type_vocab_amended: false
dot_cap4_checker_extended: false
schema_change: none
code_change: none
sql_executed: none
decision_authority: GPT / User ONLY  (agent MUST NOT approve this APR)
self_advance: PROHIBITED

Every occurrence of evidenced_by in this document refers to a PROPOSED, NOT-APPROVED, APR-GATED edge type. This file is a proposal for a future APR cấp medium (Đ32) decision. It does not approve the edge, does not create the edge, does not amend the edge_type vocab framework, and does not authorize schema/code/production work.


1. Purpose & scope

This document drafts the APR proposal required by P44-4A §3.3 (Extension policy — qua APR) for one — and only one — new durable relation edge type: evidenced_by (NOT APPROVED / APR-GATED).

It exists because:

  • WS-1 edge-APR-minimization reduced 6 OD-FA4 candidates to the smallest possible new-edge set = { evidenced_by } (exactly 1); all other candidates were absorbed into existing P44 edges, iu_entity_binding, or assembly-local relations.
  • WS-3 cross-source topic assembly logical proof used evidenced_by only as an assembly-local alternative (relation R6, "evidence-of"), explicitly NOT as an approved edge, and GPT ruled this ACCEPTED.
  • GPT's WS-3 review set next_phase: v0_5_evidenced_by_edge_APR_draft, nature: design_only_APR_draft, with the instruction: "The APR draft must not approve the edge. It must produce a clean proposal for GPT/User sovereign decision."

Out of scope for this draft (forbidden): edge approval, edge creation, edge_type vocab amend, DOT Cap-4 checker extension, schema migration, table/view/function/index, production write, code change, CUT/VERIFY, dry-run, Directus mutation, vector/NoSQL integration, git commit, and any expansion into a compliance_matrix proof (QG8 — compliance_matrix remains DEFERRED; it is named here only as downstream impact, not proven).


2. APR draft — P44-4A §3.3 conformance

P44-4A §3.3 prescribes exactly five steps for any edge type outside the 11 (8 Core + 3 Candidate). This draft addresses steps 1–3 (proposal content); steps 4–5 are post-PASS actions that are explicitly NOT performed here.

§3.3 step Requirement Where addressed
1 Đề xuất qua APR cấp medium (Đ32) §2.1 (this draft is that proposal; not the decision)
2 Justify: tại sao không dùng edge type hiện hữu? §4 (why-not-existing)
3 Định nghĩa logical + reverse + family thường dùng + provenance requirement §3 + §5 + §6 + §7
4 APR PASS → amend edge_type vocab framework (§2.3 OPEN P44-4-α) NOT performed — post-PASS, GPT/User only
5 DOT Cap-4 checker mở hỗ trợ edge type mới NOT performed — post-PASS implementation

No new process is invented (QG1). This draft strictly instantiates the existing §3.3 template; APR tier is medium (Đ32) because P44-4A reserves APR cấp high only for the rejected internal-only exception path (§7.8), not for a normal new edge type (§3.3 step 1).

2.1 Proposed edge type — identity

proposed_edge_type: evidenced_by              # status: PROPOSED-FOR-APR — NOT APPROVED, NOT CREATED
apr_tier: medium (Đ32)                          # per P44-4A §3.3 step 1
owner_law_code: NRM-LAW-44                       # object-edge namespace (P44-4A §2.3)
namespace_class: object edge (prefix obj. OR owner_law tag — see OPEN P44-4-α below)
edge_family: relation (Cap-4)                    # NOT composition; lifecycle-independent (P44-4A §5.8)
default_state: proposed                          # derived/semantic edge → E7 default `proposed` (P44-4A §4.4)

OPEN P44-4-α (carried, not closed by this draft): the final edge_type namespace scheme (prefix obj./sem. vs owner_layer tag vs both) is still OPEN in P44-4A §2.3 and is deferred to the vocab-framework APR. This draft tags owner_law_code = NRM-LAW-44 (object-edge) and does not pre-empt the namespace decision.


3. Logical meaning, direction, reverse, family

3.1 Logical meaning

logical_meaning: >
  Source (a normative / requirement / claim IU) is `evidenced_by` Target
  (an evidence-authority IU: report, verification artifact, test result,
  lesson) — i.e. Target ATTESTS that Source was satisfied / performed /
  demonstrated. The relation is evidentiary/attestational, durable, and
  cross-source (it links a normative_authority unit to an evidence_authority
  unit across distinct source families).

This is the durable "X is proven by Y" relation that compliance/evidence chains require and that no existing P44 edge carries (see §4).

3.2 Direction & reverse

direction: directional (1 chiều)               # source = the thing proven; target = the proof
reverse_type: evidences                         # "Target evidences Source"
symmetric: NO
reverse_serving: via P44-4A §6 reverse-index (P1/P2/P3 deferred); no second physical row required

Reverse-type convention conforms to P44-4A §3.4: evidenced_byevidences is a named-inverse directional pair (analogous to governed_bygoverns, implementsimplemented_by), not symmetric (unlike contradicts).

3.3 Edge family

edge_family: relation (Cap-4)
rationale:
  - Lifecycle-INDEPENDENT: retiring the evidence (report) does NOT cascade-retire
    the requirement, and vice-versa — therefore NOT composition (Cap-5).
  - Cardinality typical N:N (one report may evidence many requirements; one
    requirement may be evidenced by many reports/lessons).
  - Answers Living-DB Q5 ("ai dùng / ai chứng minh object này") — Relation family
    per P44-4A §5.8.
cap_checker: DOT Cap-4 (relation conformance) — to be extended ONLY post-APR-PASS (§3.3 step 5; NOT done here)

4. Why existing edges are insufficient (P44-4A §3.3 step 2 — QG2)

The new edge is justified only if no existing edge can carry the evidentiary/attestational, durable, cross-source semantics without material loss of meaning. Each candidate substitute is examined against the WS-3 R6 relation ("report N6 proves requirement N2 / process N3").

Existing edge P44-4A definition Why it does NOT cover evidenced_by Loss if substituted
references (Core) "Source tham chiếu target (read-only, không phụ thuộc lifecycle)" A bare read-only mention. Carries no attestation/proof semantics — "A mentions B" ≠ "B proves A was done". Loses the entire "proves performed" meaning; compliance queries cannot distinguish a citation from an attestation.
implements (Core) "Source implement spec target" Means source realizes a specification. The evidentiary direction and intent are different: a report does not implement a requirement, it attests the requirement was met. Direction/semantics mismatch. Mislabels evidence as implementation; pollutes implements reverse-index used for spec-realization queries.
derived_from (Candidate) "Target sinh ra source (provenance)" Captures creation provenance ("this projection was derived from that IU"), not evidentiary proof. A report is not "derived from" the requirement it proves; it independently attests it. Loses attestation semantics; conflates "where it came from" with "what proves it". Also derived_from is itself a still-pending Candidate (BP-WS2-2).
governed_by (Candidate) "Source chịu governance của target (law/agency)" Captures authority/governance ("unit is governed by this law/agency"), the normative-control relation. Evidence is the opposite arrow of intent: the report does not govern the requirement, it demonstrates compliance with it. Loses attestation; corrupts the Authority-Map semantics that governed_by is reserved for.
why_not_existing_summary:
  references:   read-only mention, NO attestation semantics
  implements:   source realizes a spec, NOT "proves performed"
  derived_from: creation provenance, NOT evidentiary proof
  governed_by:  authority/governance relation, NOT attestation (opposite intent)
conclusion: >
  No existing Core or Candidate edge carries the durable evidentiary/attestational
  cross-source relation. P44-4A §3.3 step-2 justification is therefore SATISFIED in
  the proposal — subject to GPT/User APR ruling (NOT self-decided).

5. Endpoint constraints & evidenced_by vs iu_entity_binding (QG3, QG4)

5.1 Endpoint constraint

endpoint_constraint:
  source_ref: IU (registered_object), OQC >= 3/4 (P44-4A §2.1 / §4.2 rule 4)
  target_ref: IU (registered_object), OQC >= 3/4
  scope: IU <-> IU ONLY
  cross_layer: FORBIDDEN (Object<->Concept undefined — P44-4A §2.4; not created here)
  composite_ref: {collection, id, code} per P44-4A §4.2; validated by DOT Cap-4 writer post-APR

5.2 evidenced_by (PROPOSED, NOT APPROVED) vs iu_entity_binding — the boundary

This is the load-bearing distinction (QG3). Per WS-1 binding/authority clarification note §2:

Source side Target side (the evidence) Mechanism APR?
Requirement / normative IU Evidence is an IU (report IU, lesson IU, verification-artifact IU) — a registered_object, OQC ≥ 3/4 evidenced_by (PROPOSED — NOT APPROVED / APR-GATED) yes — this APR
Requirement / normative IU Evidence is a raw_entity (report file path, verification-artifact path, Directus item id, code module, SQL entity) — NOT an IU, does NOT satisfy OQC, not in the relation graph iu_entity_binding with binding_kind = evidences (+ entity_reference_registry) no APR — already available
raw_entity raw_entity out of scope — not Fabric's concern n/a
boundary_rule (QG4):
  - IF the evidence target is a raw evidence entity (a report PATH / verification
    artifact FILE / Directus item id / code module / SQL entity that is NOT itself
    a registered IU) THEN: DO NOT use evidenced_by. Use `iu_entity_binding` with
    `binding_kind = evidences` (+ entity_reference_registry). NO APR is needed; this
    mechanism already exists (WS-1 binding note §2; OD-FA2 Option D hybrid).
  - `evidenced_by` (PROPOSED — NOT APPROVED) is reserved STRICTLY for IU <-> IU
    evidence where BOTH ends are governed Objects/IUs (OQC >= 3/4).
  - Rationale: a universal_edges endpoint MUST be an OQC>=3/4 Object (P44-4A §2.1).
    A raw_entity fails OQC, so it cannot be an evidenced_by endpoint by construction.
distinction_from_binding:
  - iu_entity_binding `binding_kind=evidences` = IU <-> raw external/business entity
    (bind-by-reference; SQL/entity stays SSOT; append-only retracted_at).
  - evidenced_by (PROPOSED) = IU <-> IU durable semantic graph edge participating in
    universal_edges (reverse-index, INV-DUAL, P44-4A 8+3 vocab).
  - They are NOT interchangeable: one binds to a non-IU authority entity; the other
    is a first-class relation-graph edge between two IUs.

6. Examples from the WS-3 sample chain (QG5)

Source: WS-3 sample chain collection_structure (human label "cấu trúc collection"), nodes N1–N7. The evidentiary relation is R6 in the WS-3 per-relation mechanism table.

6.1 Sample-chain context (verbatim node roles)

N2: internal_incomex_law / normative_authority (+ evidence_authority override on appendix span)
    canonical_address: ICX-LAW/DIEU-12-COLLECTION-STRUCTURE
N3: internal_process / normative_authority
    canonical_address: ICX-PROC/QT-COLLECTION-PROVISION-S3
N6: report / evidence_authority
    canonical_address: RPT-COLLSTRUCT-2026/SEC-FINDINGS
N7: lesson / evidence_authority
    canonical_address: LSN-COLLSTRUCT-2026/L-1

6.2 The evidentiary relation R6 — how evidenced_by would model it (PROPOSED, NOT APPROVED)

In WS-3 the relation R6: N6 (report) → {N2 (requirement IU), N3 (process IU)}, relation_kind = evidence-of was rendered via alternative B (assembly-local, output-only, NOT persisted) precisely because evidenced_by is APR-GATED and NOT approved. GPT ruled that route ACCEPTED.

Had the edge been approved (it is NOT — illustrative only):

example_1 (R6a):                                  # ILLUSTRATIVE — edge NOT approved, NOT created
  source_ref: { collection: information_unit, code: "ICX-LAW/DIEU-12-COLLECTION-STRUCTURE" }   # N2 requirement IU
  edge_type:  evidenced_by                         # PROPOSED — APR-GATED — NOT CREATED
  target_ref: { collection: information_unit, code: "RPT-COLLSTRUCT-2026/SEC-FINDINGS" }       # N6 report IU
  reverse:    N6 evidences N2
  meaning:    "Report N6 attests requirement N2 (collection-structure) was satisfied."

example_2 (R6b):                                  # ILLUSTRATIVE — edge NOT approved, NOT created
  source_ref: { collection: information_unit, code: "ICX-PROC/QT-COLLECTION-PROVISION-S3" }    # N3 process IU
  edge_type:  evidenced_by                         # PROPOSED — APR-GATED — NOT CREATED
  target_ref: { collection: information_unit, code: "RPT-COLLSTRUCT-2026/SEC-FINDINGS" }       # N6 report IU
  meaning:    "Report N6 attests process N3 was performed."

6.3 Contrast — what stays on iu_entity_binding, NOT evidenced_by (QG4 example)

In the SAME chain, R3/R4: N3 (process IU) → N4 (sql_entity, raw) / N5 (code_artifact, raw) are iu_entity_binding with binding_kind = implements because N4/N5 are raw_entity (is_iu: false). By the §5.2 boundary rule, if a report existed only as a raw file path (not a report IU), its evidentiary link would likewise be iu_entity_binding binding_kind=evidencesNOT evidenced_by. evidenced_by (PROPOSED) applies only to the IU↔IU case (N2/N3 ↔ N6/N7).

6.4 Lesson node N7 — contrast with derived_from

N7 (lesson) → N6 (report) is R7 = derived_from (lesson_from → derived_from, a Candidate edge), NOT evidenced_by: a lesson's creation provenance is the report, which is distinct from a lesson attesting a requirement. This concretely demonstrates the §4 derived_from distinction inside the sample chain.


7. Anti-drift, provenance, lifecycle/governance requirements

7.1 Conformance to P44-4A E1–E8 logical fields (no SQL — QG7)

evidenced_by (NOT APPROVED) edges, if ever approved, MUST conform to the P44-4A §4.1 minimum logical-field contract (stated logically; no DDL):

E1 edge_id:     1..1 identifier, PK, immutable
E2 source_ref:  composite {collection,id,code}; resolves to OQC>=3/4 IU; validate via OQC
E3 target_ref:  composite {collection,id,code}; resolves to OQC>=3/4 IU; validate via OQC
E4 edge_type:   = evidenced_by ∈ vocab framework  (ONLY after §3.3 step 4 amend — NOT done here)
E5 confidence:  decimal [0.0,1.0]; semantic/derived → MAY be <1.0 with confidence_method
E6 provenance:  REQUIRED post-Đ44 (see §7.3)
E7 status:      enum {proposed, active, deprecated, retired}; default `proposed` (derived edge)
E8 valid_time + timestamps: {valid_from, valid_to?, created_at, updated_at, created_by, updated_by}

7.2 Anti-drift constraints

anti_drift:
  - symmetric: NO. Forward `evidenced_by` only; reverse `evidences` served via
    P44-4A §6 reverse-index (P1/P2/P3 deferred) — NOT a second hand-written row.
  - endpoint discipline: IU<->IU ONLY (OQC>=3/4 both ends); raw evidence MUST route
    to iu_entity_binding (§5.2) — prevents the edge absorbing binding semantics.
  - vocabulary discipline: edge_type list MUST be read from vocab framework, never
    hardcoded (P44-4A NT4); evidenced_by enters vocab ONLY post-APR-PASS (NOT now).
  - semantic non-overlap: evidenced_by MUST NOT be used where references/implements/
    derived_from/governed_by already apply (§4) — prevents vocabulary bloat / drift.
  - INV conformance: INV-E1..E8 apply; in particular INV-E2 (both refs resolve),
    INV-E3 (edge_type ∈ vocab + correct namespace), INV-E4 (provenance complete),
    INV-E5 (>=2 status states with real rows in production — audit OQC-2).
  - no assembly-local leakage: assembly-local "evidence-of" annotations (WS-3 alt B)
    MUST NOT be silently promoted into persisted evidenced_by rows without this APR.

7.3 Provenance requirements (P44-4A §4.3 / §3.3 step 3)

provenance: REQUIRED post-Đ44 (INV-E4; missing => birth blocked, Đ44 §9.4)
  creator:           DOT / agent / human that created the edge (e.g. dot_universal_edges_writer)
  method:            structural | derived | manual  (evidenced_by typically `derived` or `manual`)
  source_context:    artifact that produced the edge (e.g. compliance assembly run id, APR decision id)
  timestamp:         ISO 8601
  confidence_method: present iff E5 confidence < 1.0 (e.g. embedding_cosine=… / human_attested)

7.4 Lifecycle / governance requirements

lifecycle:
  default_state: proposed                 # derived edge default (P44-4A §4.4)
  transitions:
    proposed   -> active:     after DOT Cap-4 checker verify OR human review
    active     -> deprecated: when superseded (via `supersedes` edge)
    deprecated -> retired:    after grace period (defer post-pilot)
  oqc2_audit: >=2 status states MUST have real rows in production (INV-E5)

governance:
  approval_required_before_ANY_use:
    - APR cấp medium (Đ32)                                  [GPT/User decision — NOT here]
    - amend edge_type vocab framework (P44-4A §3.3 step 4 / NT4)   [post-PASS — NOT here]
    - DOT Cap-4 checker extended for evidenced_by (§3.3 step 5)    [post-PASS — NOT here]
  owner_law_tag: owner_law_code = NRM-LAW-44 (object edge; namespace scheme = OPEN P44-4-α)
  candidate_edge_dependency_note: >
    evidenced_by itself is NOT a P44-4A Candidate; it is a §3.3 EXTENSION. It does
    not depend on governed_by/derived_from activation, but the broader minimization
    (constrains->governed_by, lesson_from->derived_from) does — tracked as BP-WS2-2,
    NOT resolved here.
  decision_authority: GPT / User ONLY. The agent MUST NOT approve this APR.

8. Explicit non-approval statement

NOT_APPROVED:            true     # this draft does NOT approve evidenced_by
NOT_CREATED:             true     # no edge type created
VOCAB_NOT_AMENDED:       true     # edge_type vocab framework untouched
CAP4_NOT_EXTENDED:       true     # DOT Cap-4 checker untouched
NO_SCHEMA / NO_CODE / NO_SQL / NO_DRYRUN / NO_DIRECTUS_MUTATION / NO_CUT / NO_VERIFY: true
GPT_USER_DECISION_REQUIRED: true  # sovereign decision: approve | reject | defer
SELF_ADVANCE: PROHIBITED          # no advance to compliance_matrix / schema / production

This APR draft is a proposal only. evidenced_by is NOT APPROVED and NOT CREATED. Approval, rejection, or deferral is a GPT/User sovereign decision (APR cấp medium, Đ32). Until that decision, WS-3 and all downstream work must continue to use the assembly-local / iu_entity_binding alternatives exactly as in the GPT-accepted WS-3 proof. Compliance_matrix proof remains DEFERRED and is not addressed here (QG8).


End of evidenced_by Edge APR Draft (design-only). Companion files: risk-and-alternative review, APR-draft report.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-fabric-addendum-scope/dot-iu-cutter-v0.5-evidenced-by-edge-APR-draft-2026-05-18.md