Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 59s
Implemented the first version of the operator resolution guidance framework. Added new foundation classes (ResolutionCase, ResolutionAction) and a ReviewPackOutputResolutionAdapter. Updated the Customer Review Workspace and Environment Review Resource to use the new adapter. Added extensive test coverage for the framework and UI integrations.
4.5 KiB
4.5 KiB
Resolution Case Contract
Status: Draft for Spec 350
Scope: Derived operator-guidance envelope only
Purpose
ResolutionCase is the shared productized guidance object for current-release operator issues that already exist in repo truth.
It answers:
- What is wrong?
- Why does it matter?
- What is the dominant next step?
- Is that step navigation/disclosure-only or an existing safe executable path?
- Which source records prove this guidance?
This contract must wrap existing guidance producers. It must not replace them or persist a second truth model.
Design Constraints
- Derived only; no persistence
- Scope explicit
- Exactly one primary action
- Source-traceable
- Safe-execution aware
- Provider-neutral in the core contract
- Technical details secondary
Required Shape
[
'key' => 'review_pack.output_not_customer_ready',
'scope' => [
'type' => 'environment',
'workspace_id' => 1,
'managed_environment_id' => 41,
'source_surface' => 'customer_review_workspace',
],
'severity' => 'warning',
'status' => 'action_required',
'title' => 'Output not customer-ready',
'reason' => 'The published review is based on incomplete evidence.',
'impact' => 'This review pack should not be shared externally until the evidence basis is refreshed.',
'primary_action' => [
'key' => 'environment_review.open_current_limitations',
'label' => 'Inspect review blockers',
'type' => 'navigation',
'url' => '...',
'capability' => null,
'requires_confirmation' => false,
'audit_event' => null,
'operation_run_type' => null,
],
'secondary_actions' => [
[
'key' => 'evidence.open_basis',
'label' => 'Open evidence basis',
'type' => 'navigation',
'url' => '...',
],
],
'source_refs' => [
['type' => 'environment_review', 'id' => 6],
['type' => 'review_pack', 'id' => 8],
],
'evidence_refs' => [
['type' => 'evidence_snapshot', 'id' => 8],
],
'technical_details' => [
'review_status' => 'published',
'output_readiness' => 'publication_blocked',
'evidence_state' => 'missing',
],
]
Required Fields
| Field | Requirement |
|---|---|
key |
Stable, repo-owned case identifier |
scope |
Explicit workspace/environment/review/operation/provider scope |
severity |
Presentation-only severity |
status |
Presentation-only actionability state |
title |
Primary operator-facing issue label |
reason |
Plain-language explanation of the dominant cause |
impact |
Why this matters now |
primary_action |
Exactly one dominant next step |
secondary_actions |
Optional supporting navigation/disclosure actions |
source_refs |
Required repo-backed source references |
evidence_refs |
Optional but required when evidence truth is central to the case |
technical_details |
Secondary disclosure payload only |
Allowed Scope Types
workspaceenvironmentreviewreview_packevidenceprovider_connectionoperationfindingsystem
Allowed Severities
criticalwarninginfosuccess
Allowed Statuses
action_requiredblockedneeds_reviewinformationalreadyresolvedunknown
Existing Runtime Inputs To Reuse
| Existing producer | How it maps into ResolutionCase |
|---|---|
ReviewPackOutputResolutionGuidance |
title, reason, impact, primary_action, secondary_actions, technical_details, and review-output evidence-basis truth |
OperationUxPresenter |
dominant issue/action text for operation follow-up cases |
OperatorExplanationPattern |
trust/reliability/next-action semantics that can inform title/reason/impact |
EnterpriseDetailSectionFactory::primaryNextStep() |
existing primary-next-step shape for action text and supporting guidance |
| provider readiness summaries and required-permissions guidance | provider-owned issue/reason/action sources |
Hard Rules
- Do not persist resolution cases.
- Do not create source refs that cannot be resolved to repo-backed records.
- Do not expose more than one primary action.
- Do not encode hidden scope.
- Do not force executable action metadata onto producers that only support navigation, qualified download, or disclosure today.
- Do not introduce a standalone evidence-basis adapter in v1 while review-output guidance already owns that truth.
- Do not use the contract as a generic workflow-state machine.