Guide for creating optimized Claude Code agents. Use to design a new specialized agent, a swarm sub-agent, or a multi-agent workflow. Follows the Skill → Agent (preloaded skills) → Skill orchestration pattern.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Strategic DDD guide for this project. Use to split the domain into bounded contexts, define ubiquitous language, create new business modules, or analyze context boundaries. Tactical patterns follow Clean Architecture (see architecture skill).
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Read .claude/roles/architect.md — adopt this profile and follow all its rules.
This skill activates for high-level domain decisions:
Clean Architecture definitions take precedence over DDD tactical definitions.
We use DDD only at the strategic level (domain splitting, language). Tactical patterns (Entities, Use Cases, Gateways, Presenters) follow Clean Architecture.
| What we take from DDD | What we do NOT take |
|---|---|
| Bounded Contexts | Aggregates |
| Ubiquitous Language | Repositories (we have Gateways) |
| Context Mapping | Domain Events |
| Module splitting | Complex Value Objects |
"A Bounded Context delimits the applicability of a particular model." — Eric Evans
A Bounded Context = a module in modules/<context-name>/
Each BC is an autonomous package with its own public API.
Signs that a new BC is needed:
ReviewFlow example:
| Bounded Context | Responsibility |
|---|---|
review | Code review orchestration and result handling |
tracking | MR/PR assignment tracking and follow-up |
webhook | Inbound webhook processing (GitLab/GitHub) |
mcp | Model Context Protocol server and tools |
dashboard | Review statistics and visualization |
security | Secret detection and access control |
BCs communicate via their public APIs, like two independent packages.
// modules/tracking/index.ts (public API)
export { TrackAssignmentUseCase } from "./application/usecases/trackAssignment.usecase"
export { createTrackedMr } from "./domain/factories/trackedMrFactory"
export type { TrackingGateway } from "./application/ports/gateways/trackingGateway"
// modules/review/ imports from the public API
import { TrackAssignmentUseCase } from "@/modules/tracking"
| Allowed | Forbidden |
|---|---|
Import from another BC's index.ts | Directly import an internal file |
| Pass data (DTO, primitives) | Share mutable entities |
| Call an exposed Use Case | Access internal state |
// modules/review/application/usecases/triggerReview.usecase.ts
import { TrackAssignmentUseCase } from "@/modules/tracking" // Public API
export const triggerReview = async (data) => {
const trackAssignment = new TrackAssignmentUseCase(trackingGateway);
// ...
}
// FORBIDDEN - internal import
import { parseTrackingData } from "@/modules/tracking/domain/validators/trackingValidator"
"Use the model as the backbone of a language." — Eric Evans
Business vocabulary must be:
// Ubiquitous Language respected
class ReviewContext { ... }
class TrackedMr { ... }
function triggerReview() { ... }
function trackAssignment() { ... }
// Technical or ambiguous vocabulary
class Data { ... } // "Data" is not a business term
class ReviewRequest { } // "Request" vs "ReviewContext"?
function doReview() { } // "do" vs "trigger"?
Each BC maintains its glossary in /docs/business/glossary/<context>.md
# Glossary - Review
| Term | Definition |
|------|------------|
| ReviewContext | The full context for a code review (diff, MR metadata, threads) |
| TrackedMr | A merge request being tracked for review assignments |
| ReviewAction | An action to perform on the platform (comment, resolve, reply) |
| DiffMetadata | Parsed metadata from a merge request diff |
DDD - Identification
New domain identified: [name]
Questions to validate:
1. What business problem does it solve?
2. What are the specific terms?
3. What are the main entities?
4. Which existing BCs will use it?
Shall we explore these questions?
DDD - Ubiquitous Language
Proposed glossary for [context]:
| Term | Definition |
|------|------------|
| ... | ... |
Are these terms aligned with the business vocabulary?
DDD - Public API
Planned exports for [context]:
Entities: [list]
Use Cases: [list]
Types: [list]
Which other BCs will consume this API?
DDD - Structure
I will create:
modules/[context]/
├── index.ts # Public API
├── entities/
├── use-cases/
├── interface-adapters/
└── testing/
+ Glossary: docs/business/glossary/[context].md
Shall we create this structure?
After validation -> Switch to the Architecture skill for tactical details.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Guide for creating optimized Claude Code agents. Use to design a new specialized agent, a swarm sub-agent, or a multi-agent workflow. Follows the Skill → Agent (preloaded skills) → Skill orchestration pattern.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Anti-overengineering guide based on YAGNI. Use before adding an architectural pattern, during code review, or to challenge an overly complex implementation.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Clean Architecture (Uncle Bob) guide for this project. Use when creating modules, entities, use cases, presenters, controllers, gateways, guards, services. Contains tactical patterns and structure conventions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Audit documentation for duplication, staleness, language issues, and verbosity. Read-only — produces an actionable report.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Local auto-review of modified code (no GitLab/GitHub). Runs 5 sequential audits and generates a local report. Ideal for validating code before creating a MR/PR.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Clean Code (Robert C. Martin) guide to produce and challenge code that is readable, durable, simple, and consistent. Covers naming, functions, comments, smells, and refactor heuristics. Complements `/solid` (SOLID principles) and `/anti-overengineering` (YAGNI/KISS). Activate during the REFACTOR phase of the TDD cycle and during implementation self-review.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.