| name | stop-me-init |
| description | Write a .stop-me.yml for the current repository by scanning it, guessing every field, and asking the user to confirm. Use for "/stop-me-init", "set up stop-me", "configure stop-me", or when an install of the stop-me skill reaches the config step. |
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 CI
platform — publishes a package, exposes a documented API, or carries tenancy columns
product — everything else. When torn between two, pick product; 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.