What problem does it solve? It prevents pattern-stuffing in codebases by forcing every new abstraction to justify itself against a concrete, present force before any named design pattern is applied. ## Core Features & Use Cases - Selection protocol: Inspect existing project patterns first, name the present force, then choose the simplest default or refuse with a one-line why. - Default-reject list: Single-implementation Strategy, speculative Repository, unnecessary Factory, Singleton, Service Locator, and trivial State are rejected unless the force is documented. - Pattern ledger: Every surviving pattern gets a pattern / force / rejected alternative line in the spec's Design notes; missing entries are treated as pattern-stuffing by reviewers. - Use Case: While writing a spec for a payment mini-feature, record Strategy / three payment providers ship today / dict of functions so implementers and reviewers share one justified decision. ## Quick Start Ask the agent to apply the patterns skill to decide whether a new abstraction in your spec or diff earns a named design pattern.