[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71MZ41D5AF5MHT7Q92FGSC7":3,"skill-same:01M71MZ41D5AF5MHT7Q92FGSC7":339},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M71MZ41D5AF5MHT7Q92FGSC7","bmad-testarch-framework",null,"Initialize test framework with Playwright or Cypress. Use when the user says \"lets setup test framework\" or \"I want to initialize testing framework\"","developAgent\u002Fbmad-start","developAgent","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F264530239?v=4","01M71J8X6CY24V5ZZHFGETRMSW","01M71J8X739FS28DGQAAY7V4QR",1,"MIT","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"framework","bmad testarch framework","bmad","bmad testarch","testing","playwright","test","test framework","setup","testing framework","initialize","user","use","cypress","with","when","2026-11-10 10:56:23",false,"---\nname: bmad-testarch-framework\ndescription: 'Initialize test framework with Playwright or Cypress. Use when the user says \"lets setup test framework\" or \"I want to initialize testing framework\"'\n---\n\n# Test Framework Setup\n\n**Goal:** Initialize a production-ready test framework architecture (Playwright or Cypress) with fixtures, helpers, and configuration.\n\n**Role:** You are the Master Test Architect.\n\nYou will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.\n\n## Conventions\n\n- Bare paths (e.g. `instructions.md`) resolve from the skill root.\n- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).\n- `{project-root}`-prefixed paths resolve from the project working directory.\n- `{skill-name}` resolves to the skill directory's basename.\n- Resolve sibling workflow files such as `instructions.md`, `checklist.md`, `steps-c\u002F...`, `steps-e\u002F...`, `steps-v\u002F...`, and templates from `{skill-root}`.\n\n## On Activation\n\n### Step 1: Resolve the Workflow Block\n\nRun: `python3 {project-root}\u002F_bmad\u002Fscripts\u002Fresolve_customization.py --skill {skill-root} --key workflow`\n\n**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:\n\n1. `{skill-root}\u002Fcustomize.toml` — defaults\n2. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.toml` — team overrides\n3. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.user.toml` — personal overrides\n\nAny missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.\n\n### Step 2: Execute Prepend Steps\n\nExecute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.\n\n### Step 3: Load Persistent Facts\n\nTreat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs resolved from `{project-root}` — expand them and load every matching file in lexical path order as facts. All other entries are facts verbatim.\n\n### Step 4: Load Config\n\nLoad config from `{project-root}\u002F_bmad\u002Ftea\u002Fconfig.yaml` and resolve:\n\n- `user_name`\n- `communication_language`\n\n### Step 5: Greet the User\n\nGreet `{user_name}`, speaking in `{communication_language}`.\n\n### Step 6: Execute Append Steps\n\nExecute each entry in `{workflow.activation_steps_append}` in order.\n\nActivation is complete. Begin the workflow below.\n\n## Workflow Architecture\n\nThis workflow uses **tri-modal step-file architecture**:\n\n- **Create mode (steps-c\u002F)**: primary execution flow for new runs and resume continuation\n- **Validate mode (steps-v\u002F)**: validation against checklist\n- **Edit mode (steps-e\u002F)**: revise existing outputs\n\n## Initialization Sequence\n\n### 1. Mode Determination\n\n\"Welcome to the workflow. What would you like to do?\"\n\n- **[C] Create** — Run the workflow from the beginning\n- **[R] Resume** — Resume an interrupted Create workflow\n- **[V] Validate** — Validate existing outputs\n- **[E] Edit** — Edit existing outputs\n\n### 2. Route to First Step\n\n- **If C:** Load `{skill-root}\u002Fsteps-c\u002Fstep-01-preflight.md`\n- **If R:** Load `{skill-root}\u002Fsteps-c\u002Fstep-01b-resume.md` (Create-mode continuation)\n- **If V:** Load `{skill-root}\u002Fsteps-v\u002Fstep-01-validate.md`\n- **If E:** Load `{skill-root}\u002Fsteps-e\u002Fstep-01-assess.md`\n","# Test Framework Setup\n\n**Goal:** Initialize a production-ready test framework architecture (Playwright or Cypress) with fixtures, helpers, and configuration.\n\n**Role:** You are the Master Test Architect.\n\nYou will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.\n\n## Conventions\n\n- Bare paths (e.g. `instructions.md`) resolve from the skill root.\n- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).\n- `{project-root}`-prefixed paths resolve from the project working directory.\n- `{skill-name}` resolves to the skill directory's basename.\n- Resolve sibling workflow files such as `instructions.md`, `checklist.md`, `steps-c\u002F...`, `steps-e\u002F...`, `steps-v\u002F...`, and templates from `{skill-root}`.\n\n## On Activation\n\n### Step 1: Resolve the Workflow Block\n\nRun: `python3 {project-root}\u002F_bmad\u002Fscripts\u002Fresolve_customization.py --skill {skill-root} --key workflow`\n\n**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:\n\n1. `{skill-root}\u002Fcustomize.toml` — defaults\n2. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.toml` — team overrides\n3. `{project-root}\u002F_bmad\u002Fcustom\u002F{skill-name}.user.toml` — personal overrides\n\nAny missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.\n\n### Step 2: Execute Prepend Steps\n\nExecute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.\n\n### Step 3: Load Persistent Facts\n\nTreat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs resolved from `{project-root}` — expand them and load every matching file in lexical path order as facts. All other entries are facts verbatim.\n\n### Step 4: Load Config\n\nLoad config from `{project-root}\u002F_bmad\u002Ftea\u002Fconfig.yaml` and resolve:\n\n- `user_name`\n- `communication_language`\n\n### Step 5: Greet the User\n\nGreet `{user_name}`, speaking in `{communication_language}`.\n\n### Step 6: Execute Append Steps\n\nExecute each entry in `{workflow.activation_steps_append}` in order.\n\nActivation is complete. Begin the workflow below.\n\n## Workflow Architecture\n\nThis workflow uses **tri-modal step-file architecture**:\n\n- **Create mode (steps-c\u002F)**: primary execution flow for new runs and resume continuation\n- **Validate mode (steps-v\u002F)**: validation against checklist\n- **Edit mode (steps-e\u002F)**: revise existing outputs\n\n## Initialization Sequence\n\n### 1. Mode Determination\n\n\"Welcome to the workflow. What would you like to do?\"\n\n- **[C] Create** — Run the workflow from the beginning\n- **[R] Resume** — Resume an interrupted Create workflow\n- **[V] Validate** — Validate existing outputs\n- **[E] Edit** — Edit existing outputs\n\n### 2. Route to First Step\n\n- **If C:** Load `{skill-root}\u002Fsteps-c\u002Fstep-01-preflight.md`\n- **If R:** Load `{skill-root}\u002Fsteps-c\u002Fstep-01b-resume.md` (Create-mode continuation)\n- **If V:** Load `{skill-root}\u002Fsteps-v\u002Fstep-01-validate.md`\n- **If E:** Load `{skill-root}\u002Fsteps-e\u002Fstep-01-assess.md`\n",{"name":5,"description":7},"main","1907bbe850fb749efa8b499b8da7ebb78a663519",".gemini\u002Fskills\u002Fbmad-testarch-framework",0,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start","https:\u002F\u002Fgithub.com\u002FdevelopAgent","2026-07-19 05:19:22",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add developAgent\u002Fbmad-start --skill bmad-testarch-framework",{"tool":57,"command":58},"bunx","bunx skills add developAgent\u002Fbmad-start --skill bmad-testarch-framework",{"tool":60,"command":61},"pnpm","pnpm dlx skills add developAgent\u002Fbmad-start --skill bmad-testarch-framework","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002FSKILL.md",true,[65,71,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,287,291,295,299,303,307,311,315,319,323,327,331,335],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"checklist.md","REFERENCE","参考文档",12470,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fchecklist.md",{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"customize.toml","OTHER","其他",1557,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fcustomize.toml",{"path":78,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":79,"sourceHtmlUrl":80},"instructions.md",1133,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Finstructions.md",{"path":82,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":83,"sourceHtmlUrl":84},"resources\u002Fknowledge\u002Fadr-quality-readiness-checklist.md",25356,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fadr-quality-readiness-checklist.md",{"path":86,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":87,"sourceHtmlUrl":88},"resources\u002Fknowledge\u002Fapi-request.md",17129,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fapi-request.md",{"path":90,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":91,"sourceHtmlUrl":92},"resources\u002Fknowledge\u002Fapi-testing-patterns.md",26976,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fapi-testing-patterns.md",{"path":94,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":95,"sourceHtmlUrl":96},"resources\u002Fknowledge\u002Fauth-session.md",16215,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fauth-session.md",{"path":98,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":99,"sourceHtmlUrl":100},"resources\u002Fknowledge\u002Fburn-in.md",6503,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fburn-in.md",{"path":102,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":103,"sourceHtmlUrl":104},"resources\u002Fknowledge\u002Fci-burn-in.md",22486,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fci-burn-in.md",{"path":106,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":107,"sourceHtmlUrl":108},"resources\u002Fknowledge\u002Fcomponent-tdd.md",16149,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fcomponent-tdd.md",{"path":110,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":111,"sourceHtmlUrl":112},"resources\u002Fknowledge\u002Fcontract-testing.md",38991,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fcontract-testing.md",{"path":114,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":115,"sourceHtmlUrl":116},"resources\u002Fknowledge\u002Fdata-factories.md",15331,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fdata-factories.md",{"path":118,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":119,"sourceHtmlUrl":120},"resources\u002Fknowledge\u002Femail-auth.md",24553,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Femail-auth.md",{"path":122,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":123,"sourceHtmlUrl":124},"resources\u002Fknowledge\u002Ferror-handling.md",22959,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ferror-handling.md",{"path":126,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":127,"sourceHtmlUrl":128},"resources\u002Fknowledge\u002Ffeature-flags.md",23214,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ffeature-flags.md",{"path":130,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":131,"sourceHtmlUrl":132},"resources\u002Fknowledge\u002Ffile-utils.md",13745,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ffile-utils.md",{"path":134,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":135,"sourceHtmlUrl":136},"resources\u002Fknowledge\u002Ffixture-architecture.md",12414,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ffixture-architecture.md",{"path":138,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":139,"sourceHtmlUrl":140},"resources\u002Fknowledge\u002Ffixtures-composition.md",11249,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ffixtures-composition.md",{"path":142,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":143,"sourceHtmlUrl":144},"resources\u002Fknowledge\u002Fintercept-network-call.md",13489,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fintercept-network-call.md",{"path":146,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":147,"sourceHtmlUrl":148},"resources\u002Fknowledge\u002Flog.md",11281,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Flog.md",{"path":150,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":151,"sourceHtmlUrl":152},"resources\u002Fknowledge\u002Fnetwork-error-monitor.md",12277,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fnetwork-error-monitor.md",{"path":154,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":155,"sourceHtmlUrl":156},"resources\u002Fknowledge\u002Fnetwork-first.md",16327,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fnetwork-first.md",{"path":158,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":159,"sourceHtmlUrl":160},"resources\u002Fknowledge\u002Fnetwork-recorder.md",15499,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fnetwork-recorder.md",{"path":162,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":163,"sourceHtmlUrl":164},"resources\u002Fknowledge\u002Fnfr-criteria.md",26670,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fnfr-criteria.md",{"path":166,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":167,"sourceHtmlUrl":168},"resources\u002Fknowledge\u002Foverview.md",9663,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Foverview.md",{"path":170,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":171,"sourceHtmlUrl":172},"resources\u002Fknowledge\u002Fpact-broker-webhooks.md",13376,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpact-broker-webhooks.md",{"path":174,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":175,"sourceHtmlUrl":176},"resources\u002Fknowledge\u002Fpact-consumer-di.md",12005,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpact-consumer-di.md",{"path":178,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":179,"sourceHtmlUrl":180},"resources\u002Fknowledge\u002Fpact-consumer-framework-setup.md",35846,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpact-consumer-framework-setup.md",{"path":182,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":183,"sourceHtmlUrl":184},"resources\u002Fknowledge\u002Fpact-mcp.md",8977,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpact-mcp.md",{"path":186,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":187,"sourceHtmlUrl":188},"resources\u002Fknowledge\u002Fpactjs-utils-consumer-helpers.md",16029,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpactjs-utils-consumer-helpers.md",{"path":190,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":191,"sourceHtmlUrl":192},"resources\u002Fknowledge\u002Fpactjs-utils-overview.md",10481,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpactjs-utils-overview.md",{"path":194,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":195,"sourceHtmlUrl":196},"resources\u002Fknowledge\u002Fpactjs-utils-provider-verifier.md",18180,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpactjs-utils-provider-verifier.md",{"path":198,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":199,"sourceHtmlUrl":200},"resources\u002Fknowledge\u002Fpactjs-utils-request-filter.md",7275,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fpactjs-utils-request-filter.md",{"path":202,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":203,"sourceHtmlUrl":204},"resources\u002Fknowledge\u002Fplaywright-cli.md",14993,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fplaywright-cli.md",{"path":206,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":207,"sourceHtmlUrl":208},"resources\u002Fknowledge\u002Fplaywright-config.md",21457,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fplaywright-config.md",{"path":210,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":211,"sourceHtmlUrl":212},"resources\u002Fknowledge\u002Fprobability-impact.md",19200,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fprobability-impact.md",{"path":214,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":215,"sourceHtmlUrl":216},"resources\u002Fknowledge\u002Frecurse.md",12936,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Frecurse.md",{"path":218,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":219,"sourceHtmlUrl":220},"resources\u002Fknowledge\u002Frisk-governance.md",20965,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Frisk-governance.md",{"path":222,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":223,"sourceHtmlUrl":224},"resources\u002Fknowledge\u002Fselective-testing.md",21846,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fselective-testing.md",{"path":226,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":227,"sourceHtmlUrl":228},"resources\u002Fknowledge\u002Fselector-resilience.md",19784,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fselector-resilience.md",{"path":230,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":231,"sourceHtmlUrl":232},"resources\u002Fknowledge\u002Ftest-healing-patterns.md",21388,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ftest-healing-patterns.md",{"path":234,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":235,"sourceHtmlUrl":236},"resources\u002Fknowledge\u002Ftest-levels-framework.md",14756,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ftest-levels-framework.md",{"path":238,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":239,"sourceHtmlUrl":240},"resources\u002Fknowledge\u002Ftest-priorities-matrix.md",11454,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ftest-priorities-matrix.md",{"path":242,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":243,"sourceHtmlUrl":244},"resources\u002Fknowledge\u002Ftest-quality.md",24580,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ftest-quality.md",{"path":246,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":247,"sourceHtmlUrl":248},"resources\u002Fknowledge\u002Ftiming-debugging.md",14021,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Ftiming-debugging.md",{"path":250,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":251,"sourceHtmlUrl":252},"resources\u002Fknowledge\u002Fvisual-debugging.md",17480,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fvisual-debugging.md",{"path":254,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":255,"sourceHtmlUrl":256},"resources\u002Fknowledge\u002Fwebhook-module-setup.md",5834,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fwebhook-module-setup.md",{"path":258,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":259,"sourceHtmlUrl":260},"resources\u002Fknowledge\u002Fwebhook-providers.md",6440,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fwebhook-providers.md",{"path":262,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":263,"sourceHtmlUrl":264},"resources\u002Fknowledge\u002Fwebhook-risk-guidance.md",6474,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fwebhook-risk-guidance.md",{"path":266,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":267,"sourceHtmlUrl":268},"resources\u002Fknowledge\u002Fwebhook-template-matchers.md",6011,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fwebhook-template-matchers.md",{"path":270,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":271,"sourceHtmlUrl":272},"resources\u002Fknowledge\u002Fwebhook-testing-fundamentals.md",3185,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fwebhook-testing-fundamentals.md",{"path":274,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":275,"sourceHtmlUrl":276},"resources\u002Fknowledge\u002Fwebhook-timeout-error.md",5726,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fwebhook-timeout-error.md",{"path":278,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":279,"sourceHtmlUrl":280},"resources\u002Fknowledge\u002Fwebhook-waiting-querying.md",7074,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Fknowledge\u002Fwebhook-waiting-querying.md",{"path":282,"resourceType":283,"resourceTypeDesc":284,"sizeBytes":285,"sourceHtmlUrl":286},"resources\u002Ftea-index.csv","ASSET","资产文件",11002,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fresources\u002Ftea-index.csv",{"path":288,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":289,"sourceHtmlUrl":290},"steps-c\u002Fstep-01-preflight.md",4068,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-c\u002Fstep-01-preflight.md",{"path":292,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":293,"sourceHtmlUrl":294},"steps-c\u002Fstep-01b-resume.md",3804,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-c\u002Fstep-01b-resume.md",{"path":296,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":297,"sourceHtmlUrl":298},"steps-c\u002Fstep-02-select-framework.md",3016,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-c\u002Fstep-02-select-framework.md",{"path":300,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":301,"sourceHtmlUrl":302},"steps-c\u002Fstep-03-scaffold-framework.md",14572,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-c\u002Fstep-03-scaffold-framework.md",{"path":304,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":305,"sourceHtmlUrl":306},"steps-c\u002Fstep-04-docs-and-scripts.md",3060,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-c\u002Fstep-04-docs-and-scripts.md",{"path":308,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":309,"sourceHtmlUrl":310},"steps-c\u002Fstep-05-validate-and-summary.md",2508,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-c\u002Fstep-05-validate-and-summary.md",{"path":312,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":313,"sourceHtmlUrl":314},"steps-e\u002Fstep-01-assess.md",1253,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-e\u002Fstep-01-assess.md",{"path":316,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":317,"sourceHtmlUrl":318},"steps-e\u002Fstep-02-apply-edit.md",1475,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-e\u002Fstep-02-apply-edit.md",{"path":320,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":321,"sourceHtmlUrl":322},"steps-v\u002Fstep-01-validate.md",1797,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fsteps-v\u002Fstep-01-validate.md",{"path":324,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":325,"sourceHtmlUrl":326},"validation-report-20260127-095021.md",2088,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fvalidation-report-20260127-095021.md",{"path":328,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":329,"sourceHtmlUrl":330},"validation-report-20260127-102401.md",3751,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fvalidation-report-20260127-102401.md",{"path":332,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":333,"sourceHtmlUrl":334},"workflow-plan.md",519,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fworkflow-plan.md",{"path":336,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":337,"sourceHtmlUrl":338},"workflow.yaml",1715,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fbmad-testarch-framework\u002Fworkflow.yaml",[340,361,390,408,422,448],{"skillNo":341,"name":342,"nameZh":6,"description":343,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":344,"categories":345,"keywords":351,"publishedAt":360},"01M71R3M9DJTTY0ARFQ6K04NMP","gds-correct-course","Manage significant changes during sprint execution. Use when the user says \"correct course\" or \"propose sprint change\"","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.rovodev\u002Fskills\u002Fgds-correct-course\u002FSKILL.md",[346],{"categoryNo":347,"categoryName":348,"taxonomyType":349,"taxonomyTypeDesc":350},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[352,353,354,34,355,356,38,35,357,358,359],"gds correct course","course","correct","changes","change","execution","manage","sprint","2026-11-10 13:02:02",{"skillNo":362,"name":363,"nameZh":6,"description":364,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":365,"categories":366,"keywords":373,"publishedAt":360},"01M71R3GENSFD1A1XVZTTQG1KF","gds-code-review","Review code changes adversarially using parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor) with structured triage into actionable categories. Use when the user says \"run code review\" or \"review this code\"","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.rovodev\u002Fskills\u002Fgds-code-review\u002FSKILL.md",[367,370],{"categoryNo":368,"categoryName":369,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":371,"categoryName":372,"taxonomyType":349,"taxonomyTypeDesc":350},"01JBSEEDCAT000000000000030","开发工程师",[374,375,376,377,378,355,379,380,381,382,383,37,384,38,385,35,386,387,388,389],"code review","code","review","gds code review","categories","triage","review code","run","parallel","case","run code","acceptance","edge","actionable","layers","hunter",{"skillNo":391,"name":392,"nameZh":6,"description":393,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":394,"categories":395,"keywords":396,"publishedAt":360},"01M71R3DD098MQRD6F8S4GG0AW","gds-check-implementation-readiness","Verify GDD, UX, Architecture, and Epics alignment before production. Use when the user says \"check readiness\" or \"implementation readiness\"","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.rovodev\u002Fskills\u002Fgds-check-implementation-readiness\u002FSKILL.md",[],[397,398,399,400,401,402,34,403,404,405,406,38,35,407],"check","readiness","Implementation Readiness","gds check implementation readiness","implementation","check readiness","Production","ux","verify","architecture","alignment",{"skillNo":409,"name":410,"nameZh":6,"description":411,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":412,"categories":413,"keywords":414,"publishedAt":360},"01M71R3ACAA1G0NVQ330JQNJPK","gds-brainstorm-game","Facilitate game brainstorming sessions with game-specific techniques. Use when the user says \"brainstorm game\" or \"game ideas\"","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.rovodev\u002Fskills\u002Fgds-brainstorm-game\u002FSKILL.md",[],[415,416,417,34,418,37,38,35,419,420,421],"gds brainstorm game","game","brainstorm","brainstorming","techniques","sessions","ideas",{"skillNo":423,"name":424,"nameZh":6,"description":425,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":426,"categories":427,"keywords":431,"publishedAt":360},"01M71R377MJ6WJTTFARGKH3HX7","gds-agent-tech-writer","Technical documentation specialist and knowledge curator for game projects. Use when the user asks to talk to Paige or requests the Technical Writer.","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.rovodev\u002Fskills\u002Fgds-agent-tech-writer\u002FSKILL.md",[428],{"categoryNo":429,"categoryName":430,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[432,433,434,435,35,436,437,438,439,38,34,440,441,442,443,444,445,446,416,447],"gds agent tech writer","tech","writer","technical writer","technical","knowledge","for","projects","technical documentation","talk","specialist","documentation specialist","knowledge curator","requests","documentation","curator",{"skillNo":449,"name":450,"nameZh":6,"description":451,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":452,"categories":453,"keywords":455,"publishedAt":360},"01M71R34RGT2ZX3TSFA2CRT0NC","gds-agent-game-solo-dev","Elite indie game developer for rapid prototyping and solo quick-flow development. Use when the user asks to talk to Indie or requests the Game Solo Dev.","https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.rovodev\u002Fskills\u002Fgds-agent-game-solo-dev\u002FSKILL.md",[454],{"categoryNo":429,"categoryName":430,"taxonomyType":20,"taxonomyTypeDesc":21},[456,416,457,458,459,460,34,441,445,461,462,38,35,463,438,464,465],"solo","gds agent game solo dev","dev","flow","developer","RAPID","game developer","prototyping","development","quick"]