[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DDG1DP3ZPJQNFGDBKV06CG":3,"skill-same:01M6DDG1DP3ZPJQNFGDBKV06CG":120},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":14,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M6DDG1DP3ZPJQNFGDBKV06CG","ui-audit",null,"Drive a running web or Electron app and emit a deterministic UI\u002FUX + functional audit — accessibility, contrast, spacing, tap targets, dead buttons, affordance\u002Ffocus-visible, motion duration, visual regression, plus the extended gates (Lighthouse perf\u002FCWV, dual-theme + reflow capture, APCA advisory, a 2nd a11y engine, real-NVDA, Design2Code mirror fidelity, Storybook a11y) (Track-A) — then a structured design-quality VERDICT (Track-B) where Claude reasons over the pre-computed numbers + the screenshot on the DESIGN-EVAL v1 rubric — nine dimensions each scored 0-4, a critical-error override that forces a zero and caps the verdict, a weighted composite (color-contrast highest), a one-dimension-per-call reliability protocol, and an optional cross-vendor Codex critic (5th persona) reconciled into a conservative consensus — against Refactoring-UI\u002FMaterial\u002FHIG\u002FNielsen\u002FWCAG. READ-ONLY (drives and inspects; never edits app source). Emits terminal-state typed findings plus a typed critique schema with a computed weighted composite. Optional UIClip numeric prior (opt-in, RAM-guarded).","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Fplatform\u002Frouting\u002Ffixtures\u002Fhome\u002F.claude\u002Fskills\u002Fui-audit\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"audit","ui","ui audit","reliability","critical","app","focus","visual regression","dimensions","tap","only","never","design","eval","consensus","regression","persona","critic","critique","ux","2026-11-10 10:12:30",false,"---\nname: ui-audit\ndescription: Drive a running web or Electron app and emit a deterministic UI\u002FUX + functional audit — accessibility, contrast, spacing, tap targets, dead buttons, affordance\u002Ffocus-visible, motion duration, visual regression, plus the extended gates (Lighthouse perf\u002FCWV, dual-theme + reflow capture, APCA advisory, a 2nd a11y engine, real-NVDA, Design2Code mirror fidelity, Storybook a11y) (Track-A) — then a structured design-quality VERDICT (Track-B) where Claude reasons over the pre-computed numbers + the screenshot on the DESIGN-EVAL v1 rubric — nine dimensions each scored 0-4, a critical-error override that forces a zero and caps the verdict, a weighted composite (color-contrast highest), a one-dimension-per-call reliability protocol, and an optional cross-vendor Codex critic (5th persona) reconciled into a conservative consensus — against Refactoring-UI\u002FMaterial\u002FHIG\u002FNielsen\u002FWCAG. READ-ONLY (drives and inspects; never edits app source). Emits terminal-state typed findings plus a typed critique schema with a computed weighted composite. Optional UIClip numeric prior (opt-in, RAM-guarded).\ncontext: fork\nagent: general-purpose\nmetadata:\n  origin: user\n---\n\n# ui-audit Skill\n\nDrives a live web or Electron app and runs five deterministic audit gates. Produces a structured findings JSON that Claude (as orchestrator) then reasons over for design critique (Track-B).\n\n**Skill location:** `~\u002F.claude\u002Fskills\u002Fui-audit\u002F`\n\n---\n\n## When to use\n\n- Auditing your own running apps: **Reframe** (Electron+React), **momentstudio** (web), **bilbo-web** (web).\n- Spotting WCAG contrast failures, off-scale spacing, dead buttons, and tap-target violations before a PR.\n- Establishing a visual baseline and detecting regressions between builds.\n- This is the \"See\" step before Claude provides the \"Reason\" (Track-B design critique).\n\n---\n\n## Install once\n\n```powershell\ncd ~\u002F.claude\u002Fskills\u002Fui-audit\nnpm install\nnpx playwright install chromium\n```\n\nOptional (if pixelmatch\u002Fpngjs are missing):\n```powershell\nnpm install pixelmatch pngjs\n```\n\n---\n\n## Gates — 5 core + the extended lane\n\n**Core gates (5) — shipped + enforcing:**\n\n| Script | Gate | Browser? |\n|--------|------|----------|\n| `capture.mjs` | Evidence bundle: screenshot + computed styles + a11y tree + console\u002Fnetwork + pageErrors | Yes |\n| `layout_lint.mjs` | Deterministic design heuristics (contrast, spacing, tap targets, type scale) | No — pure JSON |\n| `dead_button_crawl.mjs` | Clicks every interactive element (by handle); flags those with zero observable effect | Yes |\n| `axe_scan.mjs` | WCAG violations via `@axe-core\u002Fplaywright` | Yes |\n| `visual_diff.mjs` | Baseline screenshot compare via pixelmatch; flags regressions | No — pure PNG |\n\n### Invocation per gate\n### 1. Capture evidence bundle\n### 2. Layout lint (no browser — runs on captured bundles)\n### Single bundle:\n### All bundles in a directory:\n### 3. Dead button crawl\n### 4. axe accessibility scan\n### 5. Visual diff (baseline compare)\n### After capture.mjs has written PNGs:\n### 6. Extended Track-A gates (SHADOW — separate-apply engines)\n","# ui-audit Skill\n\nDrives a live web or Electron app and runs five deterministic audit gates. Produces a structured findings JSON that Claude (as orchestrator) then reasons over for design critique (Track-B).\n\n**Skill location:** `~\u002F.claude\u002Fskills\u002Fui-audit\u002F`\n\n---\n\n## When to use\n\n- Auditing your own running apps: **Reframe** (Electron+React), **momentstudio** (web), **bilbo-web** (web).\n- Spotting WCAG contrast failures, off-scale spacing, dead buttons, and tap-target violations before a PR.\n- Establishing a visual baseline and detecting regressions between builds.\n- This is the \"See\" step before Claude provides the \"Reason\" (Track-B design critique).\n\n---\n\n## Install once\n\n```powershell\ncd ~\u002F.claude\u002Fskills\u002Fui-audit\nnpm install\nnpx playwright install chromium\n```\n\nOptional (if pixelmatch\u002Fpngjs are missing):\n```powershell\nnpm install pixelmatch pngjs\n```\n\n---\n\n## Gates — 5 core + the extended lane\n\n**Core gates (5) — shipped + enforcing:**\n\n| Script | Gate | Browser? |\n|--------|------|----------|\n| `capture.mjs` | Evidence bundle: screenshot + computed styles + a11y tree + console\u002Fnetwork + pageErrors | Yes |\n| `layout_lint.mjs` | Deterministic design heuristics (contrast, spacing, tap targets, type scale) | No — pure JSON |\n| `dead_button_crawl.mjs` | Clicks every interactive element (by handle); flags those with zero observable effect | Yes |\n| `axe_scan.mjs` | WCAG violations via `@axe-core\u002Fplaywright` | Yes |\n| `visual_diff.mjs` | Baseline screenshot compare via pixelmatch; flags regressions | No — pure PNG |\n\n### Invocation per gate\n### 1. Capture evidence bundle\n### 2. Layout lint (no browser — runs on captured bundles)\n### Single bundle:\n### All bundles in a directory:\n### 3. Dead button crawl\n### 4. axe accessibility scan\n### 5. Visual diff (baseline compare)\n### After capture.mjs has written PNGs:\n### 6. Extended Track-A gates (SHADOW — separate-apply engines)\n",{"name":5,"agent":54,"context":55,"metadata":56,"description":7},"general-purpose","fork",{"origin":57},"user","main","a298c929b6cbd662e1fce54302ce520d5ceea1a5","platform\u002Frouting\u002Ffixtures\u002Fhome\u002F.claude\u002Fskills\u002Fui-audit","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill ui-audit",{"tool":70,"command":71},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill ui-audit",{"tool":73,"command":74},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill ui-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Fplatform\u002Frouting\u002Ffixtures\u002Fhome\u002F.claude\u002Fskills\u002Fui-audit\u002FSKILL.md",true,[78,84,90,94,98,102,108,112,116],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"LICENSE.txt","LICENSE","许可证",11357,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002FLICENSE.txt",{"path":85,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":88,"sourceHtmlUrl":89},"reference\u002Fevaluation.md","REFERENCE","参考文档",21663,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Freference\u002Fevaluation.md",{"path":91,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":92,"sourceHtmlUrl":93},"reference\u002Fmcp_best_practices.md",7330,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Freference\u002Fmcp_best_practices.md",{"path":95,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":96,"sourceHtmlUrl":97},"reference\u002Fnode_mcp_server.md",28550,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Freference\u002Fnode_mcp_server.md",{"path":99,"resourceType":86,"resourceTypeDesc":87,"sizeBytes":100,"sourceHtmlUrl":101},"reference\u002Fpython_mcp_server.md",25099,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Freference\u002Fpython_mcp_server.md",{"path":103,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Fconnections.py","SCRIPT","脚本",4875,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Fscripts\u002Fconnections.py",{"path":109,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Fevaluation.py",12579,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Fscripts\u002Fevaluation.py",{"path":113,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Fexample_evaluation.xml",1194,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Fscripts\u002Fexample_evaluation.xml",{"path":117,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":118,"sourceHtmlUrl":119},"scripts\u002Frequirements.txt",29,"https:\u002F\u002Fgithub.com\u002Fcalvinw\u002Fskills-authoring\u002Fblob\u002Fmain\u002F.skillshare\u002Fskills\u002Fmcp-builder\u002Fscripts\u002Frequirements.txt",[121,143,172,198,212,227],{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":49},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","use","context","repo","injection","execution","file",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":152,"publishedAt":49},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[149],{"categoryNo":150,"categoryName":151,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[153,154,155,156,157,158,159,160,161,162,163,164,165,166,137,167,168,169,170,171],"openmm md","how","decision","pick","linux","analyze","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":184,"publishedAt":49},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[178,181],{"categoryNo":179,"categoryName":180,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":182,"categoryName":183,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[185,186,187,188,189,190,191,192,193,194,154,30,195,196,197],"review","visual","visual review","pages","web","false","iteration","take","check","slides","screenshot","playwright","screenshots",{"skillNo":199,"name":200,"nameZh":6,"description":201,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":202,"categories":203,"keywords":204,"publishedAt":49},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[200,205,206,207,208,209,210,211],"setup","report","project","installation","project setup","issues","state",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":219,"publishedAt":49},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[218],{"categoryNo":150,"categoryName":151,"taxonomyType":21,"taxonomyTypeDesc":22},[214,220,133,221,222,223,137,57,224,225,226],"start issue","issue","ready","work on issue","work","work on","development",{"skillNo":228,"name":205,"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":49},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[205,207,169,233,209,234],"files","interactive"]