Agent skill

Record Extension Demo

by mengxi-ream in mengxi-ream/read-frog

Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension…

GPL-3.0Auto-check passedDevelopment

Install Record Extension Demo

skills CLI
$ npx skills add mengxi-ream/read-frog --skill record-extension-demo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mengxi-ream/read-frog record-extension-demo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mengxi-ream/read-frog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/record-extension-demo .claude/skills/record-extension-demo && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
record-extension-demo
GitHub stars
10k
Token cost
~2.8k tokens
SKILL.md length
1,345 words
Files
7 (incl. scripts, references)
Skills in repo
9
Repo updated
First seen
Licence
GPL-3.0

At a glance

Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension…

  • Works in 7 steps: Define the evidence plan → Prepare a reproducible extension state → Choose the viewport and capture surface → …
  • PR demos of user-visible frontend changes
  • SKILL.md covers Operating principles, 1. Define the evidence plan, 2. Prepare a reproducible… and 3. Choose the viewport and…, plus 6 more sections
  • Runs Python and JavaScript scripts from its folder; calls python3 and gh

What it does

Record Extension Demo is an agent skill from mengxi-ream/read-frog. Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension state in the DOM, comparing baseline and candidate behavior when useful, post-processing the capture, and visually validating the result. Use for PR demos of user-visible frontend changes, feature walkthroughs, before/after bug evidence, popup/options/side-panel UI changes, or short interaction recordings.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `references/browser-capture.md`, `references/manifest.md` and `references/read-frog.md`).

It sits in Development. It works with Chrome Extensions. The repository describes itself as: 🐸 Read Frog - Language Learning & Translate | 🐸 陪读蛙 - 语言学习与翻译. The licence is GPL-3.0.

When your agent uses it

  • PR demos of user-visible frontend changes
  • Feature walkthroughs
  • Before/after bug evidence
  • Popup/options/side-panel UI changes

Example prompts

  • “/record-extension-demo”

Requirements

  • Python 3
  • Node.js

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Define the evidence plan
  2. Prepare a reproducible extension state
  3. Choose the viewport and capture surface
  4. Record captioned, assertion-gated scenes
  5. Assemble and post-process
  6. Perform functional and visual QA
  7. Deliver and clean up

What it can do on your machine

Read from SKILL.md and the folder at commit 80140ea. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python and JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Record Extension Demo loads about 2.8k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 131 tokens; SKILL.md has 1,345 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~131
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from mengxi-ream/read-frog at commit 80140ea, republished under its GPL-3.0 licence (© mengxi-ream). 1,345 words, ~2,844 tokens.

Download SKILL.mdSave it as .claude/skills/record-extension-demo/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
record-extension-demo
description
Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension state in the DOM, comparing baseline and candidate behavior when useful, post-processing the capture, and visually validating the result. Use for PR demos of user-visible frontend changes, feature walkthroughs, before/after bug evidence, popup/options/side-panel UI changes, or short interaction recordings.
metadata.author
read-frog
metadata.version
1.0.0

Record Extension Demo

Treat a demo as verification evidence, not decoration. Every scene needs a reviewer-facing caption, a product-state assertion, and visual proof.

The subject here is the built extension running in real Chrome — content-script behavior on a page, or an extension page (popup.html, options.html, sidepanel.html). Dev-server behavior is not proof of the shipped build.

Operating principles

  • Record the production build from .output/chrome-mv3, loaded into a fresh Chrome profile with no real API keys.
  • Use a local fixture page or a stable public page with deterministic, non-sensitive content.
  • Capture browser content (CDP screencast) rather than the whole desktop.
  • Record the transition from a recognizable state, not only the final screenshot.
  • Reuse the repository's proven extension automation (extension-puppeteer-debugging) instead of inventing a parallel setup.
  • Keep recordings concise: one to three scenes for a focused change, up to six when materially different states require it.
  • Keep API keys, tokens, account data, personal browsing history, and unrelated UI out of frames and logs.
  • Store automation scratch files and media in the session scratchpad, never in the repository. Never commit demo binaries.

1. Define the evidence plan

Translate the request into an ordered scene matrix:

FieldPurpose
SceneStable number and short reviewer-facing name
Lanecandidate, baseline, or both
CaptionExact on-screen narration for the scene
SetupFixture URL, extension config, viewport, and persisted storage
ActionExact click, toggle, navigation, input, reload, or resize
AssertionDOM, URL, storage, or computed-layout fact that proves success
End stateWhat the reviewer should see after the assertion passes
EvidenceVideo, screenshot pair, or both

