[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M72BACJRHPKFDP3Z1FVFPKP4":3,"skill-same:01M72BACJRHPKFDP3Z1FVFPKP4":84},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":14,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M72BACJRHPKFDP3Z1FVFPKP4","playwright",null,"Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script.","guhans6\u002Fagent-workbench","guhans6","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F104162539?v=4","01M72B46KNSP1Y4W32NAP9HSCS","Guhan","01M72B46MCE81N1B04M3PWX3P7",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002FSKILL.md",[],[],"2026-11-10 18:39:20",false,"---\nname: \"playwright\"\ndescription: \"Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script.\"\n---\n\n\n# Playwright CLI Skill\n\nDrive a real browser from the terminal using `playwright-cli`. Prefer the bundled wrapper script so the CLI works even when it is not globally installed.\nTreat this skill as CLI-first automation. Do not pivot to `@playwright\u002Ftest` unless the user explicitly asks for test files.\n\n## Prerequisite check (required)\n\nBefore proposing commands, check whether `npx` is available (the wrapper depends on it):\n\n```bash\ncommand -v npx >\u002Fdev\u002Fnull 2>&1\n```\n\nIf it is not available, pause and ask the user to install Node.js\u002Fnpm (which provides `npx`). Provide these steps verbatim:\n\n```bash\n# Verify Node\u002Fnpm are installed\nnode --version\nnpm --version\n\n# If missing, install Node.js\u002Fnpm, then:\nnpm install -g @playwright\u002Fcli@latest\nplaywright-cli --help\n```\n\nOnce `npx` is present, proceed with the wrapper script. A global install of `playwright-cli` is optional.\n\n## Skill path (set once)\n\n```bash\nexport CODEX_HOME=\"${CODEX_HOME:-$HOME\u002F.codex}\"\nexport PWCLI=\"$CODEX_HOME\u002Fskills\u002Fplaywright\u002Fscripts\u002Fplaywright_cli.sh\"\n```\n\nUser-scoped skills install under `$CODEX_HOME\u002Fskills` (default: `~\u002F.codex\u002Fskills`).\n\n## Quick start\n\nUse the wrapper script:\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fplaywright.dev --headed\n\"$PWCLI\" snapshot\n\"$PWCLI\" click e15\n\"$PWCLI\" type \"Playwright\"\n\"$PWCLI\" press Enter\n\"$PWCLI\" screenshot\n```\n\nIf the user prefers a global install, this is also valid:\n\n```bash\nnpm install -g @playwright\u002Fcli@latest\nplaywright-cli --help\n```\n\n## Core workflow\n\n1. Open the page.\n2. Snapshot to get stable element refs.\n3. Interact using refs from the latest snapshot.\n4. Re-snapshot after navigation or significant DOM changes.\n5. Capture artifacts (screenshot, pdf, traces) when useful.\n\nMinimal loop:\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fexample.com\n\"$PWCLI\" snapshot\n\"$PWCLI\" click e3\n\"$PWCLI\" snapshot\n```\n\n## When to snapshot again\n\nSnapshot again after:\n\n- navigation\n- clicking elements that change the UI substantially\n- opening\u002Fclosing modals or menus\n- tab switches\n\nRefs can go stale. When a command fails due to a missing ref, snapshot again.\n\n## Recommended patterns\n\n### Form fill and submit\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fexample.com\u002Fform\n\"$PWCLI\" snapshot\n\"$PWCLI\" fill e1 \"user@example.com\"\n\"$PWCLI\" fill e2 \"password123\"\n\"$PWCLI\" click e3\n\"$PWCLI\" snapshot\n```\n\n### Debug a UI flow with traces\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fexample.com --headed\n\"$PWCLI\" tracing-start\n# ...interactions...\n\"$PWCLI\" tracing-stop\n```\n\n### Multi-tab work\n\n```bash\n\"$PWCLI\" tab-new https:\u002F\u002Fexample.com\n\"$PWCLI\" tab-list\n\"$PWCLI\" tab-select 0\n\"$PWCLI\" snapshot\n```\n\n## Wrapper script\n\nThe wrapper script uses `npx --package @playwright\u002Fcli playwright-cli` so the CLI can run without a global install:\n\n```bash\n\"$PWCLI\" --help\n```\n\nPrefer the wrapper unless the repository already standardizes on a global install.\n\n## References\n\nOpen only what you need:\n\n- CLI command reference: `references\u002Fcli.md`\n- Practical workflows and troubleshooting: `references\u002Fworkflows.md`\n\n## Guardrails\n\n- Always snapshot before referencing element ids like `e12`.\n- Re-snapshot when refs seem stale.\n- Prefer explicit commands over `eval` and `run-code` unless needed.\n- When you do not have a fresh snapshot, use placeholder refs like `eX` and say why; do not bypass refs with `run-code`.\n- Use `--headed` when a visual check will help.\n- When capturing artifacts in this repo, use `output\u002Fplaywright\u002F` and avoid introducing new top-level artifact folders.\n- Default to CLI commands and workflows, not Playwright test specs.\n","# Playwright CLI Skill\n\nDrive a real browser from the terminal using `playwright-cli`. Prefer the bundled wrapper script so the CLI works even when it is not globally installed.\nTreat this skill as CLI-first automation. Do not pivot to `@playwright\u002Ftest` unless the user explicitly asks for test files.\n\n## Prerequisite check (required)\n\nBefore proposing commands, check whether `npx` is available (the wrapper depends on it):\n\n```bash\ncommand -v npx >\u002Fdev\u002Fnull 2>&1\n```\n\nIf it is not available, pause and ask the user to install Node.js\u002Fnpm (which provides `npx`). Provide these steps verbatim:\n\n```bash\n# Verify Node\u002Fnpm are installed\nnode --version\nnpm --version\n\n# If missing, install Node.js\u002Fnpm, then:\nnpm install -g @playwright\u002Fcli@latest\nplaywright-cli --help\n```\n\nOnce `npx` is present, proceed with the wrapper script. A global install of `playwright-cli` is optional.\n\n## Skill path (set once)\n\n```bash\nexport CODEX_HOME=\"${CODEX_HOME:-$HOME\u002F.codex}\"\nexport PWCLI=\"$CODEX_HOME\u002Fskills\u002Fplaywright\u002Fscripts\u002Fplaywright_cli.sh\"\n```\n\nUser-scoped skills install under `$CODEX_HOME\u002Fskills` (default: `~\u002F.codex\u002Fskills`).\n\n## Quick start\n\nUse the wrapper script:\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fplaywright.dev --headed\n\"$PWCLI\" snapshot\n\"$PWCLI\" click e15\n\"$PWCLI\" type \"Playwright\"\n\"$PWCLI\" press Enter\n\"$PWCLI\" screenshot\n```\n\nIf the user prefers a global install, this is also valid:\n\n```bash\nnpm install -g @playwright\u002Fcli@latest\nplaywright-cli --help\n```\n\n## Core workflow\n\n1. Open the page.\n2. Snapshot to get stable element refs.\n3. Interact using refs from the latest snapshot.\n4. Re-snapshot after navigation or significant DOM changes.\n5. Capture artifacts (screenshot, pdf, traces) when useful.\n\nMinimal loop:\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fexample.com\n\"$PWCLI\" snapshot\n\"$PWCLI\" click e3\n\"$PWCLI\" snapshot\n```\n\n## When to snapshot again\n\nSnapshot again after:\n\n- navigation\n- clicking elements that change the UI substantially\n- opening\u002Fclosing modals or menus\n- tab switches\n\nRefs can go stale. When a command fails due to a missing ref, snapshot again.\n\n## Recommended patterns\n\n### Form fill and submit\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fexample.com\u002Fform\n\"$PWCLI\" snapshot\n\"$PWCLI\" fill e1 \"user@example.com\"\n\"$PWCLI\" fill e2 \"password123\"\n\"$PWCLI\" click e3\n\"$PWCLI\" snapshot\n```\n\n### Debug a UI flow with traces\n\n```bash\n\"$PWCLI\" open https:\u002F\u002Fexample.com --headed\n\"$PWCLI\" tracing-start\n# ...interactions...\n\"$PWCLI\" tracing-stop\n```\n\n### Multi-tab work\n\n```bash\n\"$PWCLI\" tab-new https:\u002F\u002Fexample.com\n\"$PWCLI\" tab-list\n\"$PWCLI\" tab-select 0\n\"$PWCLI\" snapshot\n```\n\n## Wrapper script\n\nThe wrapper script uses `npx --package @playwright\u002Fcli playwright-cli` so the CLI can run without a global install:\n\n```bash\n\"$PWCLI\" --help\n```\n\nPrefer the wrapper unless the repository already standardizes on a global install.\n\n## References\n\nOpen only what you need:\n\n- CLI command reference: `references\u002Fcli.md`\n- Practical workflows and troubleshooting: `references\u002Fworkflows.md`\n\n## Guardrails\n\n- Always snapshot before referencing element ids like `e12`.\n- Re-snapshot when refs seem stale.\n- Prefer explicit commands over `eval` and `run-code` unless needed.\n- When you do not have a fresh snapshot, use placeholder refs like `eX` and say why; do not bypass refs with `run-code`.\n- Use `--headed` when a visual check will help.\n- When capturing artifacts in this repo, use `output\u002Fplaywright\u002F` and avoid introducing new top-level artifact folders.\n- Default to CLI commands and workflows, not Playwright test specs.\n",{"name":5,"description":7},"main","46b2e9493d75c07ea357cf5ac24ec104afb55500","shared\u002Fskills\u002Fplaywright","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench","https:\u002F\u002Fgithub.com\u002Fguhans6","2026-10-11 17:12:57",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add guhans6\u002Fagent-workbench --skill playwright",{"tool":37,"command":38},"bunx","bunx skills add guhans6\u002Fagent-workbench --skill playwright",{"tool":40,"command":41},"pnpm","pnpm dlx skills add guhans6\u002Fagent-workbench --skill playwright","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002FSKILL.md",true,[45,51,57,61,66,70,74,78],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"agents\u002Fopenai.yaml","REFERENCE","参考文档",313,"https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002Fagents\u002Fopenai.yaml",{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"assets\u002Fplaywright-small.svg","ASSET","资产文件",828,"https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002Fassets\u002Fplaywright-small.svg",{"path":58,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":59,"sourceHtmlUrl":60},"assets\u002Fplaywright.png",1730,"https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002Fassets\u002Fplaywright.png",{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":16},"LICENSE.txt","LICENSE","许可证",11552,{"path":67,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":68,"sourceHtmlUrl":69},"NOTICE.txt",403,"https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002FNOTICE.txt",{"path":71,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Fcli.md",1863,"https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002Freferences\u002Fcli.md",{"path":75,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fworkflows.md",1864,"https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002Freferences\u002Fworkflows.md",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"scripts\u002Fplaywright_cli.sh","SCRIPT","脚本",526,"https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fplaywright\u002Fscripts\u002Fplaywright_cli.sh",[85,93,102,110,118,125],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":89,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":20},"01M72BDFZ4DSFCX7RHGN6NTMMB","winui-app","Bootstrap, develop, and design modern WinUI 3 desktop applications with C# and the Windows App SDK using official Microsoft guidance, WinUI Gallery patterns, Windows App SDK samples, and CommunityToolkit components. Use when creating a brand new app, preparing a machine for WinUI, reviewing, refactoring, planning, troubleshooting, environment-checking, or setting up WinUI 3 XAML, controls, navigation, windowing, theming, accessibility, responsiveness, performance, deployment, or related Windows app design and development work.","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fwinui-app\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fwinui-app\u002FSKILL.md",[],[],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":97,"licenseFileUrl":98,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":20},"01M72BD9EFCTBR28FEBJQQRVS8","vercel-deploy","Deploy applications and websites to Vercel. Use when the user requests deployment actions like \"deploy my app\", \"deploy and give me the link\", \"push this live\", or \"create a preview deployment\".","MIT","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fvercel-deploy\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fvercel-deploy\u002FSKILL.md",[],[],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":106,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":20},"01M72BD5GWQYR251PE9T29GXFR","transcribe","Transcribe audio files to text with optional diarization and known-speaker hints. Use when a user asks to transcribe speech from audio\u002Fvideo, extract text from recordings, or label speakers in interviews or meetings.","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Ftranscribe\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Ftranscribe\u002FSKILL.md",[],[],{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":97,"licenseFileUrl":114,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":20},"01M72BD2GFD6AS2J1J24940AN4","to-tickets","Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker (edges as text in one file per ticket locally, or native blocking links on a real tracker).","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fto-tickets\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fto-tickets\u002FSKILL.md",[],[],{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":20},"01M72BCN5R8AD3FQKFXRXKETJC","swiftui-pro","Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance. Use when reading, writing, or reviewing SwiftUI projects.","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fswiftui-pro\u002Fskills\u002Fswiftui-pro\u002FSKILL.md",[],[],{"skillNo":126,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":20},"01M72BCJXF6ZWD25F8FGASNSAK","https:\u002F\u002Fgithub.com\u002Fguhans6\u002Fagent-workbench\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fswiftui-pro\u002FSKILL.md",[],[]]