KB-5948

dot-iu-cutter v0.5 — Constitution Status-Marker Amendment DML Draft (INSERT 2 rows 📝/⛔; preserve ✅/📋; DO NOT EXECUTE)

7 min read Revision 1
dot-iu-cutterv0.5constitution-fixturestatus-marker-amendmentdml-draftinsert-onlyauthoring-onlynot-executeddieu442026-05-18

dot-iu-cutter v0.5 — Constitution Status-Marker Amendment DML Draft (INSERT-only)

Phase: v0_5_constitution_status_marker_amendment_authoring · Nature: DML_authoring_only / no_execution · Date: 2026-05-18 Authority (consumed, NOT reopened): GPT ruling …/reviews/dot-iu-cutter-v0.5-constitution-fixture-ratification-gpt-ruling-2026-05-18.mdR1 = APPROVE_SM_OPT_1_AMEND_PROFILE_MAP_4 (classification mapping only; does NOT make draft/obsolete cut-eligible; execution NOT authorized by that ruling).

⚠️ GATING BANNER — DO NOT EXECUTE

phase: status_marker_amendment_authoring ; dml_executed: none      # QG2
insert_only: true ; update: 0 ; delete: 0 ; on_conflict: 0
source_document_insert: none ; source_document_version_insert: none
dry_run: none ; cut: none ; verify: none ; production_write: none
execution_authorized: false ; self_advance: PROHIBITED
decision_authority: GPT / User ONLY

Adds exactly 2 rows to the already-live cutter_governance.grammar_profile_status_marker. The table currently holds 2 rows (✅, 📋) for this profile — confirmed live by WS-Q5 production verification (SMV-2 codepoint PASS). This is an amend (existing data present), so plain INSERT is used with an explicit NOT EXISTS self-guard; no ON CONFLICT, no UPDATE, no DELETE. Existing ✅/📋 rows are never read-modified-written.


0. Live target schema (read-only confirmed; schema-accurate)

cutter_governance.grammar_profile_status_marker:
  cols: grammar_profile_ref (NN, FK -> grammar_profile.grammar_profile_ref),
        marker             (NN, UTF-8 text),
        maps_to            (NN, status classification value)
  no_lifecycle_column: true     # thin mapping table (per WS-Q5 seed-rollback doctrine)
  no_timestamp / no_principal column on this table
  live_rows_for_profile (verified WS-Q5 production):
    ('incomex-architecture-constitution-v4','✅','enacted')          -- U+2705  e2 9c 85
    ('incomex-architecture-constitution-v4','📋','controlled_draft') -- U+1F4CB f0 9f 93 8b
parent (FK target, live):
  cutter_governance.grammar_profile
    grammar_profile_ref = 'incomex-architecture-constitution-v4' (lifecycle=active)

1. Rows to add (exactly 2 — R1 marker_map delta)

delta:
  add:
    "📝" -> draft       # U+1F4DD  UTF-8 hex: f0 9f 93 9d
    "⛔" -> obsolete    # U+26D4   UTF-8 hex: e2 9b 94
  preserve_untouched:
    "✅" -> enacted          # U+2705  e2 9c 85   (NOT in any DML statement below)
    "📋" -> controlled_draft # U+1F4CB f0 9f 93 8b (NOT in any DML statement below)
classification_only: true
cut_eligibility_unchanged: true   # draft/obsolete remain EXCLUDED under enacted_only

2. DML — guarded INSERT, references the LIVE grammar_profile (DO NOT EXECUTE)

-- Authority: GPT ruling R1 APPROVE_SM_OPT_1_AMEND_PROFILE_MAP_4 (mapping only).
-- INSERT ... SELECT FROM cutter_governance.grammar_profile so the statement
-- literally REFERENCES the live profile row (defensive: 0 rows inserted if the
-- live profile is somehow absent, instead of relying on FK error). The
-- NOT EXISTS self-guard makes the statement non-duplicating and preserves the
-- pre-existing ✅ / 📋 rows (they are never targeted). Exact UTF-8 markers
-- (no ASCII normalization) — verification asserts hex codepoints, not glyphs.
BEGIN;

INSERT INTO cutter_governance.grammar_profile_status_marker
  (grammar_profile_ref, marker, maps_to)
SELECT gp.grammar_profile_ref, v.marker, v.maps_to
FROM   cutter_governance.grammar_profile gp
JOIN   (VALUES
          ('📝','draft'),      -- U+1F4DD  f0 9f 93 9d
          ('⛔','obsolete')    -- U+26D4   e2 9b 94
       ) AS v(marker, maps_to) ON TRUE
WHERE  gp.grammar_profile_ref = 'incomex-architecture-constitution-v4'
  AND  NOT EXISTS (
         SELECT 1
         FROM   cutter_governance.grammar_profile_status_marker m
         WHERE  m.grammar_profile_ref = gp.grammar_profile_ref
           AND  m.marker = v.marker
       );

-- Expected: exactly 2 rows inserted (📝, ⛔). ✅/📋 untouched. No UPDATE/DELETE.
COMMIT;

2.1 Reference-only equivalent (plain VALUES form — informational, NOT the execution form)

-- Equivalent intent in the WS-Q5 §5 house style; the §2 guarded form is the
-- one proposed for command-review (defensive + non-duplicating). Shown only so
-- reviewers can see the literal 2-row payload.
INSERT INTO cutter_governance.grammar_profile_status_marker
  (grammar_profile_ref, marker, maps_to)
VALUES
 ('incomex-architecture-constitution-v4','📝','draft'),     -- U+1F4DD f0 9f 93 9d
 ('incomex-architecture-constitution-v4','⛔','obsolete');   -- U+26D4  e2 9b 94

3. Explicit non-scope statement

not_in_this_dml:
  - UPDATE / DELETE / TRUNCATE (none)
  - ON CONFLICT clause (none — amend with explicit NOT EXISTS guard)
  - any write to ✅ or 📋 rows (preserved; never referenced)
  - source_document_registry INSERT (none)
  - source_document_version_registry INSERT (none)
  - grammar_profile / grammar_profile_level / source_family_registry change (none)
  - schema change / GRANT / REVOKE / index DDL (none)
  - Constitution dry-run / CUT / VERIFY (none)
  - Directus / vector / NoSQL mutation (none)
classification_semantics: adding 📝->draft and ⛔->obsolete makes these markers
  deterministically RECOGNISABLE so source_family.status_policy=enacted_only can
  cleanly EXCLUDE them. It does NOT add them to any cut scope. First Constitution
  dry-run scope remains enacted_only (✅ only) per ruling R2; controlled-draft
  Điều 44 remains deferred per ruling R3.

4. Statements

  • QG1: DML adds exactly 2 marker rows (📝→draft, ⛔→obsolete). QG3: markers carried as exact UTF-8 (codepoints documented; verification asserts hex). QG4: existing ✅/📋 rows preserved — never targeted by any statement. QG5: draft/obsolete remain non-cut-eligible (mapping/classification only). QG2: nothing executed.
  • No UPDATE/DELETE, no source_document(_version) INSERT, no schema/GRANT/index/Directus/vector change, no dry-run/CUT/VERIFY, no deploy, no git commit, no self-advance.
  • Self-advance PROHIBITED — doc 1 of 4; STOP after package → route GPT/User command-review.

Companion: status-marker-amendment-rollback-draft, status-marker-amendment-verification-plan, status-marker-amendment-authoring-report.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-constitution-status-marker-amendment-authoring/dot-iu-cutter-v0.5-constitution-status-marker-amendment-DML-draft-2026-05-18.sql.md