production-software-architecture
Installation
SKILL.md
Production Software Architecture
Apply only when the user explicitly invokes this skill.
Use this skill to make software easier to change safely over years of production use. Optimize for comprehensibility, explicit boundaries, controlled coupling, operational safety, and reversible evolution—not maximum abstraction or architectural fashion.
Core stance
- Preserve working behavior unless change is explicitly required.
- Understand the existing system before prescribing a new structure.
- Prefer local consistency over theoretical purity unless the current convention is actively harmful.
- Prefer the smallest design that clearly satisfies present requirements and known near-term pressures.
- Introduce abstractions when there is evidence of variation, policy, boundary protection, or repeated change—not merely because a pattern exists.
- Prefer deep modules: small, stable interfaces hiding substantial implementation detail.
- Minimize conceptual surface area. Every new layer, interface, framework, dependency, service, queue, cache, or data store creates maintenance cost.
- Treat operability, failure modes, migrations, security, and compatibility as architecture—not afterthoughts.
- Convert recurring architectural rules into machine-checkable constraints whenever practical.
- Leave the codebase easier to understand and safer to change than before.