# Read recorded actions from artifacts

Canonical: https://fairleadhq.com/docs/recorder/developers/action-evidence/

Updated: 2026-10-10
Publication state: published
Product version: Source verified — 52de40a

Agent summary: Read session.md, steps.json, and generated scripts without relying on Recorder Viewer controls.

## Prerequisites

- A bundle containing session.md and at least one action export

## Inputs

- Numbered actions, DevTools steps, or generated scripts

## Outputs

- A bounded action sequence with identified gaps

## Limitations

- Artifact files do not reproduce the Viewer event log, filters, or inferred links

## Permissions

- Access to the supplied files

## Privacy

- Review recorded URLs and input values before sharing or replaying action exports


Reconstruct the retained interaction from session and generated action files.

Use `session.md` to understand what the tester did, then use `steps.json` or a generated script when you need selectors and runnable actions. Treat these files as a retained sequence, not as a complete record of every interaction or review decision.

## Reconstruct the retained sequence

Read the session start, duration, starting page, and numbered **Recorded actions** in `session.md`. Action offsets are relative to the recorded session start. Earlier interactions may be missing because Recorder retains a bounded timeline.

Compare the sequence with the tester's written steps. Repeated input and change events can describe one logical interaction. Navigation, keyboard input, file selection, frame boundaries, and complex widgets can be incomplete or represented differently across exports.

## Compare the action formats

`steps.json` is a Chrome DevTools Recorder flow. Its array indexes and setup steps do not match the numbered actions in `session.md`. It can include an initial viewport and navigation step that were generated to give the flow a starting point.

`playwright.spec.ts` and `puppeteer.js` are conversions of supported actions. Inspect their locators, values, and comments for omitted or redacted steps. They do not include assertions for the tester's expected result unless someone added them after generation.

Join formats by the action's label, target, value, and order rather than by array index alone. Treat positional selectors and long generated CSS selectors as candidates that must be checked against the application.

## Connect an action to other evidence

Use the relative offset in `session.md` and the absolute request time in `network.har` to find nearby traffic. Confirm the same subject with an identifier, payload value, route, or returned record. A nearby request may be polling or unrelated background work.

Use `notes.md` when it names an action or target. Compare screenshots with the sequence, but do not infer an image's exact timing unless the summary or note supplies it.

## Record the gaps

State which setup occurred before the retained interval, which actions are absent or ambiguous, and which values were redacted. Ask the tester for a focused new recording when the missing interaction changes the conclusion. Use [Capture support and limits](https://fairleadhq.com/docs/recorder/developers/capture-support/) to explain the boundary without implying that the bundle can be reopened in Recorder.