{"id":"d36dad61-f713-4e06-9919-6dd5f7ae19e7","slug":"clawhub-heygen-com-pr-to-video","name":"pr-to-video","description":"Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.","canonicalUrl":"https://www.xpersona.co/agent/clawhub-heygen-com-pr-to-video","sourceUrl":"https://clawhub.ai/heygen-com/pr-to-video","homepage":"https://clawhub.ai/heygen-com/skills/pr-to-video","source":"CLAWHUB","vendor":{"slug":"clawhub","label":"Clawhub","url":"https://clawhub.ai/heygen-com/skills/pr-to-video"},"protocols":["OPENCLEW"],"capabilities":[],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":"1.0.48","freshnessAt":"2026-10-09T07:40:34.817Z","freshnessLabel":"Oct 9, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 9, 2026"},{"label":"Vendor","value":"Clawhub"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"1.0.48"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Clawhub","href":"https://clawhub.ai/heygen-com/skills/pr-to-video","sourceUrl":"https://clawhub.ai/heygen-com/skills/pr-to-video","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T07:40:34.817Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-pr-to-video/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-pr-to-video/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-09T07:40:34.817Z","isPublic":true},{"factKey":"traction","category":"adoption","label":"Adoption signal","value":"3.5K downloads","href":"https://clawhub.ai/heygen-com/pr-to-video","sourceUrl":"https://clawhub.ai/heygen-com/pr-to-video","sourceType":"profile","confidence":"medium","observedAt":"2026-10-09T07:40:34.817Z","isPublic":true},{"factKey":"latest_release","category":"release","label":"Latest release","value":"1.0.48","href":"https://clawhub.ai/heygen-com/pr-to-video","sourceUrl":"https://clawhub.ai/heygen-com/pr-to-video","sourceType":"release","confidence":"medium","observedAt":"2026-10-08T20:31:45.325Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-pr-to-video/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-pr-to-video/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["3.5K downloads","Trust evidence available"],"agentCard":{"name":"pr-to-video","description":"Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.","source":"CLAWHUB","sourceId":"clawhub:s17fpgb0p797dzkbtbrxw5x1hh89qs64:pr-to-video","homepage":"https://clawhub.ai/heygen-com/skills/pr-to-video","repository":"https://clawhub.ai/heygen-com/pr-to-video","documentation":"https://www.xpersona.co/agent/clawhub-heygen-com-pr-to-video","protocols":["OPENCLEW"],"examples":[{"kind":"example","language":"bash","snippet":"PR=\"<url | owner/repo#N>\"\nif [ -n \"${EXPLICIT_PROJECT_DIR:-}\" ]; then\n  PROJECT_DIR=\"$(node <SKILL_DIR>/scripts/project-dir.mjs --pr \"$PR\" --project-dir \"$EXPLICIT_PROJECT_DIR\")\"\nelse\n  PROJECT_DIR=\"$(node <SKILL_DIR>/scripts/project-dir.mjs --pr \"$PR\")\"\nfi\necho \"PR-to-video project: $PROJECT_DIR\"\nnode <SKILL_DIR>/scripts/preflight.mjs"},{"kind":"example","language":"bash","snippet":"PR=\"<url | owner/repo#N | N>\"\n\n# Fetch the PR deterministically: runs gh, completes the files list via paginated\n# gh api (so a big PR doesn't truncate at ~100 files), writes only capture/pr.json +\n# capture/diff.patch — no scratch dir. gh auth / not-found / private errors exit 1 here.\n(cd \"$PROJECT_DIR\" && node <SKILL_DIR>/scripts/fetch-pr.mjs --pr \"$PR\" --out-dir ./capture)\n\n# Offline transform → capture/extracted/{tokens.json (colors:[] → code-editorial palette),\n# visible-text.txt (the brief), people.json (contributors, bot-filtered, name+login,\n# avatarFile=assets/<login>.png)}.\n(cd \"$PROJECT_DIR\" && node <SKILL_DIR>/scripts/ingest.mjs \\\n  --pr-json ./capture/pr.json --diff ./capture/diff.patch --out-dir ./capture/extracted)\n\n# The people front's one network step — download each contributor's GitHub avatar to\n# assets/<login>.png for the credits close. Best-effort; always exits 0.\n(cd \"$PROJECT_DIR\" && node <SKILL_DIR>/scripts/fetch-people-avatars.mjs \\\n  --people ./capture/extracted/people.json)"}]}}