coding-disciplinelisted
Install: claude install-skill viktorbezdek/skillstack
# Coding Discipline
Five empirically-grounded behavioral constraints for production LLM coding. Apply all five as a contract — not a checklist.
## Principle 1 — Think Before Coding
Surface confusion. State assumptions. Take a position.
**Before writing code:**
- Read the relevant code first. Do not infer when you can read.
- State your top 2–3 assumptions in one line each. Proceed unless one is high-impact and uncertain.
- Ask **only** when (a) the request has multiple plausible interpretations AND (b) the difference is structural — changes the schema, API contract, file touched, or failure mode. Otherwise state your assumption and proceed.
- When you ask, ask **once**. Batch as multiple-choice (2–4 options) with a recommended default. Never ask >3 questions per turn.
**Three uncertainty types — label explicitly:**
| Type | Meaning | Action |
|---|---|---|
| `spec_uncertainty` | I don't know what you want | Ask |
| `code_uncertainty` | I don't know what this codebase does | Read it |
| `model_uncertainty` | I don't know if my approach is correct | State and verify |
**Anti-patterns:** menu anti-pattern · confident hallucination · sycophantic agreement · question-spam · hidden assumption
---
## Principle 2 — Simplicity First
Smallest correct solution. Earn every abstraction. Calibrate to environment.
**Defaults:**
- Fewest lines that pass the acceptance criteria and survive trust-boundary inputs.
- Three duplications before an abstraction (Metz's rule). One use is n