[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GY2JX69MYJC1PJ13HB9P2D":3,"skill-same:01M6GY2JX69MYJC1PJ13HB9P2D":79},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6GY2JX69MYJC1PJ13HB9P2D","context-budgeting",null,"Use when a task will read many files, long logs, or large payloads. Filters before loading and offloads to disk so the working window keeps room for reasoning.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-context-budgeting\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-context-budgeting\u002FSKILL.md",[],[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"context","context budgeting","budgeting","filters","when","window","for","loading","long","task","files","reasoning","use","payloads","read","disk","logs","2026-11-10 10:12:30",false,"---\nname: context-budgeting\ndescription: Use when a task will read many files, long logs, or large payloads. Filters before loading and offloads to disk so the working window keeps room for reasoning.\n---\n\n# Context Budgeting\n\nContext is the agent's scarcest resource; every dumped log evicts reasoning. Treat the window as a budget: filter before reading, offload bulk to disk, and summarize progressively.\n\n## Procedure\n\n1. Set a budget at the start: aim to keep free window above roughly half the total. If a task needs more, the output goes to a file, not into the conversation.\n2. Never read a directory wholesale. List and filter first: search for the pattern, get file paths, then read only matching files.\n3. Read windows, not whole files, for anything large: use a line range (`offset`\u002F`limit`) and expand only around the relevant region. A 5,000-line file rarely needs more than the 60 lines around the target.\n4. For logs and command output, pipe through a filter before it lands: `grep -n \"ERROR\" app.log | head -50`, `awk '$9==500' access.log | wc -l`.\n5. Batch many-item extraction into a script that appends to a workspace file (`data\u002Frows.jsonl`), then read back and aggregate with code — never accumulate 200 results in the window.\n6. When the window is filling, write a running summary to `notes\u002Fcontext-summary.md` capturing: goal, decisions, open questions, and the next command. Then continue from the file, not from memory.\n7. Re-read a file after it may have changed; do not rely on an earlier read whose content is already summarized away.\n8. Keep raw tool output out of the window when it is a step, not a result — only the reduction needs to be seen.\n9. Set the budget in real units: \"at most 25 files read and 4 large outputs\", written before starting.\n10. When a tool can return a summary or a count instead of the rows, take the summary and fetch rows only for the ones you will act on.\n11. Delete or truncate stale workspace dumps you have already reduced, so later reads do not re-load dead weight.\n\n## Pitfalls\n\n- Pasting a 5MB JSON body into the conversation to grep it by eye.\n- Reading all 40 files in `src\u002F` because \"I might need them\", when 3 import the changed symbol.\n- Letting a long-running loop print every item so the window drowns before the run finishes.\n- Summarizing to a file and then never reading it back, so the summary is dead weight.\n- Re-reading an unchanged file each turn out of habit, burning the budget on constants.\n- Loading a whole 2,000-line file to read 30 lines in the middle, when offset\u002Flimit would do.\n- Letting a helper print every row so the window fills before the reduction is written to disk.\n\n## Verification\n\n    wc -l notes\u002Fcontext-summary.md data\u002Frows.jsonl 2>\u002Fdev\u002Fnull\n    # passes when bulk data lives in files and only reductions\u002Fconclusions appear inline\n\nReport to the user: files loaded vs skipped, the workspace files holding bulk data, and roughly how much of the window remained free at the end.\n","# Context Budgeting\n\nContext is the agent's scarcest resource; every dumped log evicts reasoning. Treat the window as a budget: filter before reading, offload bulk to disk, and summarize progressively.\n\n## Procedure\n\n1. Set a budget at the start: aim to keep free window above roughly half the total. If a task needs more, the output goes to a file, not into the conversation.\n2. Never read a directory wholesale. List and filter first: search for the pattern, get file paths, then read only matching files.\n3. Read windows, not whole files, for anything large: use a line range (`offset`\u002F`limit`) and expand only around the relevant region. A 5,000-line file rarely needs more than the 60 lines around the target.\n4. For logs and command output, pipe through a filter before it lands: `grep -n \"ERROR\" app.log | head -50`, `awk '$9==500' access.log | wc -l`.\n5. Batch many-item extraction into a script that appends to a workspace file (`data\u002Frows.jsonl`), then read back and aggregate with code — never accumulate 200 results in the window.\n6. When the window is filling, write a running summary to `notes\u002Fcontext-summary.md` capturing: goal, decisions, open questions, and the next command. Then continue from the file, not from memory.\n7. Re-read a file after it may have changed; do not rely on an earlier read whose content is already summarized away.\n8. Keep raw tool output out of the window when it is a step, not a result — only the reduction needs to be seen.\n9. Set the budget in real units: \"at most 25 files read and 4 large outputs\", written before starting.\n10. When a tool can return a summary or a count instead of the rows, take the summary and fetch rows only for the ones you will act on.\n11. Delete or truncate stale workspace dumps you have already reduced, so later reads do not re-load dead weight.\n\n## Pitfalls\n\n- Pasting a 5MB JSON body into the conversation to grep it by eye.\n- Reading all 40 files in `src\u002F` because \"I might need them\", when 3 import the changed symbol.\n- Letting a long-running loop print every item so the window drowns before the run finishes.\n- Summarizing to a file and then never reading it back, so the summary is dead weight.\n- Re-reading an unchanged file each turn out of habit, burning the budget on constants.\n- Loading a whole 2,000-line file to read 30 lines in the middle, when offset\u002Flimit would do.\n- Letting a helper print every row so the window fills before the reduction is written to disk.\n\n## Verification\n\n    wc -l notes\u002Fcontext-summary.md data\u002Frows.jsonl 2>\u002Fdev\u002Fnull\n    # passes when bulk data lives in files and only reductions\u002Fconclusions appear inline\n\nReport to the user: files loaded vs skipped, the workspace files holding bulk data, and roughly how much of the window remained free at the end.\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002F0xklen-context-budgeting",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-15 02:28:10",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill context-budgeting",{"tool":57,"command":58},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill context-budgeting",{"tool":60,"command":61},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill context-budgeting","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-context-budgeting\u002FSKILL.md",true,[65,69,75],{"path":66,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":16},"LICENSE","许可证",1063,{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"SOURCE.md","REFERENCE","参考文档",343,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-context-budgeting\u002FSOURCE.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-context-budgeting\u002FTRUST.auto.yaml",[80,108,130,148,161,171],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":84,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":37},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":112,"licenseFileUrl":113,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":37},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[117,118,119,120,121,122,123,124,125,126,26,127,128,129],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","api keys","maintenance","protobuf",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":112,"licenseFileUrl":134,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":37},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[138,118,139,140,141,142,143,127,26,126,144,145,146,122,147,121,120],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"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":112,"licenseFileUrl":152,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":37},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[156,157,119,158,159,128,26,160,125,124,122,121],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":162,"name":163,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":164,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":37},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[168,169,170],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":175,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":37},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[179,180,181,182,183,184,185,32,186,187,188],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]