screaming-architecture

Transform project layouts into domain-first folder boundaries.

Updated Apr 14, 2026
One-click install
npx skills add https://github.com/BrunoAMSilva/my-config --skill screaming-architecture-brunoamsilva
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: screaming-architecture
Source: https://github.com/BrunoAMSilva/my-config/tree/main/coding/skills/screaming-architecture
Command: npx skills add https://github.com/BrunoAMSilva/my-config --skill screaming-architecture-brunoamsilva

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Domain-first folder structure that makes the system's purpose obvious, reducing confusion between business concepts and technical layers.

Core Features & Use Cases

  • Domain-first root: top-level folders named after business capabilities (e.g., orders, users) rather than controllers or services.
  • Feature self-containment: each domain package owns its models, services, routes, and tests.
  • Framework-at-the-edge guidance: keep framework-specific code at the outer layers while keeping domain logic framework-free.
  • Use Case: when starting a new project or refactoring a large codebase to reflect real business boundaries.

Quick Start

Organize a new project by structuring folders around business capabilities rather than frameworks.

Frequently Asked Questions about screaming-architecture

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

FAQPage Schema
What is screaming architecture in project structure?

Screaming architecture organizes a project structure into domain-first boundaries, making the system's business purpose obvious by naming top-level folders after business capabilities rather than technical layers like controllers or services.

How do I structure a project by domain instead of framework?

To structure a project by domain, create a domain-first root using top-level folders named after business capabilities. Ensure feature self-containment so each domain package owns its models, services, routes, and tests independently.

When should I refactor my codebase to use a domain-driven folder structure?

Refactor to a domain-driven folder structure when starting a new project or reorganizing a large codebase. It is ideal for teams needing to reflect real business boundaries and enforce framework-at-the-edge separation.

Does domain-first architecture keep framework code separate from business logic?

Yes, domain-first architecture provides framework-at-the-edge guidance. It keeps framework-specific code isolated at the outer layers while ensuring the core domain logic remains completely framework-free.

What is the best way to organize folders around business capabilities?

The best way to organize folders around business capabilities is enforcing feature self-containment. Each domain package should own its models, services, routes, and tests, ensuring the root structure screams the system's intent.

Can I apply screaming architecture to an existing project with major refactoring?

Yes, screaming architecture applies to major refactors of existing projects. It transforms the current project layout into domain-first boundaries, reorganizing the codebase around core business concepts to reduce confusion.