software-architecture

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

Updated Jul 29, 2026
One-click install
npx skills add https://github.com/MaiconGambini/opencode-harness-guide --skill software-architecture-maicongambini
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/MaiconGambini/opencode-harness-guide/tree/main/skills/software-architecture
Command: npx skills add https://github.com/MaiconGambini/opencode-harness-guide --skill software-architecture-maicongambini

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developers often produce tightly coupled code with generic naming, duplicated logic, and business rules mixed into UI or infrastructure layers, making systems hard to maintain and test. ## Core Features & Use Cases - Architecture Guidance: Enforces Clean Architecture and Domain-Driven Design principles, separating domain entities from infrastructure and keeping business logic framework-independent. - Code Style Rules: Applies early returns, limits nesting depth, caps function length at 50 lines and file length at 200 lines, and prefers arrow functions. - Library-First Decision Making: Directs evaluation of existing npm libraries and SaaS solutions before writing custom code, with explicit criteria for when custom code is justified. - Use Case: When asked to build a new order-processing module, the skill steers the design toward domain-specific names like OrderCalculator, isolated use cases, and reuse of established libraries instead of custom retry or validation logic. ## Quick Start Ask the assistant to design or review a module, class structure, or codebase following Clean Architecture and DDD principles.

Frequently Asked Questions about software-architecture

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

FAQPage Schema
How do I structure code following Clean Architecture principles?

Separate domain entities from infrastructure concerns, keep business logic independent of frameworks, and define isolated use cases. Avoid placing database queries in controllers or mixing 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.

What naming conventions does Domain-Driven Design recommend?

Use domain-specific names like OrderCalculator, UserAuthenticator, or InvoiceGenerator instead of generic names like utils, helpers, common, or shared. Each module should have a single clear purpose within its bounded context.

How long should functions and files be in clean 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 common software architecture anti-patterns to avoid?

Avoid NIH syndrome such as building custom auth instead of using Auth0 or Supabase, mixing business logic with UI, database queries in controllers, and dumping unrelated functions into utils or helpers files.