[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-SawyerHood-dev-browser-zh-CN":3,"guides-for-SawyerHood-dev-browser":378,"similar-k17497mez0dgwcmcmmh6dvw05s86ne9k-zh-CN":379},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":243,"isFallback":239,"parentExtension":247,"providers":300,"relations":304,"repo":306,"tags":375,"workflow":376},1778696994282.5017,"k17497mez0dgwcmcmmh6dvw05s86ne9k",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"使用持久化页面状态进行浏览器自动化。当用户要求导航网站、填写表单、截屏、提取网页数据、测试 Web 应用或自动化浏览器工作流时使用。触发短语包括“转到 [url]”、“点击”、“填写表单”、“截屏”、“抓取”、“自动化”、“测试网站”、“登录”或任何浏览器交互请求。",{"claudeCode":12},"SawyerHood/dev-browser","dev-browser","https://github.com/SawyerHood/dev-browser",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":222,"workflow":241},1778696994282.502,"kn7f1bjjfgq8hpnkzz5wcejph586nza9","zh-CN",{"checks":20,"evaluatedAt":190,"extensionSummary":191,"features":192,"nonGoals":198,"promptVersionExtension":203,"promptVersionScoring":204,"purpose":205,"rationale":206,"score":207,"summary":208,"tags":209,"tier":215,"useCases":216},[21,26,29,32,36,39,43,47,50,53,57,61,64,68,71,74,77,80,83,86,90,94,98,102,106,109,112,116,120,123,126,129,132,135,138,142,146,150,153,157,158,161,164,167,171,174,177,180,183,187],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","描述清楚地说明了浏览器自动化的难题，并列举了具体的用例，如导航网站、填写表单和截屏。",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","该扩展通过提供沙盒化的 JavaScript 环境进行浏览器控制、完整的 Playwright API 访问和持久化的页面状态，在简单的提示之外提供了显著的价值。",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","该工具已为生产工作流做好准备，提供安装、使用示例，并涵盖浏览器自动化任务的完整生命周期。",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","该扩展仅专注于浏览器自动化和沙盒内的脚本执行，不涉及无关领域。",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","显示的描述准确地反映了该扩展作为具有持久化页面状态和各种交互方法的浏览器自动化工具的功能。",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","该扩展主要使用 JavaScript 脚本中暴露的 Playwright API，这些 API 本身是作用域受限的，并且不公开单一的通用命令。",{"category":44,"check":45,"severity":24,"summary":46},"Documentation","Configuration & parameter reference","README 和脚本 API 文档详细介绍了可用的命令、参数以及 `browser` 和 `page` 等全局对象。",{"category":33,"check":48,"severity":24,"summary":49},"Tool naming","工具通过沙盒环境内的 JavaScript API 调用进行访问，这些调用具有描述性并遵循标准的编程约定。",{"category":33,"check":51,"severity":24,"summary":52},"Minimal I/O surface","在沙盒内使用的 Playwright API 是定义明确的，并且脚本的输入/输出通过标准的 JavaScript 控制台和返回值进行管理。",{"category":54,"check":55,"severity":24,"summary":56},"License","License usability","该扩展根据 MIT 许可证授权，这是一种宽松的开源许可证，已在 LICENSE 文件中明确声明并在 README 中提及。",{"category":58,"check":59,"severity":24,"summary":60},"Maintenance","Commit recency","最后一次提交是在 2026 年 4 月 9 日，在最近 3 个月内，表明维护活跃。",{"category":58,"check":62,"severity":24,"summary":63},"Dependency Management","该项目使用 npm 和 Playwright，并且存在锁定文件和 CLI 安装脚本，这表明依赖关系管理得当。",{"category":65,"check":66,"severity":24,"summary":67},"Security","Secret Management","该扩展在 QuickJS 沙盒环境中运行脚本，该环境没有主机文件系统或网络访问权限，可防止泄露密钥。它不处理或回显密钥。",{"category":65,"check":69,"severity":24,"summary":70},"Injection","沙盒化的 QuickJS 环境和显式的 API 调用可防止执行来自外部数据的不可信指令。",{"category":65,"check":72,"severity":24,"summary":73},"Transitive Supply-Chain Grenades","脚本在沙盒中运行，并且在运行时不获取外部内容。所有必需的组件似乎都已打包。",{"category":65,"check":75,"severity":24,"summary":76},"Sandbox Isolation","QuickJS WASM 沙盒明确阻止主机文件系统或网络访问，从而确保隔离。",{"category":65,"check":78,"severity":24,"summary":79},"Sandbox escape primitives","沙盒环境旨在防止在被拒绝的调用周围出现分离的进程或重试循环。",{"category":65,"check":81,"severity":24,"summary":82},"Data Exfiltration","沙盒阻止任何出站网络调用，从而消除了数据泄露的风险。",{"category":65,"check":84,"severity":24,"summary":85},"Hidden Text Tricks","打包的内容和描述似乎没有隐藏的操纵技巧，使用了标准的文本和标记。",{"category":87,"check":88,"severity":24,"summary":89},"Hooks","Opaque code execution","脚本是用 JavaScript 编写并在 QuickJS 运行时中执行的；没有证据表明存在混淆、base64 负载或运行时脚本获取。",{"category":91,"check":92,"severity":24,"summary":93},"Portability","Structural Assumption","该工具在其自己的沙盒中运行，并且不假设用户项目的文件结构。",{"category":95,"check":96,"severity":24,"summary":97},"Trust","Issues Attention","在过去 90 天内，打开了 3 个问题，关闭了 21 个问题，这表明关闭率良好且维护者参与活跃。",{"category":99,"check":100,"severity":24,"summary":101},"Versioning","Release Management","该项目有 CHANGELOG.md 和最近的提交，尽管在 frontmatter 或发布中没有明确的版本号，但安装说明通过 npm 引用了特定版本。",{"category":103,"check":104,"severity":24,"summary":105},"Code Execution","Validation","沙盒内的 Playwright API 使用类型化输入和验证，并且脚本在受控环境中执行。",{"category":65,"check":107,"severity":24,"summary":108},"Unguarded Destructive Operations","沙盒阻止直接修改文件系统或网络，并且任何浏览器交互都由脚本的意图控制。",{"category":103,"check":110,"severity":24,"summary":111},"Error Handling","沙盒 JavaScript 环境中的错误由标准的 JavaScript 错误机制处理，并路由到 stderr。",{"category":103,"check":113,"severity":114,"summary":115},"Logging","not_applicable","该扩展主要是一个 CLI 工具，其主要输出通过 stdout/stderr，而不是持久化的本地审计文件。",{"category":117,"check":118,"severity":24,"summary":119},"Compliance","GDPR","沙盒阻止访问本地文件或网络，因此它不处理或提交个人数据。",{"category":117,"check":121,"severity":24,"summary":122},"Target market","该扩展是一个通用的浏览器自动化工具，没有地域或管辖权限制。",{"category":91,"check":124,"severity":24,"summary":125},"Runtime stability","该工具旨在跨平台运行，并依赖标准的 Node.js/npm 安装和 Playwright，并为 Windows 提供了清晰的安装说明。",{"category":44,"check":127,"severity":24,"summary":128},"README","README 文件内容全面，详细说明了安装、用法、API，并提供了清晰的示例。",{"category":33,"check":130,"severity":24,"summary":131},"Tool surface size","该扩展通过单个 CLI 命令和 JavaScript 脚本公开其功能，而不是大量不同的工具。",{"category":40,"check":133,"severity":24,"summary":134},"Overlapping near-synonym tools","功能通过脚本内的 Playwright API 调用进行访问，这些调用是独立且不重叠的。",{"category":44,"check":136,"severity":24,"summary":137},"Phantom features","所有宣传的功能，如 Playwright API 访问和沙盒执行，都已实现并记录在案。",{"category":139,"check":140,"severity":24,"summary":141},"Install","Installation instruction","README 中为 npm 和 Windows 提供了清晰的安装说明，并附有可复制代码的调用示例。",{"category":143,"check":144,"severity":24,"summary":145},"Errors","Actionable error messages","来自沙盒和 Playwright 的错误会路由到 stderr 并提供上下文，并且适用标准的 JavaScript 错误处理。",{"category":147,"check":148,"severity":24,"summary":149},"Execution","Pinned dependencies","该项目使用 npm 并有一个锁定文件 (`package-lock.json`)，表明依赖项已固定。脚本应具有 shebang。",{"category":33,"check":151,"severity":114,"summary":152},"Dry-run preview","该工具主要与浏览器交互，没有传统的用于文件写入或基础架构更改的“试运行”模式。",{"category":154,"check":155,"severity":114,"summary":156},"Protocol","Idempotent retry & timeouts","该扩展在沙盒内本地运行，不涉及需要幂等性或显式超时的远程调用或状态更改操作，超出标准的 JavaScript 执行。",{"category":117,"check":118,"severity":24,"summary":119},{"category":40,"check":159,"severity":24,"summary":160},"Precise Purpose","描述清楚地定义了扩展的目的（浏览器自动化）及其用例（导航、填写表单等），以及触发短语。",{"category":40,"check":162,"severity":24,"summary":163},"Concise Frontmatter","SKILL.md 中的 frontmatter 简洁明了，提供了清晰的摘要和触发短语，没有过多的行话或关键词堆砌。",{"category":44,"check":165,"severity":24,"summary":166},"Concise Body","SKILL.md 和 README 相对简洁，README 提供了 API 详细信息和示例。",{"category":168,"check":169,"severity":24,"summary":170},"Context","Progressive Disclosure","该扩展的文档结构良好，README 提供了 API 详细信息，可用于渐进式披露。",{"category":168,"check":172,"severity":114,"summary":173},"Forked exploration","该工具用于直接浏览器交互，而不是需要分叉上下文的深度代码审查或探索。",{"category":22,"check":175,"severity":24,"summary":176},"Usage examples","README 提供了无头模式和连接模式的清晰、可直接使用的示例，演示了基本和高级交互。",{"category":22,"check":178,"severity":24,"summary":179},"Edge cases","文档涵盖了 API 用法和沙盒限制，标准的 JavaScript 错误处理将处理大多数边缘情况。",{"category":103,"check":181,"severity":114,"summary":182},"Tool Fallback","该扩展不依赖外部 MCP 服务器或工具；它通过 Playwright 打包了自己的浏览器控制逻辑。",{"category":184,"check":185,"severity":24,"summary":186},"Safety","Halt on unexpected state","沙盒化的 JavaScript 环境会在意外状态或错误时自然停止，并且适用标准的 JavaScript 错误处理。",{"category":91,"check":188,"severity":24,"summary":189},"Cross-skill coupling","该扩展是独立的，不隐式依赖其他技能；其功能是独立的。",1778696938043,"此 CLI 工具允许 AI 代理和开发人员使用沙盒化的 JavaScript 脚本控制浏览器，利用 Playwright API 来执行导航、表单填充、截屏和数据提取等任务。它具有持久化的页面状态，并且可以连接到正在运行的 Chrome 实例或启动新的 Chromium 浏览器。",[193,194,195,196,197],"沙盒 JavaScript 执行","持久化的浏览器页面状态","完整的 Playwright API 集成","无头和连接的浏览器模式","截屏和数据提取",[199,200,201,202],"直接访问主机文件系统","浏览器自动化之外的直接网络访问","运行任意 shell 命令","充当浏览器控制之外的通用 JavaScript 运行时","3.0.0","4.4.0","为 AI 代理和开发人员提供安全、强大的浏览器自动化环境，通过沙盒化的 JavaScript 实现复杂的 Web 交互和测试。","出色的文档和安全态势，提供全面的示例和清晰的用法。版本可见性方面有细微 ملاحظة (note)，但由 npm 良好管理。",99,"一个高度优化且安全的浏览器自动化工具，适用于 AI 代理。",[210,211,212,213,214],"browser-automation","playwright","javascript","testing","web-scraping","verified",[217,218,219,220,221],"自动化浏览器工作流","填写 Web 表单","截取网站屏幕截图","从网页中提取数据","测试 Web 应用程序",{"codeQuality":223,"collectedAt":225,"documentation":226,"maintenance":229,"popularity":235,"security":237,"testCoverage":240},{"hasLockfile":224},true,1778696923176,{"descriptionLength":227,"readmeSize":228},364,5844,{"closedIssues90d":230,"forks":231,"hasChangelog":224,"openIssues90d":232,"pushedAt":233,"stars":234},21,390,3,1775769524000,6092,{"npmDownloads":236},11418,{"hasNpmPackage":224,"license":238,"smitheryVerified":239},"MIT",false,{"hasCi":224,"hasTests":224},{"updatedAt":242},1778696994282,{"basePath":244,"githubOwner":245,"githubRepo":13,"locale":18,"slug":13,"type":246},"skills/dev-browser","SawyerHood","skill",{"_creationTime":248,"_id":249,"community":250,"display":251,"identity":254,"parentExtension":258,"providers":288,"relations":295,"tags":296,"workflow":297},1778696896101.438,"k172vf4sjqdwht2n7b64bmf7wn86mzzp",{"reviewCount":8},{"description":252,"installMethods":253,"name":13,"sourceUrl":14},"Browser automation skill with persistent page state for developers and AI agents",{"claudeCode":13},{"basePath":255,"githubOwner":245,"githubRepo":13,"locale":256,"slug":13,"type":257},"","en","plugin",{"_creationTime":259,"_id":260,"community":261,"display":262,"identity":266,"providers":268,"relations":281,"tags":283,"workflow":284},1778696896101.4377,"k17c9wx6b28kd427pnqy7v8z5h86mcpj",{"reviewCount":8},{"description":263,"installMethods":264,"name":265,"sourceUrl":14},"Marketplace for the dev-browser skill",{"claudeCode":12},"dev-browser-marketplace",{"basePath":255,"githubOwner":245,"githubRepo":13,"locale":256,"slug":13,"type":267},"marketplace",{"evaluate":269,"extract":275},{"promptVersionExtension":270,"promptVersionScoring":204,"score":271,"tags":272,"targetMarket":274,"tier":215},"3.1.0",95,[267,13,273],"curation","global",{"commitSha":276,"marketplace":277,"plugin":279},"HEAD",{"name":265,"pluginCount":278},1,{"mcpCount":8,"provider":280,"skillCount":8},"classify",{"repoId":282},"kd778ksdnkgy1969578mg8f30986nddw",[273,13,267],{"evaluatedAt":285,"extractAt":286,"updatedAt":287},1778696907941,1778696896101,1778697008806,{"evaluate":289,"extract":293},{"promptVersionExtension":203,"promptVersionScoring":204,"score":290,"tags":291,"targetMarket":274,"tier":215},96,[210,211,212,292,213],"cli",{"commitSha":276,"plugin":294},{"mcpCount":8,"provider":280,"skillCount":278},{"parentExtensionId":260,"repoId":282},[210,292,212,211,213],{"evaluatedAt":298,"extractAt":286,"updatedAt":299},1778696922889,1778697009175,{"evaluate":301,"extract":303},{"promptVersionExtension":203,"promptVersionScoring":204,"score":207,"tags":302,"targetMarket":274,"tier":215},[210,211,212,213,214],{"commitSha":276},{"parentExtensionId":249,"repoId":282,"translatedFrom":305},"k17535f2wgbtzrzc5n55ps9f3586mr7p",{"_creationTime":307,"_id":282,"identity":308,"providers":309,"workflow":370},1778696889350.659,{"githubOwner":245,"githubRepo":13,"sourceUrl":14},{"classify":310,"discover":360,"extract":363,"github":364,"npm":369},{"commitSha":276,"extensions":311},[312,325,334,341,352],{"basePath":255,"description":263,"displayName":265,"installMethods":313,"rationale":314,"selectedPaths":315,"source":324,"sourceLanguage":256,"type":267},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[316,319,321],{"path":317,"priority":318},".claude-plugin/marketplace.json","mandatory",{"path":320,"priority":318},"README.md",{"path":322,"priority":323},"LICENSE","high","rule",{"basePath":255,"description":252,"displayName":13,"installMethods":326,"rationale":327,"selectedPaths":328,"source":324,"sourceLanguage":256,"type":257},{"claudeCode":13},"inline plugin source from marketplace.json at /",[329,330,331],{"path":320,"priority":318},{"path":322,"priority":323},{"path":332,"priority":333},"bin/dev-browser.js","low",{"basePath":244,"description":335,"displayName":13,"installMethods":336,"rationale":337,"selectedPaths":338,"source":324,"sourceLanguage":256,"type":246},"Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include \"go to [url]\", \"click on\", \"fill out the form\", \"take a screenshot\", \"scrape\", \"automate\", \"test the website\", \"log into\", or any browser interaction request.",{"claudeCode":12},"SKILL.md frontmatter at skills/dev-browser/SKILL.md",[339],{"path":340,"priority":318},"SKILL.md",{"basePath":255,"description":342,"displayName":13,"installMethods":343,"license":238,"rationale":344,"selectedPaths":345,"source":324,"sourceLanguage":256,"type":292},"CLI for controlling browsers with sandboxed JavaScript scripts",{"npm":13},"cli ecosystem detected at /",[346,348,349,350],{"path":347,"priority":318},"package.json",{"path":320,"priority":318},{"path":322,"priority":323},{"path":332,"priority":351},"medium",{"basePath":292,"installMethods":353,"rationale":354,"selectedPaths":355,"source":324,"sourceLanguage":256,"type":292},{"cargo":13},"cli ecosystem detected at cli",[356,358],{"path":357,"priority":318},"Cargo.toml",{"path":359,"priority":351},"src/main.rs",{"sources":361},[362],"manual",{"npmPackage":13},{"closedIssues90d":230,"description":365,"forks":231,"license":238,"openIssues90d":232,"pushedAt":233,"readmeSize":228,"stars":234,"topics":366},"A Claude Skill to give your agent the ability to use a web browser",[367,211,368],"claude-code","skills",{"downloads":236},{"classifiedAt":371,"discoverAt":372,"extractAt":373,"githubAt":373,"npmAt":374,"updatedAt":371},1778696895921,1778696889350,1778696891723,1778696894159,[210,212,211,213,214],{"evaluatedAt":377,"extractAt":286,"updatedAt":242},1778696938150,[],[380,408,435,462,489,518],{"_creationTime":381,"_id":382,"community":383,"display":384,"identity":390,"providers":394,"relations":400,"tags":403,"workflow":404},1778697369634.8499,"k17333g8dacqsmw8kk79h77vmx86n0d1",{"reviewCount":8},{"description":385,"installMethods":386,"name":388,"sourceUrl":389},"AI 代理的浏览器自动化 CLI。当用户需要与网站交互时使用，包括浏览页面、填写表单、点击按钮、截屏、提取数据、测试 Web 应用或自动化任何浏览器任务。触发条件包括请求“打开网站”、“填表”、“点击按钮”、“截屏”、“抓取页面数据”、“测试此 Web 应用”、“登录网站”、“自动化浏览器操作”或任何需要以编程方式进行 Web 交互的任务。",{"claudeCode":387},"shanraisshan/claude-code-best-practice","agent-browser","https://github.com/shanraisshan/claude-code-best-practice",{"basePath":391,"githubOwner":392,"githubRepo":393,"locale":18,"slug":388,"type":246},".claude/skills/agent-browser","shanraisshan","claude-code-best-practice",{"evaluate":395,"extract":399},{"promptVersionExtension":203,"promptVersionScoring":204,"score":396,"tags":397,"targetMarket":274,"tier":215},100,[210,214,213,292,398],"automation",{"commitSha":276},{"repoId":401,"translatedFrom":402},"kd74710g49kxgwbfjxeb7s132d86myxr","k17ej9360g7468qswf3svnrx9186m1ng",[398,210,292,213,214],{"evaluatedAt":405,"extractAt":406,"updatedAt":407},1778697222051,1778697205743,1778697369634,{"_creationTime":409,"_id":410,"community":411,"display":412,"identity":418,"providers":422,"relations":428,"tags":431,"workflow":432},1778683460321.381,"k1707rtzme0qezretvp3gmtfvn86n1k1",{"reviewCount":8},{"description":413,"installMethods":414,"name":416,"sourceUrl":417},"Self-improving browser automation via the auto-research loop. Iteratively runs a browsing task, reads the trace, and improves the navigation skill (strategy.md) until it reliably passes. Supports parallel runs across multiple tasks using sub-agents. Use when you want to build or improve browser automation skills for specific website tasks.",{"claudeCode":415},"browserbase/skills","AutoBrowse","https://github.com/browserbase/skills",{"basePath":419,"githubOwner":420,"githubRepo":368,"locale":256,"slug":421,"type":246},"skills/autobrowse","browserbase","autobrowse",{"evaluate":423,"extract":427},{"promptVersionExtension":203,"promptVersionScoring":204,"score":396,"tags":424,"targetMarket":274,"tier":215},[210,214,425,213,426],"llm-agent","node-js",{"commitSha":276,"license":238},{"parentExtensionId":429,"repoId":430},"k17bx77jb71yrwatep2nb43r0d86m6cb","kd77wvcdm5fq9xp8hk6ppm832s86myxr",[210,425,426,213,214],{"evaluatedAt":433,"extractAt":434,"updatedAt":433},1778683610531,1778683460321,{"_creationTime":436,"_id":437,"community":438,"display":439,"identity":445,"providers":449,"relations":456,"tags":458,"workflow":459},1778685991755.7456,"k17djff3pz3wam5kpz7pkg92h586menn",{"reviewCount":8},{"description":440,"installMethods":441,"name":443,"sourceUrl":444},"Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with render_game_to_text.",{"claudeCode":442},"davila7/claude-code-templates","develop-web-game","https://github.com/davila7/claude-code-templates",{"basePath":446,"githubOwner":447,"githubRepo":448,"locale":256,"slug":443,"type":246},"cli-tool/components/skills/creative-design/develop-web-game","davila7","claude-code-templates",{"evaluate":450,"extract":455},{"promptVersionExtension":203,"promptVersionScoring":204,"score":396,"tags":451,"targetMarket":274,"tier":215},[452,453,212,454,211,213,398],"web-development","game-development","html",{"commitSha":276},{"repoId":457},"kd71fzn4s7r0269fkw47wt670n86ndz0",[398,453,454,212,211,213,452],{"evaluatedAt":460,"extractAt":461,"updatedAt":460},1778690648090,1778685991755,{"_creationTime":463,"_id":464,"community":465,"display":466,"identity":472,"providers":476,"relations":483,"tags":485,"workflow":486},1778696993586.7058,"k174ty9vbfgj7cv3v2szdwjgh986mrsf",{"reviewCount":8},{"description":467,"installMethods":468,"name":470,"sourceUrl":471},"Search ChatGPT and extract the full response + hydration JSON that powers the UI.\nAttaches to a running Chrome instance (port 9222 by default), opens ChatGPT,\nsubmits a query, waits for the streamed response, and returns structured data:\nmessages, product cards, hydration JSON, and API calls.\nUse when asked to \"search chatgpt\", \"ask chatgpt\", \"chatgpt search\",\n\"get chatgpt response\", or \"scrape chatgpt\".\n",{"claudeCode":469},"SeifBenayed/claude-code-sdk","chatgpt-search","https://github.com/SeifBenayed/claude-code-sdk",{"basePath":473,"githubOwner":474,"githubRepo":475,"locale":256,"slug":470,"type":246},".claude/skills/chatgpt-search","SeifBenayed","claude-code-sdk",{"evaluate":477,"extract":482},{"promptVersionExtension":203,"promptVersionScoring":204,"score":396,"tags":478,"targetMarket":274,"tier":215},[479,480,210,481,214],"chatgpt","scraping","data-extraction",{"commitSha":276},{"repoId":484},"kd78s53c1852h5p7c3qem663xs86njab",[210,479,481,480,214],{"evaluatedAt":487,"extractAt":488,"updatedAt":487},1778697026743,1778696993586,{"_creationTime":490,"_id":491,"community":492,"display":493,"identity":499,"providers":503,"relations":511,"tags":514,"workflow":515},1778690831986.3767,"k17fjjgdng9c2xwz18cc594g0986n7wy",{"reviewCount":8},{"description":494,"installMethods":495,"name":497,"sourceUrl":498},"Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.",{"claudeCode":496},"hyf0/vue-skills","vue-testing-best-practices","https://github.com/hyf0/vue-skills",{"basePath":500,"githubOwner":501,"githubRepo":502,"locale":256,"slug":497,"type":246},"skills/vue-testing-best-practices","hyf0","vue-skills",{"evaluate":504,"extract":510},{"promptVersionExtension":203,"promptVersionScoring":204,"score":396,"tags":505,"targetMarket":274,"tier":215},[506,213,507,211,508,509],"vue-js","vitest","component-testing","e2e-testing",{"commitSha":276},{"parentExtensionId":512,"repoId":513},"k17fvvpt61wrah7aepwqhgjp4d86n8jx","kd7a1a0bdc2ez150x3razht61n86m6a8",[508,509,211,213,507,506],{"evaluatedAt":516,"extractAt":517,"updatedAt":516},1778691195044,1778690831986,{"_creationTime":519,"_id":520,"community":521,"display":522,"identity":528,"providers":531,"relations":539,"tags":542,"workflow":543},1778685787029.4636,"k17ew9npy1x4jsxypvn9yeq5q586mpb6",{"reviewCount":8},{"description":523,"installMethods":524,"name":526,"sourceUrl":527},"用于编写 Playwright 测试、修复不稳定测试、调试失败、实现页面对象模型 (Page Object Model)、配置 CI/CD、优化性能、模拟 API、处理身份验证或 OAuth、测试可访问性 (axe-core)、文件上传/下载、日期/时间模拟、WebSockets、地理定位、权限、多标签/弹出窗口流程、移动/响应式布局、触摸手势、GraphQL、错误处理、离线模式、多人协作、第三方服务（付款、电子邮件验证）、控制台错误监控、全局设置/拆卸、测试注解（skip, fixme, slow）、测试标签（@smoke, @fast, @critical, 使用 --grep 过滤）、项目依赖项、安全测试（XSS, CSRF, 身份验证）、性能预算（Web Vitals, Lighthouse）、iframe、组件测试、canvas/WebGL、服务工作线程/PWA、测试覆盖率、i18n/本地化、Electron 应用或浏览器扩展测试。涵盖 E2E、组件、API、视觉、可访问性、安全、Electron 和扩展测试。",{"claudeCode":525},"currents-dev/playwright-best-practices-skill","playwright-best-practices","https://github.com/currents-dev/playwright-best-practices-skill",{"basePath":255,"githubOwner":529,"githubRepo":530,"locale":18,"slug":530,"type":246},"currents-dev","playwright-best-practices-skill",{"evaluate":532,"extract":538},{"promptVersionExtension":203,"promptVersionScoring":204,"score":396,"tags":533,"targetMarket":274,"tier":215},[211,213,534,535,398,536,537],"typescript","e2e","debugging","ci-cd",{"commitSha":276},{"repoId":540,"translatedFrom":541},"kd77ayvtb7bpbf2cjy3n64zekd86ndw6","k17axqfsk2shpatbgra08fjtgh86neqd",[398,537,536,535,211,213,534],{"evaluatedAt":544,"extractAt":545,"updatedAt":546},1778685761971,1778685735333,1778685787029]