test-with-evidence

Records annotated screen-capture video of live UI testing and posts results to PRs and issue trackers.

1|Updated Sep 16, 2026
One-click install
npx skills add https://github.com/dsatpm/factory-skills --skill test-with-evidence-dsatpm
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: test-with-evidence
Source: https://github.com/dsatpm/factory-skills/tree/main/plugins/test-with-evidence/skills/test-with-evidence
Command: npx skills add https://github.com/dsatpm/factory-skills --skill test-with-evidence-dsatpm

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires ffmpeg, ffprobe, wf-recorder, playwright, and includes scripts (resource) components.

What problem does it solve? Claims that a UI change works are hard to trust without proof. This Skill captures verifiable evidence — an annotated screen recording of the agent actually testing the app, plus a structured report — and attaches it to the pull request and tracker issue, replacing prose claims with reviewable proof. ## Core Features & Use Cases - Cross-platform annotated recording: The bundled scripts/evidence.py recorder captures the screen via FFmpeg on Linux (X11/Wayland), macOS (avfoundation), and Windows (gdigrab), timestamps setup / test_start / assertion annotations, and burns them into the final video. - Crash-safe capture and safe stopping: Raw capture uses MPEG-TS so a killed recorder still yields playable footage, and stopping uses pidfd (Linux) or a supervisor process (macOS/Windows) so a recycled PID is never signalled. - Headless and non-UI paths: When no GUI exists, scripted Playwright video, numbered screenshots, and an assertions.md file keep the same assertion discipline; API/performance changes get measured probe output. - Use Case: After fixing a settings-page bug, the agent records itself reproducing the old failure and verifying the fix, then posts evidence.mp4 and report.md (with commit, branch, and pass/fail per test) to the PR and Linear issue. ## Quick Start Ask the agent to test the login flow with the test-with-evidence skill and post the recorded proof to the open pull request.

Frequently Asked Questions about test-with-evidence

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I record a screen video of UI testing with annotations?▼

Run `python3 scripts/evidence.py start --output .artifacts/<task>` to begin FFmpeg screen capture, add timestamped `test_start` and `assertion` annotations while testing, then run `stop` to burn annotations into evidence.mp4 and generate report.md and manifest.json.

How do I verify UI changes in a headless environment without a display?▼

Use the headless path: a one-off Playwright script run via `npx --yes --package=playwright node record.mjs` records video of the flow, and numbered screenshots plus an assertions.md file preserve the test/assertion protocol without any GUI.

Does screen recording work on Wayland, macOS, and Windows?▼

Yes, with per-platform capture sources: Linux uses x11grab or wf-recorder on wlroots Wayland compositors (GNOME/KDE Wayland are not capturable), macOS uses avfoundation with Screen Recording permission, and Windows uses gdigrab. Run `doctor` to check which source is available.

What dependencies does the evidence recorder require?▼

The recorder needs only Python 3 plus ffmpeg and ffprobe built with libx264 and the ass filter. Wayland capture additionally needs wf-recorder, and posting evidence to a PR requires the gh CLI or an equivalent upload method.

What happens if the screen recorder crashes or is killed mid-session?▼

The raw capture is written as MPEG-TS, so a hard kill still leaves a playable, probe-able file. Running `stop` again finalizes whatever was captured into evidence.mp4 once the recorder process is confirmed gone.

When should I not use screen recording as test evidence?▼

Never record screens showing secrets, tokens, or customer data — mark those tests untested instead. Also never present the synthetic `--source test` pattern or scripted playback as evidence; the video must show the live interactive test session.