KB-3E97
IU Core Hygiene — 04 Five-layer sync matrix
3 min read Revision 1
dieu44iu-core-mvphygienefive-layer-syncv0.62026-05-21
IU Core Constitution/DOT Hygiene — 04 Five-layer sync matrix
Closes prompt-hygiene audit finding HYG-5 (five-layer impact not consistently classified).
Layers: PG · Directus · Nuxt · AgentData/KB · Qdrant/vector
| Layer | Impact of the IU Core surface | Justification |
|---|---|---|
| PG | PRIMARY — all 33 objects live here. Tables, views, functions, triggers, routes, gate keys, event type. | IU Core is, by design, a PG-native substrate. |
| Directus | Unaffected. The 33 objects are additive sidecar DDL; none is registered in directus_collections/directus_fields, so the Directus admin UI does not surface them. |
Intentional — IU Core is governance substrate accessed via SQL functions, not Directus CRUD. The DB is the directus app DB, but IU Core performs no ALTER on directus-managed tables (per sql/iu-core/README.md safety contract). |
| Nuxt | Unaffected. No Nuxt route or component consumes any IU Core table/view/route. The existing UI feed reads iu_notification_event (the pre-IU-Core path), not the IU Core event_outbox path. |
Intentional — dry_run=false and downstream delivery are blocked; there is nothing for Nuxt to consume yet. |
| AgentData / KB | Unaffected by the objects themselves. IU Core macro reports live in AgentData (knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-*), but no IU Core runtime object writes to AgentData. |
Intentional — KB is the audit-trail layer, not a runtime sink. |
| Qdrant / vector | Unaffected. No IU Core object performs a vector write. delivery_seam.py declares a vector target kind, but every DeliveryTarget is UnbuiltDeliveryTarget and fn_iu_route_deliver RAISES. |
Intentional — the vector delivery target is an unbuilt seam; it activates only under the dry_run=false macro. |
Summary
Of the five layers, only PG is affected. The other four are intentionally
unaffected, and the justification is the same forbidden boundary the macro
chain has held throughout: dry_run=false and downstream delivery are blocked,
so no cross-layer effect can yet exist.
First cross-layer effect — forecast
The first layer to gain a real IU Core effect will be Directus → Nuxt,
when the dry_run=false macro builds the delivery seam (fn_iu_route_deliver
- a real
DeliveryTarget). At that point a five-layer re-classification is mandatory before activation — it must be a gate of thedry_run=falsemacro, not an afterthought.
Verdict
Five-layer sync matrix PASS — impact classified for all five layers; the four unaffected layers are justified, not merely assumed.