[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71E8RB3SS00PAZHWK2P20D3":3,"skill-same:01M71E8RB3SS00PAZHWK2P20D3":73},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M71E8RB3SS00PAZHWK2P20D3","code-patterns",null,"Check the Core and repo-local pattern libraries for known solutions to recurring design problems before inventing a new approach. Triggered when facing type-safety issues, validation questions, or boundary design pressure.","oaknational\u002Foak-python-starter","oaknational","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F63889701?v=4","01M71E8KA6A3R1XEZH7NVDPNYK","Oak National Academy","01M71E8KAY58HENMJWSX4DCBP2",0,"MIT","https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fcode-patterns\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"code","patterns","code patterns","validation","questions","boundary","type-safety","solutions","libraries","type","check","when","new","design","local","issues","repo","for","core","recurring","2026-11-10 10:12:30",false,"---\nname: code-patterns\nclassification: passive\ndescription: >-\n  Check the Core and repo-local pattern libraries for known solutions to\n  recurring design problems before inventing a new approach. Triggered when\n  facing type-safety issues, validation questions, or boundary design pressure.\n---\n\n# Code Patterns\n\nWhen you identify a design problem -- especially type-safety issues,\nvalidation questions, or boundary design pressure -- check both\n`.agent\u002Fpractice-core\u002Fpatterns\u002F` and `.agent\u002Fmemory\u002Factive\u002Fpatterns\u002F`\nbefore inventing a new approach.\n\n## When to Use\n\n- You are about to write a type ignore or cast\n- You are designing a validation boundary\n- You see a runtime conversion that mirrors a compile-time type\n- You encounter a function returning a claimed type for unvalidated data\n- A reviewer flags boundary pressure or type widening\n\n## Steps\n\n1. Read `.agent\u002Fpractice-core\u002Fpatterns\u002FREADME.md` to see whether a portable\n   general pattern already exists.\n2. Read `.agent\u002Fmemory\u002Factive\u002Fpatterns\u002FREADME.md` to discover repo-local\n   patterns.\n3. Match the current problem against each pattern's description.\n4. If a pattern matches, read its full file and apply the approach.\n5. If no pattern matches, proceed normally -- do not force a fit.\n\n## Important\n\nThis skill is not always-active. It triggers when an engineer or agent encounters a design problem where type safety, validation, or boundary pressure is involved. It is a discovery mechanism, not a mandate.\n","# Code Patterns\n\nWhen you identify a design problem -- especially type-safety issues,\nvalidation questions, or boundary design pressure -- check both\n`.agent\u002Fpractice-core\u002Fpatterns\u002F` and `.agent\u002Fmemory\u002Factive\u002Fpatterns\u002F`\nbefore inventing a new approach.\n\n## When to Use\n\n- You are about to write a type ignore or cast\n- You are designing a validation boundary\n- You see a runtime conversion that mirrors a compile-time type\n- You encounter a function returning a claimed type for unvalidated data\n- A reviewer flags boundary pressure or type widening\n\n## Steps\n\n1. Read `.agent\u002Fpractice-core\u002Fpatterns\u002FREADME.md` to see whether a portable\n   general pattern already exists.\n2. Read `.agent\u002Fmemory\u002Factive\u002Fpatterns\u002FREADME.md` to discover repo-local\n   patterns.\n3. Match the current problem against each pattern's description.\n4. If a pattern matches, read its full file and apply the approach.\n5. If no pattern matches, proceed normally -- do not force a fit.\n\n## Important\n\nThis skill is not always-active. It triggers when an engineer or agent encounters a design problem where type safety, validation, or boundary pressure is involved. It is a discovery mechanism, not a mandate.\n",{"name":5,"description":7,"classification":49},"passive","main","11113a35c0c5be3f9a3b55397693c6de248e5ed4",".agent\u002Fskills\u002Fcode-patterns",4,"https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter","https:\u002F\u002Fgithub.com\u002Foaknational","https:\u002F\u002Fwww.thenational.academy\u002F","Creating an openly licensed, fully resourced and AI-enabled curriculum for teachers and pupils as a not for profit and independent Arm's Length Body of UK Gov","2026-11-11 12:55:56",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add oaknational\u002Foak-python-starter --skill code-patterns",{"tool":65,"command":66},"bunx","bunx skills add oaknational\u002Foak-python-starter --skill code-patterns",{"tool":68,"command":69},"pnpm","pnpm dlx skills add oaknational\u002Foak-python-starter --skill code-patterns","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fcode-patterns\u002FSKILL.md",true,[],[74,89,109,125,140,166],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":44},"01M71ED66Y22QDHFYWJ169WBKZ","tsdoc","Write code-adjacent API documentation and the matching durable doc updates.","https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftsdoc\u002FSKILL.md",[],[76,81,82,83,84,24,85,86,87,88],"write","api","matching","doc updates","updates","api documentation","doc","documentation",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":44},"01M71ED419RDDAJWP8DQ14B1N8","systematic-debugging","Structured debugging workflow. Use when encountering bugs, test failures, or unexpected behaviour. Reproduce, isolate, hypothesise, verify, fix, regression test.","https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[],[96,97,98,99,100,101,102,35,103,104,105,106,107,108],"debugging","systematic","systematic debugging","structured","test","regression test","workflow","reproduce","use","fix","regression","bugs","verify",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":44},"01M71ED2EK492PVYBJVVQXRM2G","start-right-thorough","Thorough grounding — full directive read, metacognition, and execution outline.","https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fstart-right-thorough\u002FSKILL.md",[],[116,117,118,119,120,121,122,123,124],"start","start right thorough","directive","metacognition","grounding","read","full","outline","execution",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":44},"01M71ED16X1DFMVSWG984P871Y","start-right-quick","Quick grounding at session start — read directives, memory, and check practice box.","https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fstart-right-quick\u002FSKILL.md",[],[132,133,116,121,34,120,134,135,136,137,138,139],"start right quick","quick","directives","at","memory","session start","box","session",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":152,"publishedAt":44},"01M71ECZMS30EF11X7Z781GWHR","receiving-code-review","How to process code review feedback effectively. Understand before acting, verify suggestions technically, ask for clarification when needed. Complements the reviewer sub-agents.","https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Freceiving-code-review\u002FSKILL.md",[146,151],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[153,154,24,155,156,157,158,35,159,160,161,41,162,163,108,164,165],"review","receiving code review","code review","review feedback","reviewer","ask","understand","how to","process","how","process code review","code review feedback","feedback",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":44},"01M71ECWYY53597KW7PN8QXDWM","napkin","Maintain a per-repo napkin file at .agent\u002Fmemory\u002Fnapkin.md that tracks mistakes, corrections, and what works. Always active, every session, unconditionally. Read distilled.md and napkin.md before doing anything. Write to the napkin continuously as you work. Log your own mistakes, not just user corrections.","https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fnapkin\u002FSKILL.md",[],[168,135,173,174,175,176,81,177,121,139,178,40,179,180,136,181,182,183,184],"user","file","you","maintain","distilled","log","just","active","tracks","mistakes","work","as"]