designing-systems

Design software architecture using GoF patterns, GRASP, and SOLID.

Updated Feb 21, 2026
One-click install
npx skills add https://github.com/josemartinrodriguezmortaloni/opencode-config --skill designing-systems-josemartinrodriguezmortaloni
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: designing-systems
Source: https://github.com/josemartinrodriguezmortaloni/opencode-config/tree/main/skill/designing-systems
Command: npx skills add https://github.com/josemartinrodriguezmortaloni/opencode-config --skill designing-systems-josemartinrodriguezmortaloni

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps users design robust and maintainable software architectures by applying established design principles and patterns, ensuring systems are well-structured, scalable, and easy to evolve.

Core Features & Use Cases

  • Architectural Guidance: Provides a structured approach to designing software modules and systems.
  • Pattern Selection: Assists in choosing appropriate design patterns (GoF, GRASP) based on complexity and requirements.
  • Diagram Generation: Produces class and sequence diagrams to visualize the architecture.
  • Decision Documentation: Guides the documentation of design choices and justifications.
  • Use Case: Before starting a new feature, use this skill to design the core classes, define their responsibilities, and select the best patterns to ensure future extensibility.

Quick Start

Use the designing-systems skill to design a new user authentication module, focusing on SOLID principles and choosing appropriate GoF patterns.

Frequently Asked Questions about designing-systems

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

FAQPage Schema
How do I structure software modules before coding to ensure they are maintainable?

To design a new software module, apply GoF patterns and GRASP principles to define core class responsibilities and relationships. This architectural guidance ensures your system is well-structured, scalable, and easy to evolve before you start writing any implementation code.

What design patterns should I use when architecting a new software feature?

Selecting appropriate GoF and GRASP design patterns depends on your system's specific complexity and requirements. Applying these established patterns alongside SOLID principles ensures your software architecture is well-structured, scalable, and easy to evolve as new features are added.

Can I generate class and sequence diagrams to visualize my software architecture?

Yes, you can generate class and sequence diagrams to visualize your software architecture. This diagram generation maps out core classes, defines their responsibilities, and illustrates interactions, producing a clear visual representation of your system's design decisions and structural flow.

How does applying SOLID principles help with software architecture design?

Applying SOLID principles in software architecture design helps create robust and maintainable systems by ensuring modules have well-defined, single responsibilities. This structured approach guides the documentation of design choices, ensuring the system architecture remains scalable and easy to evolve.

What is the best way to document design decisions when structuring a system?

The best way to document design decisions is to record your chosen GoF patterns, GRASP principles, and SOLID justifications. This decision documentation captures the architectural rationale behind structuring your system, ensuring future maintainability and clear guidance for subsequent development efforts.