[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71K6ABE4ZP56M089P561EGX":3,"skill-same:01M71K6ABE4ZP56M089P561EGX":73},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M71K6ABE4ZP56M089P561EGX","playwright-cli",null,"Browser automation via Playwright CLI — UI testing, form filling, screenshots, scraping. Token-efficient alternative to MCP. Use when user asks to test UI, automate browser, take screenshots, fill forms, or scrape web pages.","KeiSeiLab\u002FKeiSeiKit","KeiSeiLab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F283315582?v=4","01M71K2EW81JRFHSGF0T844B32","KeiSei Lab","01M71K2EWXTB52KWC65E55S6M2",7,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fplaywright-cli\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"cli","playwright","playwright cli","use","pages","form","screenshots","automate","ui","ui testing","take","forms","token","browser","scrape","when","MCP","testing","browser automation","scraping","2026-11-10 10:12:30",false,"---\nname: playwright-cli\ndescription: Browser automation via Playwright CLI — UI testing, form filling, screenshots, scraping. Token-efficient alternative to MCP. Use when user asks to test UI, automate browser, take screenshots, fill forms, or scrape web pages.\n---\n\n# Browser Automation with playwright-cli\n\n## When to use\n\n- Automating browser tasks: UI testing, form filling, taking screenshots, or scraping web pages.\n- Token-efficient alternative to the Playwright MCP — saves ~90K tokens per task by passing only an accessibility-tree summary.\n- Any task asking to \"test UI\", \"automate browser\", \"take a screenshot\", \"fill a form\", or \"scrape a page\".\n\n## Overview\n\n`playwright-cli` is a token-efficient CLI tool for browser automation. It saves the accessibility tree to disk and only passes a summary to the agent — ~90K tokens cheaper than MCP per task.\n\n**Run via:** `npx @playwright\u002Fcli \u003Ccommand>` (installed globally would be just `playwright-cli \u003Ccommand>`)\n\n## Key Workflow Pattern\n\n```\n1. npx @playwright\u002Fcli open [url]     — launch browser (headless by default)\n2. npx @playwright\u002Fcli snapshot       — get accessibility tree, identify element refs\n3. npx @playwright\u002Fcli click \u003Cref>    — interact using refs from snapshot\n4. npx @playwright\u002Fcli screenshot     — capture result\n5. npx @playwright\u002Fcli close          — cleanup\n```\n\n**For headed (visible) browser:** `npx @playwright\u002Fcli open --headed [url]`\n\n## Essential Commands\n\n### Opening & Navigation\n- `open [url]` — launch browser (add `--headed` to see it)\n- `goto \u003Curl>` — navigate to URL\n- `go-back` \u002F `go-forward` — browser history\n- `close` — close browser session\n\n### Page Interaction (use refs from `snapshot`)\n- `click \u003Cref>` — click element\n- `dblclick \u003Cref>` — double click\n- `fill \u003Cref> \u003Ctext>` — fill input field\n- `type \u003Ctext>` — type text into focused element\n- `select \u003Cref> \u003Cvalue>` — select dropdown option\n- `check \u003Cref>` \u002F `uncheck \u003Cref>` — checkboxes\n- `hover \u003Cref>` — hover over element\n- `drag \u003CstartRef> \u003CendRef>` — drag and drop\n- `upload \u003Cfile>` — file upload\n\n### Inspection\n- `snapshot` — capture page accessibility tree, get element refs\n- `screenshot` — take screenshot (saved to disk)\n- `pdf` — export page as PDF\n\n### Keyboard & Mouse\n- `press \u003Ckey>` — press key (Enter, Tab, etc.)\n- `keydown \u003Ckey>` \u002F `keyup \u003Ckey>` — key press\u002Frelease\n- `mousemove \u003Cx> \u003Cy>` \u002F `mousedown` \u002F `mouseup` \u002F `mousewheel`\n\n### Storage & Cookies\n- `cookie-list` \u002F `cookie-get \u003Cname>` \u002F `cookie-set` \u002F `cookie-delete`\n- `localstorage-list` \u002F `localstorage-get` \u002F `localstorage-set` \u002F `localstorage-delete`\n- `sessionstorage-list` \u002F `sessionstorage-get` \u002F `sessionstorage-set`\n\n### Network\n- `route \u003Cpattern>` — mock network requests\n- `route-list` — list active mocks\n- `unroute [pattern]` — remove mocks\n- `network` — list all network requests\n\n### DevTools & Recording\n- `console [min-level]` — list console messages\n- `eval \u003Cfunc> [ref]` — evaluate JS on page or element\n- `run-code \u003Ccode>` — run Playwright code snippet\n- `tracing-start` \u002F `tracing-stop` — trace recording\n- `video-start` \u002F `video-stop` — video recording\n\n### Session Management\n- `list` — list browser sessions\n- `close-all` — close all sessions\n- `kill-all` — force kill stale sessions\n- Use `-s=\u003Csession>` flag to work with named sessions (parallel testing)\n\n### Browser Options\n- Chrome (default), Firefox, WebKit, Edge\n- `--browser=firefox` to use different browser\n- Persistent profiles supported\n\n## Parallel UI Testing Pattern\n\nFor parallel sub-agent testing (recommended for form\u002FUI validation):\n\n```\nPrompt to Claude Code:\n\"Use playwright-cli to test [feature]. Run 3 parallel sub-agents:\n1. Happy path — valid inputs, expected flow\n2. Edge cases — empty fields, special characters, very long input\n3. Validation — invalid email, missing required fields, XSS attempts\n\nUse headed browsers so I can see. Take screenshots of results.\"\n```\n\nEach sub-agent gets its own session via `-s=\u003Cname>` flag.\n\n## Tips\n\n- **Default is headless** — add `--headed` to `open` command to see the browser\n- **Always `snapshot` first** — to get element refs before interacting\n- **Sessions for parallelism** — use `-s=agent1`, `-s=agent2` etc. for parallel agents\n- **Screenshots for evidence** — always take screenshots of test results\n- **Close sessions** — always `close` or `close-all` when done\n- **Token efficiency** — CLI saves accessibility tree to disk, only passes summary to agent\n","# Browser Automation with playwright-cli\n\n## When to use\n\n- Automating browser tasks: UI testing, form filling, taking screenshots, or scraping web pages.\n- Token-efficient alternative to the Playwright MCP — saves ~90K tokens per task by passing only an accessibility-tree summary.\n- Any task asking to \"test UI\", \"automate browser\", \"take a screenshot\", \"fill a form\", or \"scrape a page\".\n\n## Overview\n\n`playwright-cli` is a token-efficient CLI tool for browser automation. It saves the accessibility tree to disk and only passes a summary to the agent — ~90K tokens cheaper than MCP per task.\n\n**Run via:** `npx @playwright\u002Fcli \u003Ccommand>` (installed globally would be just `playwright-cli \u003Ccommand>`)\n\n## Key Workflow Pattern\n\n```\n1. npx @playwright\u002Fcli open [url]     — launch browser (headless by default)\n2. npx @playwright\u002Fcli snapshot       — get accessibility tree, identify element refs\n3. npx @playwright\u002Fcli click \u003Cref>    — interact using refs from snapshot\n4. npx @playwright\u002Fcli screenshot     — capture result\n5. npx @playwright\u002Fcli close          — cleanup\n```\n\n**For headed (visible) browser:** `npx @playwright\u002Fcli open --headed [url]`\n\n## Essential Commands\n\n### Opening & Navigation\n- `open [url]` — launch browser (add `--headed` to see it)\n- `goto \u003Curl>` — navigate to URL\n- `go-back` \u002F `go-forward` — browser history\n- `close` — close browser session\n\n### Page Interaction (use refs from `snapshot`)\n- `click \u003Cref>` — click element\n- `dblclick \u003Cref>` — double click\n- `fill \u003Cref> \u003Ctext>` — fill input field\n- `type \u003Ctext>` — type text into focused element\n- `select \u003Cref> \u003Cvalue>` — select dropdown option\n- `check \u003Cref>` \u002F `uncheck \u003Cref>` — checkboxes\n- `hover \u003Cref>` — hover over element\n- `drag \u003CstartRef> \u003CendRef>` — drag and drop\n- `upload \u003Cfile>` — file upload\n\n### Inspection\n- `snapshot` — capture page accessibility tree, get element refs\n- `screenshot` — take screenshot (saved to disk)\n- `pdf` — export page as PDF\n\n### Keyboard & Mouse\n- `press \u003Ckey>` — press key (Enter, Tab, etc.)\n- `keydown \u003Ckey>` \u002F `keyup \u003Ckey>` — key press\u002Frelease\n- `mousemove \u003Cx> \u003Cy>` \u002F `mousedown` \u002F `mouseup` \u002F `mousewheel`\n\n### Storage & Cookies\n- `cookie-list` \u002F `cookie-get \u003Cname>` \u002F `cookie-set` \u002F `cookie-delete`\n- `localstorage-list` \u002F `localstorage-get` \u002F `localstorage-set` \u002F `localstorage-delete`\n- `sessionstorage-list` \u002F `sessionstorage-get` \u002F `sessionstorage-set`\n\n### Network\n- `route \u003Cpattern>` — mock network requests\n- `route-list` — list active mocks\n- `unroute [pattern]` — remove mocks\n- `network` — list all network requests\n\n### DevTools & Recording\n- `console [min-level]` — list console messages\n- `eval \u003Cfunc> [ref]` — evaluate JS on page or element\n- `run-code \u003Ccode>` — run Playwright code snippet\n- `tracing-start` \u002F `tracing-stop` — trace recording\n- `video-start` \u002F `video-stop` — video recording\n\n### Session Management\n- `list` — list browser sessions\n- `close-all` — close all sessions\n- `kill-all` — force kill stale sessions\n- Use `-s=\u003Csession>` flag to work with named sessions (parallel testing)\n\n### Browser Options\n- Chrome (default), Firefox, WebKit, Edge\n- `--browser=firefox` to use different browser\n- Persistent profiles supported\n\n## Parallel UI Testing Pattern\n\nFor parallel sub-agent testing (recommended for form\u002FUI validation):\n\n```\nPrompt to Claude Code:\n\"Use playwright-cli to test [feature]. Run 3 parallel sub-agents:\n1. Happy path — valid inputs, expected flow\n2. Edge cases — empty fields, special characters, very long input\n3. Validation — invalid email, missing required fields, XSS attempts\n\nUse headed browsers so I can see. Take screenshots of results.\"\n```\n\nEach sub-agent gets its own session via `-s=\u003Cname>` flag.\n\n## Tips\n\n- **Default is headless** — add `--headed` to `open` command to see the browser\n- **Always `snapshot` first** — to get element refs before interacting\n- **Sessions for parallelism** — use `-s=agent1`, `-s=agent2` etc. for parallel agents\n- **Screenshots for evidence** — always take screenshots of test results\n- **Close sessions** — always `close` or `close-all` when done\n- **Token efficiency** — CLI saves accessibility tree to disk, only passes summary to agent\n",{"name":5,"description":7},"main","32e85218a997294f68da27ff3dfd638196186ae5","skills\u002Fplaywright-cli",8,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit","https:\u002F\u002Fgithub.com\u002FKeiSeiLab","2026-10-11 11:17:46",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add KeiSeiLab\u002FKeiSeiKit --skill playwright-cli",{"tool":65,"command":66},"bunx","bunx skills add KeiSeiLab\u002FKeiSeiKit --skill playwright-cli",{"tool":68,"command":69},"pnpm","pnpm dlx skills add KeiSeiLab\u002FKeiSeiKit --skill playwright-cli","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fplaywright-cli\u002FSKILL.md",true,[],[74,102,126,160,188,211],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":81,"publishedAt":47},"01M71K887N78V089XR5BWT0JAV","wave-audit","3-wave parallel audit — Wave 1 discovery (4 agents), Wave 2 verification (4 agents), Wave 3 cross-optimization (1 synthesizer). Each wave runs agents in parallel. Combines security review, runtime analysis, quality check, and constructor pattern into one unified workflow with evidence grading and Go\u002FNo-Go verdict.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fwave-audit\u002FSKILL.md",[80],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],"wave audit","audit","unified workflow","workflow","analysis","review","verification","security review","pattern","grading","go","security","parallel","evidence","runtime","quality check","discovery","Optimization","one","check",{"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":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":47},"01M71K85100JQS4Y10EGCTWQXW","vm-provision","End-to-end VPS provisioning — select provider → plan → provision → harden → verify (ssh-check + firewall-diff hard-gate) → handoff. 6 phases, ≥6 AskUserQuestion calls, defensive-only. Stops if either verification primitive fails.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvm-provision\u002FSKILL.md",[],[109,110,111,112,113,114,115,116,117,118,100,119,120,101,88,121,122,123,124,125],"vm","vm provision","firewall","diff","provider","select","end","calls","only","either","api","hetzner","plan","defensive","verify","intent","line",{"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":6,"sourceHtmlUrl":131,"categories":132,"keywords":141,"publishedAt":47},"01M71K80ZRH2H5ES83QS97BB91","visual-explainer","Generate beautiful, self-contained HTML pages that visually explain systems, code changes, plans, and data. Use when the user asks for a diagram, architecture overview, diff review, plan review, project recap, comparison table, or any visual explanation of technical concepts. Also use proactively when you are about to render a complex ASCII table (4+ rows or 3+ columns) — present it as a styled HTML page instead.","MIT","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-explainer\u002FSKILL.md",[133,136],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":137,"categoryName":138,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[142,143,144,145,146,147,148,149,121,150,151,152,153,154,155,156,157,158,159,30],"visual","visual explainer","explainer","project","files","image","you","architecture","generate","present","concepts","table","as","view","for","ascii table","ascii","surf",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":169,"publishedAt":47},"01M71K7VSD5ZWN26QJEC4T0770","video-gen","Use when generating video from frame sequences — FFmpeg extraction, WebP\u002FAVIF conversion, sprite sheets, scroll-synced playback, video encoding\u002Ftranscoding. Covers the full pipeline from video source to web-ready frame sequence or optimized video.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-gen\u002FSKILL.md",[166],{"categoryNo":167,"categoryName":168,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[170,171,172,173,174,175,176,177,178,42,147,179,180,181,182,183,184,185,186,187],"Video","gen","video gen","ready","pipeline","default","generated","synced","false","conversion","directory","sequences","sequence","source","full","path","webp","target",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":195,"publishedAt":47},"01M71K7R88RM8ENVCRZHZSMM5T","test-matrix","Use when a project needs testing BEYOND unit tests — fuzzing, property-based, load, E2E, or mutation. Five-phase hub-and-spoke pipeline composes the right mix per language × critical path × CI target, scaffolds configs + corpus + fixtures, wires CI jobs, and defines the crash\u002Fregression triage workflow. Pure-click: every decision except intake is an AskUserQuestion.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Ftest-matrix\u002FSKILL.md",[194],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[196,197,198,199,187,200,145,201,174,202,203,44,204,205,206,207,208,30,209,210],"test","matrix","test matrix","unit","click","regression","mix","intake","decision","ci","tests","e2e","mutation","load","fuzzing",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":218,"publishedAt":47},"01M71K7N3ZY9FMMH3CSE1H8K5J","test-gen","Use when generating tests for untested code — happy path, edge cases, error handling","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Ftest-gen\u002FSKILL.md",[217],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[219,171,196,220,187,156,221,206,222,30,42,223,224,225,226,185],"test gen","error","true","edge","file","code","error handling","name"]