[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71PTVFCQA7G1AJFST4076RV":3,"skill-same:01M71PTVFCQA7G1AJFST4076RV":118},{"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":18,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":14,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M71PTVFCQA7G1AJFST4076RV","bmad-module-builder",null,"Plans, creates, and validates BMad modules. Use when the user requests to 'ideate module', 'plan a module', 'create module', 'build a module', or 'validate module'.","jsacko\u002FOpenDFIR","jsacko","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F63580474?v=4","01M71PG17HH9PJ0ME3103K2MF5","Julien Sacko","01M71PG188SHJ0DBAYX85237WG",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"builder","module","bmad module builder","bmad","modules","create","plan","requests","build","validate","create module","plans","use","ideate","when","user","2026-11-10 13:02:02",false,"---\nname: bmad-module-builder\ndescription: Plans, creates, and validates BMad modules. Use when the user requests to 'ideate module', 'plan a module', 'create module', 'build a module', or 'validate module'.\n---\n\n# BMad Module Builder\n\n## Overview\n\nThis skill helps you bring BMad modules to life — from the first spark of an idea to a fully scaffolded, installable module. It offers three paths:\n\n- **Ideate Module (IM)** — A creative brainstorming session that helps you imagine what your module could be, decide on the right architecture (agent vs. workflow vs. both), and produce a detailed plan document. The plan then guides you through building each piece with the Agent Builder and Workflow Builder.\n- **Create Module (CM)** — Takes an existing folder of built skills (or a single skill) and scaffolds the module infrastructure that makes it installable. For multi-skill modules, generates a dedicated `-setup` skill. For single skills, embeds self-registration directly into the skill. Supports `--headless` \u002F `-H`.\n- **Validate Module (VM)** — Checks that a module's structure is complete and correct — every skill has its capabilities registered, entries are accurate and well-crafted, and structural integrity is sound. Handles both multi-skill and standalone modules. Supports `--headless` \u002F `-H`.\n\n**Args:** Accepts `--headless` \u002F `-H` for CM and VM paths, an initial description for IM, or a path to a skills folder or single SKILL.md file for CM\u002FVM.\n\n## On Activation\n\nLoad available config from `{project-root}\u002F_bmad\u002Fconfig.yaml` and `{project-root}\u002F_bmad\u002Fconfig.user.yaml` (root level and `bmb` section). If neither exists, fall back to `{project-root}\u002F_bmad\u002Fbmb\u002Fconfig.yaml` (legacy per-module format). If still missing, let the user know `bmad-builder-setup` can configure the module at any time. Use sensible defaults for anything not configured.\n\nDetect user's intent:\n\n- **Ideate \u002F Plan** keywords or no path argument → Load `.\u002Freferences\u002Fideate-module.md`\n- **Create \u002F Scaffold** keywords, a folder path, or a path to a single SKILL.md file → Load `.\u002Freferences\u002Fcreate-module.md`\n- **Validate \u002F Check** keywords → Load `.\u002Freferences\u002Fvalidate-module.md`\n- **Unclear** → Present options:\n  - **Ideate Module (IM)** — \"I have an idea for a module and want to brainstorm and plan it\"\n  - **Create Module (CM)** — \"I've already built my skills and want to package them as a module\"\n  - **Validate Module (VM)** — \"I want to check that my module's setup skill is complete and correct\"\n\nIf `--headless` or `-H` is passed, route to CM with headless mode.\n","# BMad Module Builder\n\n## Overview\n\nThis skill helps you bring BMad modules to life — from the first spark of an idea to a fully scaffolded, installable module. It offers three paths:\n\n- **Ideate Module (IM)** — A creative brainstorming session that helps you imagine what your module could be, decide on the right architecture (agent vs. workflow vs. both), and produce a detailed plan document. The plan then guides you through building each piece with the Agent Builder and Workflow Builder.\n- **Create Module (CM)** — Takes an existing folder of built skills (or a single skill) and scaffolds the module infrastructure that makes it installable. For multi-skill modules, generates a dedicated `-setup` skill. For single skills, embeds self-registration directly into the skill. Supports `--headless` \u002F `-H`.\n- **Validate Module (VM)** — Checks that a module's structure is complete and correct — every skill has its capabilities registered, entries are accurate and well-crafted, and structural integrity is sound. Handles both multi-skill and standalone modules. Supports `--headless` \u002F `-H`.\n\n**Args:** Accepts `--headless` \u002F `-H` for CM and VM paths, an initial description for IM, or a path to a skills folder or single SKILL.md file for CM\u002FVM.\n\n## On Activation\n\nLoad available config from `{project-root}\u002F_bmad\u002Fconfig.yaml` and `{project-root}\u002F_bmad\u002Fconfig.user.yaml` (root level and `bmb` section). If neither exists, fall back to `{project-root}\u002F_bmad\u002Fbmb\u002Fconfig.yaml` (legacy per-module format). If still missing, let the user know `bmad-builder-setup` can configure the module at any time. Use sensible defaults for anything not configured.\n\nDetect user's intent:\n\n- **Ideate \u002F Plan** keywords or no path argument → Load `.\u002Freferences\u002Fideate-module.md`\n- **Create \u002F Scaffold** keywords, a folder path, or a path to a single SKILL.md file → Load `.\u002Freferences\u002Fcreate-module.md`\n- **Validate \u002F Check** keywords → Load `.\u002Freferences\u002Fvalidate-module.md`\n- **Unclear** → Present options:\n  - **Ideate Module (IM)** — \"I have an idea for a module and want to brainstorm and plan it\"\n  - **Create Module (CM)** — \"I've already built my skills and want to package them as a module\"\n  - **Validate Module (VM)** — \"I want to check that my module's setup skill is complete and correct\"\n\nIf `--headless` or `-H` is passed, route to CM with headless mode.\n",{"name":5,"description":7},"main","6a38430d5c23377d52d12343bfc156063f577e1d",".continue\u002Fskills\u002Fbmad-module-builder","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR","https:\u002F\u002Fgithub.com\u002Fjsacko","2026-06-22 14:57:27",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add jsacko\u002FOpenDFIR --skill bmad-module-builder",{"tool":52,"command":53},"bunx","bunx skills add jsacko\u002FOpenDFIR --skill bmad-module-builder",{"tool":55,"command":56},"pnpm","pnpm dlx skills add jsacko\u002FOpenDFIR --skill bmad-module-builder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002FSKILL.md",true,[60,66,72,76,80,86,90,94,98,102,106,110,114],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"assets\u002Fmodule-plan-template.md","ASSET","资产文件",4355,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fassets\u002Fmodule-plan-template.md",{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"assets\u002Fstandalone-module-template\u002Fmerge-config.py","SCRIPT","脚本",14139,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fassets\u002Fstandalone-module-template\u002Fmerge-config.py",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"assets\u002Fstandalone-module-template\u002Fmerge-help-csv.py",6607,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fassets\u002Fstandalone-module-template\u002Fmerge-help-csv.py",{"path":77,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":78,"sourceHtmlUrl":79},"assets\u002Fstandalone-module-template\u002Fmodule-setup.md",6098,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fassets\u002Fstandalone-module-template\u002Fmodule-setup.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fcreate-module.md","REFERENCE","参考文档",17639,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Freferences\u002Fcreate-module.md",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fideate-module.md",18878,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Freferences\u002Fideate-module.md",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fvalidate-module.md",5455,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Freferences\u002Fvalidate-module.md",{"path":95,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Fscaffold-setup-skill.py",3961,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fscripts\u002Fscaffold-setup-skill.py",{"path":99,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Fscaffold-standalone-module.py",6125,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fscripts\u002Fscaffold-standalone-module.py",{"path":103,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":104,"sourceHtmlUrl":105},"scripts\u002Ftests\u002Ftest-scaffold-setup-skill.py",8111,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fscripts\u002Ftests\u002Ftest-scaffold-setup-skill.py",{"path":107,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":108,"sourceHtmlUrl":109},"scripts\u002Ftests\u002Ftest-scaffold-standalone-module.py",9537,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fscripts\u002Ftests\u002Ftest-scaffold-standalone-module.py",{"path":111,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":112,"sourceHtmlUrl":113},"scripts\u002Ftests\u002Ftest-validate-module.py",12058,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fscripts\u002Ftests\u002Ftest-validate-module.py",{"path":115,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":116,"sourceHtmlUrl":117},"scripts\u002Fvalidate-module.py",11017,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-module-builder\u002Fscripts\u002Fvalidate-module.py",[119,148,167,185,206,219],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":130,"publishedAt":35},"01M71PW68SHKJ6357YZJH4ES0E","agent-tonin","Pressure-tests incident response product design against real SOC and DFIR constraints. Use when the user asks to talk to Tonin, requests the Incident Response Strategist, or needs a senior security design partner to challenge incident response automation ideas.","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002Fskills\u002Fagent-tonin\u002FSKILL.md",[125],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[131,132,133,134,135,136,137,138,31,33,139,140,141,142,143,26,144,145,146,147],"agent tonin","ideas","senior security","dfir","incident","challenge","tests","design","product design","automation","incident response","soc","design partner","product","senior","strategist","security",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":35},"01M71PW3BV6P3JK7MFN31TA61D","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\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-workflow-builder\u002FSKILL.md",[154],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},[19,156,157,22,158,26,34,159,160,27,161,162,163,33,164,31,165,166],"workflow","workflow builder","bmad workflow builder","a skill","quality","analyze","check","convert","workflows","quality check","modify",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":178,"publishedAt":35},"01M71PW0ETTF8DA2C6HB77FPNX","bmad-validate-prd","Validate a PRD against standards. Use when the user says \"validate this PRD\" or \"run PRD validation\"","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-validate-prd\u002FSKILL.md",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":176,"taxonomyTypeDesc":177},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[28,179,22,180,181,182,31,33,183,184,34],"bmad validate prd","prd","validate prd","standards","run","validation",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":194,"publishedAt":35},"01M71PVY254CKN2PNAEX41CRR9","bmad-technical-research","Conduct technical research on technologies and architecture. Use when the user says they would like to do or produce a technical research report","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-technical-research\u002FSKILL.md",[191],{"categoryNo":192,"categoryName":193,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000021","资料检索与研究",[195,196,197,22,198,199,200,201,31,33,202,203,204,205,34],"technical research","bmad technical research","technical","research","conduct","do","produce","architecture","to do","research report","report",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":35},"01M71PVWCA63WBH08JHVV6WV75","bmad-sprint-status","Summarize sprint status and surface risks. Use when the user says \"check sprint status\" or \"show sprint status\"","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-sprint-status\u002FSKILL.md",[],[213,22,214,215,216,34,162,217,33,31,218],"status","bmad sprint status","sprint","sprint status","summarize","show",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":225,"publishedAt":35},"01M71PVT03ZW4PQVV5TZDNPBXH","bmad-sprint-planning","Generate sprint status tracking from epics. Use when the user says \"run sprint planning\" or \"generate sprint plan\"","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.continue\u002Fskills\u002Fbmad-sprint-planning\u002FSKILL.md",[],[215,226,227,22,228,213,34,229,230,183,231,216,25,33,31],"bmad sprint planning","planning","sprint planning","sprint plan","tracking","generate"]