[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71KC9Q945ZN2VC45SBN8JPE":3,"skill-same:01M71KC9Q945ZN2VC45SBN8JPE":104},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M71KC9Q945ZN2VC45SBN8JPE","bmad-technical-research",null,"Conduct technical research on technologies and architecture. Use when the user says they would like to do or produce a technical research report","mugsun\u002Fcurdx-flow","mugsun","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F100790155?v=4","01M6KJSAN2W4WRPDFBKTJTDDQ2","Mugsun","01M71K65VJXA4C1KPJAHZ6ZVHC",4,"MIT","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"technical research","bmad technical research","technical","bmad","research","when","architecture","conduct","do","produce","use","to do","research report","report","user","2026-11-10 10:12:30",false,"---\nname: bmad-technical-research\ndescription: 'Conduct technical research on technologies and architecture. Use when the user says they would like to do or produce a technical research report'\n---\n\n# Technical Research Workflow\n\n**Goal:** Conduct comprehensive technical research using current web data and verified sources to produce complete research documents with compelling narratives and proper citations.\n\n**Your Role:** You are a technical research facilitator working with an expert partner. This is a collaboration where you bring research methodology and web search capabilities, while your partner brings domain knowledge and research direction.\n\n## Conventions\n\n- Bare paths (e.g. `technical-steps\u002Fstep-01-init.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\n## PREREQUISITE\n\n**⛔ Web search required.** If unavailable, abort and tell the user.\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 under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.\n\n### Step 4: Load Config\n\nLoad config from `{project-root}\u002F_bmad\u002Fbmm\u002Fconfig.yaml` and resolve:\n- Use `{user_name}` for greeting\n- Use `{communication_language}` for all communications\n- Use `{document_output_language}` for output documents\n- Use `{planning_artifacts}` for output location and artifact scanning\n- Use `{project_knowledge}` for additional context scanning\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## QUICK TOPIC DISCOVERY\n\n\"Welcome {{user_name}}! Let's get started with your **technical research**.\n\n**What technology, tool, or technical area do you want to research?**\n\nFor example:\n- 'React vs Vue for large-scale applications'\n- 'GraphQL vs REST API architectures'\n- 'Serverless deployment options for Node.js'\n- 'Or any other technical topic you have in mind...'\"\n\n### Topic Clarification\n\nBased on the user's topic, briefly clarify:\n1. **Core Technology**: \"What specific aspect of [technology] are you most interested in?\"\n2. **Research Goals**: \"What do you hope to achieve with this research?\"\n3. **Scope**: \"Should we focus broadly or dive deep into specific aspects?\"\n\n## ROUTE TO TECHNICAL RESEARCH STEPS\n\nAfter gathering the topic and goals:\n\n1. Set `research_type = \"technical\"`\n2. Set `research_topic = [discovered topic from discussion]`\n3. Set `research_goals = [discovered goals from discussion]`\n4. Derive `research_topic_slug` from `{{research_topic}}`: lowercase, trim, replace whitespace with `-`, strip path separators (`\u002F`, `\\`), `..`, and any character that is not alphanumeric, `-`, or `_`. Collapse repeated `-` and strip leading\u002Ftrailing `-`. If the result is empty, use `untitled`.\n5. Create the starter output file: `{planning_artifacts}\u002Fresearch\u002Ftechnical-{{research_topic_slug}}-research-{{date}}.md` with exact copy of the `.\u002Fresearch.template.md` contents\n6. Load: `.\u002Ftechnical-steps\u002Fstep-01-init.md` with topic context\n\n**Note:** The discovered topic from the discussion should be passed to the initialization step, so it doesn't need to ask \"What do you want to research?\" again - it can focus on refining the scope for technical research.\n\n**✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`**\n","# Technical Research Workflow\n\n**Goal:** Conduct comprehensive technical research using current web data and verified sources to produce complete research documents with compelling narratives and proper citations.\n\n**Your Role:** You are a technical research facilitator working with an expert partner. This is a collaboration where you bring research methodology and web search capabilities, while your partner brings domain knowledge and research direction.\n\n## Conventions\n\n- Bare paths (e.g. `technical-steps\u002Fstep-01-init.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\n## PREREQUISITE\n\n**⛔ Web search required.** If unavailable, abort and tell the user.\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 under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.\n\n### Step 4: Load Config\n\nLoad config from `{project-root}\u002F_bmad\u002Fbmm\u002Fconfig.yaml` and resolve:\n- Use `{user_name}` for greeting\n- Use `{communication_language}` for all communications\n- Use `{document_output_language}` for output documents\n- Use `{planning_artifacts}` for output location and artifact scanning\n- Use `{project_knowledge}` for additional context scanning\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## QUICK TOPIC DISCOVERY\n\n\"Welcome {{user_name}}! Let's get started with your **technical research**.\n\n**What technology, tool, or technical area do you want to research?**\n\nFor example:\n- 'React vs Vue for large-scale applications'\n- 'GraphQL vs REST API architectures'\n- 'Serverless deployment options for Node.js'\n- 'Or any other technical topic you have in mind...'\"\n\n### Topic Clarification\n\nBased on the user's topic, briefly clarify:\n1. **Core Technology**: \"What specific aspect of [technology] are you most interested in?\"\n2. **Research Goals**: \"What do you hope to achieve with this research?\"\n3. **Scope**: \"Should we focus broadly or dive deep into specific aspects?\"\n\n## ROUTE TO TECHNICAL RESEARCH STEPS\n\nAfter gathering the topic and goals:\n\n1. Set `research_type = \"technical\"`\n2. Set `research_topic = [discovered topic from discussion]`\n3. Set `research_goals = [discovered goals from discussion]`\n4. Derive `research_topic_slug` from `{{research_topic}}`: lowercase, trim, replace whitespace with `-`, strip path separators (`\u002F`, `\\`), `..`, and any character that is not alphanumeric, `-`, or `_`. Collapse repeated `-` and strip leading\u002Ftrailing `-`. If the result is empty, use `untitled`.\n5. Create the starter output file: `{planning_artifacts}\u002Fresearch\u002Ftechnical-{{research_topic_slug}}-research-{{date}}.md` with exact copy of the `.\u002Fresearch.template.md` contents\n6. Load: `.\u002Ftechnical-steps\u002Fstep-01-init.md` with topic context\n\n**Note:** The discovered topic from the discussion should be passed to the initialization step, so it doesn't need to ask \"What do you want to research?\" again - it can focus on refining the scope for technical research.\n\n**✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`**\n",{"name":5,"description":7},"main","7357746802ae7a84cafa93b9dbffd138817b0290",".claude\u002Fskills\u002Fbmad-technical-research",0,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow","https:\u002F\u002Fcurdx.org","https:\u002F\u002Fgithub.com\u002Fmugsun","📮 bydongxin@gmail.com","🧑‍💻 AI Builder & Software Engineer\r\n🚀 Turning ideas into software.          \r\n\r\n","2026-08-19 15:19:29",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add mugsun\u002Fcurdx-flow --skill bmad-technical-research",{"tool":60,"command":61},"bunx","bunx skills add mugsun\u002Fcurdx-flow --skill bmad-technical-research",{"tool":63,"command":64},"pnpm","pnpm dlx skills add mugsun\u002Fcurdx-flow --skill bmad-technical-research","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002FSKILL.md",true,[68,74,80,84,88,92,96,100],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"customize.toml","OTHER","其他",1674,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Fcustomize.toml",{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"research.template.md","REFERENCE","参考文档",581,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Fresearch.template.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"technical-steps\u002Fstep-01-init.md",5581,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Ftechnical-steps\u002Fstep-01-init.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"technical-steps\u002Fstep-02-technical-overview.md",9447,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Ftechnical-steps\u002Fstep-02-technical-overview.md",{"path":89,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":90,"sourceHtmlUrl":91},"technical-steps\u002Fstep-03-integration-patterns.md",9995,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Ftechnical-steps\u002Fstep-03-integration-patterns.md",{"path":93,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":94,"sourceHtmlUrl":95},"technical-steps\u002Fstep-04-architectural-patterns.md",7212,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Ftechnical-steps\u002Fstep-04-architectural-patterns.md",{"path":97,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":98,"sourceHtmlUrl":99},"technical-steps\u002Fstep-05-implementation-research.md",7774,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Ftechnical-steps\u002Fstep-05-implementation-research.md",{"path":101,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":102,"sourceHtmlUrl":103},"technical-steps\u002Fstep-06-research-synthesis.md",21304,"https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fbmad-technical-research\u002Ftechnical-steps\u002Fstep-06-research-synthesis.md",[105,116,134,151,165,176],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":114,"publishedAt":39},"01M71KDR5EJP6G4VWFCHNJ35PT","help","Fixture help skill","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fruntime-readiness\u002Fclaude-code-plugin-like\u002Fskills\u002Fhelp\u002FSKILL.md",[111],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[107,115],"fixture",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":39},"01M71KDNAVB000W3MZB1W7CMD8","verification-before-completion","Use when checking fixes, phase exits, completion evidence, or mock-heavy tests before claiming success.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[123,124,125,126,29,127,128,129,130,131,34,132,133],"verification","verification before completion","only","false","tasks","phase","evidence","fixes","tests","mock","state",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":39},"01M71KDKFE975GFYRDC21H1NEE","triage","Use when a large feature should be decomposed into dependency-aware specs.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Ftriage\u002FSKILL.md",[140],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},[136,142,143,144,145,146,147,148,149,29,34,150],"goal","true","feature","write","read","dependency","name","Bash","EPIC",{"skillNo":152,"name":127,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":157,"publishedAt":39},"01M71KDH7XFQJPKYZ0H9JDNSA5","Use when a spec has design.md and needs implementation tasks.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Ftasks\u002FSKILL.md",[156],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},[127,158,159,148,160,34,161,162,163,29,149,146,145,164,143],"implementation","spec","task","standard","design","auto","edit",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":39},"01M71KDEV9G51MCXDQWPJH7QST","switch","Use when changing the active spec by name or path.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fswitch\u002FSKILL.md",[171],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},[167,149,173,143,34,29,174,148,146,159,145,175],"by name","active","path",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":183,"publishedAt":39},"01M71KDDJFRV09YZ08B3WJ39SC","status","Use when inspecting curdx-flow specs, active state, progress, or index status.","https:\u002F\u002Fgithub.com\u002Fmugsun\u002Fcurdx-flow\u002Fblob\u002Fmain\u002Fplugins\u002Fcurdx-flow\u002Fskills\u002Fstatus\u002FSKILL.md",[182],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},[178,143,34,29,149,133,184,174,185,146,186,187],"progress","update","flow","index"]