From 1b25cf472132d84dafdcbf54b0e2b5275225f78c Mon Sep 17 00:00:00 2001 From: Bunyamin inan Date: Sun, 21 Jun 2026 19:54:08 +0200 Subject: [PATCH] fix: enforce domain-only business rules --- .../engineering-playbook/skills/coding-standards/SKILL.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/engineering-playbook/skills/coding-standards/SKILL.md b/plugins/engineering-playbook/skills/coding-standards/SKILL.md index 00e8aad..7a2369b 100644 --- a/plugins/engineering-playbook/skills/coding-standards/SKILL.md +++ b/plugins/engineering-playbook/skills/coding-standards/SKILL.md @@ -41,7 +41,11 @@ Follow hexagonal architecture as the baseline. - Organize each business module in `src` as `Domain`, `Application`, and `Infrastructure`; dependencies point inward only. -- Put all business rules and decisions in `Domain`. +- Before writing or reviewing any conditional, validation, state transition, + calculation, policy, or workflow decision, ask: "Is this a business rule?" +- If the answer is yes, put it in `Domain`. This is a hard requirement: business + rules must never live in `Application`, `Infrastructure`, framework code, + adapters, controllers, jobs, requests, commands, listeners, or UI glue. - Use `Application` only for use-case orchestration, transaction boundaries, authorization handoff, domain calls, ports, and input/output mapping. - Use `Infrastructure` only for adapters such as persistence, queues, HTTP