software-architecture

Guides code writing and architecture design using Clean Architecture and Domain Driven Design principles.

Updated Aug 3, 2026
One-click install
npx skills add https://github.com/Yvesdefaria/GymLab --skill software-architecture-yvesdefaria
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/Yvesdefaria/GymLab/tree/main/.opencode/skills/software-architecture
Command: npx skills add https://github.com/Yvesdefaria/GymLab --skill software-architecture-yvesdefaria

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developers often produce code with mixed concerns, generic naming, duplicated logic, and reinvented utilities, leading to unmaintainable codebases. This Skill enforces consistent architecture and code quality standards whenever you write, design, or review software. ## Core Features & Use Cases - Clean Architecture & DDD Guidance: Separates domain entities from infrastructure, keeps business logic independent of frameworks, and enforces bounded context naming. - Code Style Rules: Applies early return patterns, limits nesting depth, caps function and file lengths, and promotes arrow functions and reusable modules. - Library-First Decision Making: Directs you to evaluate existing npm packages and third-party services before writing custom code, avoiding NIH syndrome. - Use Case: When asked to build a new feature, the Skill steers the implementation toward domain-specific naming (e.g., OrderCalculator instead of utils), isolated use cases, and existing libraries like cockatiel for retry logic. ## Quick Start Ask the AI to design or review a module for your application and it will apply Clean Architecture and DDD rules to the result.

Frequently Asked Questions about software-architecture

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

FAQPage Schema
How do I apply Clean Architecture principles when writing new code?

Separate domain entities from infrastructure concerns and keep business logic independent of frameworks. Define isolated use cases, keep database queries out of controllers, and never mix business logic with UI components.

When should I write custom code instead of using a library?

Write custom code only for domain-specific business logic, performance-critical paths, security-sensitive code, or when existing solutions fail evaluation. Otherwise prefer established libraries, such as cockatiel for retry logic instead of custom retry helpers.

What naming conventions does Domain Driven Design recommend?

Use domain-specific names like OrderCalculator, UserAuthenticator, or InvoiceGenerator that reflect bounded contexts. Avoid generic names such as utils, helpers, common, or shared, which become dumping grounds with unclear purpose.

How long should functions and files be for maintainable code?

Keep functions under 50 lines and files under 200 lines when possible. Decompose components longer than 80 lines into smaller units, and avoid nesting deeper than three levels by using early returns.

What are the limitations of a library-first approach?

A library-first approach can add unnecessary dependencies for trivial tasks or fail when existing solutions do not meet specific requirements. Evaluate each dependency for maintenance cost, since every external package still requires updates and compatibility checks.