[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FPSMPNFK1B65MFRXZCW5DV":3,"skill-same:01M6FPSMPNFK1B65MFRXZCW5DV":182},{"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":27,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6FPSMPNFK1B65MFRXZCW5DV","bmad-teach-me-testing",null,"Teach testing progressively through structured sessions. Use when user says \"lets learn testing\" or \"I want to study test practices\"","reformlab\u002FReformLab","reformlab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F264161760?v=4","01M6CVRNMTPJRX8QX0P5J8NRZ6","01M6CVRNS5KTS18YC3AZHP1BZ3",1,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40],"testing","teach","teach me","bmad teach me testing","me","bmad","test","sessions","learn","user","use","study","structured","2026-11-10 10:12:30",false,"---\nname: bmad-teach-me-testing\ndescription: 'Teach testing progressively through structured sessions. Use when user says \"lets learn testing\" or \"I want to study test practices\"'\n---\n\n# Teach Me Testing — TEA Academy\n\n**Goal:** Provide self-paced, multi-session learning that teaches testing fundamentals through advanced practices, scalable to entire teams without requiring instructor time.\n\n**Role:** In addition to your name, communication_style, and persona, you are also a Master Test Architect and Teaching Guide collaborating with learners at all levels. This is a partnership, not a lecture. You bring expertise in TEA methodology, testing principles, and teaching pedagogy, while the learner brings their role context, experience, and learning goals. Work together to build their testing knowledge progressively.\n\n**Meta-Context:** This workflow uses continuable architecture with state persistence across sessions. Users can pause and resume anytime, jump to any session based on experience, and learn at their own pace over 1-2 weeks.\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- `project_name`\n- `communication_language`\n- `test_artifacts`\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 uses **step-file architecture** for disciplined execution:\n\n### Core Principles\n\n- **Micro-file Design**: Each step is a self-contained instruction file that is part of an overall workflow that must be followed exactly\n- **Just-In-Time Loading**: Only the current step file is in memory — never load future step files until told to do so\n- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed\n- **State Tracking**: Document progress in progress file using `stepsCompleted` array and session tracking\n- **Continuable Sessions**: Users can pause after any session and resume later with full context preserved\n- **Tri-Modal Structure**: Separate step folders for Create (steps-c\u002F), Edit (steps-e\u002F), and Validate (steps-v\u002F) modes\n\n### Step Processing Rules\n\n1. **READ COMPLETELY**: Always read the entire step file before taking any action\n2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate\n3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection\n4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)\n5. **SAVE STATE**: Update `stepsCompleted` and session tracking in progress file before loading next step\n6. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file\n\n### Critical Rules (NO EXCEPTIONS)\n\n- ? **NEVER** load multiple step files simultaneously\n- ? **ALWAYS** read entire step file before execution\n- ? **NEVER** skip steps or optimize the sequence\n- ? **ALWAYS** update progress file after each session completion\n- ? **ALWAYS** follow the exact instructions in the step file\n- ⏸️ **ALWAYS** halt at menus and wait for user input\n- ? **NEVER** create mental todo lists from future steps\n- ✅ **ALWAYS** communicate in `{communication_language}`\n\n## Initialization Sequence\n\n### 1. Mode Determination\n\n**Check if mode was specified in the command invocation:**\n\n- If user invoked with \"create\" or \"teach\" or \"learn\" or \"start\" or \"resume\" or \"continue\" → Set mode to **create**\n- If user invoked with \"validate\" or \"review\" or \"-v\" or \"--validate\" → Set mode to **validate**\n- If user invoked with \"edit\" or \"modify\" or \"-e\" or \"--edit\" → Set mode to **edit**\n\n**If mode is still unclear, ask user:**\n\n\"Welcome to TEA Academy! What would you like to do?\n\n**[C]reate** — Start learning sessions (new or continue existing progress)\n**[V]alidate** — Review workflow quality and generate validation report\n**[E]dit** — Modify workflow content or structure\n\nPlease select: [C]reate \u002F [V]alidate \u002F [E]dit\"\n\n### 2. Route to First Step\n\n**IF mode == create:**\nLoad, read the full file, and then execute `{skill-root}\u002Fsteps-c\u002Fstep-01-init.md` to begin the teaching workflow.\n\n**IF mode == validate:**\nPrompt for workflow path (if validating the workflow itself): \"Which workflow would you like to validate?\"\nThen load, read the full file, and then execute `{skill-root}\u002Fsteps-v\u002Fstep-v-01-validate.md`.\n\n**IF mode == edit:**\nPrompt for what to edit: \"What would you like to edit in the teaching workflow?\"\nThen load, read the full file, and then execute `{skill-root}\u002Fsteps-e\u002Fstep-e-01-assess-workflow.md`.\n","# Teach Me Testing — TEA Academy\n\n**Goal:** Provide self-paced, multi-session learning that teaches testing fundamentals through advanced practices, scalable to entire teams without requiring instructor time.\n\n**Role:** In addition to your name, communication_style, and persona, you are also a Master Test Architect and Teaching Guide collaborating with learners at all levels. This is a partnership, not a lecture. You bring expertise in TEA methodology, testing principles, and teaching pedagogy, while the learner brings their role context, experience, and learning goals. Work together to build their testing knowledge progressively.\n\n**Meta-Context:** This workflow uses continuable architecture with state persistence across sessions. Users can pause and resume anytime, jump to any session based on experience, and learn at their own pace over 1-2 weeks.\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- `project_name`\n- `communication_language`\n- `test_artifacts`\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 uses **step-file architecture** for disciplined execution:\n\n### Core Principles\n\n- **Micro-file Design**: Each step is a self-contained instruction file that is part of an overall workflow that must be followed exactly\n- **Just-In-Time Loading**: Only the current step file is in memory — never load future step files until told to do so\n- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed\n- **State Tracking**: Document progress in progress file using `stepsCompleted` array and session tracking\n- **Continuable Sessions**: Users can pause after any session and resume later with full context preserved\n- **Tri-Modal Structure**: Separate step folders for Create (steps-c\u002F), Edit (steps-e\u002F), and Validate (steps-v\u002F) modes\n\n### Step Processing Rules\n\n1. **READ COMPLETELY**: Always read the entire step file before taking any action\n2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate\n3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection\n4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)\n5. **SAVE STATE**: Update `stepsCompleted` and session tracking in progress file before loading next step\n6. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file\n\n### Critical Rules (NO EXCEPTIONS)\n\n- ? **NEVER** load multiple step files simultaneously\n- ? **ALWAYS** read entire step file before execution\n- ? **NEVER** skip steps or optimize the sequence\n- ? **ALWAYS** update progress file after each session completion\n- ? **ALWAYS** follow the exact instructions in the step file\n- ⏸️ **ALWAYS** halt at menus and wait for user input\n- ? **NEVER** create mental todo lists from future steps\n- ✅ **ALWAYS** communicate in `{communication_language}`\n\n## Initialization Sequence\n\n### 1. Mode Determination\n\n**Check if mode was specified in the command invocation:**\n\n- If user invoked with \"create\" or \"teach\" or \"learn\" or \"start\" or \"resume\" or \"continue\" → Set mode to **create**\n- If user invoked with \"validate\" or \"review\" or \"-v\" or \"--validate\" → Set mode to **validate**\n- If user invoked with \"edit\" or \"modify\" or \"-e\" or \"--edit\" → Set mode to **edit**\n\n**If mode is still unclear, ask user:**\n\n\"Welcome to TEA Academy! What would you like to do?\n\n**[C]reate** — Start learning sessions (new or continue existing progress)\n**[V]alidate** — Review workflow quality and generate validation report\n**[E]dit** — Modify workflow content or structure\n\nPlease select: [C]reate \u002F [V]alidate \u002F [E]dit\"\n\n### 2. Route to First Step\n\n**IF mode == create:**\nLoad, read the full file, and then execute `{skill-root}\u002Fsteps-c\u002Fstep-01-init.md` to begin the teaching workflow.\n\n**IF mode == validate:**\nPrompt for workflow path (if validating the workflow itself): \"Which workflow would you like to validate?\"\nThen load, read the full file, and then execute `{skill-root}\u002Fsteps-v\u002Fstep-v-01-validate.md`.\n\n**IF mode == edit:**\nPrompt for what to edit: \"What would you like to edit in the teaching workflow?\"\nThen load, read the full file, and then execute `{skill-root}\u002Fsteps-e\u002Fstep-e-01-assess-workflow.md`.\n",{"name":5,"description":7},"master","314a64e40d9abca764698290593908a736500b30",".claude\u002Fskills\u002Fbmad-teach-me-testing",0,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab","https:\u002F\u002Fdocs.reform-lab.eu\u002F","https:\u002F\u002Fgithub.com\u002Freformlab","https:\u002F\u002Freform-lab.eu\u002F","See who your policy actually helps","2026-05-25 03:50:07",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add reformlab\u002FReformLab --skill bmad-teach-me-testing",{"tool":62,"command":63},"bunx","bunx skills add reformlab\u002FReformLab --skill bmad-teach-me-testing",{"tool":65,"command":66},"pnpm","pnpm dlx skills add reformlab\u002FReformLab --skill bmad-teach-me-testing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002FSKILL.md",true,[70,76,82,86,90,94,98,102,106,110,114,118,122,126,130,134,138,142,146,150,154,158,162,166,170,174,178],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"checklist.md","REFERENCE","参考文档",5656,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fchecklist.md",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"customize.toml","OTHER","其他",1552,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fcustomize.toml",{"path":83,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":84,"sourceHtmlUrl":85},"data\u002Fcurriculum.yaml",4043,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fdata\u002Fcurriculum.yaml",{"path":87,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":88,"sourceHtmlUrl":89},"data\u002Fquiz-questions.yaml",8370,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fdata\u002Fquiz-questions.yaml",{"path":91,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":92,"sourceHtmlUrl":93},"data\u002Frole-paths.yaml",5305,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fdata\u002Frole-paths.yaml",{"path":95,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":96,"sourceHtmlUrl":97},"data\u002Fsession-content-map.yaml",9489,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fdata\u002Fsession-content-map.yaml",{"path":99,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":100,"sourceHtmlUrl":101},"data\u002Ftea-resources-index.yaml",20401,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fdata\u002Ftea-resources-index.yaml",{"path":103,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":104,"sourceHtmlUrl":105},"instructions.md",4396,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Finstructions.md",{"path":107,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":108,"sourceHtmlUrl":109},"steps-c\u002Fstep-01-init.md",6400,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-01-init.md",{"path":111,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":112,"sourceHtmlUrl":113},"steps-c\u002Fstep-01b-continue.md",4317,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-01b-continue.md",{"path":115,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":116,"sourceHtmlUrl":117},"steps-c\u002Fstep-02-assess.md",7377,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-02-assess.md",{"path":119,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":120,"sourceHtmlUrl":121},"steps-c\u002Fstep-03-session-menu.md",7330,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-03-session-menu.md",{"path":123,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":124,"sourceHtmlUrl":125},"steps-c\u002Fstep-04-session-01.md",15152,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-04-session-01.md",{"path":127,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":128,"sourceHtmlUrl":129},"steps-c\u002Fstep-04-session-02.md",13677,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-04-session-02.md",{"path":131,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":132,"sourceHtmlUrl":133},"steps-c\u002Fstep-04-session-03.md",7601,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-04-session-03.md",{"path":135,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":136,"sourceHtmlUrl":137},"steps-c\u002Fstep-04-session-04.md",6176,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-04-session-04.md",{"path":139,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":140,"sourceHtmlUrl":141},"steps-c\u002Fstep-04-session-05.md",5877,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-04-session-05.md",{"path":143,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":144,"sourceHtmlUrl":145},"steps-c\u002Fstep-04-session-06.md",5403,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-04-session-06.md",{"path":147,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":148,"sourceHtmlUrl":149},"steps-c\u002Fstep-04-session-07.md",7058,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-04-session-07.md",{"path":151,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":152,"sourceHtmlUrl":153},"steps-c\u002Fstep-05-completion.md",9960,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-c\u002Fstep-05-completion.md",{"path":155,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":156,"sourceHtmlUrl":157},"steps-e\u002Fstep-e-01-assess-workflow.md",3363,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-e\u002Fstep-e-01-assess-workflow.md",{"path":159,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":160,"sourceHtmlUrl":161},"steps-e\u002Fstep-e-02-apply-edits.md",3100,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-e\u002Fstep-e-02-apply-edits.md",{"path":163,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":164,"sourceHtmlUrl":165},"steps-v\u002Fstep-v-01-validate.md",6196,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fsteps-v\u002Fstep-v-01-validate.md",{"path":167,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":168,"sourceHtmlUrl":169},"templates\u002Fcertificate-template.md",2416,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Ftemplates\u002Fcertificate-template.md",{"path":171,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":172,"sourceHtmlUrl":173},"templates\u002Fprogress-template.yaml",2266,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Ftemplates\u002Fprogress-template.yaml",{"path":175,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":176,"sourceHtmlUrl":177},"templates\u002Fsession-notes-template.md",1047,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Ftemplates\u002Fsession-notes-template.md",{"path":179,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":180,"sourceHtmlUrl":181},"workflow-plan-teach-me-testing.md",33876,"https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fbmad-teach-me-testing\u002Fworkflow-plan-teach-me-testing.md",[183,208,222,244,259,274],{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":41},"01M6FQK4CGE9096SN2JRE7DA8H","bmad-assist-help","Explain how bmad-assist works in this project by inspecting the local bmad-assist config, sprint status, epics, state, runs, prompts, logs, and relevant source code. Use when the user asks how bmad-assist behaves, how it reads epics and stories, why a run resumed or failed, what files are authoritative, or to investigate bmad-assist execution in the current repo.","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F_bmad\u002Fcore\u002Fskills\u002Fbmad-assist-help\u002FSKILL.md",[],[190,33,191,192,193,194,195,196,197,198,199,200,201,202,203,38,204,205,206,207],"help","bmad assist help","config","run","investigate","code","state","logs","execution","relevant","how","why","explain","repo","files","local","project","sprint",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":214,"publishedAt":41},"01M6FQK133CMP4ZT00TW6S7TB1","bmad-fix-ci","Diagnose and fix GitHub CI failures locally. Use when the user says 'fix ci' or 'fix ci failures'.","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F_bmad\u002Fbmm\u002Fskills\u002Fbmad-fix-ci\u002FSKILL.md",[],[215,33,216,217,218,37,38,219,220,221],"bmad fix ci","ci","fix ci","fix","diagnose","fix ci failures","github",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":231,"publishedAt":41},"01M6FQJW69SATT3C9741MT2KJH","bmad-workflow-builder","Builds, converts, and analyzes workflows and skills. Use when the user requests to \"build a workflow\", \"modify a workflow\", \"quality check workflow\", \"analyze skill\", or \"convert a skill\".","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fbmad-workflow-builder\u002FSKILL.md",[228],{"categoryNo":229,"categoryName":230,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[232,233,33,234,235,236,237,238,239,240,37,38,241,242,243],"bmad workflow builder","workflow","builder","workflow builder","workflows","convert","analyze","quality","check","build","quality check","requests",{"skillNo":245,"name":246,"nameZh":6,"description":247,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":248,"categories":249,"keywords":253,"publishedAt":41},"01M6FQJQMT5GW37ANR711FCBJR","bmad-validate-prd","Validate a PRD against standards. Use when the user says \"validate this PRD\" or \"run PRD validation\"","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fbmad-validate-prd\u002FSKILL.md",[250],{"categoryNo":251,"categoryName":252,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000031","产品经理",[33,254,255,256,37,193,257,38,258],"bmad validate prd","prd","validate","validation","standards",{"skillNo":260,"name":261,"nameZh":6,"description":262,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":263,"categories":264,"keywords":268,"publishedAt":41},"01M6FQJMCSRVGCG65DAKKGW0M1","bmad-ux-designer","ux-designer agent","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fbmad-ux-designer\u002FSKILL.md",[265],{"categoryNo":266,"categoryName":267,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000032","设计师",[33,269,270,271,272,273],"bmad ux designer","UX Designer","designer","bmad ux","ux",{"skillNo":275,"name":276,"nameZh":6,"description":277,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":278,"categories":279,"keywords":281,"publishedAt":41},"01M6FQJDFKBXTWMBJD29FAC8TA","bmad-testarch-trace","Generate traceability matrix and quality gate decision. Use when the user says \"lets create traceability matrix\" or \"I want to analyze test coverage\"","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fbmad-testarch-trace\u002FSKILL.md",[280],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[282,283,284,33,34,285,286,287,238,239,288,37,289,38,290,291,292],"trace","bmad testarch","bmad testarch trace","quality gate","create","generate","decision","coverage","test coverage","gate","traceability"]