3.3 KiB
3.3 KiB
AGENTS ?? Policy Module
Sprint: SPRINT_3500_0002_0001 (Smart-Diff Foundation)
Roles
- Backend / Policy Engineer: .NET 10 (preview) for policy engine, gateways, scoring; keep evaluation deterministic.
- QA Engineer: Adds policy test fixtures, regression tests under
__Tests. - Docs Touches (light): Update module docs when contracts change; mirror in sprint notes.
Required Reading
docs/README.mddocs/07_HIGH_LEVEL_ARCHITECTURE.mddocs/modules/platform/architecture-overview.mddocs/modules/policy/architecture.mddocs-archived/product/advisories/2025-12-21-moat-gap-closure/14-Dec-2025 - Smart-Diff Technical Reference.md(for suppression contracts)- Current sprint file
Working Directory & Boundaries
- Primary scope:
src/Policy/**(Engine, Gateway, Registry, RiskProfile, Scoring, __Libraries, __Tests). - Avoid cross-module edits unless sprint explicitly permits.
Suppression Contracts (Sprint 3500)
The Policy module includes suppression primitives for Smart-Diff:
Namespace
StellaOps.Policy.Suppression- Pre-filter suppression rules
Key Types
SuppressionRule- Individual suppression rule definitionSuppressionRuleEvaluator- Evaluates rules against findingsISuppressionOverrideProvider- Interface for runtime overridesPatchChurnSuppression- Special handling for patch churn
Suppression Rule Types
| Type | Description |
|---|---|
cve_pattern |
Suppress by CVE pattern (regex) |
purl_pattern |
Suppress by PURL pattern |
severity_below |
Suppress by severity threshold |
patch_churn |
Suppress if patch churn detected |
sink_category |
Suppress by sink category |
reachability_class |
Suppress by reachability gate class |
Integration Points
- Scanner SmartDiff calls
SuppressionRuleEvaluatorbefore emitting findings - Suppressed count tracked in
SmartDiffPredicate.suppressedCount - Override providers allow runtime/tenant-specific rules
Engineering Rules
- Target
net10.0; prefer latest C# preview allowed in repo. - Determinism: stable ordering, UTC timestamps, no
DateTime.Now/random without seed. - Policy evaluation must be pure (no side effects) and reproducible.
- Logging: structured (
ILoggermessage templates). - Security: policy files are treated as trusted; validate before loading.
Testing & Verification
- Default:
dotnet test src/Policy/StellaOps.Policy.sln. - Add/extend tests in
src/Policy/__Tests/**. - Golden outputs should be deterministic (sorted keys, stable ordering).
- Suppression: Add test cases for each rule type in
SuppressionRuleEvaluatorTests.
Workflow Expectations
- Mirror task state in sprint tracker (
TODO ??? DOING ??? DONE/BLOCKED). - Note blockers with the specific decision needed.
- When policy contracts change, update both module docs and consumer documentation.
Service Endpoints
Policy Engine (Slot 14)
- Development: https://localhost:10140, http://localhost:10141
- Local alias: https://policy-engine.stella-ops.local, http://policy-engine.stella-ops.local
- Env var: STELLAOPS_POLICY_ENGINE_URL
Policy Gateway (Slot 15)
- Development: https://localhost:10150, http://localhost:10151
- Local alias: https://policy-gateway.stella-ops.local, http://policy-gateway.stella-ops.local
- Env var: STELLAOPS_POLICY_GATEWAY_URL