KB-30A7

10000x · 02 — dot_iu_supersede_piece DOT wrapper

2 min read Revision 1
iu-corev0.610000xdot-commandsupersedelifecyclegovernance

10000x · 02 — dot_iu_supersede_piece DOT wrapper

What was added

dot_iu_supersede_piece — governance-bound DOT wrapper for the existing fn_iu_supersede primitive (migration 026, 8000x). Sole canonical path for the FSM transition enacted -> superseded.

Params

Param Required Note
canonical_address yes the enacted IU's address
actor yes non-empty
review_decision_id yes sovereign decision UUID
change_set_id no optional cut_change_set UUID
reason no free text
tool_revision no toolchain version tag
superseded_by_canonical_address no optional pointer to replacement
dry_run no bool, defaults false

Python wrapper is fail-closed: cmd.build() raises ValueError if any required param missing. Verified by tests/test_iu_core_10000x_piece_lifecycle.py::TestDotCommandRegistry.

Rendered SQL (example)

SELECT public.fn_iu_supersede(
  'D38-DIEU28-S1', 'iu-core-10000x/bounded-proof',
  'cf000008-5776-0276-f476-208ec026fd1f',
  NULL, '10000x bounded proof', NULL, NULL, true);

Live dry-run proof

status = plan_ok on D38-DIEU28-S1. Pre/post-state identical.

Reversibility

FSM superseded -> enacted is NOT a legal transition. The reversal path is to create a NEW replacement IU via the birth gate. The wrapper's reversal field documents this.

Catalog registration

runtime/280_operator_runtime_catalog_seed.sql:

('dot_iu_supersede_piece', 'lifecycle', true, true, '{fn_iu_supersede}')

R280 all_resolvable=tfn_iu_supersede resolves in pg_proc.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-iu-core-10000x-piece-platform-dot-lifecycle-open-goal/02-supersede-dot-wrapper.md