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.pyfollows 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.