KB-3D82

IU Core MVP — 02 Discover-First Inventory

4 min read Revision 1
dieu44iu-core-mvpdiscover-firstinventoryv0.62026-05-21

IU Core MVP — 02 Discover-First Inventory

Date: 2026-05-21 · DISCOVER-FIRST evidence before any CREATE.

Every artifact below was searched for in KB, repo, and the live DB before authoring. Verdict per candidate: REUSE / EXTEND / REJECT_WITH_REASON.

Briefs / SSOT

Candidate Found Verdict
PG-native trigger model survey/design KB v0.6-iu-pg-native-trigger-model-survey-design/ rev1 REUSE — authoritative input
PG-native DDL authoring brief KB v0.6-iu-pg-native-ddl-authoring-brief/ rev1 REUSE — authoritative table specs
Parent-child split/merge brief KB v0.6-iu-parent-child-split-merge-brief/ rev1 REUSE — authoritative model
Roadmap "Miếng thông tin" ~/Desktop/ROADMAP - Miếng thông tin.docx REUSE — scope confirmation

Repo migration / SQL conventions

Candidate Found Verdict
sql/lifecycle/ bundle_a..e + rollback_runbook.sql + fingerprints.yaml + verify_*.sql EXTEND-IN-SPIRIT — it is an operator-runbook track for already-applied CREATE OR REPLACE functions, NOT a migration framework; iu-core is greenfield CREATE TABLE, so a numbered-migration + per-file rollback/ layout was created and the divergence is documented in sql/iu-core/README.md
Single combined rollback_runbook.sql exists in sql/lifecycle/ REJECT for iu-core — per-file rollback is cleaner for 5 independent greenfield migrations; reverse-order policy (005→001) preserved
fingerprints.yaml md5-pin convention sql/lifecycle/fingerprints.yaml NOTED — fingerprint pinning deferred to the sandbox/execution macro (no live objects to pin yet)
CI / auto-apply migration runner none — cli.py/cutter_agent/ never read sql/ CONFIRMED — iu-core stays author-only, consistent with repo

Existing tables / substrate (live DB)

Candidate Found Verdict
universal_edges (generic graph) 2199 rows, integer source_id/target_id REJECT for IU links — IU ids are uuid; integer keys cannot address them. iu_relation (uuid-capable) authored instead
event_outbox / event_pending present REUSE — outbound emit helper writes to event_outbox; no ALTER
event_type_registry 4 system types only EXTEND later — IU event types are DML candidates for a separate DOT seed macro, not this DDL package
cutter_governance.cut_change_set / cut_change_set_affected_row present REUSE — approved link/route/structure mutations route through change-set in execution macros
information_unit.parent_or_container_ref column present, 0 parented REUSE as primary adjacency; iu_tree_path added as sidecar
iu_notification_event present LEAVE INTACT — outbound bridge is additive + disabled

Repo test convention

  • python3 -m unittest discover -s tests — stdlib unittest, Python 3.12, no pytest.
  • New test tests/test_iu_core_ddl.py follows this convention.

Secrets / credentials

No new secret/credential required. SSH key + container exec only. No secret value read or printed. STOP_AND_ESCALATE not triggered.

New artifacts created (with reason)

  • sql/iu-core/ (5 forward + 5 rollback + README) — no existing IU-core DDL.
  • cutter_agent/iu_core/ (4 modules) — no existing IU-core helper package.
  • tests/test_iu_core_ddl.py — no existing IU-core test.

All deterministic-named, additive, rollback-covered. No duplicates of existing valid artifacts. No temp/scratch left in production paths.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-mvp-pg-native-parent-child-structure-ops-authoring/02-discover-first-inventory.md