Policy Decisioning Studio

Status

Shipped on 2026-03-07.

Product Shape

This is now the canonical mutable owner for policy packs, governance controls, VEX resolution, exception handling, release-gate review, and policy/VEX audit.

Shipped Route Contract

Canonical routes

Legacy aliases kept live

Shipped Merge Boundary

Packs

Pack list contract (CCP-016)

Withdrawn pack controls (CCP-016)

Each of these called a Policy route that no service maps (the router answers urn:stellaops:router:endpoint-not-found). Their routes and legacy aliases were removed; former paths resolve to the not-found page.

Former controlFormer routeWhat it showedSupported path
Run dashboard (pack landing, Rules tab)/ops/policy/packs/:packId/dashboard“No run data available” when its read failed; run exportTest tab for an evaluation
DSL editor (Edit)/ops/policy/packs/:packId/edit, /editoran editor with nothing loaded; a lint request that always failedPolicy revision and bundle API
Rule builder (Rules tab)/ops/policy/packs/:packId/rulesa form with fixed defaults and a JSON preview, never loaded or savedPolicy revision and bundle API
YAML editor/ops/policy/packs/:packId/yamlYAML of a pack read that never answeredPolicy revision and bundle API
Approvals (Activate tab, Approvals)/ops/policy/packs/:packId/approvalsa blank page (review, checklist, schedule and comment forms)Policy two-person :activate
Explain/ops/policy/packs/:packId/explain/:runIda page that never left its loading stateTest tab result
Delete(pack card action)a confirmation; the failure only reached the browser consolenone: Policy cannot delete a pack

Pack Test tab contract

Governance

Simulation (withdrawn, CCP-016)

The /ops/policy/simulation subtree and its Simulation tab were withdrawn. Every Policy route it read answers 501 “Policy simulation compatibility backend unavailable”, and Policy’s capability read (GET /policy/capabilities) reports simulation and shadowMode unavailable. The former paths and their policy-studio/simulate, policy/simulation* and admin/policy/simulation* aliases resolve to the not-found page, and no console page links to them.

Former pageFormer routePolicy routes it read (all 501)
Shadow mode (landing)/ops/policy/simulation, /shadow/policy/shadow/config, /enable, /disable, /results
Promotion gate/ops/policy/simulation/promotion/policy/packs/{packId}/versions/{version}/promotion-gate and its override
Test and validate (console, coverage, lint)/ops/policy/simulation/testing/policy/simulations, /policy/packs/{packId}/coverage, /policy/packs/{packId}/lint
Pre-promotion review (diff, merge, conflicts)/ops/policy/simulation/review/policy/packs/{packId}/diff, /policy/merge/preview, /policy/conflicts/*
Effective policies/ops/policy/simulation/effective/policy/effective
History/ops/policy/simulation/history/policy/simulations/history, /compare, /{simulationId}/verify
Batch evaluation/ops/policy/simulation/batch/policy/batch-evaluations
Pack diff/ops/policy/simulation/diff/:policyPackId/policy/packs/{packId}/diff

The supported path is the pack Test tab, which evaluates a pack revision against a release (see the Pack Test tab contract above). Shadow mode, batch evaluation and the other simulation operations are not offered until Policy serves them.

VEX and exceptions

Gates and audit

Release Orchestrator Integration

Shipped entry points

Shipped context fields

Release Orchestrator still owns promotion state and workflow execution. Decisioning Studio owns policy and VEX authoring, mutation, and explanation.

Secondary Entry Points Updated

Retired Or Superseded Writable Owners

These names survive only as temporary redirect aliases where needed for bookmark continuity.

Verification Evidence