[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71F9CXMDXGF20HAZ5BSARSP":3,"skill-same:01M71F9CXMDXGF20HAZ5BSARSP":66},{"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":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M71F9CXMDXGF20HAZ5BSARSP","caveman-compress",null,"Use when the user wants to shrink a long markdown file like AGENTS.md, CLAUDE.md, a README, or a runbook to roughly half its size while keeping code blocks, headings, URLs, and file paths intact.","Wizarck\u002Fai-playbook","Wizarck","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23051550?v=4","01M71B3AAVR67GRWFV5ZXXZP31","arturo6ramirez","01M71F5FHXDSX3G2F52R1YS77J",6,"MIT","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fcaveman-compress\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"caveman compress","caveman","compress","README","long","use","when","file","code","runbook","size","markdown","playbook","blocks","paths","user","2026-11-10 10:12:30",false,"---\nname: caveman-compress\ndescription: Use when the user wants to shrink a long markdown file like AGENTS.md, CLAUDE.md, a README, or a runbook to roughly half its size while keeping code blocks, headings, URLs, and file paths intact.\nlicense: MIT\nmetadata:\n  author: ai-playbook (ported from JuliusBrussee\u002Fcaveman, MIT)\n  version: \"1.0\"\n---\n\n# caveman-compress — shrink memory files\n\nRewrite long markdown documents in caveman style, byte-preserving everything that must not change.\n\n## When to fire\n\nUser intent triggers (any of):\n- \"\u002Fcaveman-compress \u003Cfile>\"\n- \"compress AGENTS.md\", \"shrink this README\", \"make CLAUDE.md smaller\"\n- \"trim the docs\", \"reduce the runbook\"\n\n## Preconditions\n\n- Target file is markdown (`.md`).\n- Caller has read+write access to the file.\n- Working tree is clean for the target file (otherwise refuse and ask the user to stash or commit first — accidentally overwriting uncommitted edits would be hard to recover).\n\n## Steps\n\n1. **Confirm the target.** Echo `\u003Cfile>: \u003Cbytes> bytes, \u003Clines> lines` to the user. If the file is \u003C 200 bytes, refuse — not worth a roundtrip.\n\n2. **Backup.** Copy the original to `\u003Cfile>.original.md`. Refuse if a backup already exists with content different from the current file — that indicates an earlier compression session was not finalized.\n\n3. **Invoke the compressor:**\n\n   ```bash\n   python -m scripts.caveman compress \u003Cfile> --mode full\n   ```\n\n   Modes: `lite`, `full` (default), `ultra`. The compressor calls the LLM with the caveman ruleset and a strict preservation contract.\n\n4. **Validate the output.** The compressor enforces, and fails the run if violated:\n   - Every fenced code block (```` ``` ```` ... ```` ``` ````) is byte-identical to the original.\n   - Every heading (`#`, `##`, `###`, …) text and level is identical (order preserved).\n   - Every URL (`https?:\u002F\u002F...`) appears in the output exactly once and unchanged.\n   - Every file path (`\u002F`-containing tokens) appears in the output exactly once and unchanged.\n   - Every bash command line (lines starting with `$ ` or inside `bash` fenced blocks) is byte-identical.\n\n5. **Retry on validation failure.** Up to 2 retry passes with targeted patches — only the violated tokens are sent back to the LLM with the instruction to restore them. After 2 retries, restore from `\u003Cfile>.original.md` and exit 1.\n\n6. **Report.** Print:\n\n   ```\n   \u003Cfile>: \u003Corig_bytes> → \u003Cnew_bytes> ({pct}% saved)\n   backup: \u003Cfile>.original.md\n   ```\n\n## Output shape\n\nAfter completion, summarise to the user:\n- Original size, compressed size, percent saved.\n- Backup path.\n- Whether any retries were needed.\n- A two-line diff sample (first preserved heading, first prose paragraph compressed).\n\n## Trust boundary\n\n- Never overwrite the original without writing a backup first.\n- Never run a third retry — bail out and restore.\n- If the LLM call errors out (network, quota), do NOT touch the original file. The compressor handles this; this skill only orchestrates and reports.\n\n## Guardrails\n\n- Do not compress files that aren't markdown (refuse with `Only .md supported`).\n- Do not compress files inside `.git\u002F`, `node_modules\u002F`, `__pycache__\u002F`, or `dist\u002F`.\n- Do not compress files larger than 100 KB without explicit `--force` from the user — a single LLM call may not fit them and partial compression risks data loss.\n\n## See also\n\n- [scripts\u002Fcaveman\u002Fcompress.py](..\u002F..\u002Fscripts\u002Fcaveman\u002Fcompress.py) — the compressor implementation.\n- [docs\u002Frunbooks\u002Fcaveman-toggle.md](..\u002F..\u002Fdocs\u002Frunbooks\u002Fcaveman-toggle.md) — how compression fits the broader caveman feature.\n","# caveman-compress — shrink memory files\n\nRewrite long markdown documents in caveman style, byte-preserving everything that must not change.\n\n## When to fire\n\nUser intent triggers (any of):\n- \"\u002Fcaveman-compress \u003Cfile>\"\n- \"compress AGENTS.md\", \"shrink this README\", \"make CLAUDE.md smaller\"\n- \"trim the docs\", \"reduce the runbook\"\n\n## Preconditions\n\n- Target file is markdown (`.md`).\n- Caller has read+write access to the file.\n- Working tree is clean for the target file (otherwise refuse and ask the user to stash or commit first — accidentally overwriting uncommitted edits would be hard to recover).\n\n## Steps\n\n1. **Confirm the target.** Echo `\u003Cfile>: \u003Cbytes> bytes, \u003Clines> lines` to the user. If the file is \u003C 200 bytes, refuse — not worth a roundtrip.\n\n2. **Backup.** Copy the original to `\u003Cfile>.original.md`. Refuse if a backup already exists with content different from the current file — that indicates an earlier compression session was not finalized.\n\n3. **Invoke the compressor:**\n\n   ```bash\n   python -m scripts.caveman compress \u003Cfile> --mode full\n   ```\n\n   Modes: `lite`, `full` (default), `ultra`. The compressor calls the LLM with the caveman ruleset and a strict preservation contract.\n\n4. **Validate the output.** The compressor enforces, and fails the run if violated:\n   - Every fenced code block (```` ``` ```` ... ```` ``` ````) is byte-identical to the original.\n   - Every heading (`#`, `##`, `###`, …) text and level is identical (order preserved).\n   - Every URL (`https?:\u002F\u002F...`) appears in the output exactly once and unchanged.\n   - Every file path (`\u002F`-containing tokens) appears in the output exactly once and unchanged.\n   - Every bash command line (lines starting with `$ ` or inside `bash` fenced blocks) is byte-identical.\n\n5. **Retry on validation failure.** Up to 2 retry passes with targeted patches — only the violated tokens are sent back to the LLM with the instruction to restore them. After 2 retries, restore from `\u003Cfile>.original.md` and exit 1.\n\n6. **Report.** Print:\n\n   ```\n   \u003Cfile>: \u003Corig_bytes> → \u003Cnew_bytes> ({pct}% saved)\n   backup: \u003Cfile>.original.md\n   ```\n\n## Output shape\n\nAfter completion, summarise to the user:\n- Original size, compressed size, percent saved.\n- Backup path.\n- Whether any retries were needed.\n- A two-line diff sample (first preserved heading, first prose paragraph compressed).\n\n## Trust boundary\n\n- Never overwrite the original without writing a backup first.\n- Never run a third retry — bail out and restore.\n- If the LLM call errors out (network, quota), do NOT touch the original file. The compressor handles this; this skill only orchestrates and reports.\n\n## Guardrails\n\n- Do not compress files that aren't markdown (refuse with `Only .md supported`).\n- Do not compress files inside `.git\u002F`, `node_modules\u002F`, `__pycache__\u002F`, or `dist\u002F`.\n- Do not compress files larger than 100 KB without explicit `--force` from the user — a single LLM call may not fit them and partial compression risks data loss.\n\n## See also\n\n- [scripts\u002Fcaveman\u002Fcompress.py](..\u002F..\u002Fscripts\u002Fcaveman\u002Fcompress.py) — the compressor implementation.\n- [docs\u002Frunbooks\u002Fcaveman-toggle.md](..\u002F..\u002Fdocs\u002Frunbooks\u002Fcaveman-toggle.md) — how compression fits the broader caveman feature.\n",{"name":5,"license":15,"metadata":40,"description":7},{"author":41,"version":42},"ai-playbook (ported from JuliusBrussee\u002Fcaveman, MIT)","1.0","main","08fe7aa0f06bc1a3f592ec82360e46b854846968","skills\u002Fcaveman-compress",1,"https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook","https:\u002F\u002Fgithub.com\u002FWizarck","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Framirezarturo\u002F","Geek by birth, with not much to say but plenty to talk about.","2026-11-09 19:34:21",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add Wizarck\u002Fai-playbook --skill caveman-compress",{"tool":58,"command":59},"bunx","bunx skills add Wizarck\u002Fai-playbook --skill caveman-compress",{"tool":61,"command":62},"pnpm","pnpm dlx skills add Wizarck\u002Fai-playbook --skill caveman-compress","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fcaveman-compress\u002FSKILL.md",true,[],[67,90,109,133,152,165],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":35},"01M71FATTWS9W3BME3S94SA1QR","sweep","Use when the user wants to find code that has quietly stopped being used — types \u002Fsweep, asks for a \"dead code sweep\", \"repo entropy\", \"what can we delete\", \"orphan files\", \"unused code\", or asks to review a sweep ledger. Adjudicates candidates a deterministic scanner already produced; it never deletes anything and never re-derives findings from raw source. Pairs with ponytail, which gates what gets written rather than what rots.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fsweep\u002FSKILL.md",[],[69,74,75,76,77,78,79,80,81,82,83,84,85,24,25,27,86,87,88,89],"deterministic","which","never","entropy","types","for","repo","re","ponytail","orphan","files","unused","can","gates","review","candidates",{"skillNo":91,"name":82,"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":35},"01M71FAQKVDA209G7G5NMY9H1E","Use when the user wants the laziest solution that actually works — types \u002Fponytail, says \"be lazy\", \"lazy mode\", \"simplest solution\", \"minimal solution\", \"yagni\", \"do less\", or \"shortest path\", or complains about over-engineering, bloat, boilerplate, or unnecessary dependencies. Supports intensity levels lite, full, ultra (default). Pairs with caveman, which compresses prose, not code.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail\u002FSKILL.md",[],[82,96,97,75,98,78,99,100,101,102,24,25,27,103,104,105,106,107,31,108],"notice","do","lazy","mode","default","minimal","intensity","with","yagni","about","dependencies","2026","boilerplate",{"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":120,"publishedAt":35},"01M71FAMS250NKNF1PET9KNBBV","ponytail-review","Use when the user wants a code review focused exclusively on over-engineering — says \"review for over-engineering\", \"what can we delete\", \"is this over-engineered\", \"simplify review\", or invokes \u002Fponytail-review. Complements correctness\u002Fsecurity review; this one only hunts complexity in the current diff. Gated by the ponytail review_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-review\u002FSKILL.md",[115],{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[121,82,88,122,123,79,124,125,24,25,126,127,27,128,86,129,130,131,132,31],"ponytail review","complexity","diff","code review","only","simplify","correctness","one","delete","component","security review","gated",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":35},"01M71FAG53ZPCSWE272P6S9JFN","ponytail-debt","Use when the user wants to harvest every `ponytail:` comment in the codebase into a tracked debt ledger — says \"ponytail debt\", \"\u002Fponytail-debt\", \"what did ponytail defer\", \"list the shortcuts\", \"ponytail ledger\", or \"what did we mark to do later\". One-shot report, changes nothing. Gated by the ponytail debt_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-debt\u002FSKILL.md",[],[140,82,141,142,97,143,144,130,145,146,132,147,148,31,149,150,24,25,151,128],"ponytail debt","debt","shortcuts","mark","to do","changes","later","report","codebase","harvest","list","ledger",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":35},"01M71FACJW88WCS2JGX3MQ3KV9","ponytail-audit","Use when the user wants a whole-repo audit for over-engineering — says \"audit this codebase\", \"audit for over-engineering\", \"what can I delete from this repo\", \"find bloat\", or invokes \u002Fponytail-audit. Like ponytail-review but scans the entire tree, not a diff. One-shot report, applies no fixes. Gated by the ponytail audit_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-audit\u002FSKILL.md",[],[159,82,160,161,123,162,79,80,24,25,163,128,86,88,129,130,132,164,147,148],"ponytail audit","audit","tree","fixes","entire","find",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":35},"01M71FA9THHXDX79PQTJ9CZX9E","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[172,173,103,174,175,176,177,178,179,79,180,181,182,183,184,185,24,25,186,187],"openspec","openspec propose","ready","proposal","change","cli","get","build","complete","design","new","implementation","generated","describe","artifacts","tasks"]