[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6WZ9RSEQ1CC72WD75SYB87N":3,"skill-same:01M6WZ9RSEQ1CC72WD75SYB87N":64},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":47,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6WZ9RSEQ1CC72WD75SYB87N","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","huangjia2019\u002Fsdd-in-action","huangjia2019","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F48795276?v=4","01M6RVB2A5TS40SQTN843K74XF","Jia Huang (黄佳)","01M6RVB2DWAKV004CDR8A4QXCY",172,"MIT","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-shard-doc\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35],"shard","doc","bmad shard doc","bmad","documents","markdown","user","use","files","default","document","splits","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","7ccc24b38f7cae09897ace41ebae14780250ac86","week3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-shard-doc",60,"https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action","https:\u002F\u002Fgithub.com\u002Fhuangjia2019","https:\u002F\u002Fkage-ai.com","AI researcher at A*STAR | Author of Designing AI Agents (Manning) | Co-founder of ADPS","2026-08-25 16:05:09",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add huangjia2019\u002Fsdd-in-action --skill bmad-shard-doc",{"tool":56,"command":57},"bunx","bunx skills add huangjia2019\u002Fsdd-in-action --skill bmad-shard-doc",{"tool":59,"command":60},"pnpm","pnpm dlx skills add huangjia2019\u002Fsdd-in-action --skill bmad-shard-doc","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-shard-doc\u002FSKILL.md",true,[],[65,86,101,118,133,148],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":36},"01M6WZBHKBA02YT2SHSACNJR91","openspec-verify-change","Verify implementation matches change artifacts. Use when the user wants to validate that implementation is complete, correct, and coherent before archiving.","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.opencode\u002Fskills\u002Fopenspec-verify-change\u002FSKILL.md",[],[72,73,74,75,76,77,78,79,80,81,82,31,30,83,84,85],"change","openspec verify change","verify","verify change","openspec","when","validate","complete","verify implementation","coherent","implementation","correct","artifacts","cli",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":36},"01M6WZBEQRPC45MDYVPMG17X89","openspec-sync-specs","Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.opencode\u002Fskills\u002Fopenspec-sync-specs\u002FSKILL.md",[],[93,94,76,72,95,85,96,77,97,98,99,100,31,30],"openspec sync specs","sync","spec","update","changes","with","main","delta",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":36},"01M6WZBA2QKBW10Z1ZYA4K2AV9","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.opencode\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[108,76,77,82,109,79,110,111,112,98,113,114,115,30,84,116,72,85,117,31],"openspec propose","build","describe","for","ready","get","proposal","generated","tasks","design",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":36},"01M6WZB3J0FJQJ0WSW9EK6447P","openspec-onboard","Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.opencode\u002Fskills\u002Fopenspec-onboard\u002FSKILL.md",[],[125,126,76,98,127,111,79,128,129,130,131,132,85],"openspec onboard","onboard","codebase","cycle","narration","work","onboarding","workflow",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":36},"01M6WZAZX6QSAV79619M68K8N1","openspec-new-change","Start a new OpenSpec change using the experimental artifact workflow. Use when the user wants to create a new feature, fix, or modification with a structured step-by-step approach.","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.opencode\u002Fskills\u002Fopenspec-new-change\u002FSKILL.md",[],[72,76,140,141,142,31,143,144,30,145,146,132,85,147,77,98],"openspec new change","structured","artifact","new feature","fix","start","create","feature",{"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":154,"publishedAt":36},"01M6WZAX8300NEPY3T1J8FRS3C","openspec-ff-change","Fast-forward through OpenSpec artifact creation. Use when the user wants to quickly create all artifacts needed for implementation without stepping through each one individually.","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.opencode\u002Fskills\u002Fopenspec-ff-change\u002FSKILL.md",[],[72,155,76,85,77,111,156,142,82,31,30,157,84,146],"openspec ff change","creation","fast"]