[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GVM22HT18WVMMAT2V8MD3G":3,"skill-same:01M6GVM22HT18WVMMAT2V8MD3G":100},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":71},"01M6GVM22HT18WVMMAT2V8MD3G","browser-qa",null,"Playwright-based browser QA skill for guided setup, auth handoff, scripted runs, and artifact capture.","Flow-Research\u002Fharnessy","Flow-Research","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F204254796?v=4","01M6GVJZH9ZV0XGZTVBJRNW5BQ","Flow Research","01M6GVJZNSWAHPXW43628F7X76",30,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"qa","browser","browser qa","capture","inspect","true","URL","script","app","artifact","read","question","playwright","grep","Bash","start","report","run","setup","auth","2026-11-10 10:12:30",false,"---\nname: browser-qa\ndescription: \"Playwright-based browser QA skill for guided setup, auth handoff, scripted runs, and artifact capture.\"\ndisable-model-invocation: true\nallowed-tools: Read, Grep, Glob, Bash, ApplyPatch, Question\nargument-hint: \"[setup|start|auth|inspect|run|qa-script|report] [--app \u003Cpath>] [--url \u003Curl>] [--script \u003Cpath>] [--headed] [--allow-destructive]\"\n---\n\n# Browser QA\n\n## Purpose\nUse Playwright for guided browser-based QA across local, preview, staging, or production environments while keeping setup deterministic, credentials safe, and artifacts easy to review.\n\n## Inputs\n- Optional subcommand: `setup`, `start`, `auth`, `inspect`, `run`, `qa-script`, or `report`\n- Optional flags: `--app \u003Cpath>`, `--url \u003Curl>`, `--script \u003Cpath>`, `--headed`, `--allow-destructive`\n\n- Template paths are resolved from `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002F`.\n\n## Steps\n1. Follow the command specification in `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fcommands\u002Fbrowser-qa.md` exactly.\n2. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fdetect-runtime.js` to inspect `README.md`, app-level READMEs, and package metadata before asking startup questions.\n3. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fcheck-playwright.js` to deterministically report whether Playwright packages and browser binaries are ready before attempting browser execution.\n4. Default to `read-only` mode. Only perform create\u002Fedit\u002Fdelete\u002Fsubmit\u002Fapprove side effects when the user explicitly opts into destructive actions.\n5. Default to manual login in a headed browser for first-run auth unless the user explicitly chooses typed credentials, env-backed credentials, or an existing storage state.\n6. Never persist secrets or session state unless the user explicitly asks. Redact sensitive values from summaries.\n7. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fparse-qa-script.js` to normalize markdown or JSON QA scripts into a deterministic scenario list before execution.\n8. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fsummarize-artifacts.js` after execution to normalize artifact paths, scenario outcomes, and blocked reasons for handoff to the user or the `qa` skill.\n9. When creating or updating a reusable Markdown QA script, also export a sibling `.xlsx` workbook with `python3 ${AGENTS_SKILLS_ROOT}\u002Fqa\u002Fscripts\u002Fexport-user-test-script.py \u003Cmarkdown-path> [xlsx-path]` so human testers can use either format.\n10. When browser execution is requested from the broader `qa` workflow, return a structured summary that `qa` can incorporate into bug reports and QA artifacts.\n\n## Output\n- Friendly browser-QA summary with target app\u002FURL, auth mode, safety mode, actions performed, artifact locations, and pass\u002Ffail\u002Fblocked results.\n- Clear list of missing prerequisites when Playwright, browsers, or startup commands are not ready.\n- Structured scenario summary suitable for `qa` delegation and follow-up fixes.\n","# Browser QA\n\n## Purpose\nUse Playwright for guided browser-based QA across local, preview, staging, or production environments while keeping setup deterministic, credentials safe, and artifacts easy to review.\n\n## Inputs\n- Optional subcommand: `setup`, `start`, `auth`, `inspect`, `run`, `qa-script`, or `report`\n- Optional flags: `--app \u003Cpath>`, `--url \u003Curl>`, `--script \u003Cpath>`, `--headed`, `--allow-destructive`\n\n- Template paths are resolved from `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002F`.\n\n## Steps\n1. Follow the command specification in `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fcommands\u002Fbrowser-qa.md` exactly.\n2. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fdetect-runtime.js` to inspect `README.md`, app-level READMEs, and package metadata before asking startup questions.\n3. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fcheck-playwright.js` to deterministically report whether Playwright packages and browser binaries are ready before attempting browser execution.\n4. Default to `read-only` mode. Only perform create\u002Fedit\u002Fdelete\u002Fsubmit\u002Fapprove side effects when the user explicitly opts into destructive actions.\n5. Default to manual login in a headed browser for first-run auth unless the user explicitly chooses typed credentials, env-backed credentials, or an existing storage state.\n6. Never persist secrets or session state unless the user explicitly asks. Redact sensitive values from summaries.\n7. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fparse-qa-script.js` to normalize markdown or JSON QA scripts into a deterministic scenario list before execution.\n8. Use `${AGENTS_SKILLS_ROOT}\u002Fbrowser-qa\u002Fscripts\u002Fsummarize-artifacts.js` after execution to normalize artifact paths, scenario outcomes, and blocked reasons for handoff to the user or the `qa` skill.\n9. When creating or updating a reusable Markdown QA script, also export a sibling `.xlsx` workbook with `python3 ${AGENTS_SKILLS_ROOT}\u002Fqa\u002Fscripts\u002Fexport-user-test-script.py \u003Cmarkdown-path> [xlsx-path]` so human testers can use either format.\n10. When browser execution is requested from the broader `qa` workflow, return a structured summary that `qa` can incorporate into bug reports and QA artifacts.\n\n## Output\n- Friendly browser-QA summary with target app\u002FURL, auth mode, safety mode, actions performed, artifact locations, and pass\u002Ffail\u002Fblocked results.\n- Clear list of missing prerequisites when Playwright, browsers, or startup commands are not ready.\n- Structured scenario summary suitable for `qa` delegation and follow-up fixes.\n",{"name":5,"description":7,"allowed-tools":49,"argument-hint":50,"disable-model-invocation":51},"Read, Grep, Glob, Bash, ApplyPatch, Question","[setup|start|auth|inspect|run|qa-script|report] [--app \u003Cpath>] [--url \u003Curl>] [--script \u003Cpath>] [--headed] [--allow-destructive]",true,"main","bae3fdddd99eabe649d0d53cea5d2a0b501aa8b3","tools\u002Fflow-install\u002Fskills\u002Fbrowser-qa",7,"https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy","https:\u002F\u002Fgithub.com\u002FFlow-Research","2026-08-15 01:06:37",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":51},[61,64,67],{"tool":62,"command":63},"npx","npx skills add Flow-Research\u002Fharnessy --skill browser-qa",{"tool":65,"command":66},"bunx","bunx skills add Flow-Research\u002Fharnessy --skill browser-qa",{"tool":68,"command":69},"pnpm","pnpm dlx skills add Flow-Research\u002Fharnessy --skill browser-qa","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002FSKILL.md",[72,78,82,88,92,96],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"commands\u002Fbrowser-qa.md","REFERENCE","参考文档",6002,"https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002Fcommands\u002Fbrowser-qa.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"manifest.yaml",723,"https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002Fmanifest.yaml",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"scripts\u002Fcheck-playwright.js","SCRIPT","脚本",1537,"https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002Fscripts\u002Fcheck-playwright.js",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"scripts\u002Fdetect-runtime.js",3644,"https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002Fscripts\u002Fdetect-runtime.js",{"path":93,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":94,"sourceHtmlUrl":95},"scripts\u002Fparse-qa-script.js",1985,"https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002Fscripts\u002Fparse-qa-script.js",{"path":97,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":98,"sourceHtmlUrl":99},"scripts\u002Fsummarize-artifacts.js",1126,"https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fbrowser-qa\u002Fscripts\u002Fsummarize-artifacts.js",[101,128,156,179,200,215],{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":110,"publishedAt":44},"01M6GVTWDZDG82G8GGGYXXCT5B","wiki-research","Autonomous research orchestrator for Jarvis Wiki domains. Spawns a Claude agent with web tools to find new sources, drops them into raw\u002F, runs the compile pipeline, and emits autoresearch traces for the autoflow ratchet.","https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fwiki-research\u002FSKILL.md",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[111,112,113,114,115,116,117,38,118,34,119,120,121,122,123,124,125,126,127,29],"research","wiki","wiki research","web","compile","autoresearch","pipeline","find","write","web tools","autonomous","orchestrator","domain","domains","sources","Autonomous Research","with",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":44},"01M6GVTQWAPB46BPQ6TCKSYDDA","tmux-agent-launcher","Launch Claude, OpenCode, or Codex in a named tmux session from the command line or agent workflows.","https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Ftmux-agent-launcher\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[138,139,140,141,142,143,144,145,34,146,147,148,149,150,151,152,153,154,29,155],"tmux","launcher","tmux agent launcher","codex","launch","workflows","command line","command","session","opencode","default","runner","options","permission","agent workflows","name","line","mode",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":44},"01M6GVTJEW4N5BAT5AG1M58PF6","test-quality-validator","Validate generated or hand-written tests for coverage completeness, correctness, and false-green risks using the canonical QA runtime, regression artifacts, and optional delivery-profile rules.","https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Ftest-quality-validator\u002FSKILL.md",[162],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[164,165,166,167,24,25,168,38,169,34,119,170,171,172,173,174,175,176,177,178],"test","quality","validator","test quality validator","api","regression","context","coverage","generated","only","delivery","green","false","canonical","hand",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":185,"publishedAt":44},"01M6GVTE4BYCYCFKK2PS83ATX4","tech-spec","Generate production-ready technical specifications from product specs.","https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Ftech-spec\u002FSKILL.md",[],[186,187,188,189,190,191,192,37,193,34,119,194,195,196,29,197,198,199],"spec","tech spec","tech","review","generate","product","Production","technical","ready","specifications","folder","websearch","path","production-ready",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":206,"publishedAt":44},"01M6GVT9FPGF2ME475HPQWKPSC","tech-spec-review","Seven-lens engineering review for technical_spec.md files, including an explicit simplicity and architectural fitness gate.","https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Ftech-spec-review\u002FSKILL.md",[],[189,186,207,187,188,208,209,37,193,34,119,210,211,212,213,214,29,197,198],"spec review","tech spec review","engineering","simplicity","files","gate","lens","quick",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":219,"categories":220,"keywords":226,"publishedAt":44},"01M6GVT3XTZ4W3P2XQRDNBPZ4M","spec-to-regression","Generate browser and API regression scenarios from approved product and technical specs using the Harnessy delivery profile and regression artifact contract.","https:\u002F\u002Fgithub.com\u002FFlow-Research\u002Fharnessy\u002Fblob\u002Fmain\u002Ftools\u002Fflow-install\u002Fskills\u002Fspec-to-regression\u002FSKILL.md",[221],{"categoryNo":222,"categoryName":223,"taxonomyType":224,"taxonomyTypeDesc":225},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[186,169,227,190,25,191,228,168,38,229,37,193,34,119,174,33,230,176,153,231],"spec to regression","flow","json","contract","EPIC"]