Policy Lifecycle & Approvals

Audience: Policy authors, reviewers, security approvers, release engineers.
Scope: End-to-end flow for stella-dsl@1 policies from draft through archival, including CLI/Console touch-points, Authority scopes, audit artefacts, and offline considerations.

Imposed rule: New or significantly changed policies must run in shadow mode with coverage fixtures before activation. Promotions are blocked until shadow + coverage gates pass.

This guide explains how a policy progresses through Stella Ops, which roles are involved, and the artefacts produced at every step. Pair it with the Policy System Overview, the DSL reference, and the Policy Runs guide to ensure consistent authoring and rollout.


1 · Protocol Summary

stateDiagram-v2
    [*] --> Draft
    Draft --> Draft: edit/save (policy:author)
    Draft --> Submitted: submit(reviewers) (policy:author)
    Submitted --> Draft: requestChanges (policy:review)
    Submitted --> Approved: approve (policy:approve)
    Approved --> Active: activate/run (policy:operate)
    Active --> Archived: archive (policy:operate)
    Approved --> Archived: superseded/explicit archive
    Archived --> [*]

2 · Roles & Authority Scopes

Role (suggested)Required scopesResponsibilities
Policy Authorpolicy:author, policy:simulate, findings:readDraft DSL, run local/CI simulations, submit for review.
Policy Reviewerpolicy:review, policy:simulate, findings:readComment on submissions, demand additional simulations, request changes.
Policy Approverpolicy:approve, policy:audit, findings:readGrant final approval, ensure sign-off evidence captured.
Policy Operatorpolicy:operate, policy:run, policy:activate, findings:readTrigger full/incremental runs, monitor results, roll back to previous version.
Policy Auditorpolicy:audit, findings:readReview past versions, verify attestations, respond to compliance requests.
Policy Engine Serviceeffective:write, findings:readMaterialise effective findings during runs; no approval capabilities.

Scopes are issued by Authority (AUTH-POLICY-20-001). Tenants may map organisational roles (e.g., secops.approver) to these scopes via issuer policy.


3 · Lifecycle Stages in Detail

3.1 Draft

3.2 Submission

3.3 Review (Submitted)

3.4 Approval

3.5 Signing & Publication

3.6 Activation & Runs

3.7 Archival / Rollback


4 · Tooling Touchpoints

StageConsoleCLIAPI
DraftInline linting, simulation panelstella policy lint, edit, test, simulatePOST /policies, PUT /policies/{id}/versions/{v}
SubmitSubmit modal (attach simulations)stella policy submitPOST /policies/{id}/submit
ReviewComment threads, diff viewerstella policy review --approve/--request-changesPOST /policies/{id}/reviews
ApproveApprove dialogstella policy approvePOST /policies/{id}/approve
ActivatePromote button, run schedulerstella policy activate, run, simulatePOST /policies/{id}/run, POST /policies/{id}/activate
ArchiveArchive / rollback menustella policy archivePOST /policies/{id}/archive

All CLI commands emit structured JSON by default; use --format table for human review.

4.1 · CLI Command Reference

stella policy edit <file>

Open a policy DSL file in your configured editor ($EDITOR or $VISUAL), validate after editing, and optionally commit with SemVer metadata.

Options:

Example:

# Edit and commit with version metadata
stella policy edit policies/my-policy.dsl --commit --version 1.2.0

stella policy test <file>

Run coverage test fixtures against a policy DSL file to validate rule behavior.

Options:

Example:

stella policy test policies/vuln-policy.dsl --filter critical

5 · Audit & Observability


6 · Compliance Gates

GateStageEnforced byRequirement
DSL lintDraft → SubmitCLI/CIstella policy lint successful within 24 h.
Simulation evidenceSubmitCLI/ConsoleAttach diff from stella policy simulate covering baseline SBOM set.
Shadow runSubmit → ApprovePolicy Engine / CIShadow mode enabled (settings.shadow=true) with findings recorded; must execute once per change.
Coverage suiteSubmit → ApproveCI (stella policy test)Coverage fixtures present and passing; artefact attached to submission.
Reviewer quorumSubmit → ApproveAuthorityMinimum approver/reviewer count configurable per tenant.
Determinism CIApproveDevOps jobTwin run diff passes (DEVOPS-POLICY-20-003).
Attestation metadataApprove → PublishAuthority / CLIpolicy:publish executed with reason & ticket metadata; DSSE attestation verified.
Activation healthPublish/Promote → ActivatePolicy EngineLast run status succeeded; orchestrator queue healthy.
Export validationArchiveOffline KitDSSE-signed policy pack generated for long-term retention.

Failure of any gate emits a policy.lifecycle.violation event and blocks transition until resolved.


7 · Offline / Air-Gap Considerations


8 · Incident Response & Rollback


9 · CI/CD Integration (Reference)


10 · Compliance Checklist


Last updated: 2025-11-27 (Sprint 401).