[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MD3DFPP800575P1PFGS4ZM":3,"skill-same:01M6MD3DFPP800575P1PFGS4ZM":125},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":63,"ownerHtmlUrl":64,"ownerBlogUrl":63,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6MD3DFPP800575P1PFGS4ZM","eng-ui-screenshot",null,"Screenshot capture for deterministic PNG evidence and visual-contract bundles for Compozy Storybook stories and local UI URLs. Use for visual audits, regression diffs, and design-parity checks. Do not use for interactive E2E flows, remote authenticated sites, or Storybook test execution.","compozy\u002Fcompozy","compozy","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F205107042?v=4","01M6JWVTXX4DX38AWZ7SPFEKEV","CompozyOS","01M6JWVV2P34GM1PDATVB2EV05",2864,"MIT","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002FSKILL.md",[18,23,28],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"screenshot","ui","eng ui screenshot","screenshot capture","storybook stories","for","flows","remote","sites","contract","local","visual","deterministic","design","do","evidence","use","regression","e2e","execution","diffs","2026-11-10 10:12:30",false,"---\nname: eng-ui-screenshot\ndescription: Screenshot capture for deterministic PNG evidence and visual-contract bundles for Compozy Storybook stories and local UI URLs. Use for visual audits, regression diffs, and design-parity checks. Do not use for interactive E2E flows, remote authenticated sites, or Storybook test execution.\n---\n\n# Compozy UI Screenshot\n\nCapture deterministic PNG evidence through the bundled CDP helper. The helper\nowns load\u002Ffont settling and viewport emulation; the procedure owns target\nresolution, evidence checks, and process cleanup.\n\nWhen a task or spec names a trusted visual reference, read\n`.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fvisual-contract.md` before the first capture or implementation; reuse its resolved contract while it remains current. Its evidence bundle, not an\nimplementation-only screenshot, is the completion contract.\n\n## Procedure\n\n**Step 1: Prepare an Owned Workdir**\n\n1. Start at the repository root and record it: `REPO_ROOT=\"$(pwd)\"`.\n2. Run the bootstrap helper with a unique directory:\n   `WORKDIR=\"$(bash \"$REPO_ROOT\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Fscripts\u002Fsetup-workdir.sh\" \"$(mktemp -d \u002Ftmp\u002Feng-ui-screenshot.XXXXXX)\")\"`\n3. The bootstrap copies the current capture helpers into `WORKDIR` so Bun resolves their dependencies from the isolated package. Keep `REPO_ROOT` for references and server packages; execute the materialized helpers from `WORKDIR`.\n\n*Done when:* one unique workdir exists, its dependencies are installed, and every helper path resolves independently of the current directory.\n\n**Step 2: Establish Storybook Ownership**\n\n1. Skip this step when the capture set has no Storybook target. Otherwise read `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fstorybook-urls.md` in full.\n2. Probe the required server (`6006` for `web`, `6007` for `packages\u002Fui`) and reuse it only when its `index.json` is healthy.\n3. If a server is absent, start the matching `bun run storybook` from its package, redirect logs into `WORKDIR`, and immediately record its PID as `WORKDIR\u002Fweb-storybook.pid` or `WORKDIR\u002Fui-storybook.pid`.\n4. Poll the health endpoint until it returns `200` or the owned process exits; on exit, fail with its log.\n\n*Done when:* every required Storybook is healthy and each server started by this run has exactly one PID file; pre-existing servers have none.\n\n**Step 3: Resolve Story IDs**\n\n1. Skip this step for arbitrary non-Storybook URLs.\n2. From `WORKDIR`, run the materialized read-only helper:\n   `bun run \"$WORKDIR\u002Flist-stories.mjs\" http:\u002F\u002Flocalhost:6006 [--filter \u003Csubstring>]`\n3. Confirm every requested story id appears exactly in the output; never infer an id from the app URL.\n\n*Done when:* every Storybook target is backed by a real `index.json` entry.\n\n**Step 4: Capture Through CDP**\n\n1. From `WORKDIR`, run the materialized mutating helper:\n   `bun run \"$WORKDIR\u002Fcap.mjs\" --out \u003Coutput-dir> --width \u003CW> --height \u003CH> --wait \u003Cms> --shot \u003Cname> \u003Curl> [...]`\n2. Use `1440 × 900` for routes, `1680 × 1050` for wide breakpoints, `1100 × 700` for primitives, and `320 × 800` for collapsed navigation. Read `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fcdp-flow.md` in full before changing capture mechanics or defaults.\n3. Use `2200 ms` as the current route settle floor; increase to `4000 ms` only when captured evidence shows fallback fonts.\n4. Treat a non-zero helper exit as a failed capture set. A sub-20 KB PNG is also suspicious and requires inspection even when capture succeeded.\n\n*Done when:* every requested target prints `saved`, the helper exits zero, and every expected PNG exists with a plausible size.\n\n**Step 5: Capture a Proposal Mock When Requested**\n\n1. Only for proposal-side state not reachable from the canonical HTML, read `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fproposal-mock-capture.md` in full and follow its clone-and-patch branch.\n2. Start the static server as an owned process and record its PID in `WORKDIR\u002Fproposal-server.pid`.\n3. Capture with the same `WORKDIR\u002Fcap.mjs`, then remove the throwaway wrapper without editing the canonical proposal.\n\n*Done when:* every requested proposal state is captured, the canonical HTML is unchanged, and the temporary wrapper is gone.\n\n**Step 6: Inspect the Evidence**\n\n1. Verify the exact expected PNG set; file size is a tripwire, not proof.\n2. Open at least one PNG from every distinct surface or viewport and compare it with the intended state or trusted baseline.\n3. For visual-contract runs, inspect every reference\u002Fimplementation pair and require the complete evidence bundle before reporting parity.\n\n*Done when:* target identity, viewport, rendered content, fonts, and visible state are verified rather than inferred from filenames; visual-contract runs additionally have no unresolved blocking divergence.\n\n**Step 7: Tear Down Owned Processes**\n\n1. Terminate only PIDs recorded under this run's `WORKDIR`: request graceful termination, wait for exit, and escalate only the same proven-owned process when necessary.\n2. Preserve healthy servers that predated this run.\n3. Confirm every owned PID is dead before completion; files may remain for evidence.\n\n*Done when:* all processes started by this run are stopped and no unowned browser or dev server was touched.\n\n## Error Handling\n\n- **A capture exits non-zero:** read stderr and `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Ftroubleshooting.md`; fix the failing target and recapture affected targets. Repeat the set only if shared capture inputs changed; retain valid captures for unchanged inputs.\n- **A Storybook port is occupied but unhealthy:** identify the owner and report it. Reuse only a healthy `index.json`; never kill an unowned process to claim the port.\n- **The bootstrap workdir fails:** discard that unique temporary workdir and rerun the bootstrap into a new one; do not mutate repository dependencies.\n- **Chrome survives a crashed helper:** use the printed debug port to identify the exact headless Chrome PID, verify ownership from its command line, then terminate only that PID\u002Fprocess group. Never use a machine-wide `pkill`.\n- **Reference and implementation dimensions differ:** recapture both at the exact contract viewport; never resize one image to manufacture a diff.\n","# Compozy UI Screenshot\n\nCapture deterministic PNG evidence through the bundled CDP helper. The helper\nowns load\u002Ffont settling and viewport emulation; the procedure owns target\nresolution, evidence checks, and process cleanup.\n\nWhen a task or spec names a trusted visual reference, read\n`.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fvisual-contract.md` before the first capture or implementation; reuse its resolved contract while it remains current. Its evidence bundle, not an\nimplementation-only screenshot, is the completion contract.\n\n## Procedure\n\n**Step 1: Prepare an Owned Workdir**\n\n1. Start at the repository root and record it: `REPO_ROOT=\"$(pwd)\"`.\n2. Run the bootstrap helper with a unique directory:\n   `WORKDIR=\"$(bash \"$REPO_ROOT\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Fscripts\u002Fsetup-workdir.sh\" \"$(mktemp -d \u002Ftmp\u002Feng-ui-screenshot.XXXXXX)\")\"`\n3. The bootstrap copies the current capture helpers into `WORKDIR` so Bun resolves their dependencies from the isolated package. Keep `REPO_ROOT` for references and server packages; execute the materialized helpers from `WORKDIR`.\n\n*Done when:* one unique workdir exists, its dependencies are installed, and every helper path resolves independently of the current directory.\n\n**Step 2: Establish Storybook Ownership**\n\n1. Skip this step when the capture set has no Storybook target. Otherwise read `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fstorybook-urls.md` in full.\n2. Probe the required server (`6006` for `web`, `6007` for `packages\u002Fui`) and reuse it only when its `index.json` is healthy.\n3. If a server is absent, start the matching `bun run storybook` from its package, redirect logs into `WORKDIR`, and immediately record its PID as `WORKDIR\u002Fweb-storybook.pid` or `WORKDIR\u002Fui-storybook.pid`.\n4. Poll the health endpoint until it returns `200` or the owned process exits; on exit, fail with its log.\n\n*Done when:* every required Storybook is healthy and each server started by this run has exactly one PID file; pre-existing servers have none.\n\n**Step 3: Resolve Story IDs**\n\n1. Skip this step for arbitrary non-Storybook URLs.\n2. From `WORKDIR`, run the materialized read-only helper:\n   `bun run \"$WORKDIR\u002Flist-stories.mjs\" http:\u002F\u002Flocalhost:6006 [--filter \u003Csubstring>]`\n3. Confirm every requested story id appears exactly in the output; never infer an id from the app URL.\n\n*Done when:* every Storybook target is backed by a real `index.json` entry.\n\n**Step 4: Capture Through CDP**\n\n1. From `WORKDIR`, run the materialized mutating helper:\n   `bun run \"$WORKDIR\u002Fcap.mjs\" --out \u003Coutput-dir> --width \u003CW> --height \u003CH> --wait \u003Cms> --shot \u003Cname> \u003Curl> [...]`\n2. Use `1440 × 900` for routes, `1680 × 1050` for wide breakpoints, `1100 × 700` for primitives, and `320 × 800` for collapsed navigation. Read `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fcdp-flow.md` in full before changing capture mechanics or defaults.\n3. Use `2200 ms` as the current route settle floor; increase to `4000 ms` only when captured evidence shows fallback fonts.\n4. Treat a non-zero helper exit as a failed capture set. A sub-20 KB PNG is also suspicious and requires inspection even when capture succeeded.\n\n*Done when:* every requested target prints `saved`, the helper exits zero, and every expected PNG exists with a plausible size.\n\n**Step 5: Capture a Proposal Mock When Requested**\n\n1. Only for proposal-side state not reachable from the canonical HTML, read `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fproposal-mock-capture.md` in full and follow its clone-and-patch branch.\n2. Start the static server as an owned process and record its PID in `WORKDIR\u002Fproposal-server.pid`.\n3. Capture with the same `WORKDIR\u002Fcap.mjs`, then remove the throwaway wrapper without editing the canonical proposal.\n\n*Done when:* every requested proposal state is captured, the canonical HTML is unchanged, and the temporary wrapper is gone.\n\n**Step 6: Inspect the Evidence**\n\n1. Verify the exact expected PNG set; file size is a tripwire, not proof.\n2. Open at least one PNG from every distinct surface or viewport and compare it with the intended state or trusted baseline.\n3. For visual-contract runs, inspect every reference\u002Fimplementation pair and require the complete evidence bundle before reporting parity.\n\n*Done when:* target identity, viewport, rendered content, fonts, and visible state are verified rather than inferred from filenames; visual-contract runs additionally have no unresolved blocking divergence.\n\n**Step 7: Tear Down Owned Processes**\n\n1. Terminate only PIDs recorded under this run's `WORKDIR`: request graceful termination, wait for exit, and escalate only the same proven-owned process when necessary.\n2. Preserve healthy servers that predated this run.\n3. Confirm every owned PID is dead before completion; files may remain for evidence.\n\n*Done when:* all processes started by this run are stopped and no unowned browser or dev server was touched.\n\n## Error Handling\n\n- **A capture exits non-zero:** read stderr and `.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Ftroubleshooting.md`; fix the failing target and recapture affected targets. Repeat the set only if shared capture inputs changed; retain valid captures for unchanged inputs.\n- **A Storybook port is occupied but unhealthy:** identify the owner and report it. Reuse only a healthy `index.json`; never kill an unowned process to claim the port.\n- **The bootstrap workdir fails:** discard that unique temporary workdir and rerun the bootstrap into a new one; do not mutate repository dependencies.\n- **Chrome survives a crashed helper:** use the printed debug port to identify the exact headless Chrome PID, verify ownership from its command line, then terminate only that PID\u002Fprocess group. Never use a machine-wide `pkill`.\n- **Reference and implementation dimensions differ:** recapture both at the exact contract viewport; never resize one image to manufacture a diff.\n",{"name":5,"description":7},"main","65613632bb94072e27fc5015d17387e28a870111",".agents\u002Fskills\u002Feng\u002Feng-ui-screenshot",188,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy","https:\u002F\u002Fcompozy.com","https:\u002F\u002Fgithub.com\u002Fcompozy","An OS for AI agents","2026-11-12 03:19:09",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add compozy\u002Fcompozy --skill eng-ui-screenshot",{"tool":73,"command":74},"bunx","bunx skills add compozy\u002Fcompozy --skill eng-ui-screenshot",{"tool":76,"command":77},"pnpm","pnpm dlx skills add compozy\u002Fcompozy --skill eng-ui-screenshot","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002FSKILL.md",true,[81,87,91,95,99,103,109,113,117,121],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fcdp-flow.md","REFERENCE","参考文档",4697,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fcdp-flow.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fproposal-mock-capture.md",2524,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fproposal-mock-capture.md",{"path":92,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fstorybook-urls.md",3488,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fstorybook-urls.md",{"path":96,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Ftroubleshooting.md",3556,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Ftroubleshooting.md",{"path":100,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fvisual-contract.md",8977,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Freferences\u002Fvisual-contract.md",{"path":104,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Fcap.mjs","SCRIPT","脚本",3337,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Fscripts\u002Fcap.mjs",{"path":110,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Flist-stories.mjs",1776,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Fscripts\u002Flist-stories.mjs",{"path":114,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":115,"sourceHtmlUrl":116},"scripts\u002Fsetup-workdir.sh",1287,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Fscripts\u002Fsetup-workdir.sh",{"path":118,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":119,"sourceHtmlUrl":120},"scripts\u002Fvalidate-visual-contract.mjs",5523,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Fscripts\u002Fvalidate-visual-contract.mjs",{"path":122,"resourceType":105,"resourceTypeDesc":106,"sizeBytes":123,"sourceHtmlUrl":124},"scripts\u002Fvisual-diff.mjs",3804,"https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Feng\u002Feng-ui-screenshot\u002Fscripts\u002Fvisual-diff.mjs",[126,158,180,203,214,226],{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":130,"licenseFileUrl":131,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":53},"01M6MD7W312X49RNEJRKKVKTTD","security-review","Security code review for vulnerabilities. Use when asked to \"security review\", \"find vulnerabilities\", \"check for security issues\", \"audit security\", \"OWASP review\", or review code for injection, XSS, authentication, authorization, cryptography issues. Provides systematic review with confidence-based reporting.","CC-BY-SA-4.0","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-review\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-review\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",[138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,37,48,155,156,157],"security","security review","review","injection","authentication","code review","issues","Bash","code","xss","audit","systematic","read","reporting","cryptography","owasp","systematic review","task","when","audit security",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":167,"publishedAt":53},"01M6MD5K93G1GP8VA56V2FEPZV","lesson-learned","Extract evidence-backed engineering lessons from recent changes or incidents. Use for requested reflection, lesson updates, or retiring an obsolete workflow rule.","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Flesson-learned\u002FSKILL.md",[164],{"categoryNo":165,"categoryName":166,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000039","教师与教育",[168,169,170,37,171,47,172,173,174,175,176,177,48,178,179],"learned","lesson learned","lesson","changes","incidents","workflow","engineering","updates","extract","rule","lessons","reflection",{"skillNo":181,"name":9,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":185,"publishedAt":53},"01M6MDPNH3J60VRCGTPHVTHZR8","Operate CompozyOS. Use when working with CompozyOS sessions, agents, native tools, skills, tasks, Loops, Goals, Terminal, desktops and windows, automation, extensions, or configuration. Don't use for unrelated projects.","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fskills\u002Fcompozy\u002FSKILL.md",[],[9,186,187,188,189,37,190,191,48,192,193,194,195,196,197,198,199,200,201,202,156],"sessions","windows","projects","operate","runtime","true","automation","tasks","extensions","with","loops","unrelated","goals","native","terminal","configuration","Tools",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":207,"categories":208,"keywords":209,"publishedAt":53},"01M6MDPHKNPQHJ1TF21E1HSFNF","remotion-upgrade","Upgrade Remotion, and related packages","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fpackages\u002Flaunch-video\u002F.agents\u002Fskills\u002Fremotion-upgrade\u002FSKILL.md",[],[210,211,212,213],"remotion upgrade","upgrade","Remotion","packages",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":220,"publishedAt":53},"01M6MDPFT91ZWC7Z09MRNZPAJG","remotion-studio","Preview a Remotion video","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fpackages\u002Flaunch-video\u002F.agents\u002Fskills\u002Fremotion-studio\u002FSKILL.md",[],[221,222,212,223,224,225],"studio","remotion studio","Video","preview","remotion video",{"skillNo":227,"name":228,"nameZh":6,"description":229,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":230,"categories":231,"keywords":232,"publishedAt":53},"01M6MDPD5XDZPYB5NAZGKMPXWC","remotion-saas","Build an app with Remotion","https:\u002F\u002Fgithub.com\u002Fcompozy\u002Fcompozy\u002Fblob\u002Fmain\u002Fpackages\u002Flaunch-video\u002F.agents\u002Fskills\u002Fremotion-saas\u002FSKILL.md",[],[233,234,212,195,235,236],"saas","remotion saas","app","build"]