software-architecture

Guide software development with Clean Architecture and Domain Driven Design principles.

4|Updated Jan 27, 2026
One-click install
npx skills add https://github.com/k97/dock-tile --skill software-architecture-k97
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/k97/dock-tile/tree/main/website/.claude/skills/software-architecture
Command: npx skills add https://github.com/k97/dock-tile --skill software-architecture-k97

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill addresses the common pitfalls of poor software design, such as spaghetti code, tight coupling, and the Not Invented Here (NIH) syndrome, by providing a structured framework for high-quality development.

Core Features & Use Cases

  • Clean Architecture & DDD: Provides actionable guidance on separating domain logic from infrastructure and using ubiquitous language.
  • Code Quality Standards: Enforces best practices like the early return pattern, modularization, and strict file/function length limits.
  • Library-First Strategy: Encourages the use of existing, battle-tested solutions over custom implementations to reduce maintenance liability.
  • Use Case: Use this skill when starting a new project or refactoring a legacy module to ensure the architecture remains decoupled, testable, and aligned with domain-driven design principles.

Quick Start

Use the software-architecture skill to review my current module structure and suggest improvements based on clean architecture principles.

Frequently Asked Questions about software-architecture

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

FAQPage Schema
How do I refactor a legacy module to follow clean architecture principles?

Clean architecture prevents spaghetti code and tight coupling by separating domain logic from infrastructure using a library-first strategy. It enforces modularity and separation of concerns, reducing maintenance liability and ensuring your system remains scalable and maintainable.

How do I apply Domain Driven Design to separate domain logic from infrastructure?

To apply Domain Driven Design, you separate domain logic from infrastructure and use ubiquitous language for clear communication. This approach enforces modularity and separation of concerns, ensuring your software design remains decoupled and testable.

Can I use this architectural guidance for both new projects and refactoring existing code?

Yes, you can use this architectural guidance for both starting new projects and refactoring legacy modules. It applies clean architecture and domain-driven design principles to ensure your software system remains decoupled, testable, and maintainable.

What is the library-first development strategy for software design?

The library-first development strategy encourages using existing, battle-tested solutions over custom implementations to reduce maintenance liability. It prevents the Not Invented Here (NIH) syndrome by enforcing modularity and strict code quality standards.

What are the best practices for code quality standards in software architecture?

Best practices for code quality standards include enforcing the early return pattern, modularization, and strict file and function length limits. These standards ensure separation of concerns, preventing spaghetti code and tight coupling in your software architecture.

When should I not use Domain Driven Design for system design?

You should reconsider using Domain Driven Design if your project lacks complex domain logic, as its strict separation of concerns and ubiquitous language requirements may introduce unnecessary overhead for simple software design tasks.