Loading...
Loading...
Found 21 Skills
Use when you need to review, improve, or refactor Java code for object-oriented design quality — including applying SOLID, DRY, and YAGNI principles, improving class and interface design, fixing OOP concept misuse (encapsulation, inheritance, polymorphism), identifying and resolving code smells (God Class, Feature Envy, Data Clumps), or improving object creation patterns, method design, and exception handling. Part of the skills-for-java project
Use when applying encapsulation and information hiding principles in object-oriented design. Use when controlling access to object state and behavior.
Apply and validate SOLID principles in object-oriented design
SOLID principles for object-oriented design — Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion. Covers motivation, violations, fixes, and multi-language examples (PHP, Java, Python, TypeScript, C++) for building maintainable, extensible software.
Object-oriented design principles including object calisthenics, dependency inversion, fail-fast error handling, feature envy detection, and intention-revealing naming. Triggers on: writing new classes or functions, refactoring, code review, 'clean up', method longer than 10 lines, feature envy, primitive obsession, deep nesting.
Language-agnostic guidance for selecting and applying Gang of Four (GoF) design patterns to recurring object-oriented design problems. Use when deciding among design alternatives, evaluating applicability and tradeoffs, or refactoring rigid/conditional-heavy designs toward better extensibility and lower coupling. Do not use for trivial bug fixes, framework/tool setup, or tasks with no architectural decision. Any TypeScript examples are illustrative only and must be translated to the project's language and constraints.
Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards.
Update existing object-oriented component documentation following industry best practices and architectural documentation standards.
Comprehensive guide for creating software diagrams using Mermaid syntax. Use when users need to create, visualize, or document software through diagrams including class diagrams (domain modeling, object-oriented design), sequence diagrams (application flows, API interactions, code execution), flowcharts (processes, algorithms, user journeys), entity relationship diagrams (database schemas), C4 architecture diagrams (system context, containers, components), state diagrams, git graphs, pie charts, gantt charts, or any other diagram type. Triggers include requests to "diagram", "visualize", "model", "map out", "show the flow", or when explaining system architecture, database design, code structure, or user/application flows.
Create or update standardized object-oriented component documentation using a shared template plus mode-specific guidance for new and existing docs.
Use when implementing polymorphism and interfaces in object-oriented design. Use when creating flexible, extensible systems with interchangeable components.
Use when deciding between inheritance and composition in object-oriented design. Use when creating class hierarchies or composing objects from smaller components.