engineering-disciplinelisted
Install: claude install-skill abhimanyusingh-gh/software-craftsmanship
# Engineering discipline
## The non-negotiables (apply always, no reference read needed)
1. **Scope isolation.** Every read, write, aggregate, export, and storage path filters on the full `<scope-key>`, enforced at the lowest layer that can rather than at N call sites. A dropped scope key is a cross-customer data leak: blocker, never a nit.
2. **Reuse before writing.** Search for an existing implementation first; extend or parameterize rather than clone. List every reused symbol in the PR body and justify anything new. Duplicated logic: 2× → should-fix, 3× → request-changes.
3. **No narrative comments.** The code is the doc. Comment only a genuinely non-obvious *why* — a hidden invariant, a known workaround, a surprising external constraint. No file-header docstrings, no "TODO until the issue lands".
4. **Const-as-enum over repeated string literals.** Any fixed variant set gets a named constant object plus derived type, in preference to a language `enum` keyword. Consume the exported enum; never re-type its values.
5. **No raw `string` for semantic values.** Branded types for IDs and domain primitives, const enums for finite value sets. Grep for the existing brand before creating one.
6. **Export only what has an in-PR consumer** — no speculative exports, no barrels nothing imports through. But when a dead-code tool flags something, **classify before deleting**: scaffolding is deleted, a spec-required capability is wired to its consumer in the same PR. Deleting a capability