awesome-software-design-patterns

Implements design patterns, architecture decision records, and CI-based architecture verification rules.

4|Updated May 16, 2026
One-click install
npx skills add https://github.com/reason-machines/design-skills --skill awesome-software-design-patterns-reason-machines
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: awesome-software-design-patterns
Source: https://github.com/reason-machines/design-skills/tree/main/skills/awesome-software-design-patterns
Command: npx skills add https://github.com/reason-machines/design-skills --skill awesome-software-design-patterns-reason-machines

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developers often struggle to choose the right design pattern, document architecture decisions consistently, and enforce structural rules as codebases grow, leading to tangled dependencies and lost design rationale. ## Core Features & Use Cases - Design Pattern Reference: Provides working Go and PHP implementations of creational, structural, and behavioral patterns including Singleton, Factory, Builder, Adapter, Decorator, Strategy, and Observer. - Architecture Decision Records: Supplies MADR templates and CLI workflows using adr-tools and log4brains to document and publish architecture decisions. - Architecture Verification: Configures ArchUnit, Arkitect, arch-go, and dependency-cruiser rules plus GitHub Actions workflows to enforce layer boundaries in CI. - Use Case: When starting a new microservice, use this Skill to scaffold a Clean Architecture layout in Go, write an ADR justifying the database choice, and add CI checks that fail builds violating layer dependencies. ## Quick Start Ask the assistant to show you which design pattern fits your current problem and generate a working implementation with an ADR documenting the decision.

Frequently Asked Questions about awesome-software-design-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose the right design pattern for my problem?▼

Match your problem to the pattern category: creational patterns control object creation, structural patterns compose interfaces, and behavioral patterns manage object interaction. The Skill provides working Go and PHP examples for each pattern to compare against your use case.

How do I create architecture decision records in my project?▼

Use adr-tools or log4brains to initialize an ADR directory and create records from the MADR template. Each record captures context, decision, and consequences, and log4brains can publish them as a static documentation site.

What tools enforce architecture rules in CI pipelines?▼

ArchUnit works for Java, Arkitect for PHP, arch-go for Go, and dependency-cruiser for TypeScript and JavaScript. Each defines layer dependency rules that fail the build when violated, and all integrate into GitHub Actions workflows.

Does Clean Architecture work with Go projects?▼

Yes, the Skill demonstrates a full Go implementation with domain, application, infrastructure, and interfaces layers. Domain entities define repository interfaces while infrastructure packages provide concrete implementations like PostgresUserRepository.

When should I use event sourcing versus a traditional CRUD approach?▼

Event sourcing fits when you need a complete audit trail, temporal queries, or event-driven integration, as shown in the Order aggregate example. For simple data without history requirements, traditional CRUD with a repository pattern involves less complexity.