Skip to content
Agentmart
Submit a tool

zf-record-browser-demo

Use on demand to record a short, truthful browser workflow as deterministic frames plus an optimized GIF and provenance artifact.

Skill by uisee-ai

IndexedApache-2.0★ 34
Write a review

Chalk Labs

Need help deploying zf-record-browser-demo?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/uisee-ai-zf-record-browser-demo

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use on demand to record a short, truthful browser workflow as deterministic frames plus an optimized GIF and provenance artifact. Reuses ZaoFu's Docker Playwright and evidence contracts; the GIF demonstrates one run but never replaces browser assertions or publishes remote assets automatically.

Use cases: testing, devops, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/zf-record-browser-demo

What's inside

Skill name
zf-record-browser-demo
Description
Use on demand to record a short, truthful browser workflow as deterministic frames plus an optimized GIF and provenance artifact. Reuses ZaoFu's Docker Playwright and evidence contracts; the GIF demonstrates one run but never replaces browser assertions or publishes remote assets automatically.
License
Apache-2.0
Instructions
111 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (3)

  • SKILL.md
  • THIRD_PARTY_LICENSE.md
  • encode_gif.py · scripts/

SKILL.md (first lines)

# ZaoFu Record Browser Demo

Record three to six meaningful states from one isolated browser run, encode
them deterministically, and bind the media to enough provenance that another
person can tell what it actually proves.

This skill adds presentation evidence. The loaded `zf-browser-e2e-contract`
still owns browser runner shape and environment classification;
`zf-harness-evidence-collection` owns auditable evidence refs. A GIF is never a
substitute for DOM/API/trace assertions or a terminal gate.

## Trigger And Boundary

Use when the operator asks for a GIF/demo, when a task explicitly requires one,
or when a browser-visible change needs compact review evidence. Do not require a
real-provider GIF for every UI change by default. A mock/fixture demo is valid
only when labelled as such and cannot prove the real-provider path.

Recording creates local frame, GIF, and provenance files. It does not commit
binary media, push an assets branch, edit a pull request, expose credentials, or
mutate canonical runtime state. Remote publication is a separate operator-
approved workflow.

## One Storyboard, One Run

1. Resolve the exact source commit and require a clean target tree for claims
   about that commit. Record `git rev-parse HEAD`, worktree path, build command,
   service URL, browser origin, viewport, provider/model mode, and whether the
   run is real, mock, or fixture-backed.
2. Start the application from that tree using the environment contract from
   `zf-browser-e2e-contract`. Use fresh runtime/browser state unless the owner
   explicitly requires an existing session.
3. Define one short storyboard with three to six semantic states such as
   initial, submitted, working, settled, and detail. Do not splice frames from
   separate server boots, provider runs, commits, origins, or browser contexts.
4. Before each capture, wait for an exact state predicate: one accessible name,
   enabled/disabled state, exact settled text, response id, URL, or stable
   `data-*` status. Fixed sleeps may pace animation but are not proof of state.
5. Name frames lexically (`00-initial.png`, `01-working.png`, ...), keep one
   viewport/crop, and exclude secrets, unrelated tabs, personal data, and
   transient notifications.
6. Keep the Playwright assertions and their trace/screenshot receipts. Capture
   the GIF frames from the same passing run when possible.

For a transient state, poll and capture in the same Playwright operation so the
state cannot settle between separate calls. For a final state, match exact text
or a stable result identity; the user's echoed prompt is not completion proof.

## Provenance Body

Write `browser-demo-provenance.v1.json` beside the GIF:

```json
{
  "schema_version": "browser-demo-provenance.v1",
  "source_commit": "<sha>",
  "worktree": "<absolute path>",
  "service_url": "<url>",
  "browser_origin": "<origin>",
  "viewport": {"width": 1440, "height": 900},
  "provider_mode": "real|mock|fixture",
  "provider_model": "<model or empty>",
  "storyboard": [{"frame": "00-initial.png", "predicate": "<exact condition>"}],
  "playwright_evidence_refs": [],
  "encoder_summary": {},
  "limitations": []
}
```

Never include token values, cookies, authorization headers, or provider request
bodies containing private data.

## Encode And Verify

The bundled script requires Python 3, `ffmpeg`, and `ffprobe`. It fails closed
when the binaries, frames, dimensions, duration, animation, or byte budget are
invalid; it never installs host dependencies.

```bash
export ZF_BROWSER_DEMO_SKILL=/absolute/path/to/skills/zf-record-browser-demo
python3 "$ZF_BROWSER_DEMO_SKILL/scripts/encode_gif.py" \
  /absolute/path/to/frames /absolute/path/to/demo.gif \
  --durations 1.5,1.5,1.5,3.5 --fps 10 --max-width 1200 --colors 128
```

If the host lacks media binaries, use an owner-approved pinned tool container
or report the blocker; do not silently install packages. Read the JSON summary,
inspect the encoded GIF (not only source frames), confirm final-state hold and
text legibility, and run `git status --short` to ensure media stayed in the
declared evidence/scratch location.

For an active task, publish complete sidecars through the existing artifact
manifest path:

```bash
uv run zf artifact manifest create \
  --task "$TASK_ID" --role "$ROLE" \
  --kind browser_demo_gif=/absolute/path/to/demo.gif \
  --kind browser_demo_provenance=/absolute/path/to/browser-demo-provenance.v1.json \
  --skill zf-record-browser-demo --emit
```

Report the absolute local path, source commit, origin, and provider mode. State
explicitly that the GIF is demonstration evidence and name the Playwright gate
that proves correctness.

How to test: exercise the encoder with fake `ffmpeg`/`ffprobe` subprocesses,
then record one isolated mock browser storyboard and verify the provenance says
`provider_mode=mock` rather than presenting it as a real-provider proof.

From uisee-ai/zaofu, Apache-2.0.

More from uisee-ai/zaofu

Signals

Stars
34
Forks
4
Open issues
0
Last commit (this folder)
Aug 18, 2026 (2 months ago)
Last release
Aug 21, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from uisee-ai

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get zf-record-browser-demo running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying zf-record-browser-demo?

CallGet help
Cite this page

zf-record-browser-demo skill. Agent Mart. https://agentmart.dev/skills/uisee-ai-zf-record-browser-demo (last updated 2026-10-24)