# gates for dawarich, 2026-10-01T16:32:35Z
== check-image-pins.py
image-pin gate OK — 56 templates, 0 unpinned images
gate exit code = 0
== check-image-resolvable.py dawarich
resolving 3 unique image pin(s)…
image-resolvability gate OK — 3 unique pins, all resolve
gate exit code = 0
== check-engine-major.py
engine-major gate — range origin/main..HEAD: 0 compose file(s) changed, 0 engine pin(s) compared
engine-major gate OK — no forbidden engine major, and no engine major bundled with another image move (rule: CLAUDE.md, amended by R-469 2026-09-21)
gate exit code = 0
== check-probe-matches-compose.py dawarich

probe-matches-compose: OK — every probe dials the port (and, where it can fail, the path) that the app's own compose healthcheck dials
gate exit code = 0
== check-probe-measured.py dawarich
probe-measured: OK — 0 probes, each with a measured before/after
gate exit code = 0
== check-copy-i18n.py dawarich
(re-run after adding the English default_creds twin)
copy-i18n: OK
gate exit code = 0
== check-test-record.py dawarich
test-record gate — 1 template(s) read, 1 carry a ladder, 0 convicted
gate exit code = 0
== check-volume-persistence.py dawarich (RUNTIME, bench 9401)
self-testing the prober (both directions)…
  prober flags the R-156 signature and clears a correct template — trustworthy
dawarich             CLEAN         dawarich-redis: declared volume /data is EMPTY
1 clean · 0 broken · 0 undetermined (of 1 in scope)
volume-persistence gate OK
gate exit code = 0
