designing-software

Plan software designs with C4 modeling and SOLID principles.

Updated Aug 27, 2026
One-click install
npx skills add https://github.com/cyarie/cyarie-claude-plugin --skill designing-software
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: designing-software
Source: https://github.com/cyarie/cyarie-claude-plugin/tree/main/skills/designing-software
Command: npx skills add https://github.com/cyarie/cyarie-claude-plugin --skill designing-software

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Planning features, APIs, and architectures without clear decision criteria leads to misalignment and brittle systems.

Core Features & Use Cases

  • Discovery questions surface edge cases and nonfunctional requirements before coding.
  • C4 modeling provides a scalable approach to discussing System Context, Containers, and Components.
  • SOLID principles guide the structure of software for maintainability, testability, and extensibility.
  • Use Case: design a new feature by outlining the system boundaries, mapping to diagrams, and validating critical trade-offs.

Quick Start

Create a concise design brief for your feature and map it to a Level 1 System Context diagram.

Frequently Asked Questions about designing-software

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

FAQPage Schema
How do I plan software architecture and identify edge cases before coding?▼

Planning software architecture involves using discovery questions and C4 modeling to surface edge cases and define system boundaries. This approach evaluates trade-offs and nonfunctional requirements early in feature design to prevent brittle systems.

What is the C4 model and how does it help with system design?▼

The C4 model is a scalable diagramming approach for system design that structures discussions across System Context, Containers, and Components. It helps map feature boundaries and visualize architectural decisions clearly for design reviews.

How do I apply SOLID principles to structure software for maintainability?▼

Applying SOLID principles guides software structuring for maintainability, testability, and extensibility. By validating critical trade-offs against these principles during feature planning, you ensure robust API design and architecture.

What's the best way to document API design and architectural decisions?▼

Documenting API design and architectural decisions is best done by creating a concise design brief mapped to a Level 1 System Context diagram. This method ensures clear decision criteria and interface definitions across systems.

Can I use discovery questions to evaluate trade-offs for feature planning?▼

Discovery questions can be used to evaluate trade-offs for feature planning by surfacing nonfunctional requirements early. This technique defines interfaces and validates architectural boundaries before implementation begins.

When should I not use detailed software design documentation for a new feature?▼

Detailed software design documentation may be unnecessary when a new feature requires no complex architectural decisions or interface definitions. Without critical trade-offs or nonfunctional requirements to evaluate, lightweight planning suffices.