Skip to main content

ArchW1z Gate Spine

Status: LIVE Branches: master-staging (hygiene) · termux-smoke (runtime surface)

Two gates, one constitution

Every change that wants to reach master should survive both gates.

Gate 1 — repo-gate (on master-staging)

Workflow: .github/workflows/repo-gate.yml Docs: this file + original Critical-Eval recommendation

Design rules (non-negotiable)

  • stdlib only — no pip, no cargo, no node, no network
  • index-based — reads git ls-files, never the working tree
  • device-friendly — same command works on Termux and in CI
  • HARD checks scoped to changed files
  • RATCHET on whole-repo debt counters (debt may only shrink)

What it enforces

Baseline: scripts/ci/baseline.json Lower debt with: python3 scripts/ci/repo_gate.py --write-baseline

Gate 2 — termux-smoke (on termux-smoke)

Workflow: .github/workflows/termux-smoke.yml Full docs: docs/TERMUX-SMOKE.md

What it enforces (required)

  • Python ≥ 3.9
  • Gate scripts present and compile
  • git on PATH
  • bash on Termux (soft elsewhere)
  • writable TMPDIR

Optional probes (--with-optional)

  • deepcli / multi-ai launcher compile (no network)
  • archwiz sample modules compile
  • termux-api presence note

Integration order (ArchW1z)

How to land work

  1. Branch off master-staging or termux-smoke.
  2. Smallest atomic change that preserves invariants.
  3. Push → both gates run on PR.
  4. Green on both → candidate for master.
Do not treat master as the integration point for large TER-* branches.

Next ratchet targets

  • tracked_session_artifacts → 0
  • tracked_browser_credential_stores → 0
  • tracked_browser_profile_files → 0
  • tracked_backup_files → 0
  • Reduce device_absolute_symlinks