KB-5B9B

9000x-onboarding · 06 — Piece Platform DOT gap matrix (3 missing: split, merge, supersede)

4 min read Revision 1
iu-corev0.69000xpiece-platformdot-commandsgap-matrix

9000x — Piece Platform DOT gap matrix

Source: live inventory of cutter_agent.iu_core.dot_commands.DOT_COMMANDS (25 commands) + the SQL function ledger at sql/iu-core/.

Required operator command Existing DOT Backing fn ready? Status
create_piece dot_iu_create_piece fn_iu_create PRESENT
add_piece dot_iu_add_piece fn_iu_collection_add_piece PRESENT
split_piece MISSING (both)
merge_piece MISSING (both)
remove_from_collection dot_iu_remove_piece fn_iu_collection_remove_piece PRESENT (correct semantics: piece stays alive globally)
retire_piece dot_iu_retire_piece fn_iu_structure_op_* + fn_iu_retire (mig 026) PRESENT
supersede_piece fn_iu_supersede (mig 026) MISSING DOT command — fn exists
restore_piece dot_iu_restore_piece fn_iu_piece_restore PRESENT
create_workflow_from_steps dot_iu_create_workflow_from_steps fn_iu_compose PRESENT
create_file_from_piece_specs dot_iu_create_file_from_pieces fn_iu_compose PRESENT

Auxiliary existing commands: dot_iu_clone_piece, dot_iu_delete_piece_soft, dot_iu_reorder_piece, dot_iu_checkpoint_collection, dot_iu_render_file, dot_iu_validate_collection, dot_iu_three_axis_envelope_{status,refresh,drift_check,trigger_status}, dot_iu_rebuild_metadata_axes, dot_iu_update_piece_metadata, dot_iu_qdrant_collection_status, dot_iu_validate_collection, dot_iu_external_healthcheck, dot_iu_healthcheck, dot_iu_create_collection, dot_iu_directus_verify, dot_iu_nuxt_config_verify.

Gap detail

supersede_piece — lowest-friction gap

Backing function public.fn_iu_supersede(p_old_iu_id, p_new_iu_id, p_actor, p_reason) is already live (mig 026, 8000x). What's missing is the operator-facing DOT command. A single addition to _REGISTRY in dot_commands.py + a builder lambda + 1-2 tests would close this gap. Authority required: minor governance — the function is already promoted, so this is purely an operator surface change.

split_piece — full author-mode required

Required substrate:

  • public.fn_iu_piece_split(p_src_iu_id uuid, p_children_jsonb jsonb, p_actor text, p_reason text) RETURNS jsonb — allocates N children via fn_iu_create, sets parent_piece_id = p_src_iu_id on each, retires the src via fn_iu_retire, advisory lock + atomic per-op rollback;
  • new DOT command dot_iu_split_piece wired post-governance promotion;
  • new migration 027_piece_split.sql for the function;
  • author-mode + sandbox tests sandbox/280-style.

merge_piece — full author-mode required

Required substrate:

  • new table public.iu_merge_set(merge_set_id uuid PK, dst_iu_id uuid FK, src_iu_id uuid FK, created_at, actor, reason) — captures lineage;
  • public.fn_iu_piece_merge(p_src_iu_ids uuid[], p_dst_spec jsonb, p_actor text, p_reason text) — authors new piece via fn_iu_create, supersedes each src via fn_iu_supersede(src, new_id, p_actor, 'merge'), writes iu_merge_set rows;
  • new DOT command dot_iu_merge_piece wired post-governance promotion;
  • new migration 028_piece_merge.sql.

Author-mode scope (this macro)

Author-mode files only:

  • ops/piece-platform-dot-9000x/00-gap-matrix.md (this document’s repo twin);
  • ops/piece-platform-dot-9000x/02-event-roadmap.md (Piece Event Runtime).

No DOT command added; no new SQL function; no migration; no governance manifest. The 9000x macro deliberately avoids opening a second governance window while the Qdrant onboarding window is still fresh and reversible.

Carry-forward ordering recommendation

  1. dot_iu_supersede_piece (no SQL needed; just registry + builder).
  2. Author fn_iu_piece_split + mig 027.
  3. Author fn_iu_piece_merge + mig 028 + iu_merge_set.
  4. Promote 027+028 via governance manifest (8000x-style package).
  5. Wire DOT commands for split/merge.
  6. Author Piece Event Runtime hooks (see report 07).
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-9000x-qdrant-onboarding-piece-platform-open-goal/06-piece-platform-gap-matrix.md