Documentation menu

Understand results

Read coverage before interpreting findings. A report can contain a useful finding and unresolved observations at the same time.

Start with the report status#

Start with the report status
StatusMeaning in source-scanNext action
completeThe selected operation has no reported completeness reasonsInspect each condition and observation; do not extend the result beyond the selected world
degradedSome analysis ran, but limitations or empty families remainReview findings together with reasons and unknown observations
unavailableThe requested acquisition or analysis could not be admittedFix or narrow the input; do not interpret zero findings

Exit 3 is expected for the three tutorial cases. It reports incomplete capability, not the number of findings. The edited control still exits 3. See JSON and exit codes for all process outcomes.

Read each condition#

requested means the condition was selected. executed means its family evaluator ran. Neither field guarantees that the input produced supported observations for that particular condition.

  • not-run: the condition did not execute.

  • no-observations: its evaluator ran but found no relevant observations.

  • degraded: at least one observation is unknown.

  • completed: relevant observations were evaluated without an unknown result in that condition's coverage record.

A completed row is not a portfolio-wide guarantee. Preserve observationCount, unknownObservationCount, findingCount and the observation identities when reviewing it.

Follow the evidence#

A finding has a condition identity, evidence and source anchors. Inspect the affected source and the rule's assumptions. A source anchor identifies where evidence came from; it does not establish that the rest of the program is covered.

In the tutorial, V-EXEC-03 finds lost required context through detachment. V-ASYNC-14 finds a guard across suspension while another guard trace remains incomplete. A finding and unknown can therefore coexist even within one requested family.

Follow one recorded finding#

Open the positive report. The following is a field-by-field walkthrough of that recorded file; the hash is specific to this example.

  1. In conditions, find the object whose conditionID is V-EXEC-03. It reports findingCount: 1 and one entry in observationIDs.

  2. In families, select the object whose family is execution. Its report.rows contains pairs of observation identity and decision. Match the first member to the condition's observation ID.

  3. In that same family's report.proofs, match conditionID to the observation ID, not to V-EXEC-03. This nested field reuses the name conditionID but contains the observation hash in this report format.

  4. Read the matched proof's explanation, evidence IDs and anchors. Each anchor is a source path and UTF-8 byte offset, not a line number. Inspect those locations in the matching example source.

Selected fields from the recorded condition:

json
{
  "conditionID": "V-EXEC-03",
  "findingCount": 1,
  "observationIDs": [
    "dc834195d051e2852871c5673581baf9b2dee8c0876877b8fd9e7d3cca5131fc"
  ]
}

The matching execution report.rows entry:

json
[
  "dc834195d051e2852871c5673581baf9b2dee8c0876877b8fd9e7d3cca5131fc",
  "finding"
]

The proof with that same identity includes anchors such as ["Sources/Example/Execution.swift", 67]. These excerpts omit other fields; keep the full report when filing an issue.

The guard family uses a different shape. For V-ASYNC-14, take its condition-level observationIDs and match each against families[family=guard].report.rows[].id. Each matching object has its own decision, witness, evidence and sites; source locations are in sites. The positive case has both a finding row for Guard.swift and an unknown:incomplete-guard-trace row. Do not apply the execution family's pair/proof layout to this family.

Read one unknown in the control#

The control report has an execution row with unknown:assumed-isolation-context-unresolved. The available facts do not resolve the isolation context needed for that observation. It is neither a finding nor proof of safe isolation. Review the corresponding condition's observation IDs and the control source, retain that limitation and avoid turning zero findings into a clean result. In the guard family, the edited guard observation becomes not-applicable, while a separate incomplete guard trace remains unknown.

Act within the scope#

Review the proposed edit in its actual lifecycle, isolation, error and ownership context. No automatic fix is offered. Re-run after changing code and compare both findings and coverage. If a finding disappears because the new form is unsupported, the result has not established a successful correction.

Coverage and unknown explains negative evidence. Troubleshooting explains common acquisition reasons.

Product 524fa07e · Historical catalog 4558458d
Experimental · Owner-provided checkout · Verified 2026-09-11

Read as MarkdownPage JSON

Report a documentation issue