Agent skill · Code Review & Quality

review-ugc-render

Mandatory pre-publish review gate for a UGC video render. Transcribes the finished render's AUDIO with Whisper and word-diffs it against the approved spoken script, then gates set_final_render — blocking a render whose generated audio mis-voices a word (e.g. the approved "human-vetted" spoken as "human witted"), drops an approved phrase, or comes back silent. Runnable, gating counterpart to content-goose's review-transcript-integrity atom. Every ugc-video-formats recipe runs this after render and BEFORE set_final_render.

gooseworks-aigithub.com/gooseworks-aiGitHub ↗
claude-codecodexcursorships scriptsMIT
Install
npx skills add gooseworks-ai/goose-skills --skill review-ugc-render --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 3
SKILL.md size: 4 KB
Bundled scripts: yes
Version: 1
Path: skills/ads/packs/ugc-video-formats/review-ugc-render/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 1,091
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# review-ugc-render > The QC gate every UGC video recipe MUST clear before it publishes. Not an > eyeball `/watch` — a deterministic transcript-vs-script diff that exits non-zero > on a defect so the recipe can hard-stop `set_final_render`. ## Why this exists Seedance generates the audio natively. It sometimes **mis-voices a word** — the approved line `human-vetted` comes back spoken as `human witted`; documented siblings: `Hume`→`Hune`, `Alitu`→`al-too`. The defect lives in the render's audio, so an eyeball `/watch` ("dialogue matches the script") slips it through, and a downstream caption pass then bakes the wrong word in verbatim. Nothing was comparing the **actual spoken audio** against the **script the user approved**. This gate does exactly that, deterministically, and refuses to publish on a miss. ## When to run - **MANDATORY** in every `remix-ugc-*-from-sample` and `create-ugc-*-video-from-refs` recipe, in the QC phase, **after** the master render exists and **before** `set_final_render`. - Re-run after every fix / re-roll until it PASSES. ## Contract Before rendering, persist the exact approved spoken lines (the verbatim utterance, no beat notes) to `working/approved-scrip

What's inside
Steps it walks through
  1. Why this exists
  2. When to run
  3. Contract
  4. What FAIL means and how to fix
  5. Inputs
  6. Tests
  7. Relationship to the content-goose review engine
Ships with 2 files
  • scripts/review_render.py
  • tests/test_review_render.py
Commands it runs
python3 <pack>/review-ugc-render/scripts/review_render.py \
python3 tests/test_review_render.py    # pure verdict logic; no audio/network
More from goose-skills
All skills →
About this skill
What does the review-ugc-render skill do?

Mandatory pre-publish review gate for a UGC video render. Transcribes the finished render's AUDIO with Whisper and word-diffs it against the approved spoken script, then gates set_final_render — blocking a render whose generated audio mis-voices a word (e.g. the approved "human-vetted" spoken as "human witted"), drops an approved phrase, or comes back silent. Runnable, gating counterpart to content-goose's review-transcript-integrity atom. Every ugc-video-formats recipe runs this after render and BEFORE set_final_render.

How do I install it?

Run `npx skills add gooseworks-ai/goose-skills --skill review-ugc-render --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From gooseworks-ai/goose-skills, a repository with 1,091 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going