[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PDKQDF6BZ6M04YYWZ413RT":3,"skill-same:01M6PDKQDF6BZ6M04YYWZ413RT":113},{"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":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6PDKQDF6BZ6M04YYWZ413RT","caveman-compress",null,"Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: \u002Fcaveman-compress FILEPATH or \"compress memory file\"","stevesolun\u002Fctx","stevesolun","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1304538?v=4","01M6PDDJQ35XAXMPJQP8YG3P2X","Steve Solun","01M6PDDJVJ663A3CMV7XQN9XAY",590,"MIT","https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\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],"caveman","compress","caveman compress","saved","memory","input","trigger","as","tokens","human","structure","natural language","files","version","technical","preferences","save","backup","file","code","2026-11-10 10:12:30",false,"---\nname: caveman-compress\ndescription: >\n  Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format\n  to save input tokens. Preserves all technical substance, code, URLs, and structure.\n  Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md.\n  Trigger: \u002Fcaveman-compress FILEPATH or \"compress memory file\"\n---\n\n# Caveman Compress\n\n## Purpose\n\nCompress natural language files (CLAUDE.md, todos, preferences) into caveman-speak to reduce input tokens. Compressed version overwrites original. Human-readable backup saved as `\u003Cfilename>.original.md`.\n\n## Trigger\n\n`\u002Fcaveman-compress \u003Cfilepath>` or when user asks to compress a memory file.\n\n## Process\n\n1. The compression scripts live in `scripts\u002F` (adjacent to this SKILL.md). If the path is not immediately available, search for `scripts\u002F__main__.py` next to this SKILL.md.\n\n2. From the directory containing this SKILL.md, run:\n\npython3 -m scripts \u003Cabsolute_filepath>\n\n3. The CLI will:\n- detect file type (no tokens)\n- call Claude to compress\n- validate output (no tokens)\n- if errors: cherry-pick fix with Claude (targeted fixes only, no recompression)\n- retry up to 2 times\n- if still failing after 2 retries: report error to user, leave original file untouched\n\n4. Return result to user\n\n## Compression Rules\n\n### Remove\n- Articles: a, an, the\n- Filler: just, really, basically, actually, simply, essentially, generally\n- Pleasantries: \"sure\", \"certainly\", \"of course\", \"happy to\", \"I'd recommend\"\n- Hedging: \"it might be worth\", \"you could consider\", \"it would be good to\"\n- Redundant phrasing: \"in order to\" → \"to\", \"make sure to\" → \"ensure\", \"the reason is because\" → \"because\"\n- Connective fluff: \"however\", \"furthermore\", \"additionally\", \"in addition\"\n\n### Preserve EXACTLY (never modify)\n- Code blocks (fenced ``` and indented)\n- Inline code (`backtick content`)\n- URLs and links (full URLs, markdown links)\n- File paths (`\u002Fsrc\u002Fcomponents\u002F...`, `.\u002Fconfig.yaml`)\n- Commands (`npm install`, `git commit`, `docker build`)\n- Technical terms (library names, API names, protocols, algorithms)\n- Proper nouns (project names, people, companies)\n- Dates, version numbers, numeric values\n- Environment variables (`$HOME`, `NODE_ENV`)\n\n### Preserve Structure\n- All markdown headings (keep exact heading text, compress body below)\n- Bullet point hierarchy (keep nesting level)\n- Numbered lists (keep numbering)\n- Tables (compress cell text, keep structure)\n- Frontmatter\u002FYAML headers in markdown files\n\n### Compress\n- Use short synonyms: \"big\" not \"extensive\", \"fix\" not \"implement a solution for\", \"use\" not \"utilize\"\n- Fragments OK: \"Run tests before commit\" not \"You should always run tests before committing\"\n- Drop \"you should\", \"make sure to\", \"remember to\" — just state the action\n- Merge redundant bullets that say the same thing differently\n- Keep one example where multiple examples show the same pattern\n\nCRITICAL RULE:\nAnything inside ``` ... ``` must be copied EXACTLY.\nDo not:\n- remove comments\n- remove spacing\n- reorder lines\n- shorten commands\n- simplify anything\n\nInline code (`...`) must be preserved EXACTLY.\nDo not modify anything inside backticks.\n\nIf file contains code blocks:\n- Treat code blocks as read-only regions\n- Only compress text outside them\n- Do not merge sections around code\n\n## Pattern\n\nOriginal:\n> You should always make sure to run the test suite before pushing any changes to the main branch. This is important because it helps catch bugs early and prevents broken builds from being deployed to production.\n\nCompressed:\n> Run tests before push to main. Catch bugs early, prevent broken prod deploys.\n\nOriginal:\n> The application uses a microservices architecture with the following components. The API gateway handles all incoming requests and routes them to the appropriate service. The authentication service is responsible for managing user sessions and JWT tokens.\n\nCompressed:\n> Microservices architecture. API gateway route all requests to services. Auth service manage user sessions + JWT tokens.\n\n## Boundaries\n\n- ONLY compress natural language files (.md, .txt, .typ, .typst, .tex, extensionless)\n- NEVER modify: .py, .js, .ts, .json, .yaml, .yml, .toml, .env, .lock, .css, .html, .xml, .sql, .sh\n- If file has mixed content (prose + code), compress ONLY the prose sections\n- If unsure whether something is code or prose, leave it unchanged\n- Original file is backed up as FILE.original.md before overwriting\n- Never compress FILE.original.md (skip it)\n","# Caveman Compress\n\n## Purpose\n\nCompress natural language files (CLAUDE.md, todos, preferences) into caveman-speak to reduce input tokens. Compressed version overwrites original. Human-readable backup saved as `\u003Cfilename>.original.md`.\n\n## Trigger\n\n`\u002Fcaveman-compress \u003Cfilepath>` or when user asks to compress a memory file.\n\n## Process\n\n1. The compression scripts live in `scripts\u002F` (adjacent to this SKILL.md). If the path is not immediately available, search for `scripts\u002F__main__.py` next to this SKILL.md.\n\n2. From the directory containing this SKILL.md, run:\n\npython3 -m scripts \u003Cabsolute_filepath>\n\n3. The CLI will:\n- detect file type (no tokens)\n- call Claude to compress\n- validate output (no tokens)\n- if errors: cherry-pick fix with Claude (targeted fixes only, no recompression)\n- retry up to 2 times\n- if still failing after 2 retries: report error to user, leave original file untouched\n\n4. Return result to user\n\n## Compression Rules\n\n### Remove\n- Articles: a, an, the\n- Filler: just, really, basically, actually, simply, essentially, generally\n- Pleasantries: \"sure\", \"certainly\", \"of course\", \"happy to\", \"I'd recommend\"\n- Hedging: \"it might be worth\", \"you could consider\", \"it would be good to\"\n- Redundant phrasing: \"in order to\" → \"to\", \"make sure to\" → \"ensure\", \"the reason is because\" → \"because\"\n- Connective fluff: \"however\", \"furthermore\", \"additionally\", \"in addition\"\n\n### Preserve EXACTLY (never modify)\n- Code blocks (fenced ``` and indented)\n- Inline code (`backtick content`)\n- URLs and links (full URLs, markdown links)\n- File paths (`\u002Fsrc\u002Fcomponents\u002F...`, `.\u002Fconfig.yaml`)\n- Commands (`npm install`, `git commit`, `docker build`)\n- Technical terms (library names, API names, protocols, algorithms)\n- Proper nouns (project names, people, companies)\n- Dates, version numbers, numeric values\n- Environment variables (`$HOME`, `NODE_ENV`)\n\n### Preserve Structure\n- All markdown headings (keep exact heading text, compress body below)\n- Bullet point hierarchy (keep nesting level)\n- Numbered lists (keep numbering)\n- Tables (compress cell text, keep structure)\n- Frontmatter\u002FYAML headers in markdown files\n\n### Compress\n- Use short synonyms: \"big\" not \"extensive\", \"fix\" not \"implement a solution for\", \"use\" not \"utilize\"\n- Fragments OK: \"Run tests before commit\" not \"You should always run tests before committing\"\n- Drop \"you should\", \"make sure to\", \"remember to\" — just state the action\n- Merge redundant bullets that say the same thing differently\n- Keep one example where multiple examples show the same pattern\n\nCRITICAL RULE:\nAnything inside ``` ... ``` must be copied EXACTLY.\nDo not:\n- remove comments\n- remove spacing\n- reorder lines\n- shorten commands\n- simplify anything\n\nInline code (`...`) must be preserved EXACTLY.\nDo not modify anything inside backticks.\n\nIf file contains code blocks:\n- Treat code blocks as read-only regions\n- Only compress text outside them\n- Do not merge sections around code\n\n## Pattern\n\nOriginal:\n> You should always make sure to run the test suite before pushing any changes to the main branch. This is important because it helps catch bugs early and prevents broken builds from being deployed to production.\n\nCompressed:\n> Run tests before push to main. Catch bugs early, prevent broken prod deploys.\n\nOriginal:\n> The application uses a microservices architecture with the following components. The API gateway handles all incoming requests and routes them to the appropriate service. The authentication service is responsible for managing user sessions and JWT tokens.\n\nCompressed:\n> Microservices architecture. API gateway route all requests to services. Auth service manage user sessions + JWT tokens.\n\n## Boundaries\n\n- ONLY compress natural language files (.md, .txt, .typ, .typst, .tex, extensionless)\n- NEVER modify: .py, .js, .ts, .json, .yaml, .yml, .toml, .env, .lock, .css, .html, .xml, .sql, .sh\n- If file has mixed content (prose + code), compress ONLY the prose sections\n- If unsure whether something is code or prose, leave it unchanged\n- Original file is backed up as FILE.original.md before overwriting\n- Never compress FILE.original.md (skip it)\n",{"name":5,"description":7},"main","11b582a7cd4d549f1e83c412e04421bcc9c3fc28","imported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress",69,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx","https:\u002F\u002Fstevesolun.github.io\u002Fctx\u002F","https:\u002F\u002Fgithub.com\u002Fstevesolun","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsolunsteve\u002F","High motivated, dedicated, fast learner data scientist and enthusiastic researcher.","2026-10-15 03:55:28",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add stevesolun\u002Fctx --skill caveman-compress",{"tool":65,"command":66},"bunx","bunx skills add stevesolun\u002Fctx --skill caveman-compress",{"tool":68,"command":69},"pnpm","pnpm dlx skills add stevesolun\u002Fctx --skill caveman-compress","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002FSKILL.md",true,[73,79,85,89,93,97,101,105,109],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"README.md","REFERENCE","参考文档",5185,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002FREADME.md",{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"scripts\u002F__init__.py","SCRIPT","脚本",224,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002F__init__.py",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002F__main__.py",30,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002F__main__.py",{"path":90,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fbenchmark.py",2425,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fbenchmark.py",{"path":94,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":95,"sourceHtmlUrl":96},"scripts\u002Fcli.py",2064,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fcli.py",{"path":98,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":99,"sourceHtmlUrl":100},"scripts\u002Fcompress.py",8827,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fcompress.py",{"path":102,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":103,"sourceHtmlUrl":104},"scripts\u002Fdetect.py",4064,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fdetect.py",{"path":106,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Fvalidate.py",5752,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fvalidate.py",{"path":110,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":111,"sourceHtmlUrl":112},"SECURITY.md",1578,"https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fjulius-caveman\u002Fskills\u002Fcaveman-compress\u002FSECURITY.md",[114,140,164,191,213,234],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":44},"01M6PDTT7F6Z9T6G6H92845RNC","toolbox","Pre\u002Fpost dev toolbox — named bundles of skills\u002Fagents loaded before development work and councils of experts invoked after. Run \u002Ftoolbox or the toolbox.py CLI to list, activate, initialize, export, import, and validate toolboxes. Invoke at the start or end of a dev session, when setting up a new repo, or when sharing toolboxes with a team.","https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fskills\u002Ftoolbox\u002FSKILL.md",[],[116,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],"cli","development","run","start","team","work","list","initialize","export","up","activate","feature","end","new repo","false","import","experts","at","invoke",{"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":151,"publishedAt":44},"01M6PDTNZ10BAW6VY49S40NCBB","skill-router","Alive skill router — reads the current project's stack and loads\u002Funloads skills dynamically. Invoke at session start or when project context changes.","https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fskills\u002Fskill-router\u002FSKILL.md",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[152,153,124,154,155,156,157,158,159,160,161,162,138,163,139],"router","skill router","Meta","stack","context","session","project context","project","loads","session start","true","changes",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":171,"publishedAt":44},"01M6PDTGVDG503T4QNX64KJMAC","repo-stats-autoupdate","Keeps README badge + inline counts in sync with the real number of skills, agents, graph nodes\u002Fedges, communities, converted pipelines, and test inventory. Runs automatically on every commit via a git pre-commit hook. Use when the README drifts from reality or before publishing a release.","https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fskills\u002Frepo-stats-autoupdate\u002FSKILL.md",[170],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},[172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,135,187,188,189,190],"stats","repo","repo stats autoupdate","test","commit","sync","release","git","graph","pre-commit","inventory","README","use","publishing","communities","with","hook","number","inline",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":199,"publishedAt":44},"01M6PDTC3AB7H4NXJFS3SDKQG9","find-skills","Discover installable agent skills from ctx's shipped Skills.sh catalog, the Skills.sh search API, and the npx skills CLI. Use when a user asks whether a skill exists, wants to add\u002Fupdate a skill, or needs a repeatable procedure for finding candidate skills safely.","https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fskills\u002Ffind-skills\u002FSKILL.md",[197,198],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[200,201,121,202,203,204,205,206,184,62,207,208,209,210,211,212],"find skills","find","update","search","api","user","catalog","discover","add","skills cli","for","candidate","ctx",{"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":219,"publishedAt":44},"01M6PDT6ETDH54GGY7K8E29Y9V","no-mistakes","Validate committed feature-branch changes through the no-mistakes pipeline: intent, rebase, review, test, docs, lint, push, PR, and CI. Use when the user asks to run no-mistakes, ship safely, validate before pushing, or gate a change before it reaches upstream.","https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fno-mistakes\u002Fskills\u002Fno-mistakes\u002FSKILL.md",[],[220,221,175,222,223,224,123,225,226,227,228,229,230,231,184,232,233,132,162,163],"no mistakes","review","change","validate","pr","lint","push","ci","pipeline","ship","rebase","branch","intent","upstream",{"skillNo":235,"name":236,"nameZh":6,"description":237,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":238,"categories":239,"keywords":242,"publishedAt":44},"01M6PDT18DD3HETZF1CF39CT8J","zoom-out","Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.","https:\u002F\u002Fgithub.com\u002Fstevesolun\u002Fctx\u002Fblob\u002Fmain\u002Fimported-skills\u002Fmattpocock\u002Fzoom-out\u002FSKILL.md",[240,241],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[243,244,43,245,156,184,246,247,187,248,249,162,250,251],"zoom out","zoom","how","it","understand","you","re","perspective","section"]