Download .opencode/skills/daytona-recording-artifacts/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does daytona-recording-artifacts live?
The publisher keeps it at https://github.com/Devin-AXIS/iPolloWork.
Which agents can use daytona-recording-artifacts?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.
frame proof, HTML frames, screenshots, recording, PR proof, e2e evidence, validate visually. Daytona artifacts workflow for validated screenshots and optional videos.
name: daytona-recording-artifacts
description: frame proof, HTML frames, screenshots, recording, PR proof, e2e evidence, validate visually. Daytona artifacts workflow for validated screenshots and optional videos.
Daytona Recording Artifacts
Use this skill to collect proof that a Daytona UI flow works.
Use fraimz before declaring the flow passed. If the user asks
to do e2e tests for a feature, frame proof is required unless they explicitly
ask for non-UI or mock-only validation.
Default: Frame-by-Frame HTML Proof
The default proof format is a browseable HTML page with named PNG screenshots
for each step of the flow. This is faster to produce, easier to review, and
works on any device.
Use video (MP4) only when the proof requires motion: streaming text, loading
spinners, animations, drag-and-drop, or real-time interactions that a static
frame cannot capture. When video is used, embed it inside the frame-by-frame
HTML page alongside the static frames.
When a coded eval exists, prefer the eval runner frame output first:
The runner writes evals/results/<run-id>/index.html plus validated PNG evidence
from ctx.prove(...) and ctx.screenshot(...). Serve or copy that result
directory for PR evidence.
At each important state, capture a browser_screenshot locally and upload
it to the sandbox with a numbered name like 01-auth-landing.png,
02-org-filled.png, etc.
Generate a browseable index.html with all frames as labeled images in a
responsive grid. Include the branch, commit, and sandbox name.
Post the index URL in the PR body. Individual frame PNGs are also directly
linkable: ${FRAMES_URL}/01-auth-landing.png.
Fallback when /daytona-artifacts is unavailable
The preferred path is test-on-daytona.sh --artifacts-volume, which mounts and
serves /daytona-artifacts. If that path is unavailable or not writable, do not
stop at local screenshots. Use /workspace/proof-frames as a fallback:
Use this after important states: welcome screen, workspace created, settings
connected, task response visible, error state reproduced, or final success.
Before sharing any screenshot URL, follow fraimz and inspect
the saved PNG itself. Confirm the visible image shows the claimed state and is
not covered by a native picker, modal, toast, desktop window, or unrelated
overlay. If the screenshot does not match, recapture and inspect a replacement.
Stop Recording
Always stop with the helper so ffmpeg finalizes the MP4 cleanly:
Artifact proxy URLs are not permanent. If the sandbox stops, the old
daytonaproxy URL will fail even when files still exist in
/daytona-artifacts. Restart the sandbox and artifact server, then generate a
fresh URL:
Frame-by-frame HTML proof (default): named PNGs in a browseable index.
This is the primary evidence format for UI flows.
CDP/browser assertions: prove URL, text, state, accessibility tree, and
process state alongside each frame capture.
Video clips (when needed): short MP4s embedded in the frame index for
steps that require motion proof (streaming, animations, loading states).
Do not report success from a recording alone. The AI should inspect state with
browser tools and use screenshots to validate visible behavior before declaring
the flow passed.
Do not use a video as the primary demo if most of the flow happened through
hidden automation. In that case, mark the run as technical validation only and
produce a new frame-by-frame proof for human review.
If you discover invalid evidence after the fact, do not reuse the same URL as
if it were valid. Produce new frames with new names and explain in the
PR/comment that the earlier artifact was superseded.
How do I install daytona-recording-artifacts?
Download .opencode/skills/daytona-recording-artifacts/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does daytona-recording-artifacts live?
The publisher keeps it at https://github.com/Devin-AXIS/iPolloWork.
Which agents can use daytona-recording-artifacts?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.