[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RW59Q2M3HCFFEPFTK309QZ":3,"skill-same:01M6RW59Q2M3HCFFEPFTK309QZ":101},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6RW59Q2M3HCFFEPFTK309QZ","bmad-code-review",null,"Review code changes adversarially using parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor) with structured triage into actionable categories. Use when the user says \"run code review\" or \"review this code\"","huangjia2019\u002Fsdd-in-action","huangjia2019","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F48795276?v=4","01M6RVB2A5TS40SQTN843K74XF","Jia Huang (黄佳)","01M6RVB2DWAKV004CDR8A4QXCY",175,"MIT","https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"review","bmad","bmad code review","code review","code","hunter","when","run code","changes","layers","categories","with","actionable","case","use","parallel","review code","run","edge","acceptance","2026-11-10 10:12:30",false,"---\nname: bmad-code-review\ndescription: 'Review code changes adversarially using parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor) with structured triage into actionable categories. Use when the user says \"run code review\" or \"review this code\"'\n---\n\n# Code Review Workflow\n\n**Goal:** Review code changes adversarially using parallel review layers and structured triage.\n\n**Your Role:** You are an elite code reviewer. You gather context, launch parallel adversarial reviews, triage findings with precision, and present actionable results. No noise, no filler.\n\n## Conventions\n\n- Bare paths (e.g. `checklist.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## 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\n- `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`\n- `communication_language`, `document_output_language`, `user_skill_level`\n- `date` as system-generated current datetime\n- `sprint_status` = `{implementation_artifacts}\u002Fsprint-status.yaml`\n- `project_context` = `**\u002Fproject-context.md` (load if exists)\n- CLAUDE.md \u002F memory files (load if exist)\n- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`\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- **Micro-file Design**: Each step is self-contained and followed exactly\n- **Just-In-Time Loading**: Only load the current step file\n- **Sequential Enforcement**: Complete steps in order, no skipping\n- **State Tracking**: Persist progress via in-memory variables\n- **Append-Only Building**: Build artifacts incrementally\n\n### Step Processing Rules\n\n1. **READ COMPLETELY**: Read the entire step file before acting\n2. **FOLLOW SEQUENCE**: Execute sections in order\n3. **WAIT FOR INPUT**: Halt at checkpoints and wait for human\n4. **LOAD NEXT**: When directed, read fully and follow 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** follow the exact instructions in the step file\n- **ALWAYS** halt at checkpoints and wait for human input\n\n## FIRST STEP\n\nRead fully and follow: `.\u002Fsteps\u002Fstep-01-gather-context.md`\n","# Code Review Workflow\n\n**Goal:** Review code changes adversarially using parallel review layers and structured triage.\n\n**Your Role:** You are an elite code reviewer. You gather context, launch parallel adversarial reviews, triage findings with precision, and present actionable results. No noise, no filler.\n\n## Conventions\n\n- Bare paths (e.g. `checklist.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## 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\n- `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`\n- `communication_language`, `document_output_language`, `user_skill_level`\n- `date` as system-generated current datetime\n- `sprint_status` = `{implementation_artifacts}\u002Fsprint-status.yaml`\n- `project_context` = `**\u002Fproject-context.md` (load if exists)\n- CLAUDE.md \u002F memory files (load if exist)\n- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`\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- **Micro-file Design**: Each step is self-contained and followed exactly\n- **Just-In-Time Loading**: Only load the current step file\n- **Sequential Enforcement**: Complete steps in order, no skipping\n- **State Tracking**: Persist progress via in-memory variables\n- **Append-Only Building**: Build artifacts incrementally\n\n### Step Processing Rules\n\n1. **READ COMPLETELY**: Read the entire step file before acting\n2. **FOLLOW SEQUENCE**: Execute sections in order\n3. **WAIT FOR INPUT**: Halt at checkpoints and wait for human\n4. **LOAD NEXT**: When directed, read fully and follow 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** follow the exact instructions in the step file\n- **ALWAYS** halt at checkpoints and wait for human input\n\n## FIRST STEP\n\nRead fully and follow: `.\u002Fsteps\u002Fstep-01-gather-context.md`\n",{"name":5,"description":7},"master","7ccc24b38f7cae09897ace41ebae14780250ac86","week3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review",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":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add huangjia2019\u002Fsdd-in-action --skill bmad-code-review",{"tool":69,"command":70},"bunx","bunx skills add huangjia2019\u002Fsdd-in-action --skill bmad-code-review",{"tool":72,"command":73},"pnpm","pnpm dlx skills add huangjia2019\u002Fsdd-in-action --skill bmad-code-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review\u002FSKILL.md",true,[77,83,89,93,97],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"customize.toml","OTHER","其他",1614,"https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review\u002Fcustomize.toml",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"steps\u002Fstep-01-gather-context.md","REFERENCE","参考文档",6481,"https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review\u002Fsteps\u002Fstep-01-gather-context.md",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"steps\u002Fstep-02-review.md",2227,"https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review\u002Fsteps\u002Fstep-02-review.md",{"path":94,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":95,"sourceHtmlUrl":96},"steps\u002Fstep-03-triage.md",2692,"https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review\u002Fsteps\u002Fstep-03-triage.md",{"path":98,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":99,"sourceHtmlUrl":100},"steps\u002Fstep-04-present.md",6322,"https:\u002F\u002Fgithub.com\u002Fhuangjia2019\u002Fsdd-in-action\u002Fblob\u002Fmaster\u002Fweek3\u002Fcode\u002F.claude\u002Fskills\u002Fbmad-code-review\u002Fsteps\u002Fstep-04-present.md",[102,123,136,153,168,183],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":49},"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",[],[109,110,111,112,113,35,114,115,116,117,118,43,119,120,121,122],"change","openspec verify change","verify","verify change","openspec","validate","complete","verify implementation","coherent","implementation","user","correct","artifacts","cli",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":49},"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",[],[130,131,113,109,132,122,133,35,37,40,134,135,43,119],"openspec sync specs","sync","spec","update","main","delta",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":49},"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",[],[143,113,35,118,144,115,145,146,147,40,148,149,150,119,121,151,109,122,152,43],"openspec propose","build","describe","for","ready","get","proposal","generated","tasks","design",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":49},"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",[],[160,161,113,40,162,146,115,163,164,165,166,167,122],"openspec onboard","onboard","codebase","cycle","narration","work","onboarding","workflow",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":49},"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",[],[109,113,175,176,177,43,178,179,119,180,181,167,122,182,35,40],"openspec new change","structured","artifact","new feature","fix","start","create","feature",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":49},"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",[],[109,190,113,122,35,146,191,177,118,43,119,192,121,181],"openspec ff change","creation","fast"]