feat(ui): adopt policy components on decisioning surfaces [SPRINT-019]
Wire PolicyEvaluatePanel, RemediationHint, and PolicyPackEditor into policy-decisioning gates page and policy-studio editor within the canonical /ops/policy shell. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# Sprint 20260308-019 - FE Orphan Policy Component Adoption
|
||||
|
||||
## Topic & Scope
|
||||
- Revive the dormant shared policy widgets that still fit the current Policy Decisioning Studio and release-context policy workflows.
|
||||
- Adopt `PolicyEvaluatePanelComponent`, `PolicyPackEditorComponent`, and `RemediationHintComponent` inside the shipped `/ops/policy` shell and current release decisioning surfaces.
|
||||
- Keep the sprint inside the canonical policy shell; do not restore Policy Studio as a separate navigation branch.
|
||||
- Working directory: `src/Web/StellaOps.Web`.
|
||||
- Allowed coordination edits: `docs/modules/ui/orphan-revival-batch/README.md`, `docs/modules/ui/TASKS.md`, `docs/modules/ui/implementation_plan.md`, `docs/features/checked/web/`, `src/Web/StellaOps.Web/src/app/shared/components/policy/`, `src/Web/StellaOps.Web/src/app/features/policy-decisioning/`, `src/Web/StellaOps.Web/src/app/features/policy-gates/`, and `src/Web/StellaOps.Web/src/app/features/release-orchestrator/`.
|
||||
- Expected evidence: focused Angular tests, one checked-feature note, and sprint execution-log updates.
|
||||
|
||||
## Dependencies & Concurrency
|
||||
- Hard dependency inside the orphan revival batch: none.
|
||||
- External prerequisite already satisfied: the canonical Policy Decisioning Studio shell and release-context policy entry points are already shipped.
|
||||
- Safe parallelism:
|
||||
- Can run in parallel with every other queued sprint.
|
||||
- This sprint exclusively owns adoption of the shared policy widget family while staffed.
|
||||
|
||||
## Documentation Prerequisites
|
||||
- `docs/modules/ui/policy-decisioning-studio/README.md`
|
||||
- `docs/modules/ui/orphan-revival-batch/README.md`
|
||||
- `src/Web/StellaOps.Web/AGENTS.md`
|
||||
- `src/Web/StellaOps.Web/src/app/shared/components/policy/policy-evaluate-panel.component.ts`
|
||||
- `src/Web/StellaOps.Web/src/app/shared/components/policy/policy-pack-editor.component.ts`
|
||||
- `src/Web/StellaOps.Web/src/app/shared/components/policy/remediation-hint.component.ts`
|
||||
- `src/Web/StellaOps.Web/src/app/features/policy-decisioning/policy-decisioning.routes.ts`
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
### FE-OPC-001 - Freeze mounted policy host pages and data contracts
|
||||
Status: DONE
|
||||
Dependency: none
|
||||
Owners: Developer (FE), Product Manager
|
||||
Task description:
|
||||
- Freeze the mounted host pages inside the current policy and release decisioning flows that will adopt the dormant shared policy widgets.
|
||||
- Confirm that the current API contracts provide enough data for the widgets or explicitly scope any contract gaps.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Mounted policy hosts are recorded in the execution log.
|
||||
- [x] Data-contract assumptions for each adopted widget are recorded.
|
||||
- [x] Dead policy-studio pages are explicitly excluded.
|
||||
|
||||
### FE-OPC-002 - Adopt evaluation and remediation widgets
|
||||
Status: DONE
|
||||
Dependency: FE-OPC-001
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Wire `PolicyEvaluatePanelComponent` and `RemediationHintComponent` into the frozen mounted policy and release-context hosts where they make gate outcomes and next actions more usable.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Mounted hosts render the shared evaluation panel or remediation hints where appropriate.
|
||||
- [x] Current gate verdict semantics remain consistent with the shipped policy shell.
|
||||
- [x] Remediation content stays contextual to the gate or release decision being viewed.
|
||||
|
||||
### FE-OPC-003 - Adopt pack editor on canonical policy authoring paths
|
||||
Status: DONE
|
||||
Dependency: FE-OPC-001
|
||||
Owners: Developer (FE)
|
||||
Task description:
|
||||
- Wire `PolicyPackEditorComponent` into the frozen mounted policy authoring or editing flows if it improves the canonical policy shell without reviving a parallel editor branch.
|
||||
|
||||
Completion criteria:
|
||||
- [x] The shared pack editor is adopted only on canonical authoring paths inside `/ops/policy`.
|
||||
- [x] There is no second editor route tree outside the canonical policy shell.
|
||||
- [x] Any editor exclusions are recorded if the current shell already has a stronger purpose-built editor.
|
||||
|
||||
### FE-OPC-004 - Verify and document policy-widget revival
|
||||
Status: DONE
|
||||
Dependency: FE-OPC-002
|
||||
Owners: Test Automation, Documentation author
|
||||
Task description:
|
||||
- Add focused Angular coverage for the revived policy widgets and document the shipped adoption slice.
|
||||
|
||||
Completion criteria:
|
||||
- [x] Angular tests cover the adopted policy widgets in their mounted hosts.
|
||||
- [x] Checked-feature note exists under `docs/features/checked/web/`.
|
||||
- [x] UI plan/task docs reflect the shared policy-widget adoption.
|
||||
|
||||
## Execution Log
|
||||
| Date (UTC) | Update | Owner |
|
||||
| --- | --- | --- |
|
||||
| 2026-03-08 | Sprint created from the orphan-revival batch to revive dormant shared policy widgets inside the canonical Policy Decisioning and release-context flows. | Project Manager |
|
||||
| 2026-03-08 | FE-OPC-001: Frozen mounted host matrix. Hosts: (1) `PolicyDecisioningGatesPageComponent` at `/ops/policy/gates/*` - adopts PolicyEvaluatePanelComponent + RemediationHintComponent; (2) `PolicyEditorComponent` at `/ops/policy/packs/:packId/edit` - adopts PolicyPackEditorComponent as visual gate config sidebar. Excluded: `features/releases/release-flow.component` already has its own bespoke `RemediationHintsComponent` with domain-specific step/action/copy semantics. Data contracts: PolicyEvaluateResponse and PolicyPackDocument from policy-interop.models.ts are compatible. The gates page derives PolicyEvaluateResponse from its existing GateResult[] data. The pack editor derives PolicyPackDocument from PolicyPack metadata. | Developer (FE) |
|
||||
| 2026-03-08 | FE-OPC-002: Wired PolicyEvaluatePanelComponent and RemediationHintComponent (via evaluate panel's imports) into PolicyDecisioningGatesPageComponent. Added policyEvaluateResult computed signal that maps GateResult[] to PolicyEvaluateResponse with decision banner, gate table, and remediation hints. | Developer (FE) |
|
||||
| 2026-03-08 | FE-OPC-003: Wired PolicyPackEditorComponent into PolicyEditorComponent sidebar at `/ops/policy/packs/:packId/edit`. Visual gate config complements the Monaco DSL editor. No second editor route tree created. Exclusion recorded: the Monaco editor is the purpose-built authoring tool; the shared pack editor provides visual gate configuration alongside it. | Developer (FE) |
|
||||
| 2026-03-08 | FE-OPC-004: Added focused Angular tests for both adoption hosts. Created checked-feature note. | Developer (FE) |
|
||||
|
||||
## Decisions & Risks
|
||||
- Decision: this sprint strengthens the canonical policy shell instead of restoring Policy Studio as a sibling product.
|
||||
- Risk: some shared policy widgets may lag behind the current policy shell's route model or data contract.
|
||||
- Mitigation: freeze host pages first and record any widget that should remain dormant because it no longer fits the canonical experience.
|
||||
- Decision: PolicyPackEditorComponent is adopted as a sidebar visual config tool within the existing `/ops/policy/packs/:packId/edit` route, not as a replacement for the Monaco DSL editor.
|
||||
- Decision: The release-flow's bespoke RemediationHintsComponent (features/releases/) is excluded because it uses a different data contract (PolicyGateResult/RemediationStep from release.models) with domain-specific step actions, automated triggers, and copy-to-clipboard that the shared RemediationHintComponent does not support.
|
||||
|
||||
## Next Checkpoints
|
||||
- 2026-03-09: mounted policy hosts frozen.
|
||||
- 2026-03-11: widget-adoption criteria agreed.
|
||||
Reference in New Issue
Block a user