[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71K6K0PT5V89GS7JP9QC4MJ":3,"skill-same:01M71K6K0PT5V89GS7JP9QC4MJ":72},{"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":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":71},"01M71K6K0PT5V89GS7JP9QC4MJ","refactor",null,"Use when refactoring code while preserving behavior — checkpoint, extract, test, audit","KeiSeiLab\u002FKeiSeiKit","KeiSeiLab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F283315582?v=4","01M71K2EW81JRFHSGF0T844B32","KeiSei Lab","01M71K2EWXTB52KWC65E55S6M2",7,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Frefactor\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"file","extract","behavior","refactoring","goal","audit","what the","test","code","when","false","use","module","true","checkpoint","achieve","target","2026-11-10 10:12:30",false,"---\nname: refactor\ndescription: Use when refactoring code while preserving behavior — checkpoint, extract, test, audit\narguments:\n  - name: target\n    description: File or module to refactor\n    required: true\n  - name: goal\n    description: \"What the refactoring should achieve\"\n    required: false\n---\n\n# Refactor Workflow\n\n## When to use\n\n- Restructuring code that violates the Constructor Pattern (file >200 LOC, function >30 LOC, multiple responsibilities, duplicated code).\n- Safe refactoring that must preserve existing behaviour — checkpoint, tests baseline, extract, verify.\n- When `wave-audit` or `\u002Fdev-guard` flags a structural issue that requires decomposition.\n\n## Step 1: Understand Current State\n- Read target file(s) completely\n- Identify existing tests for the target\n- Run existing tests — baseline must pass\n- Document current behavior (inputs → outputs)\n\n## Step 2: Plan Refactoring\n- Identify what violates Constructor Pattern:\n  - File >200 lines → decompose\n  - Function >30 lines → extract\n  - Multiple responsibilities → split\n  - Duplicated code → single source\n  - Overlay\u002Fpatches → root formula\n- List concrete changes BEFORE making them\n\n## Step 3: Checkpoint\n- `checkpoint: before refactor $target`\n\n## Step 4: Refactor (Incremental)\n- ONE structural change at a time\n- After each change: run tests\n- If test breaks → fix immediately or revert\n- Preserve all public interfaces unless explicitly changing them\n\n## Step 5: Audit\n- Check: does refactored code follow Constructor Pattern?\n- Check: no overlay, no dead code, no orphaned imports\n- Check: SSOT — no duplicated logic\n- Check: file sizes within limits\n\n## Step 6: Final Verification\n- Run full test suite — all pass\n- Diff review: no accidental behavior changes\n- No new dependencies added without reason\n\n## Step 7: Commit\n- `refactor: \u003Cwhat was restructured and why>`\n","# Refactor Workflow\n\n## When to use\n\n- Restructuring code that violates the Constructor Pattern (file >200 LOC, function >30 LOC, multiple responsibilities, duplicated code).\n- Safe refactoring that must preserve existing behaviour — checkpoint, tests baseline, extract, verify.\n- When `wave-audit` or `\u002Fdev-guard` flags a structural issue that requires decomposition.\n\n## Step 1: Understand Current State\n- Read target file(s) completely\n- Identify existing tests for the target\n- Run existing tests — baseline must pass\n- Document current behavior (inputs → outputs)\n\n## Step 2: Plan Refactoring\n- Identify what violates Constructor Pattern:\n  - File >200 lines → decompose\n  - Function >30 lines → extract\n  - Multiple responsibilities → split\n  - Duplicated code → single source\n  - Overlay\u002Fpatches → root formula\n- List concrete changes BEFORE making them\n\n## Step 3: Checkpoint\n- `checkpoint: before refactor $target`\n\n## Step 4: Refactor (Incremental)\n- ONE structural change at a time\n- After each change: run tests\n- If test breaks → fix immediately or revert\n- Preserve all public interfaces unless explicitly changing them\n\n## Step 5: Audit\n- Check: does refactored code follow Constructor Pattern?\n- Check: no overlay, no dead code, no orphaned imports\n- Check: SSOT — no duplicated logic\n- Check: file sizes within limits\n\n## Step 6: Final Verification\n- Run full test suite — all pass\n- Diff review: no accidental behavior changes\n- No new dependencies added without reason\n\n## Step 7: Commit\n- `refactor: \u003Cwhat was restructured and why>`\n",{"name":5,"arguments":46,"description":7},[47,50],{"name":40,"required":48,"description":49},true,"File or module to refactor",{"name":28,"required":42,"description":51},"What the refactoring should achieve","main","32e85218a997294f68da27ff3dfd638196186ae5","skills\u002Frefactor",8,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit","https:\u002F\u002Fgithub.com\u002FKeiSeiLab","2026-10-11 11:17:46",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":48},[61,64,67],{"tool":62,"command":63},"npx","npx skills add KeiSeiLab\u002FKeiSeiKit --skill refactor",{"tool":65,"command":66},"bunx","bunx skills add KeiSeiLab\u002FKeiSeiKit --skill refactor",{"tool":68,"command":69},"pnpm","pnpm dlx skills add KeiSeiLab\u002FKeiSeiKit --skill refactor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Frefactor\u002FSKILL.md",[],[73,102,126,160,186,211],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":82,"publishedAt":41},"01M71K887N78V089XR5BWT0JAV","wave-audit","3-wave parallel audit — Wave 1 discovery (4 agents), Wave 2 verification (4 agents), Wave 3 cross-optimization (1 synthesizer). Each wave runs agents in parallel. Combines security review, runtime analysis, quality check, and constructor pattern into one unified workflow with evidence grading and Go\u002FNo-Go verdict.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fwave-audit\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[83,29,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],"wave audit","unified workflow","workflow","analysis","review","verification","security review","pattern","grading","go","security","parallel","evidence","runtime","quality check","discovery","Optimization","one","check",{"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":41},"01M71K85100JQS4Y10EGCTWQXW","vm-provision","End-to-end VPS provisioning — select provider → plan → provision → harden → verify (ssh-check + firewall-diff hard-gate) → handoff. 6 phases, ≥6 AskUserQuestion calls, defensive-only. Stops if either verification primitive fails.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvm-provision\u002FSKILL.md",[],[109,110,111,112,113,114,115,116,117,118,100,119,120,101,88,121,122,123,124,125],"vm","vm provision","firewall","diff","provider","select","end","calls","only","either","api","hetzner","plan","defensive","verify","intent","line",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":130,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":141,"publishedAt":41},"01M71K80ZRH2H5ES83QS97BB91","visual-explainer","Generate beautiful, self-contained HTML pages that visually explain systems, code changes, plans, and data. Use when the user asks for a diagram, architecture overview, diff review, plan review, project recap, comparison table, or any visual explanation of technical concepts. Also use proactively when you are about to render a complex ASCII table (4+ rows or 3+ columns) — present it as a styled HTML page instead.","MIT","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-explainer\u002FSKILL.md",[133,136],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":137,"categoryName":138,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[142,143,144,145,146,147,148,149,121,150,151,152,153,154,155,156,157,158,159,35],"visual","visual explainer","explainer","project","files","image","you","architecture","generate","present","concepts","table","as","view","for","ascii table","ascii","surf",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":169,"publishedAt":41},"01M71K7VSD5ZWN26QJEC4T0770","video-gen","Use when generating video from frame sequences — FFmpeg extraction, WebP\u002FAVIF conversion, sprite sheets, scroll-synced playback, video encoding\u002Ftranscoding. Covers the full pipeline from video source to web-ready frame sequence or optimized video.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-gen\u002FSKILL.md",[166],{"categoryNo":167,"categoryName":168,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[170,171,172,173,174,175,176,177,34,33,147,178,179,180,181,182,183,184,185,40],"Video","gen","video gen","ready","pipeline","default","generated","synced","conversion","directory","sequences","sequence","source","full","path","webp",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":195,"publishedAt":41},"01M71K7R88RM8ENVCRZHZSMM5T","test-matrix","Use when a project needs testing BEYOND unit tests — fuzzing, property-based, load, E2E, or mutation. Five-phase hub-and-spoke pipeline composes the right mix per language × critical path × CI target, scaffolds configs + corpus + fixtures, wires CI jobs, and defines the crash\u002Fregression triage workflow. Pure-click: every decision except intake is an AskUserQuestion.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Ftest-matrix\u002FSKILL.md",[192],{"categoryNo":193,"categoryName":194,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[31,196,197,198,40,199,145,200,174,201,202,203,204,205,206,207,208,35,209,210],"matrix","test matrix","unit","click","regression","mix","intake","testing","decision","ci","tests","e2e","mutation","load","fuzzing",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":218,"publishedAt":41},"01M71K7N3ZY9FMMH3CSE1H8K5J","test-gen","Use when generating tests for untested code — happy path, edge cases, error handling","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Ftest-gen\u002FSKILL.md",[217],{"categoryNo":193,"categoryName":194,"taxonomyType":21,"taxonomyTypeDesc":22},[219,171,31,220,40,156,37,206,221,35,33,24,32,222,223,184],"test gen","error","edge","error handling","name"]