[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FPD081JS1GKZXT0QYFPN7Z":3,"skill-same:01M6FPD081JS1GKZXT0QYFPN7Z":63},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6FPD081JS1GKZXT0QYFPN7Z","bmad-shard-doc",null,"Splits large markdown documents into smaller, organized files based on level 2 (default) sections. Use if the user says perform shard document","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.agents\u002Fskills\u002Fbmad-shard-doc\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33],"shard","doc","bmad shard doc","bmad","documents","markdown","user","use","files","default","document","2026-11-10 10:12:30",false,"---\nname: bmad-shard-doc\ndescription: 'Splits large markdown documents into smaller, organized files based on level 2 (default) sections. Use if the user says perform shard document'\n---\n\n# Shard Document\n\n**Goal:** Split large markdown documents into smaller, organized files based on level 2 sections using `npx @kayvan\u002Fmarkdown-tree-parser`.\n\n## CRITICAL RULES\n\n- MANDATORY: Execute ALL steps in the EXECUTION section IN EXACT ORDER\n- DO NOT skip steps or change the sequence\n- HALT immediately when halt-conditions are met\n- Each action within a step is a REQUIRED action to complete that step\n\n## EXECUTION\n\n### Step 1: Get Source Document\n\n- Ask user for the source document path if not provided already\n- Verify file exists and is accessible\n- Verify file is markdown format (.md extension)\n- If file not found or not markdown: HALT with error message\n\n### Step 2: Get Destination Folder\n\n- Determine default destination: same location as source file, folder named after source file without .md extension\n  - Example: `\u002Fpath\u002Fto\u002Farchitecture.md` --> `\u002Fpath\u002Fto\u002Farchitecture\u002F`\n- Ask user for the destination folder path (`[y]` to confirm use of default: `[suggested-path]`, else enter a new path)\n- If user accepts default: use the suggested destination path\n- If user provides custom path: use the custom destination path\n- Verify destination folder exists or can be created\n- Check write permissions for destination\n- If permission denied: HALT with error message\n\n### Step 3: Execute Sharding\n\n- Inform user that sharding is beginning\n- Execute command: `npx @kayvan\u002Fmarkdown-tree-parser explode [source-document] [destination-folder]`\n- Capture command output and any errors\n- If command fails: HALT and display error to user\n\n### Step 4: Verify Output\n\n- Check that destination folder contains sharded files\n- Verify index.md was created in destination folder\n- Count the number of files created\n- If no files created: HALT with error message\n\n### Step 5: Report Completion\n\n- Display completion report to user including:\n  - Source document path and name\n  - Destination folder path\n  - Number of section files created\n  - Confirmation that index.md was created\n  - Any tool output or warnings\n- Inform user that sharding completed successfully\n\n### Step 6: Handle Original Document\n\n> **Critical:** Keeping both the original and sharded versions defeats the purpose of sharding and can cause confusion.\n\nPresent user with options for the original document:\n\n> What would you like to do with the original document `[source-document-name]`?\n>\n> Options:\n> - `[d]` Delete - Remove the original (recommended - shards can always be recombined)\n> - `[m]` Move to archive - Move original to a backup\u002Farchive location\n> - `[k]` Keep - Leave original in place (NOT recommended - defeats sharding purpose)\n>\n> Your choice (d\u002Fm\u002Fk):\n\n#### If user selects `d` (delete)\n\n- Delete the original source document file\n- Confirm deletion to user: \"Original document deleted: [source-document-path]\"\n- Note: The document can be reconstructed from shards by concatenating all section files in order\n\n#### If user selects `m` (move)\n\n- Determine default archive location: same directory as source, in an `archive` subfolder\n  - Example: `\u002Fpath\u002Fto\u002Farchitecture.md` --> `\u002Fpath\u002Fto\u002Farchive\u002Farchitecture.md`\n- Ask: Archive location (`[y]` to use default: `[default-archive-path]`, or provide custom path)\n- If user accepts default: use default archive path\n- If user provides custom path: use custom archive path\n- Create archive directory if it does not exist\n- Move original document to archive location\n- Confirm move to user: \"Original document moved to: [archive-path]\"\n\n#### If user selects `k` (keep)\n\n- Display warning to user:\n  - Keeping both original and sharded versions is NOT recommended\n  - The discover_inputs protocol may load the wrong version\n  - Updates to one will not reflect in the other\n  - Duplicate content taking up space\n  - Consider deleting or archiving the original document\n- Confirm user choice: \"Original document kept at: [source-document-path]\"\n\n## HALT CONDITIONS\n\n- HALT if npx command fails or produces no output files\n","# Shard Document\n\n**Goal:** Split large markdown documents into smaller, organized files based on level 2 sections using `npx @kayvan\u002Fmarkdown-tree-parser`.\n\n## CRITICAL RULES\n\n- MANDATORY: Execute ALL steps in the EXECUTION section IN EXACT ORDER\n- DO NOT skip steps or change the sequence\n- HALT immediately when halt-conditions are met\n- Each action within a step is a REQUIRED action to complete that step\n\n## EXECUTION\n\n### Step 1: Get Source Document\n\n- Ask user for the source document path if not provided already\n- Verify file exists and is accessible\n- Verify file is markdown format (.md extension)\n- If file not found or not markdown: HALT with error message\n\n### Step 2: Get Destination Folder\n\n- Determine default destination: same location as source file, folder named after source file without .md extension\n  - Example: `\u002Fpath\u002Fto\u002Farchitecture.md` --> `\u002Fpath\u002Fto\u002Farchitecture\u002F`\n- Ask user for the destination folder path (`[y]` to confirm use of default: `[suggested-path]`, else enter a new path)\n- If user accepts default: use the suggested destination path\n- If user provides custom path: use the custom destination path\n- Verify destination folder exists or can be created\n- Check write permissions for destination\n- If permission denied: HALT with error message\n\n### Step 3: Execute Sharding\n\n- Inform user that sharding is beginning\n- Execute command: `npx @kayvan\u002Fmarkdown-tree-parser explode [source-document] [destination-folder]`\n- Capture command output and any errors\n- If command fails: HALT and display error to user\n\n### Step 4: Verify Output\n\n- Check that destination folder contains sharded files\n- Verify index.md was created in destination folder\n- Count the number of files created\n- If no files created: HALT with error message\n\n### Step 5: Report Completion\n\n- Display completion report to user including:\n  - Source document path and name\n  - Destination folder path\n  - Number of section files created\n  - Confirmation that index.md was created\n  - Any tool output or warnings\n- Inform user that sharding completed successfully\n\n### Step 6: Handle Original Document\n\n> **Critical:** Keeping both the original and sharded versions defeats the purpose of sharding and can cause confusion.\n\nPresent user with options for the original document:\n\n> What would you like to do with the original document `[source-document-name]`?\n>\n> Options:\n> - `[d]` Delete - Remove the original (recommended - shards can always be recombined)\n> - `[m]` Move to archive - Move original to a backup\u002Farchive location\n> - `[k]` Keep - Leave original in place (NOT recommended - defeats sharding purpose)\n>\n> Your choice (d\u002Fm\u002Fk):\n\n#### If user selects `d` (delete)\n\n- Delete the original source document file\n- Confirm deletion to user: \"Original document deleted: [source-document-path]\"\n- Note: The document can be reconstructed from shards by concatenating all section files in order\n\n#### If user selects `m` (move)\n\n- Determine default archive location: same directory as source, in an `archive` subfolder\n  - Example: `\u002Fpath\u002Fto\u002Farchitecture.md` --> `\u002Fpath\u002Fto\u002Farchive\u002Farchitecture.md`\n- Ask: Archive location (`[y]` to use default: `[default-archive-path]`, or provide custom path)\n- If user accepts default: use default archive path\n- If user provides custom path: use custom archive path\n- Create archive directory if it does not exist\n- Move original document to archive location\n- Confirm move to user: \"Original document moved to: [archive-path]\"\n\n#### If user selects `k` (keep)\n\n- Display warning to user:\n  - Keeping both original and sharded versions is NOT recommended\n  - The discover_inputs protocol may load the wrong version\n  - Updates to one will not reflect in the other\n  - Duplicate content taking up space\n  - Consider deleting or archiving the original document\n- Confirm user choice: \"Original document kept at: [source-document-path]\"\n\n## HALT CONDITIONS\n\n- HALT if npx command fails or produces no output files\n",{"name":5,"description":7},"master","314a64e40d9abca764698290593908a736500b30",".agents\u002Fskills\u002Fbmad-shard-doc",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":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add reformlab\u002FReformLab --skill bmad-shard-doc",{"tool":55,"command":56},"bunx","bunx skills add reformlab\u002FReformLab --skill bmad-shard-doc",{"tool":58,"command":59},"pnpm","pnpm dlx skills add reformlab\u002FReformLab --skill bmad-shard-doc","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fbmad-shard-doc\u002FSKILL.md",true,[],[64,88,102,124,141,156],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":34},"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",[],[71,26,72,73,74,75,76,77,78,79,80,81,82,83,84,30,31,85,86,87],"help","bmad assist help","config","run","investigate","code","state","logs","execution","relevant","how","why","explain","repo","local","project","sprint",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":34},"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",[],[95,26,96,97,98,29,30,99,100,101],"bmad fix ci","ci","fix ci","fix","diagnose","fix ci failures","github",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":111,"publishedAt":34},"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",[108],{"categoryNo":109,"categoryName":110,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[112,113,26,114,115,116,117,118,119,120,29,30,121,122,123],"bmad workflow builder","workflow","builder","workflow builder","workflows","convert","analyze","quality","check","build","quality check","requests",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":135,"publishedAt":34},"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",[130],{"categoryNo":131,"categoryName":132,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[26,136,137,138,29,74,139,30,140],"bmad validate prd","prd","validate","validation","standards",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":150,"publishedAt":34},"01M6FQJMCSRVGCG65DAKKGW0M1","bmad-ux-designer","ux-designer agent","https:\u002F\u002Fgithub.com\u002Freformlab\u002FReformLab\u002Fblob\u002Fmaster\u002F.opencode\u002Fskills\u002Fbmad-ux-designer\u002FSKILL.md",[147],{"categoryNo":148,"categoryName":149,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000032","设计师",[26,151,152,153,154,155],"bmad ux designer","UX Designer","designer","bmad ux","ux",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":165,"publishedAt":34},"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",[162],{"categoryNo":163,"categoryName":164,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",[166,167,168,26,169,170,171,172,118,119,173,29,174,30,175,176,177],"trace","bmad testarch","bmad testarch trace","test","quality gate","create","generate","decision","coverage","test coverage","gate","traceability"]