KB-4350

dot-iu-cutter v0.5 — W-4 · Credential & Signing Requirements Review (doc 2)

6 min read Revision 1
dot-iu-cutterv0.5w4-credential-signing-production-adapter-readinesscredential-signing-reviewdot-991dot-992dieu442026-05-19

dot-iu-cutter v0.5 — W-4 · Credential & Signing Requirements Review

doc 2 of 6 · 2026-05-19 · read-only (KB + production catalog). No mutation.

1. Ratified credential model (v0.4, accepted GPT 2026-05-16/17)

principals:
  cutter_exec   : DOT-991 lane (MARK/SWEEP/REVIEW/CUT); writes change-set + executor sig
  cutter_verify : DOT-992 lane (VERIFY/forward-compensation/escalation); writes verify_result
  cutter_ro     : read-only views only, never write
forbidden_runtime_writers: workflow_admin, directus, postgres
v0.4 ratified privilege matrix scope: schema **cutter_governance**
  cutter_exec may write: decision_backlog_{entry,history,dependency,sweep_log},
    manifest_envelope, manifest_unit_block, review_decision, cut_change_set,
    cut_change_set_affected_row, dot_pair_signature ; NOT verify_result/canonical_address_alias
  cutter_verify may write: decision_backlog_{entry,history}, dot_pair_signature,
    cut_change_set, cut_change_set_affected_row, verify_result ; NOT manifest_*/review_decision
secret model (v0.4 cmd-review PASS): VPS /opt/incomex/docker/.env (600 root:root),
  env names DOT_CUTTER_EXEC_DB_USER/PASSWORD, DOT_CUTTER_VERIFY_DB_USER/PASSWORD,
  scram_sha_256, conn_limit 2. SQL sha 00296107…, rollback sha fcba5629…
DOT lane-overlap mandate (binding): DOT-991 sig must cross-ref change_set_id only
  (never verify_result_id); DOT-992 sig must cross-ref verify_result_id only; exactly one
  cross-ref non-null; signer_dot_id matches lane; STOP on lane/reference mismatch; tests
  must fail if DOT-991/992 swapped.
signing scheme: v0.4 signing.py = StubSigning / DeferredSigning ("no production key/secret;
  deferred HIGH-risk crypto workstream"). Real signing NOT built.

2. Live production credential state (read-only catalog, directus DB)

pg_roles: cutter_exec (LOGIN, connlimit 2, no super/createdb/createrole/bypassrls) EXISTS;
  cutter_verify (LOGIN, connlimit 2, same) EXISTS; cutter_ro (NOLOGIN) EXISTS;
  workflow_admin (SUPERUSER) ; directus (LOGIN). ⇒ the v0.4 credential roles are LIVE.
role_table_grants for cutter_exec / cutter_verify in directus DB: **0 rows** (NO table
  grants at all in the DB that holds the writer target).
has_table_privilege(cutter_exec, public.information_unit, INSERT/UPDATE/SELECT) = false/false/false
has_table_privilege(cutter_exec, public.unit_version, INSERT) = false
has_table_privilege(cutter_verify, public.information_unit, SELECT) = false
has_schema_privilege(cutter_exec, public, USAGE) = true   (USAGE only; no object rights)
schema cutter_governance: ABSENT in directus AND workflow (pg_namespace: only public).

3. Requirements vs current cutwrite.py — exact gap

production CUT needs (per ledger.py + lane mandate + birth model):
  R1 a login principal with INSERT on public.information_unit + public.unit_version and
     UPDATE on information_unit (the in-txn anchor) — column/row scoped, append-only.
  R2 a governed change-set + DOT-991 executor signature row + decision_backlog_history
     transition (the cut_change_set / dot_pair_signature / decision_backlog_* ledger).
  R3 a real DOT-991 signing identity producing the executor signature with the
     lane-overlap invariants (cross-ref change_set_id only).
  R4 secret delivery (scram password) via the approved .env substrate, never logged.
current cutwrite.py provides: the row mapping + birth-gate-faithful scratch proof ONLY.
  It has NO signing, NO cut_change_set/dot_pair_signature emission, NO DB adapter, and
  by design NO credential read (import-isolated, db-isolated).
EXACT GAPS:
  GAP-C1 (controlling) cutter_exec/cutter_verify have ZERO privilege on the actual writer
    target (directus.public.information_unit/unit_version). The v0.4 grants were scoped to
    a cutter_governance schema that DOES NOT EXIST in this DB ⇒ the v0.4 credential closure
    does NOT cover the constitution writer target. A NEW, separately-gated credential/GRANT
    command-review + sovereign execution scoped to public.information_unit/unit_version
    (+ the governed ledger location) is REQUIRED.
  GAP-C2 the governed ledger substrate (cut_change_set / dot_pair_signature /
    decision_backlog_history / verify_result, schema cutter_governance) is ABSENT/
    unconfirmed in the DB holding the writer target ⇒ where the CUT change-set + DOT-991
    signature + status history are written must be reconciled (provision in directus, or
    a documented cross-DB governed-ledger architecture). Architectural decision required.
  GAP-C3 no DOT-991 executor signing built (signing.py Stub/Deferred); the lane-overlap
    invariants are unimplemented for the cutwrite path ⇒ signing capability is design-only.
  GAP-C4 no production DB adapter wired to the birth model (db_adapter.RealPostgresAdapter
    is the v0.4 ledger-shaped adapter that refuses prod; cutwrite is import-isolated).
  GAP-C5 no separate explicit sovereign production-DB-write approval for the constitution.

doc 2 of 6. Read-only. No production mutation. Self-advance PROHIBITED.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-w4-credential-signing-production-adapter-readiness/dot-iu-cutter-v0.5-credential-signing-requirements-review-2026-05-19.md