sdlc-decidelisted
Install: claude install-skill swapnil-agrim/loopsmith
# sdlc-decide
The registry behind LoopSmith's **only non-negotiable gate**. Every other guardrail here is
discipline a model is asked to follow — and a model can talk itself past discipline, especially at
3am on iteration forty of an autonomous run. A registered invariant is different: the edit is refused
by a script that does not negotiate.
Registry: `.sdlc/decisions.json`. **Authoring it is the opt-in** — no registry, no behavior.
## What belongs in here (and what doesn't)
The bar is narrow on purpose. A registry full of things that don't matter trains everyone to click
through the prompt, and then it protects nothing.
**Record it when all three hold:**
1. Breaking it causes real damage — corrupted data, a security hole, money spent, a silent wrong
answer. Not "inconsistent with our style".
2. **Nothing else already catches it.** If a linter, type checker, schema, or CI job fails on it,
that's your enforcement — a second copy just rots out of sync. This is for the rules that are
invisible to tooling.
3. It's expressible as a **value constraint on a named thing in known files** — `timeout ≤ 30`,
`verify_ssl == True`, `region in [...]`. A rule you cannot write as a comparison belongs in the
north-star as prose, not here.
**Don't record:** style preferences, anything a formatter owns, aspirations ("we should eventually…"),
or a rule whose real enforcement is a code review. Those are north-star material —
`.sdlc/context/north-star.md` — and `sdlc-plan-revie