[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71E90MVSTFJQ64NHMNVGCJ6":3,"skill-same:01M71E90MVSTFJQ64NHMNVGCJ6":63},{"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":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M71E90MVSTFJQ64NHMNVGCJ6","napkin",null,"Maintain a per-repo napkin file at .agent\u002Fmemory\u002Factive\u002Fnapkin.md that tracks mistakes, corrections, surprises, 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.","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\u002Fnapkin\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"you","passive","write","distilled","read","at","active","work","file","maintain","session","repo","memory","tracks","mistakes","as","2026-11-10 10:12:30",false,"---\nname: napkin\nclassification: passive\ndescription: >-\n  Maintain a per-repo napkin file at .agent\u002Fmemory\u002Factive\u002Fnapkin.md that\n  tracks mistakes, corrections, surprises, and what works. Always active,\n  every session, unconditionally. Read distilled.md and napkin.md before\n  doing anything. Write to the napkin continuously as you work.\n---\n\n# Napkin\n\nMaintain a per-repo markdown file that tracks mistakes, corrections,\nand patterns that work or don't. Read it before doing anything and\nupdate it continuously as you work.\n\n**This skill is always active. Every session. No trigger required.**\n\n## Session Start: Read Your Notes\n\nFirst thing, every session — read both files before doing anything:\n\n1. **`.agent\u002Fmemory\u002Factive\u002Fdistilled.md`** — Curated rules, patterns,\n   and troubleshooting. This is the high-signal reference.\n   Internalise and apply silently.\n2. **`.agent\u002Fmemory\u002Factive\u002Fnapkin.md`** — Recent session log. Scan for\n   context from the most recent sessions.\n\nIf neither file exists, create `napkin.md` at\n`.agent\u002Fmemory\u002Factive\u002Fnapkin.md` with a session heading and start\nlogging. The [consolidation command](..\u002F..\u002Fcommands\u002Fconsolidate-docs.md)\nhandles creating `distilled.md` at rotation time.\n\n## Continuous Updates\n\nUpdate the napkin as you work, not just at session start and\nend. Write to it whenever you learn something worth recording:\n\n- **You hit an error and figure out why.** Log it immediately.\n- **The user corrects you.** Log what you did and what they\n  wanted instead.\n- **You catch your own mistake.** Log it. Your mistakes count\n  the same as user corrections — maybe more.\n- **You try something and it fails.** Log the approach and why.\n- **You try something and it works well.** Log the pattern.\n- **Something surprises you.** Capture the expectation failure while it is\n  still fresh.\n- **You re-read the napkin mid-task** because you are about to\n  do something you have gotten wrong before. Good. Do this.\n\n## What to Log\n\nLog anything that would change your behaviour if you read it\nnext session:\n\n- **Your own mistakes**: wrong assumptions, bad approaches,\n  misread code, failed commands, incorrect fixes.\n- **User corrections**: anything the user told you to do\n  differently.\n- **Tool\u002Fenvironment surprises**: things about this repo, its\n  tooling, or its patterns that you did not expect.\n- **Positive surprises**: cases where a simpler or stronger approach\n  worked better than expected.\n- **Preferences**: how the user likes things done.\n- **What worked**: approaches that succeeded, especially\n  non-obvious ones.\n\nBe specific. \"Made an error\" is useless. \"Assumed the API\nreturns a list but it returns a paginated object with `.items`\"\nis actionable.\n\n## Surprise Format\n\nWhen something surprises you, capture it like this:\n\n```markdown\n### Surprise\n\n- **Expected**: what you thought would happen\n- **Actual**: what actually happened\n- **Why expectation failed**: what was wrong or incomplete\n- **Behaviour change**: what to do differently next time\n- **Source plane**: `active` | `operational` | `executive` (optional)\n```\n\n## Napkin Structure\n\nEach session gets a heading and subsections:\n\n```markdown\n## Session: YYYY-MM-DD — Brief Title\n\n### What Was Done\n- (summary of work completed)\n\n### Patterns to Remember\n- (actionable insights from this session)\n```\n\nAdd `### Mistakes Made` or `### Fixes` subsections as needed.\n\n## Rotation\n\nWhen the napkin exceeds ~500 lines, follow the\n[consolidation command](..\u002F..\u002Fcommands\u002Fconsolidate-docs.md) to extract\nhigh-signal content into `distilled.md`, archive the napkin,\nand start fresh.\n\n## Example\n\n**Early in a session** — you misread a function signature and\npass args in the wrong order. You catch it yourself. Log it\nunder \"Patterns to Remember\":\n\n- `createUser(id, name)` not `createUser(name, id)` — this\n  codebase does not follow conventional arg ordering\n\n**Mid-session** — user corrects your import style. Log it:\n\n- This repo uses absolute imports from `src\u002F` — always\n\n**Later** — you re-read the napkin before editing another file\nand use absolute imports without being told. That is the loop\nworking.\n","# Napkin\n\nMaintain a per-repo markdown file that tracks mistakes, corrections,\nand patterns that work or don't. Read it before doing anything and\nupdate it continuously as you work.\n\n**This skill is always active. Every session. No trigger required.**\n\n## Session Start: Read Your Notes\n\nFirst thing, every session — read both files before doing anything:\n\n1. **`.agent\u002Fmemory\u002Factive\u002Fdistilled.md`** — Curated rules, patterns,\n   and troubleshooting. This is the high-signal reference.\n   Internalise and apply silently.\n2. **`.agent\u002Fmemory\u002Factive\u002Fnapkin.md`** — Recent session log. Scan for\n   context from the most recent sessions.\n\nIf neither file exists, create `napkin.md` at\n`.agent\u002Fmemory\u002Factive\u002Fnapkin.md` with a session heading and start\nlogging. The [consolidation command](..\u002F..\u002Fcommands\u002Fconsolidate-docs.md)\nhandles creating `distilled.md` at rotation time.\n\n## Continuous Updates\n\nUpdate the napkin as you work, not just at session start and\nend. Write to it whenever you learn something worth recording:\n\n- **You hit an error and figure out why.** Log it immediately.\n- **The user corrects you.** Log what you did and what they\n  wanted instead.\n- **You catch your own mistake.** Log it. Your mistakes count\n  the same as user corrections — maybe more.\n- **You try something and it fails.** Log the approach and why.\n- **You try something and it works well.** Log the pattern.\n- **Something surprises you.** Capture the expectation failure while it is\n  still fresh.\n- **You re-read the napkin mid-task** because you are about to\n  do something you have gotten wrong before. Good. Do this.\n\n## What to Log\n\nLog anything that would change your behaviour if you read it\nnext session:\n\n- **Your own mistakes**: wrong assumptions, bad approaches,\n  misread code, failed commands, incorrect fixes.\n- **User corrections**: anything the user told you to do\n  differently.\n- **Tool\u002Fenvironment surprises**: things about this repo, its\n  tooling, or its patterns that you did not expect.\n- **Positive surprises**: cases where a simpler or stronger approach\n  worked better than expected.\n- **Preferences**: how the user likes things done.\n- **What worked**: approaches that succeeded, especially\n  non-obvious ones.\n\nBe specific. \"Made an error\" is useless. \"Assumed the API\nreturns a list but it returns a paginated object with `.items`\"\nis actionable.\n\n## Surprise Format\n\nWhen something surprises you, capture it like this:\n\n```markdown\n### Surprise\n\n- **Expected**: what you thought would happen\n- **Actual**: what actually happened\n- **Why expectation failed**: what was wrong or incomplete\n- **Behaviour change**: what to do differently next time\n- **Source plane**: `active` | `operational` | `executive` (optional)\n```\n\n## Napkin Structure\n\nEach session gets a heading and subsections:\n\n```markdown\n## Session: YYYY-MM-DD — Brief Title\n\n### What Was Done\n- (summary of work completed)\n\n### Patterns to Remember\n- (actionable insights from this session)\n```\n\nAdd `### Mistakes Made` or `### Fixes` subsections as needed.\n\n## Rotation\n\nWhen the napkin exceeds ~500 lines, follow the\n[consolidation command](..\u002F..\u002Fcommands\u002Fconsolidate-docs.md) to extract\nhigh-signal content into `distilled.md`, archive the napkin,\nand start fresh.\n\n## Example\n\n**Early in a session** — you misread a function signature and\npass args in the wrong order. You catch it yourself. Log it\nunder \"Patterns to Remember\":\n\n- `createUser(id, name)` not `createUser(name, id)` — this\n  codebase does not follow conventional arg ordering\n\n**Mid-session** — user corrects your import style. Log it:\n\n- This repo uses absolute imports from `src\u002F` — always\n\n**Later** — you re-read the napkin before editing another file\nand use absolute imports without being told. That is the loop\nworking.\n",{"name":5,"description":7,"classification":20},"main","11113a35c0c5be3f9a3b55397693c6de248e5ed4",".agent\u002Fskills\u002Fnapkin",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":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add oaknational\u002Foak-python-starter --skill napkin",{"tool":55,"command":56},"bunx","bunx skills add oaknational\u002Foak-python-starter --skill napkin",{"tool":58,"command":59},"pnpm","pnpm dlx skills add oaknational\u002Foak-python-starter --skill napkin","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foaknational\u002Foak-python-starter\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fnapkin\u002FSKILL.md",true,[],[64,79,100,115,128,159],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":35},"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",[],[66,21,71,72,73,74,75,76,77,78],"api","matching","doc updates","code","updates","api documentation","doc","documentation",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":35},"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",[],[86,87,88,89,90,91,92,93,94,95,96,97,98,99],"debugging","systematic","systematic debugging","structured","test","regression test","workflow","when","reproduce","use","fix","regression","bugs","verify",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":35},"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",[],[107,108,109,110,111,23,112,113,114],"start","start right thorough","directive","metacognition","grounding","full","outline","execution",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":35},"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",[],[122,123,107,23,124,111,125,24,31,126,127,29],"start right quick","quick","check","directives","session start","box",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":144,"publishedAt":35},"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",[134,139],{"categoryNo":135,"categoryName":136,"taxonomyType":137,"taxonomyTypeDesc":138},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":140,"categoryName":141,"taxonomyType":142,"taxonomyTypeDesc":143},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[145,146,74,147,148,149,150,93,151,152,153,154,155,156,99,157,158],"review","receiving code review","code review","review feedback","reviewer","ask","understand","how to","process","for","how","process code review","code review feedback","feedback",{"skillNo":160,"name":5,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":35},"01M71ECWYY53597KW7PN8QXDWM","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",[],[5,24,165,27,19,28,21,22,23,29,166,30,167,25,31,32,33,26,34],"user","log","just"]