KB-14DC

O8E pre-production hardening (Contabo) — 09-mac-command-package-if-needed

4 min read Revision 1
dieu44iu-cutterv0.6o8epre-production-hardening

O8E Report 09 — Mac command package (G9)

  • macro: v0.6-o8e-pre-production-hardening-bundle
  • date_utc: 2026-05-21
  • gate covered: G9 — Mac command package (source patches needed)
  • result: G9 PASS — Mac source work IS required; packaged below. No SSOT source was patched from the VPS.

Why a Mac package is needed

O8E is VPS-side hardening (G2/G3/G4 done on Contabo). Three deliverables require editing the Mac SSOT repo (/Users/nmhuyen/iu-cutter-build/repo/ iu-cutter, branch main at cad989a). The VPS deployed tree carries no .git and is NOT the SSOT — it must not be patched as source.

§F2 — live-text sourcing (closes the F2 residual)

host: developer Mac
file: cutter_agent/orchestrator/discover.py
task: replace LiveDryRunDiscoverer._shadow_mark_rows placeholder body/title
      ('O4-DRYRUN-SHADOW') with real sourcing from the live source text /
      information_unit body; LiveReadOnlyDiscoverer reads the actual document.
test: a multi-row cut from genuine content; keep DRYRUN snapshot tests green.
scope: localised to discover.py — small, no architecture ruling needed.

§F3 — recorder generalization + production writers (Report 05)

host: developer Mac
files: cutter_agent/ledger_v2_canonical_cut.py  (LegBRecorder)
       cutter_agent/ledger_v2_canonical_verify.py (VerifyRecorder)
       + new cutter_agent/orchestrator/governance_writers.py
task:  per Report 05 §2 — N off RunContext.candidate_count; rename
       body_hash_match_60 → body_hash_match_count; EXPECTED_SECTION_TYPE
       per-document; PIN_M1_* → test fixtures; author governance_writer +
       verify_writer wrapping the generalised recorders.
test:  Report 05 §3 matrix T1..T7 — incl. the frozen M1 regression
       (writer_digest d99a31d4…).
scope: touches v0.5-RATIFIED files — REQUIRES sovereign design ratification
       BEFORE coding. Do not patch ahead of the ruling.

§GAP6 — compensating-decision writer (Report 04 Compensation B)

host: developer Mac
task: a small writer that appends a sovereign-signed compensating
      review_decision marking a change_set_id as 'reverted' (append-only
      ledger; never deletes governance rows).
scope: small; bundle with §F3.

§cosmetic — milestone comment cleanup (O8D Report 04 known residue)

host: developer Mac
file: cutter_agent/orchestrator/__init__.py
task: the __milestone__ inline comment still reads "Contabo artifact 703559c"
      while the deployed O8D artifact is cad989a. Non-load-bearing; fix in the
      next commit. Trivial.

Bundling & deploy

recommendation: bundle §F2 + §F3 + §GAP6 + §cosmetic into ONE Mac macro
                (per the O8B ruling scope-sizing note — avoid micro-commits).
sequence:       sovereign ratifies the F3 design (Report 05) → Mac macro
                implements all four → commit on main (parent cad989a) →
                clean artifact + DEPLOY-MANIFEST → deploy side-by-side to
                Contabo (O8B/O8D method) → kill-switch stays OFF → 4xx/4xx
                tests on the promoted tree → real-DB rollback-only proof.
not_done_here:  no SSOT source was edited from the VPS this macro.

Verdict

mac_package_needed: YES — F2 live-text, F3 generalization + writers, GAP6
                    compensating writer, cosmetic comment
vps_source_patched: NO
g9: PASS
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-o8e-pre-production-hardening-bundle/09-mac-command-package-if-needed.md