[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDHCBBBDPEV7RZDWZRF2RT":3,"skill-same:01M6CDHCBBBDPEV7RZDWZRF2RT":142},{"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":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6CDHCBBBDPEV7RZDWZRF2RT","v4-best-practices",null,"Use when working with deepseek-v4-pro or deepseek-v4-flash in thinking mode on multi-step or plan-driven tasks. Provides rules to prevent stale references, unverified plan assumptions, and vague plan output.","codewhale-hq\u002FCodewhale","codewhale-hq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F326694313?v=4","01M6CDD9D70AD3631SMRJ7REW4","Codewhale","01M6CDD9H0VAXYCB2NGGPZC16K",41175,"MIT","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fv4-best-practices\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"best practices","v4 best practices","when","tasks","vague","mode","pro","with","output","multi","driven","deepseek","thinking","references","stale","use","Rules","flash","plan","2026-11-10 10:12:30",false,"---\nname: v4-best-practices\ndescription: Use when working with deepseek-v4-pro or deepseek-v4-flash in thinking mode on multi-step or plan-driven tasks. Provides rules to prevent stale references, unverified plan assumptions, and vague plan output.\n---\n\n# V4 Best Practices\n\nRules for multi-step V4 thinking-mode workflows. Each rule prevents a\nspecific, observable failure class.\n\n## 1. Verify references before writing\n\nBefore referencing a file path, function, or type in code or plan output,\ncall `grep_files` or `read_file` to confirm it exists in the workspace.\n\n```\n# Bad:  edit_file path=\"src\u002Fconfig\u002Floader.rs\" (assumed from memory)\n# Good: grep_files pattern=\"pub fn load_config\" → confirms src\u002Fconfig\u002Fmod.rs:42\n#        then reference src\u002Fconfig\u002Fmod.rs:42\n```\n\nFailure avoided: `edit_file` errors on non-existent paths; LSP diagnostics\non hallucinated symbols.\n\n## 2. Spawn a verifier sub-agent before multi-file execution\n\nBefore executing a plan that touches 3+ files, spawn a `deepseek-v4-flash`\nsub-agent (thinking off) to read the target files and confirm path\u002Fsymbol\nassumptions still hold.\n\n```\nagent type=\"verifier\" model=\"deepseek-v4-flash\"\n  prompt: \"Read these files and confirm: [list assumptions]. Report mismatches.\"\n```\n\nFailure avoided: multi-step edits fail partway because file structure\nchanged since the plan was drafted.\n\n## 3. Plan output must use confirmed path:line references\n\nIn plan-mode output, replace vague location pointers with `path:line`\nreferences drawn from a prior `grep_files` result.\n\n```\n# Bad:  \"Update the retry logic in the client module\"\n# Good: \"Update retry loop at crates\u002Fengine\u002Fsrc\u002Fclient.rs:187\"\n```\n\nFailure avoided: agent-mode execution cannot locate the intended edit\ntarget when plan directions are imprecise.\n","# V4 Best Practices\n\nRules for multi-step V4 thinking-mode workflows. Each rule prevents a\nspecific, observable failure class.\n\n## 1. Verify references before writing\n\nBefore referencing a file path, function, or type in code or plan output,\ncall `grep_files` or `read_file` to confirm it exists in the workspace.\n\n```\n# Bad:  edit_file path=\"src\u002Fconfig\u002Floader.rs\" (assumed from memory)\n# Good: grep_files pattern=\"pub fn load_config\" → confirms src\u002Fconfig\u002Fmod.rs:42\n#        then reference src\u002Fconfig\u002Fmod.rs:42\n```\n\nFailure avoided: `edit_file` errors on non-existent paths; LSP diagnostics\non hallucinated symbols.\n\n## 2. Spawn a verifier sub-agent before multi-file execution\n\nBefore executing a plan that touches 3+ files, spawn a `deepseek-v4-flash`\nsub-agent (thinking off) to read the target files and confirm path\u002Fsymbol\nassumptions still hold.\n\n```\nagent type=\"verifier\" model=\"deepseek-v4-flash\"\n  prompt: \"Read these files and confirm: [list assumptions]. Report mismatches.\"\n```\n\nFailure avoided: multi-step edits fail partway because file structure\nchanged since the plan was drafted.\n\n## 3. Plan output must use confirmed path:line references\n\nIn plan-mode output, replace vague location pointers with `path:line`\nreferences drawn from a prior `grep_files` result.\n\n```\n# Bad:  \"Update the retry logic in the client module\"\n# Good: \"Update retry loop at crates\u002Fengine\u002Fsrc\u002Fclient.rs:187\"\n```\n\nFailure avoided: agent-mode execution cannot locate the intended edit\ntarget when plan directions are imprecise.\n",{"name":5,"description":7},"main","654aa776d6bcb98292d4c7c5841fed871e1ba5bd","crates\u002Fskills\u002Fassets\u002Fskills\u002Fv4-best-practices",3570,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale","https:\u002F\u002Fcodewhale.net\u002F","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq","https:\u002F\u002Fcodewhale.net","Open-source coding agent for your terminal. Works with the model provider you choose.","2026-11-11 08:59:54",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add codewhale-hq\u002FCodewhale --skill v4-best-practices",{"tool":64,"command":65},"bunx","bunx skills add codewhale-hq\u002FCodewhale --skill v4-best-practices",{"tool":67,"command":68},"pnpm","pnpm dlx skills add codewhale-hq\u002FCodewhale --skill v4-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Fv4-best-practices\u002FSKILL.md",true,[72,78,82,86,90,94,98,102,106,110,114,118,122,126,130,134,138],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"examples\u002Fcontract-test-scaffold.md","REFERENCE","参考文档",4932,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Fexamples\u002Fcontract-test-scaffold.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"gate-contract.json",61166,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Fgate-contract.json",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fconvergence-report.md",8502,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fconvergence-report.md",{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fdebt-capture.md",12829,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fdebt-capture.md",{"path":91,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fdetector-census.md",3190,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fdetector-census.md",{"path":95,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fduplication-wave.md",2670,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fduplication-wave.md",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fgemini-gate.md",18929,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fgemini-gate.md",{"path":103,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Finput-acquisition.md",4511,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Finput-acquisition.md",{"path":107,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fledger-format.md",9788,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fledger-format.md",{"path":111,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fpivot-rule.md",2671,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fpivot-rule.md",{"path":115,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Fprerequisite-ladder.md",6277,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fprerequisite-ladder.md",{"path":119,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Fr2-plus-mode.md",5890,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fr2-plus-mode.md",{"path":123,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":124,"sourceHtmlUrl":125},"references\u002Fround-cap-and-structural-card.md",5400,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fround-cap-and-structural-card.md",{"path":127,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":128,"sourceHtmlUrl":129},"references\u002Fround-recipes.md",3905,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fround-recipes.md",{"path":131,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":132,"sourceHtmlUrl":133},"references\u002Ftriage-rubrics.md",3235,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Ftriage-rubrics.md",{"path":135,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":136,"sourceHtmlUrl":137},"references\u002Fverification-discipline.md",28260,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fverification-discipline.md",{"path":139,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":140,"sourceHtmlUrl":141},"references\u002Fworktree-preflight.md",3413,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Faudit-code\u002Freferences\u002Fworktree-preflight.md",[143,170,193,213,226,233],{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":43},"01M6CDJRMPR8FX1WVFP94PGDMD","gh-find-prs","Survey the open Codewhale PR and issue queue read-only: fetch each item, check it against current code, and produce one coverage and disposition matrix with cited evidence and credit owed.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-find-prs\u002FSKILL.md",[],[150,151,152,153,154,31,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169],"find","gh find prs","gh","prs","produce","read-only","matrix","codewhale","queue","issue","read","check","code","only","open","survey","pr","evidence","fetch","coverage",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":43},"01M6CDJP0ZYMQNA6AN028X7A96","gh-file-issue","Use when filing a new Codewhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-file-issue\u002FSKILL.md",[176],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[178,152,179,180,159,181,182,183,26,184,185,186,187,157,188,189,190,31,191,192,39],"file issue","file","gh file issue","milestone","idea","filing","new","labels","acceptance","actionable","bug","github issue","github","acceptance criteria","repro",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":200,"publishedAt":43},"01M6CDJJZB0G4XHWWBD12S990C","gh-close-issues","Close resolved Codewhale issues only after verifying the landed behavior: Refs #N per landing, Fixes #N only when the reporter's scenario was reproduced, closure at the release step or on the reporter's confirmation, always with a crediting comment.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-close-issues\u002FSKILL.md",[199],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[201,202,203,152,204,205,206,207,31,26,208,209,157,210,211,163,212],"gh close issues","close","issues","at","release","reporter","scenario","closure","fixes","behavior","confirmation","landing",{"skillNo":214,"name":215,"nameZh":6,"description":216,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":217,"categories":218,"keywords":220,"publishedAt":43},"01M6CDJGR688JJVTG0A1ETBJGQ","gh-assign-issues","Use to assign GitHub issues to a milestone and\u002For owners in bulk, verifying each.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-assign-issues\u002FSKILL.md",[219],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[221,152,203,222,39,190,181,223,224,225],"gh assign issues","assign","bulk","github issues","owners",{"skillNo":227,"name":228,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":229,"categories":230,"keywords":232,"publishedAt":43},"01M6CDJEBMKBAGTBG18N5YJNSE","feedback","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Ffeedback\u002FSKILL.md",[231],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[228],{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":240,"publishedAt":43},"01M6CDJBRQ86PP9XNXQMRB1CGX","cw-slice","Use before writing code for any Codewhale feature, upgrade, or refactor: find the existing owner of the behavior, bound the change to one reviewable slice, and fix the evidence bar before you start.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-slice\u002FSKILL.md",[239],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[241,242,243,244,245,246,247,248,249,157,250,210,150,251,162,39,252,253,167],"slice","cw slice","start","bar","you","Existing","upgrade","for","feature","refactor","change","writing","fix"]