usecase-design

Design modular software architectures with use cases and thin routers.

1|2|Updated Apr 6, 2026
One-click install
npx skills add https://github.com/parisgroup-ai/imersao-ia-setup --skill usecase-design
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: usecase-design
Source: https://github.com/parisgroup-ai/imersao-ia-setup/tree/main/skills/usecase-design
Command: npx skills add https://github.com/parisgroup-ai/imersao-ia-setup --skill usecase-design

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Modular software teams struggle with mixing business logic and infrastructure, leading to tightly coupled routers and hard-to-test code.

Core Features & Use Cases

  • Thin routers that delegate to dedicated use cases
  • Clear module structure: modules/{module}/ with application/use-cases, domain, infrastructure layers
  • Dependency injection and repository interfaces to enable testability and flexible implementations

Quick Start

Create a new module following the prescribed structure and implement a basic CreateXUseCase to wire the flow.

Frequently Asked Questions about usecase-design

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

FAQPage Schema
How do I separate business logic from routers in a modular architecture?

To separate business logic from routers, implement thin routers that delegate operations to dedicated use cases. This modular architecture encapsulates domain rules cleanly, preventing infrastructure coupling and keeping application logic isolated.

What is the best way to structure modules for domain-driven design?

The best way to structure modules for domain-driven design is using a prescribed layout: modules/{module}/ containing application/use-cases, domain, and infrastructure layers. This enforces clean separations between presentation, application, and domain logic.

How do I make use cases testable with dependency injection?

Make use cases testable with dependency injection by defining repository interfaces and injecting dependencies into your use cases. This enables flexible implementations and allows you to swap infrastructure components easily during testing.

Why does mixing business logic and infrastructure lead to hard-to-test code?

Mixing business logic and infrastructure leads to hard-to-test code because tightly coupled routers prevent isolated testing. Encapsulating business rules into use cases with dependency injection solves this by enabling clean separations.

Can I use clean architecture for multi-layer app feature development?

Yes, you can use clean architecture for multi-layer app feature development by encapsulating business rules into use cases and thin routers. It guides module boundaries, dependency injection, and clean separations between presentation, application, and domain logic.