[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71PH0MYJVS7BYSDFTZEXP3K":3,"skill-same:01M71PH0MYJVS7BYSDFTZEXP3K":96},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M71PH0MYJVS7BYSDFTZEXP3K","bmad-checkpoint-preview",null,"LLM-assisted human-in-the-loop review. Make sense of a change, focus attention where it matters, test. Use when the user says \"checkpoint\", \"human review\", or \"walk me through this change\".","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.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"preview","bmad","bmad checkpoint preview","checkpoint","make","user","it","loop review","human","focus","me","change","test","review","human review","when","loop","use","human-in-the-loop","attention","2026-11-10 13:02:02",false,"---\nname: bmad-checkpoint-preview\ndescription: 'LLM-assisted human-in-the-loop review. Make sense of a change, focus attention where it matters, test. Use when the user says \"checkpoint\", \"human review\", or \"walk me through this change\".'\n---\n\n# Checkpoint Review Workflow\n\n**Goal:** Guide a human through reviewing a change — from purpose and context into details.\n\n**Your Role:** You are assisting the user in reviewing a change.\n\n## Conventions\n\n- Bare paths (e.g. `step-01-orientation.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- `implementation_artifacts`\n- `planning_artifacts`\n- `communication_language`\n- `document_output_language`\n\n### Step 5: Greet the User\n\nGreet the user, 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## Global Step Rules (apply to every step)\n\n- **Path:line format** — Every code reference must use CWD-relative `path:line` format (no leading `\u002F`) so it is clickable in IDE-embedded terminals (e.g., `src\u002Fauth\u002Fmiddleware.ts:42`).\n- **Front-load then shut up** — Present the entire output for the current step in a single coherent message. Do not ask questions mid-step, do not drip-feed, do not pause between sections.\n- **Language** — Speak in `{communication_language}`. Write any file output in `{document_output_language}`.\n\n## FIRST STEP\n\nRead fully and follow `.\u002Fstep-01-orientation.md` to begin.\n","# Checkpoint Review Workflow\n\n**Goal:** Guide a human through reviewing a change — from purpose and context into details.\n\n**Your Role:** You are assisting the user in reviewing a change.\n\n## Conventions\n\n- Bare paths (e.g. `step-01-orientation.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- `implementation_artifacts`\n- `planning_artifacts`\n- `communication_language`\n- `document_output_language`\n\n### Step 5: Greet the User\n\nGreet the user, 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## Global Step Rules (apply to every step)\n\n- **Path:line format** — Every code reference must use CWD-relative `path:line` format (no leading `\u002F`) so it is clickable in IDE-embedded terminals (e.g., `src\u002Fauth\u002Fmiddleware.ts:42`).\n- **Front-load then shut up** — Present the entire output for the current step in a single coherent message. Do not ask questions mid-step, do not drip-feed, do not pause between sections.\n- **Language** — Speak in `{communication_language}`. Write any file output in `{document_output_language}`.\n\n## FIRST STEP\n\nRead fully and follow `.\u002Fstep-01-orientation.md` to begin.\n",{"name":5,"description":7},"main","6a38430d5c23377d52d12343bfc156063f577e1d",".agents\u002Fskills\u002Fbmad-checkpoint-preview","https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR","https:\u002F\u002Fgithub.com\u002Fjsacko","2026-06-22 14:57:27",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add jsacko\u002FOpenDFIR --skill bmad-checkpoint-preview",{"tool":56,"command":57},"bunx","bunx skills add jsacko\u002FOpenDFIR --skill bmad-checkpoint-preview",{"tool":59,"command":60},"pnpm","pnpm dlx skills add jsacko\u002FOpenDFIR --skill bmad-checkpoint-preview","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002FSKILL.md",true,[64,70,76,80,84,88,92],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"customize.toml","OTHER","其他",1616,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002Fcustomize.toml",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"generate-trail.md","REFERENCE","参考文档",1992,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002Fgenerate-trail.md",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"step-01-orientation.md",5004,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002Fstep-01-orientation.md",{"path":81,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":82,"sourceHtmlUrl":83},"step-02-walkthrough.md",4172,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002Fstep-02-walkthrough.md",{"path":85,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":86,"sourceHtmlUrl":87},"step-03-detail-pass.md",4990,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002Fstep-03-detail-pass.md",{"path":89,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":90,"sourceHtmlUrl":91},"step-04-testing.md",2698,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002Fstep-04-testing.md",{"path":93,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":94,"sourceHtmlUrl":95},"step-05-wrapup.md",1525,"https:\u002F\u002Fgithub.com\u002Fjsacko\u002FOpenDFIR\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbmad-checkpoint-preview\u002Fstep-05-wrapup.md",[97,127,148,167,188,201],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":108,"publishedAt":39},"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",[103],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[109,110,111,112,113,114,115,116,36,34,117,118,119,120,121,122,123,124,125,126],"agent tonin","ideas","senior security","dfir","incident","challenge","tests","design","product design","automation","incident response","soc","design partner","requests","product","senior","strategist","security",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":134,"publishedAt":39},"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",[133],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},[135,136,137,20,138,122,24,139,140,141,142,143,144,34,145,36,146,147],"builder","workflow","workflow builder","bmad workflow builder","a skill","quality","build","analyze","check","convert","workflows","quality check","modify",{"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":159,"publishedAt":39},"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",[154],{"categoryNo":155,"categoryName":156,"taxonomyType":157,"taxonomyTypeDesc":158},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[160,161,20,162,163,164,36,34,165,166,24],"validate","bmad validate prd","prd","validate prd","standards","run","validation",{"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":176,"publishedAt":39},"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",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000021","资料检索与研究",[177,178,179,20,180,181,182,183,36,34,184,185,186,187,24],"technical research","bmad technical research","technical","research","conduct","do","produce","architecture","to do","research report","report",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":194,"publishedAt":39},"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",[],[195,20,196,197,198,24,143,199,34,36,200],"status","bmad sprint status","sprint","sprint status","summarize","show",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":39},"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",[],[197,208,209,20,210,195,24,211,212,165,213,198,214,34,36],"bmad sprint planning","planning","sprint planning","sprint plan","tracking","generate","plan"]