diff --git a/packages/decision-pipeline/src/policy-adapter.md b/packages/decision-pipeline/src/policy-adapter.md new file mode 100644 index 0000000..d1debca --- /dev/null +++ b/packages/decision-pipeline/src/policy-adapter.md @@ -0,0 +1,32 @@ +# Policy Decision Adapter + +## Purpose + +The policy decision adapter creates the translation boundary between policy evaluation and the decision pipeline. + +## Responsibility + +The adapter converts policy output into a standardized Decision contract. + +``` +Policy Result + | + v +Policy Decision Adapter + | + v +Decision +``` + +## Non-Responsibilities + +The adapter does not: + +- Define policy rules +- Evaluate domain events +- Execute actions +- Communicate with external systems + +## Design Goal + +Policies should remain independent from the pipeline while decisions remain consistent across future implementations. diff --git a/packages/decision-pipeline/src/policy-adapter.ts b/packages/decision-pipeline/src/policy-adapter.ts new file mode 100644 index 0000000..916ca97 --- /dev/null +++ b/packages/decision-pipeline/src/policy-adapter.ts @@ -0,0 +1,11 @@ +import type { Decision } from './decision'; + +/** + * Boundary adapter between policy evaluation and decision output. + * + * This layer translates policy results into pipeline decisions. + * It does not own policy rules or execute actions. + */ +export interface PolicyDecisionAdapter { + adapt(policyResult: unknown): Promise; +}