Skip to content

jedelman/design-patterns-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software Engineering Pattern Languages Skill

A Claude skill bundling 13 C2 PPR (Portland Pattern Repository) pattern languages for navigating recurring software design problems.

What's Included

  • SKILL.md — Main skill file with triggering patterns, quick reference by problem, and design decision checklist
  • references/PATTERNS.md — Comprehensive pattern index with force-driven selection and pattern sequences
  • references/*.html — Full C2 PPR pattern documents (13 patterns, ~400KB)
  • scripts/pattern_lookup.py — Python utility for pattern lookup by domain, problem, or force
  • TESTING.md — Field test guide with 7 test scenarios

The 13 Patterns

Pattern Author Domain Use When
CHECKS Ward Cunningham Input validation, data integrity Validating user input without coupling UI to domain
Early Development Kent Beck OO design, frameworks Building extensible systems; teaching practices
User Interface Kent Beck UI patterns, state management Building interactive systems
Temporary Variables Kent Beck Code readability, refactoring Improving code clarity
Code Formatting Kent Beck Style, conventions, tooling Establishing team standards
Caterpillar's Fate Norm Kerth Domain modeling, OO design Moving from requirements to architecture
Stars Steve Peterson Data warehousing, analytics Designing analytical query systems
Parallel Patterns Paul McKenney Concurrency, synchronization Multi-threaded systems, lock contention
EPISODES Ward Cunningham Product development, release planning Rapid iteration with market pressure
Partitioning Bobby Woolf Modularity, code organization Scaling teams, establishing code boundaries
Recurring Events Martin Fowler Temporal event modeling Scheduling, subscriptions, calendar systems
ValueModels Bobby Woolf State management, MVC/MVP Decoupling UI from domain state
Architecture Larry Best Design systems, frameworks Organizational consistency, design handbooks

Quick Start

Using the Skill

Describe your design problem:

"I'm building a form for collecting user data. 
I need to validate input without coupling the UI to my backend domain model. 
Users enter invalid times sometimes. What pattern should I use?"

The skill will:

  1. Identify CHECKS pattern is relevant
  2. List key patterns: Whole Value, Echo Back, Deferred Validation
  3. Explain forces: UI flexibility vs. domain purity
  4. Describe consequences: tradeoffs of each pattern

Pattern Lookup

# references/scripts/pattern_lookup.py

from pattern_lookup import search_by_domain, search_by_problem

# Find patterns for a domain
search_by_domain("concurrency")  # → Parallel Patterns

# Find patterns for a problem
search_by_problem("validating user input")  # → CHECKS

Field Testing

See TESTING.md for:

  • 7 test scenarios (Astro Persona, friendly-feed, commons-wire)
  • Success criteria
  • Integration points
  • Known limitations

Design Philosophy

This skill is built on three principles:

  1. Forces over solutions. Understanding why a pattern exists (what forces it resolves) is more valuable than memorizing it.

  2. Patterns sequence. Design decisions build on each other. Don't optimize synchronization before you've profiled contention.

  3. Patterns have consequences. No pattern is universally good. Understanding tradeoffs tells you when to apply a pattern and when not to.

Source

All patterns sourced from C2 PPR (Portland Pattern Repository), the canonical reference for object-oriented and systems design patterns.

Authors:

  • Ward Cunningham (CHECKS, EPISODES)
  • Kent Beck (Early Development, UI, Temporary Variables, Code Formatting)
  • Norm Kerth (Caterpillar's Fate)
  • Steve Peterson (Stars)
  • Paul McKenney (Parallel Synchronization)
  • Bobby Woolf (Partitioning, ValueModels)
  • Martin Fowler (Recurring Events)
  • Larry Best (Architectural Software Development)

Integration

With Claude Code

Use for architectural decisions in code generation:

"Help me design the Astro Persona MCP server API structure"
→ Suggests Partitioning + Architecture patterns

With Agents

Use for design critique and alternative patterns:

Scout-Two designing a new Bluesky feed strategy
→ Mercury suggests EPISODES for product sequencing

With Projects

Tested on:

  • Astro Persona: CHECKS (tier validation), ValueModels (chart state), Partitioning (MCP server)
  • friendly-feed: Stars (analytics schema), Parallel Patterns (WebSocket consumer), EPISODES (product roadmap)
  • commons-wire: Partitioning (code organization), CHECKS (markdown frontmatter validation)
  • Bird Simulator: Caterpillar's Fate (GDD → object structure)

Status

Built: Skill core, pattern index, full PPR corpus, field test guide
🟡 Testing: Integration with Astro Persona & friendly-feed
Next: Refinement based on field tests, community feedback

Files

software-patterns/
├── SKILL.md                 # Main skill (192 lines)
├── TESTING.md               # Field test guide
├── README.md                # This file
├── references/
│   ├── PATTERNS.md          # Full pattern index (193 lines)
│   ├── patterns-index.json  # Searchable index
│   └── *.html               # Full C2 PPR documents (13 files)
└── scripts/
    └── pattern_lookup.py    # Pattern lookup utility (181 lines)

License

C2 PPR patterns are copyrighted by their respective authors and available under the distribution permissions at http://c2.com/ppr/about/copyright.html. This skill bundles and indexes them for educational use.


Built for Jason — Building patterns into design practice, one project at a time.

Last updated: 2026-04-09

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors