KB-5889

dot-iu-cutter v0.5 — Git Baseline Init: Precheck (C1 verified; no pre-existing .git; pending-patch absent; tree == KB SSOT v0.4 skeleton)

6 min read Revision 1

dot-iu-cutter v0.5 — Git Baseline Init: Precheck

Phase: v0_5_iu_cutter_git_baseline_init · Nature: read_only_precheck__pre_git_init · Date: 2026-05-18 · doc 1 of 4

authorized_by: GPT ruling 2026-05-18 (OPT_A1_GIT_INIT_BASELINE_COMMIT_C1)
scope: controlled git baseline ONLY — no patch apply, no dryrun, no dry-run/CUT/VERIFY/deploy
decision_authority: GPT / User ONLY ; self_advance: PROHIBITED

1. Authority chain (KB SSOT)

gpt_ruling: knowledge/dev/laws/dieu44-trien-khai/reviews/
            dot-iu-cutter-v0.5-repo-authority-resolution-gpt-ruling-2026-05-18.md
  verdict: repo_authority_resolution_package = PASS
  selected_option: OPT_A1_GIT_INIT_BASELINE_COMMIT_C1
  patch_apply_authorized_now: false
  first_dryrun_authorized: false
  next_phase: v0_5_iu_cutter_git_baseline_authoring_and_init
  nature: controlled_git_init_baseline_only__no_patch_apply
resolution_pkg: …/v0.5-iu-cutter-repo-authority-resolution/ (4 docs, classification ONLY_WORKING_TREE_MIRROR_FOUND)
blocked_pkg:    …/v0.5-constitution-snapshot-source-mark-entrypoint-patch-apply-ci/ (apply_status BLOCKED rule#1)

2. QG1 — C1 path verified

$ ls -la /Users/nmhuyen/iu-cutter-build/repo/iu-cutter
.gitignore  README.md  __pycache__/  cli.py  cutter_agent/  tests/   (exists, populated)
repo_path: /Users/nmhuyen/iu-cutter-build/repo/iu-cutter   # == KB-SSOT authoritative C1
exists: TRUE
QG1: PASS

3. QG2 — no pre-existing .git

$ ls -la .../iu-cutter/.git            -> No such file or directory
$ git -C .../iu-cutter rev-parse --is-inside-work-tree
  fatal: not a git repository (or any of the parent directories): .git
pre_existing_dot_git: NONE
is_git_repo_before: FALSE   (consistent with KB SSOT patch-apply-log §2)
QG2: PASS

4. Pre-init tree fingerprint / listing

.gitignore content (19 B) — respected as-is, NOT modified:

__pycache__/
*.pyc

Tracked-candidate inventory (17 files; gitignored __pycache__/, *.pyc excluded):

root:          .gitignore  README.md  cli.py
cutter_agent/: __init__.py canonicalization.py db_adapter.py idempotency.py
               ledger.py phases.py signal.py signing.py state_machine.py   (9)
tests/:        test_idempotency.py test_phase_contracts.py
               test_real_postgres_adapter.py test_security_boundaries.py
               test_state_machine.py                                       (5)
total_tracked_candidates: 17
match_KB_SSOT_v0.4_skeleton: EXACT (patch-apply-log §5 inventory)

Per-file sha256 (pre-init, authoritative):

862263fa1f46c20f0d1e4dac5ffcc75abd55c08211b2c3864c5f8764b9d87793  .gitignore
c1746d731803f561effd030f82c730f22e6fd07505fbf9a0184baa7cb5f7130a  README.md
018d845b7580998acb9927f0a0649831d71d3c714048ab27121fa8b092c473b1  cli.py
6797cdcec00b00d1d94460ee1f7174a8530f3ee57319d4f5736f21ec2d6e7345  cutter_agent/__init__.py
2e5b83b920b055797121db124578356580f6062e93ea2a901a4c0328a1c7ca46  cutter_agent/canonicalization.py
2a6ca4f12869695ea42c4d9e2d8e6465bc0e59b0ec8b22ae2ae6d9280a2b4330  cutter_agent/db_adapter.py
0a1eb472137dccd44ce7e448ab3cdf9a6bc92c17f22ea6c03e5ccfb09e377b99  cutter_agent/idempotency.py
7465e9926d3c4a505c3e18ee839cba972907fcde1ee5964a9c8f5a4d5bb8b6b6  cutter_agent/ledger.py
3b459ca18a4c0d5d9800ed184a3c8221a6a4ac66536919eb0b932effcb3d5d28  cutter_agent/phases.py
ced1a105119f41224c0c9b741d6567b4f664e4faed3d631a0e5e050e0f368036  cutter_agent/signal.py
07168a82b9444c0a59d7a93208c08f46f7b500e505a04fbbcf4e69d76dd4f129  cutter_agent/signing.py
c72ed8712ea1258cfd6d3cdeda346041d114b22c63aed7516181f2088bc21d65  cutter_agent/state_machine.py
52932a2b5036cf1c6c45296a63e354e8b97a9b412b29d840551da2521ab7b630  tests/test_idempotency.py
f7290b511da1b662d814e7c717a3a03fea78e9c6cca8bc0441f8ab0f2d017d74  tests/test_phase_contracts.py
78b48525d1d6a2162f7cd290fab65deadd79f43b86d8e3c116439a6621132741  tests/test_real_postgres_adapter.py
8266e15ed0fea1bbb431d2966405f789c0a1b9099d2e903ff9ae9a74f333d800  tests/test_security_boundaries.py
b78b10c0556db71a8079cceebfd3195e1dab1d227b122cea695e31aaed10663f  tests/test_state_machine.py

Aggregate tree fingerprint (sha256 of sorted name size, gitignored excluded):

PRE_INIT_FINGERPRINT = 3171979816b9563d0a0daca03dc53467c8c44c6da2078023d7408a071dfa37a2

5. Pending-patch absence (safety guard)

cutter_agent/dryrun.py                 -> ABSENT (OK)
tests/test_dryrun_snapshot_mark.py     -> ABSENT (OK)
unexpected_pending_patch_files: NONE
guard "if patch-like files appear, STOP_AND_REPORT": NOT triggered
note: KB doc-2 patch (expected sha256 dryrun f1f42e83… / test 31143968…) remains
      KB-only, UNAPPLIED — this phase does NOT apply it.

6. Environment

git_binary: git version 2.39.5 (Apple Git-154)   # binary present; NO repo pre-init

7. Precheck verdict

QG1 C1 path verified            : PASS
QG2 no pre-existing .git        : PASS
pending_patch_absent            : PASS
tree == KB SSOT v0.4 skeleton   : PASS (exact)
proceed_to_git_init             : AUTHORIZED (GPT OPT-A1) — see doc 2

Companion docs: execution-log (2), git-status (3), report (4).

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.5-iu-cutter-git-baseline-init/dot-iu-cutter-v0.5-git-baseline-precheck-2026-05-18.md