Skip to content

nohemi20231/design-skills

v1.1.0Apache-2.0

Skills for reasoning about software design: design judgment, refactor proposals, clean code, TDD, architecture, and a living architecture diagram.

architecture-diagram

Use at the start of any design, feature, or refactoring work in a repo to read the living architecture diagram, and whenever services, modules, data stores, or integrations change, to update it.

clean-code
refactor-proposal

Use when planning, writing, or reviewing a refactor. Covers writing a refactor proposal (the ask, the benefits, what changes), deciding whether a new requirement needs a refactor first, hunting duplicated code and duplicated payloads, replacing flags and hard-coded values, centralizing error handling, judging a refactor pull request by how the tests changed, and automating validation with sample data. Use it whenever someone says "refactor", "clean this up before we add X", "this isn't scalable", "too many if/else", "we keep copying this", or a new requirement does not fit the current design, even if they never say "refactor".

software-architecture
software-design

Use when deciding how to design code or a change before writing it, reviewing a pull request for design quality, or judging whether a design is "good". Covers what design actually is, just-in-time design, the economics of change, minimalism versus extensibility, cohesion and coupling, readability, non-functional requirements, and analysis versus design. Use it whenever someone asks "is this good design?", "should I make this extensible?", "how should I structure this?", "is this over-engineered?", or pauses to think about how to approach a change, even if they never say the word "design".

tdd