Choose the evidence mode deliberately:

  • New interaction or flow: record the candidate behavior.
  • Bug fix or visual regression: when practical, run the same scene against the base build and the candidate build with identical fixture, config, viewport, captions, and steps. Include the base and candidate SHAs.
  • Static layout/style change (popup, options, injected UI): prefer paired full-resolution screenshots, with a short video only when motion or interaction matters.
  • Logic-only refactor with a visible surface: identical baseline/candidate screenshots plus a clean console can be valid regression evidence.

Resolve only blocking ambiguities. Preserve user-provided captions verbatim unless they contain sensitive data or are too long to render clearly.

2. Prepare a reproducible extension state

Read references/read-frog.md first: build, install, config patching, provider choice, and the traps that cost retakes. Start the recorder from references/recorder-template.js rather than from scratch. Then:

  • Build the artifact under test and confirm .output/chrome-mv3/manifest.json exists before loading it.
  • Launch a fresh profile per take. Force the whole config object in chrome.storage.local from the service worker so the demo does not depend on the operator's own settings.
  • Prefer microsoft-translate-default for translation scenes: no API key, deterministic enough, and nothing secret can leak into a frame.
  • Serve fixtures over http://localhost — content scripts do not run on file://.
  • Warm the route and the translation path once before recording, unless cold-start behavior is the feature.
  • Independently verify anything the video claims numerically (counts of translated nodes, wrapper vs. in-place anchors, storage contents) through a DOM or storage query, and record the query and result as functional evidence.

If the environment cannot reproduce the behavior faithfully — a paid provider, a logged-in site, a store-update-only code path — stop and report the limitation rather than creating misleading evidence.

3. Choose the viewport and capture surface

  • Default desktop demos to a 1280×800 viewport and output canvas.
  • Treat 1280×800 as a default, not a requirement: use a larger canvas for dense pages, or a representative mobile viewport (390×844) when responsive behavior is the point.
  • Keep the browser viewport and raw recorder dimensions identical unless deliberate scaling is part of post-production.
  • Reuse the exact viewport, fixture, and config for baseline/candidate comparisons.
  • The popup is small: record chrome-extension://<id>/popup.html in a tab sized close to the real popup instead of stretching it across a desktop canvas, and let the builder pad it.
  • To focus on one region, capture a full-resolution frame, measure the crop rectangle from that frame, and record the exact x, y, width, height. Never infer crop offsets from a scaled screenshot.

Read references/browser-capture.md completely before implementing capture.

4. Record captioned, assertion-gated scenes

For each scene:

  1. Restore the declared setup, config, and viewport.
  2. Gate readiness with the narrowest reliable signal: a selector, a translated-node count, a data-read-frog-* attribute, or storage state. Never use a fixed sleep to decide whether the extension is ready.
  3. Start capture after install, onboarding tabs, and unrelated loading prelude are complete.
  4. Show the scene caption as a compact pill in the top-left corner — the recorder's pill is the only caption the finished video carries — and add a temporary click-highlight ring around the interaction target. Inject overlays at runtime with class="notranslate" translate="no" so the extension never walks or translates them; do not modify extension source for the demo.
  5. Perform the action at a human-readable pace.
  6. Wait for and assert the expected state. Save the assertion result separately from the pixels.
  7. After the assertion succeeds, capture one authoritative final frame at the same pixel dimensions as every screencast frame. CDP screenshots use device pixels while Page.startScreencast honors maxWidth/maxHeight; normalize before assembly.
  8. Hold the end state for roughly two to three seconds. Encode this as hold_last_seconds; do not confuse it with readiness waiting.
  9. Stop capture in a finally path and save timestamped frames.

Use this artifact shape in the scratchpad:

text
demo-work/
  verification.json
  baseline/                 # only when comparison is useful
    01-primary-flow/
  candidate/
    01-primary-flow/
      frame-00000.jpg
      frames.json
      assertion.json
  manifest.json

verification.json should identify the base branch/SHA, candidate branch/SHA, viewport, fixture, extension version, provider, and scene assertions. No credentials.

Show full SKILL.md (440 more words)Show less

5. Assemble and post-process

Create a manifest following references/manifest.md, then run:

bash
python3 .agents/skills/record-extension-demo/scripts/build_demo.py /absolute/path/to/manifest.json

The MP4 is the canonical artifact. Set gif_output in the manifest when the destination needs a GIF; the builder derives it from the final MP4 with palettegen/paletteuse.

When the raw recording includes install, onboarding, or unrelated loading prelude:

  • extract full-resolution frames around candidate cut points;
  • choose trim timestamps from those frames;
  • remove the prelude before delivery;
  • re-check the new first frame.

