diff --git a/Directory.Build.props b/Directory.Build.props
index 8c6c397..488d37b 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -3,8 +3,8 @@
AgileWebs
AgileWebs
git
- http://192.168.10.100:3000/AgileWebs/building-block-policy
- http://192.168.10.100:3000/AgileWebs/building-block-policy
+ https://gitea.dream-views.com/AgileWebs/building-block-policy
+ https://gitea.dream-views.com/AgileWebs/building-block-policy
false
diff --git a/docs/roadmap/feature-epics.md b/docs/roadmap/feature-epics.md
new file mode 100644
index 0000000..0b227ec
--- /dev/null
+++ b/docs/roadmap/feature-epics.md
@@ -0,0 +1,18 @@
+# Feature Epics
+
+## Repository
+building-block-policy
+
+## Core Epics
+- Epic 1: Expand domain-aligned capabilities for restaurant operations.
+- Epic 2: Stabilize service contracts for containerized runtime integration.
+- Epic 3: Improve observability and operational readiness for demo compose environments.
+
+## Domain-Specific Candidate Features
+- Order lifecycle consistency and state transitions.
+- Kitchen queue and dispatch optimization hooks.
+- Operations control-plane policies (flags, service windows, overrides).
+- POS closeout and settlement summary alignment.
+
+## Documentation Contract
+Any code change in this repository must include docs updates in the same branch.
diff --git a/src/BuildingBlock.Policy.Contracts/Contracts/PolicyScopeContract.cs b/src/BuildingBlock.Policy.Contracts/Contracts/PolicyScopeContract.cs
new file mode 100644
index 0000000..51aeb12
--- /dev/null
+++ b/src/BuildingBlock.Policy.Contracts/Contracts/PolicyScopeContract.cs
@@ -0,0 +1,5 @@
+namespace BuildingBlock.Policy.Contracts.Contracts;
+
+public sealed record PolicyScopeContract(
+ string Scope,
+ string ScopeValue);
diff --git a/src/BuildingBlock.Policy.Contracts/Requests/EvaluateScopedPolicyRequest.cs b/src/BuildingBlock.Policy.Contracts/Requests/EvaluateScopedPolicyRequest.cs
new file mode 100644
index 0000000..b5a894d
--- /dev/null
+++ b/src/BuildingBlock.Policy.Contracts/Requests/EvaluateScopedPolicyRequest.cs
@@ -0,0 +1,9 @@
+using BuildingBlock.Policy.Contracts.Contracts;
+
+namespace BuildingBlock.Policy.Contracts.Requests;
+
+public sealed record EvaluateScopedPolicyRequest(
+ string PolicyName,
+ IReadOnlyCollection Scopes,
+ IReadOnlyCollection Facts,
+ DateTime EvaluationAtUtc);
diff --git a/src/BuildingBlock.Policy.Contracts/Responses/EvaluateScopedPolicyResponse.cs b/src/BuildingBlock.Policy.Contracts/Responses/EvaluateScopedPolicyResponse.cs
new file mode 100644
index 0000000..37f0a27
--- /dev/null
+++ b/src/BuildingBlock.Policy.Contracts/Responses/EvaluateScopedPolicyResponse.cs
@@ -0,0 +1,9 @@
+using BuildingBlock.Policy.Contracts.Contracts;
+
+namespace BuildingBlock.Policy.Contracts.Responses;
+
+public sealed record EvaluateScopedPolicyResponse(
+ PolicyOutcome Outcome,
+ string Explanation,
+ IReadOnlyCollection AppliedRules,
+ IReadOnlyCollection EffectiveScopes);