# Review results and create bug reports

A summary is the start of review. Inspect the definition, selected aggregation policy, each attempt's actual journey, and whether required proof is available before deciding what the result means.

## Open reviewed output

The runtime's project review policy must review text/source snapshots and attachment bytes. Missing policy preserves structured results as `needs-review`; configure it and run:

```sh
node tooling/testing/plan.mts report --output <run-directory> --runtime <project>/testing-runtime.json
```

The fixed-layout HTML run report provides section navigation, title/tag/component/level search, outcome filters, intended expectations, actual interactions, attempts, comments and evidence. Hook diagnostics explain environment work but do not establish behavioral success.

## Select the actual problem

- For a failed test, choose the relevant attempt, including an earlier failure after retry.
- For an incidental issue, choose its problem comment even when the intended test passed.
- Preserve observation versus hypothesis basis. Do not convert an inferred cause into a recorded fact.

The viewer's **Create bug** action opens an editable local draft, retains destination metadata, and does not submit automatically. Review its expected/actual behavior, steps and evidence before sharing.

## Promote through supported APIs

`createBugFromResult(run, { id, at, resultId, attemptId?, commentIds? })` creates the same `BugReport` used by manual reporting. It preserves a source snapshot and the selected attempt's evidence/interactions. Without authored steps it derives unverified instructions from nonempty observed action descriptions.

Comments from different attempts cannot silently form a single invented journey. Incidental problems do not inherit the test's expectation or replay verification. [Portable report contracts](../../../integration/portable-reports.md#results-comments-and-promotion) describes these rules.

## Share safely

An observed failure with incomplete proof can still be reported; record the unavailable evidence. Use [export/sanitization](export-and-sanitize-evidence.md) for narrative and binary review. Live tracker authentication and transport require a host provider adapter; a destination label does not perform submission.

[The illustrative report](../../examples/test-results.md) shows a problem promoted from a passing checkout result without claiming a real session.
