KB-2A73

05 - Post-Deploy Checks (O6B)

5 min read Revision 1
dot-iu-cutterv0.6O6BG5post-deploysmoketests

05 - Post-Deploy Checks

O6B · doc 5 of 8 · 2026-05-21 · Gate G5 — Contabo post-deploy checks. All checks run on the deployed copy at /opt/incomex/dot/iu-cutter-v0.6 under Contabo's system Python 3.12.3.

1. Files present

file_count:        80  (excl DEPLOY-MANIFEST.txt)   ✓ == artifact manifest
cutter_agent/orchestrator/:  PRESENT
sql/lifecycle/:              PRESENT
tests/:                      PRESENT

2. Forbidden-file / secret scan (on deployed tree)

file_scan:    .env* / *.pyc / __pycache__ / .git / *.pem / *.key / id_rsa*
              -> ZERO hits
literal_scan: grep for  postgres(ql)://user:pass@  and  PGPASSWORD="..."
              -> 2 hits, both verified BENIGN:
   tests/test_orchestrator_o1_run_context.py:41  "postgres://x:y@z/db"
   tests/test_orchestrator_o1_runner.py:125      "postgres://x:y@z/db"
   -> dummy x/y/z placeholders inside secret-REFUSAL unit tests
      (they assert the orchestrator rejects secret-shaped pins).
      NOT real credentials. Artifact carries no live secret.

3. Kill-switch (deployed copy)

file:   cutter_agent/orchestrator/__init__.py
line36: __execution_enabled__ = False   # flipped to True only by later sovereign ruling
verdict: kill-switch OFF  ✓

4. Static + import smoke (Python 3.12.3)

py_compile:   python3 -m compileall -q cutter_agent cli.py
              -> OK (every module compiles under Python 3.12;
                     no 3.11->3.12 syntax regression)
import:       import cutter_agent, cutter_agent.orchestrator     -> OK
              import runner, run_context, state_store, gates,
                     discover, enums                              -> OK
runtime_values:
  cutter_agent.__version__            : "0.4.0-dryrun-skeleton"
  orchestrator.__execution_enabled__  : False
  Mode members                        : ['DRYRUN', 'LIVE']

5. Full test suite — 366/366 on Contabo

runner:   python3 -m unittest discover -s tests -p 'test_*.py'
          (pytest absent on host -> stdlib unittest; all 21 files are
           unittest.TestCase based, so the full suite is covered)
result:   Ran 366 tests in 3.560s
          OK
verdict:  366/366 PASS on Contabo Python 3.12.3   ✓ == dev-Mac baseline

6. Mode.LIVE structural refusal

check:    runner.py source contains the Mode.LIVE + __execution_enabled__
          refusal guard (mode == Mode.LIVE and not __execution_enabled__
          -> raises). Confirmed present.
effect:   while __execution_enabled__ is False, no phase can run live.
verdict:  Mode.LIVE refused  ✓

7. CLI surface note (not a defect)

cli.py:   `python3 cli.py --help` -> "dot-iu-cutter v0.4 - local / dry-run
          CLI entrypoint ONLY"; subcommands: demo, run, selftest.
          There is NO `orchestrate` subcommand at HEAD 6625f76.
meaning:  the v0.6 orchestrator is a LIBRARY subpackage
          (cutter_agent.orchestrator) — it is invoked programmatically
          via OrchestratorRunner, not via the CLI. The O6 deploy plan
          assumed `cli.py orchestrate inspect`; that command does not
          exist in the real source. This is a SOURCE REALITY at 6625f76,
          NOT a deploy defect. O6B did not fake an `orchestrate` PASS and
          did not mutate cli.py. CLI wiring is a future (O7+) decision.

8. Dependency-gap report (per G5 mandate)

missing_dependency:  pytest  (Contabo system python)
fallback_used:       python3 -m unittest discover  -> 366/366 OK
                     (no functional loss — full suite still ran)
host_mutation_avoided: pytest was deliberately NOT installed
                       (would mutate the host outside the deploy dir)

9. Result

G5_verdict:  PASS
  files present .......... PASS (80 + manifest)
  no forbidden files .... PASS
  execution_enabled ..... False
  py_compile ............ PASS (Python 3.12.3)
  import ................ PASS
  tests ................. PASS 366/366 (unittest; pytest absent, documented)
  Mode.LIVE refusal ..... PASS
proceed_to:  G6 read-only live dry-run smoke
Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-o6b-devhost-deploy-postdeploy-smoke/05-post-deploy-checks-2026-05-21.md