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.