Install · Progressive wiring

Prove the pipe. Then turn detection on.

Same onboarding pattern as a local NVR: get an empty dashboard first. Do not enable matching until doctor is green. Numbered configs live in config/progressive/.

PhaseMatchingVerify
1 Wire onlyoffnpx thumbgate doctor
2 Dashboardoffpage loads, empty OK
3 One lessonoffnpx thumbgate stats
4 Warn fireswarnhook log / gate-stats
5 Strictoptional denyonly after 1–4

Phase 1 — Wire only

Hooks exist. No expectation that a gate fires yet.

npx thumbgate init
npx thumbgate doctor

Verify: doctor exits 0. Empty is success.

Phase 2 — Empty dashboard is OK

npx thumbgate dashboard --open

Verify: HTML loads. Zero interdictions is not a failed install.

Phase 3 — One lesson

npx thumbgate capture --feedback=down \
  --context="Never run DROP on production tables" \
  --what-went-wrong="agent proposed DROP" \
  --what-to-change="require review for DROP"

Phase 4 — Confirm a warn

Default is flag + log. Secret-exfil floors already deny. Do not jump to strict because “nothing blocked.”

npx thumbgate gate-stats

Phase 5 — Strict (optional)

export THUMBGATE_STRICT_ENFORCEMENT=1

Only after phases 1–4. Learned matches can hard-deny.

Install paths · Technical setup · config/progressive