oop-design-patterns/SKILL.md
Comprehensive knowledge base covering the main topics from the most influential Object-Oriented Programming books. Use when the user asks about OOP principles, design patterns, SOLID, refactoring, clean code, object thinking, or object-oriented analysis and design. Also useful when reviewing code for OOP best practices, discussing trade-offs like composition vs inheritance, or applying design patterns to solve structural problems.
npx skillsauth add kayaman/skills oop-design-patternsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill synthesizes the main topics covered by the most influential and widely recommended books on Object-Oriented Programming, analysis, and design. It is organized around the recurring themes that appear across the canon rather than as a book-by-book summary.
Every major OOP book builds on four pillars. Understanding these is a prerequisite for everything else in the discipline.
Introduced by Robert C. Martin across several works (Clean Code, Agile Software Development, Clean Architecture), SOLID is the most widely referenced set of OOP design guidelines.
The 23 patterns catalogued in Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, Vlissides — 1994) remain the most referenced vocabulary in OOP. They are organized into three categories.
Concerned with object creation mechanisms: Abstract Factory, Builder, Factory Method, Prototype, Singleton.
Concerned with class and object composition: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
Concerned with communication between objects: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.
The GoF book emphasizes two principles above the individual patterns:
See design-patterns.md for a detailed breakdown of each pattern with intent and applicability.
Martin Fowler's Refactoring (1999, 2nd ed. 2018) established a disciplined process for improving existing code through small, behavior-preserving transformations. Key topics include:
Robert C. Martin's Clean Code (2008) focuses on the craft of writing readable, maintainable code at the function and class level. Core topics:
Covered extensively by Craig Larman (Applying UML and Patterns), Grady Booch (Object-Oriented Analysis and Design with Applications), and Rebecca Wirfs-Brock (Object Design: Responsibility-Driven Design).
A theme that recurs in nearly every major OOP text:
Two metrics that indicate design quality, discussed across all major texts:
David West's Object Thinking (2004) and Alan Kay's original vision of OOP emphasize that objects are autonomous entities that communicate through messages, not mere data containers with attached procedures. Key ideas:
Steve Freeman and Nat Pryce's Growing Object-Oriented Software, Guided by Tests (2009) bridges TDD and OOP design:
For deeper exploration, consult bibliography.md for the full annotated reading list.
tools
Guidance for designing charts, graphs, plots, dashboards, and data visualizations that communicate clearly and persuade. Use when creating or reviewing a visualization, choosing a chart type, picking a color palette, decluttering a busy graphic, fixing misleading axes or proportions, building a dashboard, annotating a figure, or turning data into a presentation, report, or data-driven story. Grounded in the standard data-visualization literature (Knaflic, Tufte, Cleveland & McGill, Cairo, Wilke, Munzner, Few, Berinato). Covers chart selection, graphical perception and encoding, color and accessibility, decluttering, graphical integrity, dashboards, and narrative. Does NOT cover building data pipelines or ETL, statistical modeling or analysis methods, BI tool/vendor selection, or general UI/UX layout (see ux-design-principles). Tool-agnostic, with optional Python recipes.
development
Architect and implement production-grade microservices systems in TypeScript (NestJS) and Python (FastAPI), including resilience, observability, testing, deployment, and migration guidance.
development
--- name: databricks-genie-spaces-best-practices description: Design, configure, curate, govern, monitor, and integrate Databricks AI/BI Genie Spaces — the natural-language-to-SQL surface over Unity Catalog. Covers space scoping, general instructions, parameterized example SQL, SQL functions, trusted assets, JOIN configuration, knowledge store, certified queries, benchmarks, monitoring tab, feedback loops, the Genie Conversation API, governance via Unity Catalog (row filters, column masks, embed
tools
Implement OTP and passwordless authentication on AWS for TypeScript projects using Cognito CUSTOM_AUTH triggers (default) or a custom DynamoDB-backed flow, with SES (email) and SNS (SMS) delivery. Use when the user mentions OTP, one-time password, passwordless login, magic link, Cognito custom auth, DefineAuthChallenge, CreateAuthChallenge, VerifyAuthChallengeResponse, SES verification email, SNS SMS code, or MFA over email/SMS. Covers architecture decision (Cognito vs custom), Lambda trigger handlers, SES/SNS notifiers, DynamoDB schema with TTL, rate limiting, constant-time comparison, threat model (enumeration, replay, brute force), and aws-sdk-client-mock testing.