From argos
Domain-Driven Design — bounded context + ubiquitous language + context map + aggregate + entity + value object + domain event + event storming. Mikroservis boundary; multi-team büyük domain.
npx claudepluginhub resultakak/argos --plugin argosThis skill uses the workspace's default tool permissions.
`agents/shared/severity-rubric.md` ve `agents/shared/escalation-matrix.md` default-load
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
agents/shared/severity-rubric.md ve agents/shared/escalation-matrix.md default-load
sayılır (agents/coordination.md §11). Bu skill'in çıktısı Critical / High / Medium /
Low + kanıt formatında olmak zorunda — spekülatif Critical yasak. Sahiplik dışı bulgu
ilgili agent'a delege; karar yetkisi eşiği aşılırsa kullanıcı onayı zorunlu.
/discovery sonrası, kod yazılmadan)Workshop format (3-4 saat, 5-12 katılımcı):
Çıktı:
Her context için bir bounded context canvas:
## Bounded Context: Orders
### Purpose
Customer satın alma intent'inin lifecycle yönetimi (created → paid → shipped).
### Strategic Classification
- **Core domain** (rekabet avantajı).
- Sahip ekip: @orders-team.
### Ubiquitous Language
- Order: müşterinin satın alma niyeti.
- OrderLine: bir Order içindeki satın alınan kalem (SKU + qty).
- Status: created | pending_payment | paid | shipped | delivered | cancelled.
- (terms tanımlı, glossary `docs/glossary/orders.md`.)
### Domain Events (yayınladıklarımız)
- OrderCreated, OrderConfirmed, OrderPaid, OrderShipped, OrderCancelled.
### Domain Events (dinlediklerimiz)
- PaymentCaptured (Billing context'ten).
- InventoryReserved (Inventory context'ten).
### Inbound (API)
- POST /v1/orders (CreateOrder command)
- POST /v1/orders/{id}/confirm
- GET /v1/orders/{id}
### Outbound
- PaymentService.CapturePayment (HTTP)
- InventoryService.Reserve (HTTP)
### Persistence
- Postgres `orders` DB (kendi DB).
### Team
- @orders-team (4 dev, 1 PM).
graph LR
CRM[CRM context]
ORD[Orders context]
BIL[Billing context]
INV[Inventory context]
NOT[Notification context]
CRM -- "Conformist" --> ORD
ORD -- "OHS + PL (REST)" --> BIL
ORD -- "OHS + PL" --> INV
ORD -- "Published events" --> NOT
BIL -. "Anti-Corruption Layer" .-> StripeProvider[Stripe External]
Her edge için:
Bounded context = mikroservis (ideal). Şartlar:
Anti-corruption layer (ACL):
# Anti-corruption layer örnek
class StripeACL:
"""Stripe API → Billing domain çevirisi."""
def to_payment_intent(self, stripe_response: dict) -> PaymentIntent:
return PaymentIntent(
id=PaymentIntentId(stripe_response["id"]),
amount=Money(Decimal(stripe_response["amount"]) / 100,
Currency(stripe_response["currency"])),
status=self._map_status(stripe_response["status"]),
)
docs/glossary/<context>.md:
# Orders Context — Ubiquitous Language
| Term | Tanım | Anti-tanım (ne değil) |
|---|---|---|
| Order | Customer satın alma niyeti. Lifecycle: created → confirmed → paid → shipped → delivered. | Faturalanacak kalem değil (Billing context'in Order'ı). |
| OrderLine | Order içindeki bir SKU+qty. | Inventory rezervasyonu değil. |
| ... |
Cross-context translation tablosu:
## Cross-Context: "Order" disambiguation
| Bizim Order | Karşı tarafın terimi | Çevirici |
|---|---|---|
| Orders.Order | Billing.Invoice | ACL: OrderConfirmed event → InvoiceCreated |
| Orders.Order | Inventory.Reservation | ACL: OrderCreated event → ReservationRequest |
Monolith → microservice extraction (migration-planner delege):
OrderUpdated) — domain-meaningful (OrderConfirmed).User: /ddd-model payments-platform
Agent (product-domain-analyst + system-design-architect):
1. Event storming workshop önerir — 4 saat, 8 katılımcı.
2. 47 domain event listele.
3. 5 bounded context çıkar:
- Orders (core)
- Billing (core)
- Inventory (supporting)
- Notification (generic)
- CRM (legacy, anti-corruption layer)
4. Context map: Mermaid + 5 edge (4 OHS+PL + 1 ACL CRM'e).
5. Tactical: Orders context için 2 aggregate (Order + Cart);
8 value object; 6 domain event.
6. Domain glossary `docs/glossary/orders.md` + cross-context translation.
7. 3 hot spot → 3 ADR önerisi (`architecture-decision-writer` delege).
8. Microservice boundary: 5 service önerisi (1 = 1 context).
9. Migration plan (mevcut monolith): 6-12 ay Strangler Fig phase.
10. Output: docs/ddd/payments-platform/ + 5 bounded context canvas + Mermaid.