KB-15DC

IU Core 1500x — Next macro package (1700x recommended)

4 min read Revision 1
iu-core1500xnext-macro1700xqdrantdirectushandoff

07 — Next macro package

State at handoff

  • Code commit 0c9be39 on main (parent 8cae3db); KB commit 8c7d8dc. 1083 tests (+38 over 1k+).
  • Production directus DB: migrations 001–021 + runtime through 310DOT 128/128, D8 drift 0.
  • information_unit 163, iu_piece_collection 3, iu_piece_membership 8, dot_iu_command_run 18, iu_tree_change_log 56, iu_route_attempt 68, dead-letter 0, iu_vector_sync_point 3 (dryrun grandfather), iu_qdrant_collection_registry 1 (iu_core_iu_chunks active).
  • Qdrant: collections ["production_documents", "iu_core_iu_chunks"]; iu_core_iu_chunks empty (0 points), status=green, dim=1536, Cosine.
  • All write-gates inert: composer/delivery/operator_runtime/structure_ops/vector_sync = false; routes_master/route_worker = true.

No unsafe state

Migration 021 + runtime/310 additive + reversible. Live Qdrant collection reversible via DELETE; registry row via fn_iu_qdrant_collection_retire. No IU mutation; no embedder call; no point upserted; no Directus apply.

Open gaps carried forward (external decisions only)

  1. Qdrant external write — iu_core_iu_chunks. One bounded gated reindex of a small per-IU sample (3–10 IUs). Path: open iu_core.vector_sync_enabled, run apply_iu_set(...) INSIDE incomex-agent-data (where the keys live). Close the gate afterwards. Drift check via drift_report.
  2. Directus collection registration apply. Issue the three REST bodies produced by directus_registration.build_registration_package(...) against the Directus admin endpoint. Read-only by construction; reversible via build_disable_package.
  3. Nuxt screen wiring. Point an existing Nuxt screen at the new Directus collection using nuxt_assembly_contract.build_nuxt_contract(...). Assembly only, no business logic.

IU_CORE_1700X_QDRANT_BOUNDED_REINDEX_AND_DIRECTUS_APPLY — the two external-decision rows:

  1. Open iu_core.vector_sync_enabled (gate flip is governed; the macro closes it again at the end of the bounded apply).
  2. Pick 3–10 IUs from v_ui_iu_three_axis_envelope (smallest, most representative — one per axis group ideal).
  3. Embed via OpenAIEmbedder(model='text-embedding-3-small', dim=1536) inside incomex-agent-data.
  4. Upsert into iu_core_iu_chunks via apply_iu_set(..., record_status='indexed') — three-layer boundary re-enters.
  5. Verify Qdrant payload shape — each point carries unit_id, chunk_index, chunk_count, summary_marker=false.
  6. Issue the Directus REST registration calls. Verify the read-only collection appears in Directus and serves v_ui_iu_three_axis_envelope rows. Close gate.

Alternative smaller slice: IU_CORE_1600X_DIRECTUS_APPLY_ONLY — purely the Directus admin action + verification.

Is IU Core ready to ship?

Yes — externally-integration-ready. The core is built, DOT-visible (128/128), tested (1083), reversible end-to-end. What remains is operator decision: when to flip the vector-sync gate for a bounded reindex, and when to issue the Directus admin call.

Verification gate before 1700x

1700x should start only after GPT/User has verified, via AgentData list_documents + search_knowledge, that this macro's 7 reports are present and searchable, AND that production reports DOT 128/128, migration 021 applied, iu_qdrant_collection_registry carries the default iu_core_iu_chunks row in status=active, and the live Qdrant cluster lists both production_documents and iu_core_iu_chunks collections.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-1500x-qdrant-directus-nuxt-external-closeout-open-goal/07-next-macro-package.md