[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74G4ESEFPPC2GCXXBSASVRF":3,"skill-same:01M74G4ESEFPPC2GCXXBSASVRF":86},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M74G4ESEFPPC2GCXXBSASVRF","caveman-compress",null,"Compress natural language memory files (AGENTS.md, CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, commands, paths, and structure. Compressed version overwrites the original file after backup. Trigger: \u002Fskill:caveman-compress FILEPATH or \"compress memory file\".","casualjim\u002Fpi-mimir","casualjim","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F456109?v=4","01M74FWNWVYZQ29YNASRYNTCG4","Ivan Porto Carrero","01M74FWNXE5R8481XV0Q8Q7EY0",16,"MIT","https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: caveman-compress\ndescription: >\n  Compress natural language memory files (AGENTS.md, CLAUDE.md, todos, preferences)\n  into caveman format to save input tokens. Preserves all technical substance,\n  code, URLs, commands, paths, and structure. Compressed version overwrites the\n  original file after backup. Trigger: \u002Fskill:caveman-compress FILEPATH or\n  \"compress memory file\".\n---\n\n# Caveman Compress\n\n## Purpose\n\nCompress natural language files (`.md`, `.txt`, `.typ`, `.typst`, `.tex`, extensionless notes) into caveman-speak to reduce input tokens. Compressed version overwrites original only after creating `\u003Cfilename>.original.md` backup.\n\n## Pi Usage\n\n1. Resolve user-provided file path to an absolute path.\n2. Read this skill's `SECURITY.md` if safety is uncertain.\n3. Prefer the bundled Pi-native helper when available:\n\n```bash\ncd \u003Cdirectory containing this SKILL.md>\npython3 -m scripts \u003Cabsolute_filepath>\n```\n\n4. Helper uses `pi --print` with the user's configured Pi model\u002Fprovider. It does not call provider SDKs directly and does not call non-Pi model CLIs.\n5. If helper cannot run because Python or Pi CLI is unavailable, do not invent statistics or silently modify files. Explain blocker and offer manual compression using Pi file tools.\n6. For manual compression:\n   - Use `read` first.\n   - Refuse unsupported or sensitive files.\n   - Write backup as `\u003Cfilename>.original.md` before changing original.\n   - Compress only prose outside protected regions.\n   - Re-read both files and verify protected content stayed exact.\n\nThe bundled helper is Pi-native: it shells out to `pi --print`, inheriting the user's Pi model\u002Fprovider configuration. This package does not call provider SDKs directly, ship provider-specific auth logic, or invoke non-Pi model CLIs.\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 action\n- Merge redundant bullets that say same thing differently\n- Keep one example where multiple examples show 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- Refuse paths or names that look sensitive: credentials, secrets, passwords, tokens, keys, `.ssh`, `.aws`, `.gnupg`, `.kube`, `.docker`\n- If file has mixed prose + code, compress ONLY prose sections\n- If unsure whether something is code or prose, leave 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 (`.md`, `.txt`, `.typ`, `.typst`, `.tex`, extensionless notes) into caveman-speak to reduce input tokens. Compressed version overwrites original only after creating `\u003Cfilename>.original.md` backup.\n\n## Pi Usage\n\n1. Resolve user-provided file path to an absolute path.\n2. Read this skill's `SECURITY.md` if safety is uncertain.\n3. Prefer the bundled Pi-native helper when available:\n\n```bash\ncd \u003Cdirectory containing this SKILL.md>\npython3 -m scripts \u003Cabsolute_filepath>\n```\n\n4. Helper uses `pi --print` with the user's configured Pi model\u002Fprovider. It does not call provider SDKs directly and does not call non-Pi model CLIs.\n5. If helper cannot run because Python or Pi CLI is unavailable, do not invent statistics or silently modify files. Explain blocker and offer manual compression using Pi file tools.\n6. For manual compression:\n   - Use `read` first.\n   - Refuse unsupported or sensitive files.\n   - Write backup as `\u003Cfilename>.original.md` before changing original.\n   - Compress only prose outside protected regions.\n   - Re-read both files and verify protected content stayed exact.\n\nThe bundled helper is Pi-native: it shells out to `pi --print`, inheriting the user's Pi model\u002Fprovider configuration. This package does not call provider SDKs directly, ship provider-specific auth logic, or invoke non-Pi model CLIs.\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 action\n- Merge redundant bullets that say same thing differently\n- Keep one example where multiple examples show 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- Refuse paths or names that look sensitive: credentials, secrets, passwords, tokens, keys, `.ssh`, `.aws`, `.gnupg`, `.kube`, `.docker`\n- If file has mixed prose + code, compress ONLY prose sections\n- If unsure whether something is code or prose, leave 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","86a206d111fba4ffc9c47c363486479262e63513","packages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress",9,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir","https:\u002F\u002Fgithub.com\u002Fcasualjim","http:\u002F\u002Fflanders.co.nz","2026-11-10 15:32:15",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add casualjim\u002Fpi-mimir --skill caveman-compress",{"tool":38,"command":39},"bunx","bunx skills add casualjim\u002Fpi-mimir --skill caveman-compress",{"tool":41,"command":42},"pnpm","pnpm dlx skills add casualjim\u002Fpi-mimir --skill caveman-compress","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002FSKILL.md",true,[46,52,58,62,66,70,74,78,82],{"path":47,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":50,"sourceHtmlUrl":51},"README.md","REFERENCE","参考文档",3372,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002FREADME.md",{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"scripts\u002F__init__.py","SCRIPT","脚本",224,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002F__init__.py",{"path":59,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":60,"sourceHtmlUrl":61},"scripts\u002F__main__.py",30,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002F__main__.py",{"path":63,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":64,"sourceHtmlUrl":65},"scripts\u002Fbenchmark.py",2425,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fbenchmark.py",{"path":67,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":68,"sourceHtmlUrl":69},"scripts\u002Fcli.py",2064,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fcli.py",{"path":71,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":72,"sourceHtmlUrl":73},"scripts\u002Fcompress.py",8616,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fcompress.py",{"path":75,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":76,"sourceHtmlUrl":77},"scripts\u002Fdetect.py",4064,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fdetect.py",{"path":79,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":80,"sourceHtmlUrl":81},"scripts\u002Fvalidate.py",5752,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002Fscripts\u002Fvalidate.py",{"path":83,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":84,"sourceHtmlUrl":85},"SECURITY.md",1572,"https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-caveman\u002Fskills\u002Fcaveman-compress\u002FSECURITY.md",[87,94,101,108,115,122],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":19},"01M74GK3CG2X0988XMHBKNC0HG","why","Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available MCPs and queries each evidence category (source control, issue tracker, long-form docs, real-time chat, infrastructure observability, error tracking, product analytics warehouse) in parallel, then returns a cited read on decisions and tradeoffs. Use how for runtime behavior.","https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-pstack\u002Fskills\u002Fwhy\u002FSKILL.md",[],[],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":19},"01M74GK2A4034JSAN8BCGBEPVB","unslop","Cut AI tells from any writing.","https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-pstack\u002Fskills\u002Funslop\u002FSKILL.md",[],[],{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":19},"01M74GK13302GXTR58TM47BQY1","typescript-best-practices","TypeScript best practices. Use when reading or editing any .ts or .tsx file.","https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-pstack\u002Fskills\u002Ftypescript-best-practices\u002FSKILL.md",[],[],{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":19},"01M74GJYB1DJCA4AQH22MWYM9J","technical-writing","Layered technical-writing standard: Diátaxis structure, Google developer style sentences, STE instruction rules, Global English syntax. Use for \u002Fskill:technical-writing or when writing or reviewing docs, RFCs, readmes, PR descriptions, or commit messages.","https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-pstack\u002Fskills\u002Ftechnical-writing\u002FSKILL.md",[],[],{"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":19},"01M74GJW7794XM60AKH76941T0","teach","Explain a body of work plainly so a person actually understands it. Runs the `how` and `why` skills and weaves what they find into one clear explanation. Use for 'teach me this', 'help me really understand X', 'explain this change or subsystem to me'.","https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-pstack\u002Fskills\u002Fteach\u002FSKILL.md",[],[],{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":19},"01M74GJPQN3RW4FN7G78W2NFR1","tdd","Use only when the user explicitly asks for TDD, a failing test, or a regression test, OR when the bug has an obvious cheap local test target. Skip when the test path is unclear, expensive, integration-heavy, or not requested.","https:\u002F\u002Fgithub.com\u002Fcasualjim\u002Fpi-mimir\u002Fblob\u002Fmain\u002Fpackages\u002Fpi-pstack\u002Fskills\u002Ftdd\u002FSKILL.md",[],[]]