What problem does it solve? Software packages tend to accumulate unnecessary abstractions, speculative frameworks, and sprawling pull requests that mix unrelated changes, making codebases harder to maintain. This Skill provides a default engineering philosophy that keeps software conceptually small as it grows by enforcing reuse-first development, one semantic change per PR, and preservation of unrelated behavior. ## Core Features & Use Cases - Development Invariants: Fifteen concrete rules covering reuse before implementing, preferring existing representations, depending on public contracts, and earning new classes only with demonstrated need. - Pre-Change Planning: Required questions and a PR scope template that force explicit statements of problem, intended change, non-goals, reuse opportunities, and behavioral boundaries before writing code. - Review Heuristics & Split Signals: Checklists for reviewers and concrete warning signs (e.g., "fix + rename", "move + redesign") indicating a PR should be split into separate semantic changes. - Use Case: When asked to add a feature to an established package, apply this Skill to first check whether existing containers, upstream implementations, and public APIs already solve the problem, then scope the PR to one observable change with a focused regression test. ## Quick Start Apply the core development philosophy to plan and review my next pull request for this package.