Assurance
Assurance in Phaset adds an execution layer on top of Records: not just what software is, but what must be continuously true about it.

It does this through three objects:
- Templates: reusable requirement bundles that contain one or more controls.
- Obligations: per-record, per-control work items created from template controls.
- Record Status: an aggregate risk signal (
green,yellow,red,gray) based on open gaps for each Record.
Why Assurance Matters
Section titled “Why Assurance Matters”Records describe your software landscape. Assurance adds operational accountability:
- What must be done for each Record
- Who owns each obligation
- What is overdue or missing
- What needs revalidation when software changes
This is useful when you want to move from “cataloging software” to “running controlled software operations.”
Core Model
Section titled “Core Model”Templates
Section titled “Templates”Templates are organization-level control bundles with:
- Name, category, severity, and description
- One or more controls (each with its own ID, name, severity, and optional description)
- Active/inactive state
- Optional auto-apply behavior on Record creation
Templates are not tied to a specific Record until applied.
Obligations
Section titled “Obligations”When a template is applied to a Record, Phaset creates one obligation per control in that template, each with:
templateId+controlIdtargetId(Record ID)- Status (
met,partial,missing,not_applicable,superseded) - Source (
manualorauto) - Optional due date, owner, and rationale
- Target revision (snapshot of Record revision when obligation was created/updated)
Obligations are where execution lives.
Object Relationships
Section titled “Object Relationships”- 1 template -> N controls
- 1 template applied to 1 Record -> N obligations (one per control)
- Record status is computed from the obligation states attached to that Record
Record Status
Section titled “Record Status”Record status is computed from obligations:
- Gray: no obligations
- Green: no open gaps
- Yellow: open gaps exist
- Red: open high/critical gaps or overdue open gaps
Lifecycle: Records, Manifests, and Assurance
Section titled “Lifecycle: Records, Manifests, and Assurance”Assurance is modeled as imperative work attached to declarative Record state:
- A Record exists (managed manually or via
phaset.manifest.json) - Templates are applied to that Record, producing one obligation per control
- Obligations are worked and tracked over time
- If Record revision changes, Phaset reconciles obligations against the new revision
- Obligations that were
metcan be reopened topartialwith a revalidation note
This means you can keep Record metadata in version control while still running operational assurance workflows in the app.
Working in the UI
Section titled “Working in the UI”The Assurance view is split into focused tabs:
- Overview: aggregate counts, open gaps, due/overdue, and status breakdown
- Record Status: per-record rollup with search and status filtering
- Templates: template management plus Active Record Context for apply actions
- Obligations: full obligation list with search, record filter, and sorting
The Record page includes an Assurance tab and deep links back into Assurance filtered for that Record.