stop-me-init
Write .stop-me.yml by reading the repo, never by interviewing the user. What the fields
mean is defined in the stop-me skill (gate 1 overrides, gate 3 horizon) — this skill only
decides their values for one repo. Guess every
field, show each guess with the evidence behind it, ask once, write.
Guess horizon
Read before you guess: git log (age, contributor count via git log --format=%ae | sort -u),
deploy files (Dockerfile, fly.toml, Procfile, compose, k8s manifests), CI workflows,
publish config (package.json publishConfig/not-private, pyproject classifiers), schema
files for tenancy columns.
prototype— repo under ~30 days old, one deploy target or none, no CIplatform— publishes a package, exposes a documented API, or carries tenancy columnsproduct— everything else. When torn between two, pickproduct; the horizon only weights gate 3, and a wrong guess costs one line to fix.
Guess irreversible / reversible
Only list what the built-in surfaces get wrong for this repo:
- published SDK, proto, or wire-format directories the defaults would miss →
irreversible - local-only throwaway paths (dev migrations recreated on boot, scratch dirs) →
reversible
Most repos need neither list. An empty guess is a real answer — say "the defaults already fit this repo" instead of padding the file to look thorough.
Confirm and write
Show the proposed YAML in one block, one line of evidence per field, then exactly one
question: write it as-is, or with which edits? Write .stop-me.yml to the repo root only
after the answer. Never write DECISIONS.md — stop-me creates that on its first objection.