[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698SFWX2C93J47Q3CKYZPDQ":3,"skill-same:01M698SFWX2C93J47Q3CKYZPDQ":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M698SFWX2C93J47Q3CKYZPDQ","proof-video",null,"Capture, edit, inspect, and attach real ClawHub browser proof directly to a GitHub PR, with captions, focused zooms, and clearly separated before\u002Fafter results.","openclaw\u002Fclawhub","openclaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252820863?v=4","01M698P3FSAZ6B4R928ZF19KPT","01M698PDMKEC6E49395505BD05",9554,"MIT","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fproof-video\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"proof video","Video","proof","clawhub","github","pr","browser","Captions","capture","edit","results","attach","github pr","with","inspect","2026-11-10 10:12:30",false,"---\nname: proof-video\ndescription: Capture, edit, inspect, and attach real ClawHub browser proof directly to a GitHub PR, with captions, focused zooms, and clearly separated before\u002Fafter results.\n---\n\n# Proof video\n\nAdapted from OpenClaw's [proof-video skill](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fproof-video\u002FSKILL.md) and [PR evidence instructions](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002FAGENTS.md). This adaptation uses ClawHub's existing real-browser proof runner; OpenClaw's mocked Gateway template and repo-specific helper imports do not apply here.\n\n## Establish the claim\n\nBefore recording, name the behavior, exact source refs, local URL, fixture and expected visible result. Keep the same viewport, theme, account, data and interaction sequence for before\u002Fafter comparisons. Feature proof can omit an impossible baseline, with the reason stated.\n\nUse a real ClawHub instance with the relevant local Convex code and fixture state. Use a real isolated browser on the current host; use Crabbox only when its environment is needed and available. Do not use HTML mockups, synthetic screenshots, intercepted success responses or hand-written product UI as proof. Seed through the supported local fixture workflow. Never use the operator's personal Gateway for cross-system proof.\n\nFor a ClawHub → OpenClaw flow, record the actual admin action, security pending state, catalog lookup, installation and meaningful live tool result. State separately which scan\u002Fprovider checks are real, simulated or untested. A queued job is not a completed scan, and discovery is not account-level authorization.\n\n## Capture\n\nKeep captures, scripts, cue times and private browser state in separate ignored local directories. Select individual inspected media files for upload; never upload the entire artifact directory or browser state.\n\nUse the existing runner with a task-specific scenario:\n\n```sh\nbun run proof:ui -- --runner local --mode feature \\\n  --scenario .artifacts\u002Fproof-scenarios\u002Fexample.pw.ts \\\n  --candidate-url http:\u002F\u002F127.0.0.1:3000\n```\n\nUse `--mode before-after`, `--baseline-url` and `--candidate-url` for paired proof. See `scripts\u002Fui-proof-runtime.mjs` for the scenario contract and `specs\u002Fui-proof.md` for runtime isolation. For a multi-app flow that needs a dedicated driver, use the existing Playwright dependency and `recordVideo` against the real services.\n\nWait on asserted UI state, response or live runtime event, not arbitrary sleeps. Include loading, empty, typical, dense, error and permission states when relevant; explain omitted states. Capture desktop and mobile for responsive changes. Screenshot capture must not disturb an active recording; use a separate context when necessary.\n\nFor sharp zooms, verify the raw video resolution and actual content scale. OpenClaw observed Chromium padding with emulated `deviceScaleFactor: 2`; native `--force-device-scale-factor=2` with context emulation at 1 avoided it. Verify this on the installed browser before relying on it; do not blindly double dimensions. A normal-scale recording is preferable to a padded or clipped one.\n\n## Edit: context → action\u002Fwait → result\n\nPreserve the raw recording. Render to a new file using the system `ffmpeg`\u002F`ffprobe` and keep a small cue sheet with timestamps on the raw timeline.\n\n- Burn concise captions into the MP4. GitHub's player does not display separate subtitle tracks. Say what the viewer sees and what it proves; keep captions to one or two lines.\n- Establish the page and initiating action at normal speed. Accelerate only idle waiting, visibly labeled with its multiplier. Return to 1× before meaningful transitions and the result. Keep latency measurements at real speed.\n- Use a smooth, focused 1.5–2× zoom when a small control\u002Fresult matters. Keep its label and surrounding context in frame. Measure the actual target; do not invent a highlight that hides the underlying UI.\n- Hold the decisive result for several seconds. Captions must not cover it.\n- Keep the failed baseline explicitly labeled **BEFORE — expected failure** and the passing candidate **AFTER — successful result**. Lead the PR with the successful candidate and disclose any required companion fix beside it. Never put a failure clip beneath an undifferentiated “passed” heading.\n- Caption PNG overlays rendered with the existing browser or image tooling work when `ffmpeg` lacks `drawtext`\u002F`libass`. Use text-safe DOM assignment when rendering captions. Do not redraw product pixels.\n- Remap caption\u002Fzoom times after speed changes. Normalize variable-frame-rate native captures to a separate constant-frame-rate copy. Zoom rendering must preserve intended frame count and duration; dynamic crop-size expressions alone do not animate reliably.\n\nFor a browser WebM that needs only compatible encoding:\n\n```sh\nffmpeg -n -i recording.webm -c:v libx264 -pix_fmt yuv420p \\\n  -movflags +faststart proof.mp4\n```\n\nThis is transcoding, not captioning or verification. Keep authored editing scripts local unless a separate tooling change is requested.\n\n## Inspect before publishing\n\nOpen every final screenshot and inspect every video across its full timeline. Check full-size frames at the initiating action, caption changes, zoom holds, speed boundaries and final result. Confirm the actual state, readable text, framing, timing, privacy and source identity. A contact sheet helps inspect the timeline but does not replace full-size decisive frames. Re-capture or re-edit anything misleading, blank, clipped or stale.\n\nRecord exact before\u002Fafter refs, commands, real runtime configuration, assertions and limitations in the PR. Do not claim a capture passed merely because its file exists. Keep failing baseline evidence separate from the successful acceptance result.\n\n## Attach directly to the PR\n\nUse GitHub's native attachments. **Never commit screenshots, videos, generated proof reports, or `.artifacts\u002F` output to any product repository branch**, including `qa-artifacts`. The old `proof:publish` branch-upload helper is retired.\n\nCheck `gh pr comment --help` for `--attach`. Write the exact comment to an ignored Markdown file and use:\n\n```sh\ngh pr comment 123 --repo openclaw\u002Fclawhub \\\n  --body-file .artifacts\u002Fproof\u002Fcomment.md \\\n  --attach .artifacts\u002Fproof\u002Fafter.mp4 \\\n  --attach '.artifacts\u002Fproof\u002Fbefore.png#Before' \\\n  --attach '.artifacts\u002Fproof\u002Fafter.png#After'\n```\n\nAn image reference already in the body is rewritten to its uploaded URL; otherwise attachments are appended. For video, use `.mp4`, `.mov` or `.webm`, never a `#alt` suffix. Put the returned video URL on its own bare line so GitHub renders a player, not inside image Markdown. The CLI accepts videos up to 100 MB; GitHub's account limit may be lower. Assets cannot be deleted after upload, so inspect\u002Fsanitize first.\n\nPrefer updating the existing proof comment after reading it. `--edit-last` is safe only after verifying the last comment by the authenticated author is the intended target. Otherwise upload a new proof comment and update the specific old comment to point to it. Reuse existing uploaded asset URLs rather than uploading duplicates.\n\nIf `gh` lacks `--attach`, update the official CLI or use GitHub's user-attachments upload API as documented by OpenClaw. Resolve credentials through the approved process, keep tokens out of logs\u002Fargv, and verify the returned asset URL. Do not fall back to a Git branch or release asset. If direct attachment is blocked, retain the local media and report the precise failed operation; do not claim publication.\n\nPut a concise validation report in the PR comment itself. Preserve raw logs\u002Fcue files locally; share non-media diagnostics only through an explicitly authorized artifact destination. Verify the posted comment contains the intended image\u002Fvideo URLs and, when browser control is available, inspect its rendered players. Return the direct proof-comment link.\n","# Proof video\n\nAdapted from OpenClaw's [proof-video skill](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fproof-video\u002FSKILL.md) and [PR evidence instructions](https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002FAGENTS.md). This adaptation uses ClawHub's existing real-browser proof runner; OpenClaw's mocked Gateway template and repo-specific helper imports do not apply here.\n\n## Establish the claim\n\nBefore recording, name the behavior, exact source refs, local URL, fixture and expected visible result. Keep the same viewport, theme, account, data and interaction sequence for before\u002Fafter comparisons. Feature proof can omit an impossible baseline, with the reason stated.\n\nUse a real ClawHub instance with the relevant local Convex code and fixture state. Use a real isolated browser on the current host; use Crabbox only when its environment is needed and available. Do not use HTML mockups, synthetic screenshots, intercepted success responses or hand-written product UI as proof. Seed through the supported local fixture workflow. Never use the operator's personal Gateway for cross-system proof.\n\nFor a ClawHub → OpenClaw flow, record the actual admin action, security pending state, catalog lookup, installation and meaningful live tool result. State separately which scan\u002Fprovider checks are real, simulated or untested. A queued job is not a completed scan, and discovery is not account-level authorization.\n\n## Capture\n\nKeep captures, scripts, cue times and private browser state in separate ignored local directories. Select individual inspected media files for upload; never upload the entire artifact directory or browser state.\n\nUse the existing runner with a task-specific scenario:\n\n```sh\nbun run proof:ui -- --runner local --mode feature \\\n  --scenario .artifacts\u002Fproof-scenarios\u002Fexample.pw.ts \\\n  --candidate-url http:\u002F\u002F127.0.0.1:3000\n```\n\nUse `--mode before-after`, `--baseline-url` and `--candidate-url` for paired proof. See `scripts\u002Fui-proof-runtime.mjs` for the scenario contract and `specs\u002Fui-proof.md` for runtime isolation. For a multi-app flow that needs a dedicated driver, use the existing Playwright dependency and `recordVideo` against the real services.\n\nWait on asserted UI state, response or live runtime event, not arbitrary sleeps. Include loading, empty, typical, dense, error and permission states when relevant; explain omitted states. Capture desktop and mobile for responsive changes. Screenshot capture must not disturb an active recording; use a separate context when necessary.\n\nFor sharp zooms, verify the raw video resolution and actual content scale. OpenClaw observed Chromium padding with emulated `deviceScaleFactor: 2`; native `--force-device-scale-factor=2` with context emulation at 1 avoided it. Verify this on the installed browser before relying on it; do not blindly double dimensions. A normal-scale recording is preferable to a padded or clipped one.\n\n## Edit: context → action\u002Fwait → result\n\nPreserve the raw recording. Render to a new file using the system `ffmpeg`\u002F`ffprobe` and keep a small cue sheet with timestamps on the raw timeline.\n\n- Burn concise captions into the MP4. GitHub's player does not display separate subtitle tracks. Say what the viewer sees and what it proves; keep captions to one or two lines.\n- Establish the page and initiating action at normal speed. Accelerate only idle waiting, visibly labeled with its multiplier. Return to 1× before meaningful transitions and the result. Keep latency measurements at real speed.\n- Use a smooth, focused 1.5–2× zoom when a small control\u002Fresult matters. Keep its label and surrounding context in frame. Measure the actual target; do not invent a highlight that hides the underlying UI.\n- Hold the decisive result for several seconds. Captions must not cover it.\n- Keep the failed baseline explicitly labeled **BEFORE — expected failure** and the passing candidate **AFTER — successful result**. Lead the PR with the successful candidate and disclose any required companion fix beside it. Never put a failure clip beneath an undifferentiated “passed” heading.\n- Caption PNG overlays rendered with the existing browser or image tooling work when `ffmpeg` lacks `drawtext`\u002F`libass`. Use text-safe DOM assignment when rendering captions. Do not redraw product pixels.\n- Remap caption\u002Fzoom times after speed changes. Normalize variable-frame-rate native captures to a separate constant-frame-rate copy. Zoom rendering must preserve intended frame count and duration; dynamic crop-size expressions alone do not animate reliably.\n\nFor a browser WebM that needs only compatible encoding:\n\n```sh\nffmpeg -n -i recording.webm -c:v libx264 -pix_fmt yuv420p \\\n  -movflags +faststart proof.mp4\n```\n\nThis is transcoding, not captioning or verification. Keep authored editing scripts local unless a separate tooling change is requested.\n\n## Inspect before publishing\n\nOpen every final screenshot and inspect every video across its full timeline. Check full-size frames at the initiating action, caption changes, zoom holds, speed boundaries and final result. Confirm the actual state, readable text, framing, timing, privacy and source identity. A contact sheet helps inspect the timeline but does not replace full-size decisive frames. Re-capture or re-edit anything misleading, blank, clipped or stale.\n\nRecord exact before\u002Fafter refs, commands, real runtime configuration, assertions and limitations in the PR. Do not claim a capture passed merely because its file exists. Keep failing baseline evidence separate from the successful acceptance result.\n\n## Attach directly to the PR\n\nUse GitHub's native attachments. **Never commit screenshots, videos, generated proof reports, or `.artifacts\u002F` output to any product repository branch**, including `qa-artifacts`. The old `proof:publish` branch-upload helper is retired.\n\nCheck `gh pr comment --help` for `--attach`. Write the exact comment to an ignored Markdown file and use:\n\n```sh\ngh pr comment 123 --repo openclaw\u002Fclawhub \\\n  --body-file .artifacts\u002Fproof\u002Fcomment.md \\\n  --attach .artifacts\u002Fproof\u002Fafter.mp4 \\\n  --attach '.artifacts\u002Fproof\u002Fbefore.png#Before' \\\n  --attach '.artifacts\u002Fproof\u002Fafter.png#After'\n```\n\nAn image reference already in the body is rewritten to its uploaded URL; otherwise attachments are appended. For video, use `.mp4`, `.mov` or `.webm`, never a `#alt` suffix. Put the returned video URL on its own bare line so GitHub renders a player, not inside image Markdown. The CLI accepts videos up to 100 MB; GitHub's account limit may be lower. Assets cannot be deleted after upload, so inspect\u002Fsanitize first.\n\nPrefer updating the existing proof comment after reading it. `--edit-last` is safe only after verifying the last comment by the authenticated author is the intended target. Otherwise upload a new proof comment and update the specific old comment to point to it. Reuse existing uploaded asset URLs rather than uploading duplicates.\n\nIf `gh` lacks `--attach`, update the official CLI or use GitHub's user-attachments upload API as documented by OpenClaw. Resolve credentials through the approved process, keep tokens out of logs\u002Fargv, and verify the returned asset URL. Do not fall back to a Git branch or release asset. If direct attachment is blocked, retain the local media and report the precise failed operation; do not claim publication.\n\nPut a concise validation report in the PR comment itself. Preserve raw logs\u002Fcue files locally; share non-media diagnostics only through an explicitly authorized artifact destination. Verify the posted comment contains the intended image\u002Fvideo URLs and, when browser control is available, inspect its rendered players. Return the direct proof-comment link.\n",{"name":5,"description":7},"main","fd6beef619775fe02dd2548b0658bf88b46d7740",".agents\u002Fskills\u002Fproof-video",1494,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub","https:\u002F\u002Fclawhub.ai","https:\u002F\u002Fgithub.com\u002Fopenclaw","https:\u002F\u002Fopenclaw.ai","Your personal, open source AI assistant.","2026-11-13 01:06:10",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add openclaw\u002Fclawhub --skill proof-video",{"tool":59,"command":60},"bunx","bunx skills add openclaw\u002Fclawhub --skill proof-video",{"tool":62,"command":63},"pnpm","pnpm dlx skills add openclaw\u002Fclawhub --skill proof-video","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fproof-video\u002FSKILL.md",true,[],[68,91,120,135,157,183],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":38},"01M698QE868QCJ1HN5H03NAKCZ","convex-advisor","Read the Convex deployment's 72h insights (read limits, OCC contention), root-cause each event in code, report evidence-backed perf\u002Fcost findings with fixes.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-advisor\u002FSKILL.md",[],[75,76,77,78,79,80,81,82,83,84,85,86,36,87,88,89,90],"convex advisor","convex","advisor","perf","deployment","code","report","read","evidence","cost","root-cause","event","insights","root","fixes","limits",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":100,"publishedAt":38},"01M698QD01M039DZ8WCRE8J6WY","convex-add","Add a capability to the CURRENT Convex app — consults the served Convex capability catalog for always-current procedures (billing, crons, auth, agent, search, …); falls back to built-in hosting or @convex-dev component search. TRIGGER when the user runs \u002Fadd, or asks to add hosting\u002Fpublishing or any backend capability to an existing Convex app.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-add\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[101,76,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"convex add","add","component","auth","dev","search","user","catalog","backend","publishing","hosting","back","app","trigger","billing","for","Existing","capability","when",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":38},"01M698QBS5JVY310XM3RGFZCK4","convex-acquire-domain","Find and buy a domain for the current Convex app through Convex, then bind it (labs; spend action).","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fconvex-acquire-domain\u002FSKILL.md",[],[127,76,128,129,130,131,132,113,133,134,116],"convex acquire domain","acquire","domain","find","buy","bind","it","action",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":38},"01M698Q9P74GJAVDMCP33QBBWX","controlling-costs","Analyzes Axiom query patterns to find unused data, then builds dashboards and monitors for cost optimization. Use when asked to reduce Axiom costs, find unused columns or field values, identify data waste, or track ingest spend.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fcontrolling-costs\u002FSKILL.md",[],[142,143,144,145,146,130,147,84,148,149,150,151,152,153,116,154,155,156,119],"controlling costs","cost optimization","Optimization","data","dashboards","use","ingest","patterns","query","columns","axiom","values","reduce","track","unused",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":169,"publishedAt":38},"01M698Q868XZ7WJ92AKABGJVTY","clawhub-production-release","Run and verify ClawHub production deploys and stable ClawHub CLI npm releases. Use when deploying backend or frontend changes to clawhub.ai, dispatching the Deploy workflow, publishing a stable CLI tag, checking release prerequisites, or proving the exact production SHA and workflow outcome.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fclawhub-production-release\u002FSKILL.md",[163,166],{"categoryNo":164,"categoryName":165,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":167,"categoryName":168,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",[170,26,171,172,173,174,175,176,177,178,179,180,147,109,110,181,182,119],"clawhub production release","release","Production","frontend","cli","workflow","deploy","run","npm","verify","outcome","releases","changes",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":38},"01M698Q70G4HPSFV27J0YBNAYS","clawhub-pr-maintainer","Use when reviewing, triaging, validating, or discussing ClawHub GitHub issues or pull requests, including author context, CI, UI proof, evidence, labels, close decisions, and maintainer handoff.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fclawhub-pr-maintainer\u002FSKILL.md",[],[190,26,28,27,191,192,193,194,195,196,197,198,147,83,25,199,200,201,202,119],"clawhub pr maintainer","pull requests","github issues","issues","pull","ui","ci","decisions","context","close","requests","labels","author"]