[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PEVYCGCKCN7GTY577KPS53":3,"skill-same:01M6PEVYCGCKCN7GTY577KPS53":53},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M6PEVYCGCKCN7GTY577KPS53","visual-verdict",null,"Visual diff\u002Fscreenshot comparison verdict","r3dlex\u002Foh-my-githubcopilot","r3dlex","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F291373160?v=4","01M6PEFNGGBVB7SHAPWXFFX933","01M6PEFNMNKPP8K3C881MDS722",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-verdict\u002FSKILL.md",[],[18,19,20,21,22,23,24,25],"visual","verdict","visual verdict","screenshot","diff","omp","false","comparison","2026-11-10 10:12:30",false,"---\nname: visual-verdict\ndescription: Visual diff\u002Fscreenshot comparison verdict\ntrigger: \"visual-verdict:, \u002Fvisual-verdict, \u002Fomp:visual-verdict\"\nautoinvoke: false\n---\n# Skill: Visual Verdict\n\n## Metadata\n\n| Field | Value |\n|-------|-------|\n| **ID** | `visual-verdict` |\n| **Keywords** | `visual-verdict:`, `\u002Fvisual-verdict` |\n| **Tier** | QA Tool |\n| **Source** | `src\u002Fskills\u002Fvisual-verdict.mts` |\n\n## Description\n\nCompares visual diffs or screenshots to render a pass\u002Ffail verdict. Accepts before\u002Fafter image paths or URLs, runs a pixel-level diff, and produces a structured verdict with diff percentage, bounding boxes of changed regions, and a human-readable summary.\n\n## Interface\n\n```typescript\ninterface SkillInput { trigger: string; args: string[]; }\ninterface SkillOutput { status: \"ok\" | \"error\"; message: string; }\nexport async function activate(input: SkillInput): Promise\u003CSkillOutput>\nexport function deactivate(): void\n```\n\n## Implementation\n\nExtension-only skill. Triggers visual diff comparison in Copilot. The CLI prints guidance directing users to the Copilot CLI slash command.\n\n> **P3 scope:** Integration with Playwright screenshot capture and CI diff reporting (as specified in SPEC-omp-2.0 §5) are deferred to P3. The current implementation accepts user-supplied image paths only.\n","# Skill: Visual Verdict\n\n## Metadata\n\n| Field | Value |\n|-------|-------|\n| **ID** | `visual-verdict` |\n| **Keywords** | `visual-verdict:`, `\u002Fvisual-verdict` |\n| **Tier** | QA Tool |\n| **Source** | `src\u002Fskills\u002Fvisual-verdict.mts` |\n\n## Description\n\nCompares visual diffs or screenshots to render a pass\u002Ffail verdict. Accepts before\u002Fafter image paths or URLs, runs a pixel-level diff, and produces a structured verdict with diff percentage, bounding boxes of changed regions, and a human-readable summary.\n\n## Interface\n\n```typescript\ninterface SkillInput { trigger: string; args: string[]; }\ninterface SkillOutput { status: \"ok\" | \"error\"; message: string; }\nexport async function activate(input: SkillInput): Promise\u003CSkillOutput>\nexport function deactivate(): void\n```\n\n## Implementation\n\nExtension-only skill. Triggers visual diff comparison in Copilot. The CLI prints guidance directing users to the Copilot CLI slash command.\n\n> **P3 scope:** Integration with Playwright screenshot capture and CI diff reporting (as specified in SPEC-omp-2.0 §5) are deferred to P3. The current implementation accepts user-supplied image paths only.\n",{"name":5,"trigger":31,"autoinvoke":27,"description":7},"visual-verdict:, \u002Fvisual-verdict, \u002Fomp:visual-verdict","main","55294682936bc69473eba70e93ffa88ede018e81","skills\u002Fvisual-verdict",0,"https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot","https:\u002F\u002Fgithub.com\u002Fr3dlex","2026-10-31 18:57:35",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add r3dlex\u002Foh-my-githubcopilot --skill visual-verdict",{"tool":45,"command":46},"bunx","bunx skills add r3dlex\u002Foh-my-githubcopilot --skill visual-verdict",{"tool":48,"command":49},"pnpm","pnpm dlx skills add r3dlex\u002Foh-my-githubcopilot --skill visual-verdict","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-verdict\u002FSKILL.md",true,[],[54,60,66,72,78,86],{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":26},"01M6PF2CTFS0AEXQXF2NFYT8J2","wiki","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fwiki\u002FSKILL.md",[],[56],{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":26},"01M6PF2BFXJ97M6NKH7N42XZVZ","ultrawork","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fultrawork\u002FSKILL.md",[],[62],{"skillNo":67,"name":68,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":26},"01M6PF2A38Y1CE5BVJ5HMTMBP6","trace","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Ftrace\u002FSKILL.md",[],[68],{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":26},"01M6PF28P7S19AK5XJA41WS9V8","team","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fteam\u002FSKILL.md",[],[74],{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":26},"01M6PF278EADT8W3EWDYA3C2H0","swe-bench","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fswe-bench\u002FSKILL.md",[],[84,85],"SWE","swe bench",{"skillNo":87,"name":88,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":26},"01M6PF25XW1TMP5Z1N89ZVJQDY","swarm","https:\u002F\u002Fgithub.com\u002Fr3dlex\u002Foh-my-githubcopilot\u002Fblob\u002Fmain\u002Fvscode-omp\u002Fresources\u002Ftemplates\u002F.copilot\u002Fskills\u002Fswarm\u002FSKILL.md",[],[88]]