Requirements: ffmpeg and ffprobe on PATH, Python ≥ 3.10 with Pillow. Both are already satisfied on this machine (see references/read-frog.md). Do not install Python dependencies into the repository.

6. Perform functional and visual QA

Run QA on the MP4 and, when produced, the GIF:

bash
python3 .agents/skills/record-extension-demo/scripts/qa_demo.py /absolute/path/to/demo.mp4 --expected-width 1280 --expected-height 800
python3 .agents/skills/record-extension-demo/scripts/qa_demo.py /absolute/path/to/demo.gif

Adjust expected dimensions when the manifest intentionally uses another output size. Inspect the contact sheet and at least one full-resolution frame from each materially different layout.

Confirm:

  • the first delivered frame is intentional UI or a title card, not a blank/onboarding/loading frame;
  • the caption is readable, appears once, and neither it nor the click ring hides the target;
  • each scene's asserted beginning and end states are present;
  • baseline/candidate pairs use the same fixture, config, viewport, and steps;
  • translated text actually rendered — no spinner (.read-frog-spinner) left on screen at the end of a scene;
  • no API keys, tokens, account data, unrelated tabs, bookmarks, or notifications are visible;
  • MP4 codec/pixel format and GIF size/frame rate suit the destination.

Do not claim a scenario passed unless both its functional assertion and visual QA passed.

7. Deliver and clean up

Return:

  • absolute MP4 path;
  • absolute GIF path when generated;
  • scene captions and assertion results;
  • baseline/candidate SHAs when compared;
  • functional verification summary;
  • any mocked data, skipped scene, weaker assertion, or environment limitation;
  • paste-ready destination Markdown after upload, or the exact upload step still required.

For GitHub PRs and issues, prefer repository-scoped github.com/user-attachments URLs via gh image (see references/read-frog.md). Never extract or pass a GitHub browser session token. Read Frog is a public repository, but uploads are permanent: inspect frames before uploading.

Close the browser, stop the fixture server, and leave the repository unchanged except for the requested work.

Bundled resources

  • references/read-frog.md: this repository's build, install, config, provider, upload facts and known traps
  • references/recorder-template.js: a working two-scene Puppeteer recorder — copy it into the scratchpad and adapt
  • references/browser-capture.md: screencast capture, overlays, assertion gates, and viewport guidance
  • references/manifest.md: MP4/GIF manifest, timing, and optional crop fields
  • scripts/build_demo.py: deterministic annotated MP4 and optional palette-optimized GIF assembly
  • scripts/qa_demo.py: media metadata validation and contact-sheet generation
  • extension-puppeteer-debugging — the underlying harness for installing, configuring, and asserting the extension; read it before writing a recorder.
  • extension-perf-forensics — when the evidence needed is a leak/freeze/CPU profile rather than a video.

© mengxi-ream, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references) in .agents/skills/record-extension-demo of mengxi-ream/read-frog.

  • SKILL.md
  • references/browser-capture.md
  • references/manifest.md
  • references/read-frog.md
  • references/recorder-template.js
  • scripts/build_demo.py
  • scripts/qa_demo.py

Open the folder on GitHubat commit 80140ea

Compare with similar skills

Record Extension Demo next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Record Extension Demo compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Record Extension Demo this skillmengxi-ream/read-frog10k—~2.8kAutomated safety check: PassGPL-3.0
Canvas Capture Extensionremotion-dev/remotion63k—~907Automated safety check: PassCustom licence
Wxt Browser Extensionsvantezzen/skip-silence4692 repos~1.9kAutomated safety check: PassMIT
Archifymolvqingtai/WebChat2.6k—~5.6kAutomated safety check: PassMIT
Kimi WebbridgeMoonshotAI/kimi-code7.8k—~3.6kAutomated safety check: PassMIT
Repomix Browser Extension Developeryamadashy/repomix29k1 repos~288Automated safety check: PassMIT

Similar skills

  • Canvas Capture Extension

    remotion-dev/remotion

    Official

    Rebuild, install, and reload the private Remotion Canvas Capture unpacked Chrome extension.

    63k GitHub stars~907 tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Wxt Browser Extensions

    vantezzen/skip-silence

    WXT browser extension performance optimization guidelines. An agent skill from vantezzen/skip-silence.

    469 GitHub starsUsed in 2 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Archify

    molvqingtai/WebChat

    Create professional architecture, workflow, sequence, data-flow, and lifecycle/state diagrams as standalone HTML files with SVG graphics, a built-in dark/light theme toggle, and one-click export to…

    2.6k GitHub stars~5.6k tokensUpdated 27 days ago
    DevelopmentAuto-check passed
  • Kimi Webbridge

    MoonshotAI/kimi-code

    Kimi Browser Extension(Kimi 浏览器扩展,原 Kimi WebBridge)lets AI control the user's real browser — navigate, click, type, read, screenshot, and interact with any website using the user's actual login…

    7.8k GitHub stars~3.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content…

    29k GitHub starsUsed in 1 repo~288 tokens
    DevelopmentAuto-check passed
  • Voyager Contribute

    voyager-crew/voyager

    Prepare Voyager commits, pull requests, and contribution evidence, or claim an issue and check review readiness.

    20k GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from mengxi-ream/read-frog

All 9 skills in this repo
  • Adversarial Review

    mengxi-ream/read-frog

    Adversarial code review using cross-model approach. An agent skill from mengxi-ream/read-frog.

    10k GitHub starsUsed in 1 repo~905 tokens
    Auto-check passed
  • Extension Puppeteer Debugging

    mengxi-ream/read-frog

    Debug the built Read Frog extension in real Chrome. An agent skill from mengxi-ream/read-frog.

    10k GitHub stars~2k tokensUpdated yesterday
    Auto-check: notes
  • Webext Core

    mengxi-ream/read-frog

    Utilities for browser extensions - proxy services for cross-context RPC, type-safe messaging, URL match patterns, fake browser for testing, job scheduling, and shadow DOM isolation.

    10k GitHub stars~633 tokensUpdated yesterday
    Auto-check passed
  • Wxt

    mengxi-ream/read-frog

    Build browser extensions with WXT - a next-gen framework with file-based entrypoints, Vite builds, auto-imports, typed storage with migrations, content script UIs, and multi-browser MV2/MV3 support.

    10k GitHub stars~500 tokensUpdated yesterday
    Auto-check passed
  • Create PR

    mengxi-ream/read-frog

    Create a pull request, optionally for the issue provided as argument

    10k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Migration Scripts

    mengxi-ream/read-frog

    A skill your agent uses when writing or reviewing database/config migration scripts or migration registries.

    10k GitHub stars~589 tokensUpdated yesterday
    Auto-check passed

Questions about Record Extension Demo

What does Record Extension Demo do?

Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension…. Record Extension Demo is an agent skill from mengxi-ream/read-frog. Record polished, evidence-backed demos of the Read Frog extension as MP4 (and optional GIF) by driving real Chrome with the built extension, following captioned scene scripts, asserting extension state in the DOM, comparing baseline and candidate behavior when useful, post-processing the capture, and visually validating the result.

When should I use Record Extension Demo?

Record Extension Demo fits situations like: PR demos of user-visible frontend changes; feature walkthroughs; before/after bug evidence; popup/options/side-panel UI changes.

How do I install Record Extension Demo in Claude Code?

Run `npx skills add mengxi-ream/read-frog --skill record-extension-demo -a claude-code`. Or copy the skill folder (.agents/skills/record-extension-demo in mengxi-ream/read-frog) into .claude/skills/record-extension-demo in your project. Claude Code loads it when a task matches its description.

How do I install Record Extension Demo in Codex?

Run `npx skills add mengxi-ream/read-frog --skill record-extension-demo -a codex`. Or copy the skill folder (.agents/skills/record-extension-demo in mengxi-ream/read-frog) into .agents/skills/record-extension-demo in your project. Codex loads it when a task matches its description.

Can I use Record Extension Demo in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mengxi-ream/read-frog --skill record-extension-demo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/record-extension-demo, .gemini/skills/record-extension-demo, .github/skills/record-extension-demo and .opencode/skills/record-extension-demo in your project.

What does Record Extension Demo need to run?

Going by SKILL.md and its folder, Record Extension Demo needs Python and JavaScript for the scripts in its folder and the command-line tools its instructions call (python3 and gh). Our summary lists: Python 3; Node.js.

Does Record Extension Demo access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Record Extension Demo safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Record Extension Demo use?

Record Extension Demo is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Record Extension Demo use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.8k tokens, read only when the agent opens those files.

What are the alternatives to Record Extension Demo?

Skills that share tags, products or a category with Record Extension Demo: Canvas Capture Extension (remotion-dev/remotion, 63k stars), Wxt Browser Extensions (vantezzen/skip-silence, 469 stars), Archify (molvqingtai/WebChat, 2.6k stars) and Kimi Webbridge (MoonshotAI/kimi-code, 7.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Record Extension Demo?

mengxi-ream (a GitHub user) maintains it in mengxi-ream/read-frog, which has 10,029 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 9, 2026.

Source: mengxi-ream/read-frog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.