[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:prompt-cache-skills":3},"\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FOnlyTerp\u002Fprompt-cache-skills\u002FHEAD\u002Fassets\u002Fbanner.svg\" alt=\"prompt-cache-skills — Drop-in prompt-caching fixes for every LLM agent harness\" width=\"900\" \u002F>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Ca href=\"#how-to-use-it\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGet_Started-6366f1?style=for-the-badge&amp;logoColor=white\" alt=\"Get Started\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOnlyTerp\u002Fprompt-cache-skills\u002Fblob\u002FHEAD\u002Fskills\u002FREADME.md\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F13_Skills-8b5cf6?style=for-the-badge&amp;logoColor=white\" alt=\"13 Skills\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOnlyTerp\u002Fprompt-cache-skills\u002Fblob\u002FHEAD\u002Fdocs\u002Fscorecard.md\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F13_Completed_Audits-3b82f6?style=for-the-badge&amp;logoColor=white\" alt=\"13 Completed Audits\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"#why-this-exists\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FUp_to_10x_Savings-10b981?style=for-the-badge&amp;logoColor=white\" alt=\"10x Savings\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOnlyTerp\u002Fprompt-cache-skills\u002Fblob\u002FHEAD\u002FLICENSE\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-CC--BY--4.0-blue.svg?style=flat-square\" alt=\"License\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOnlyTerp\u002Fprompt-cache-skills\u002Fblob\u002FHEAD\u002FCHANGELOG.md\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Faudit_date-2026--05--27-purple.svg?style=flat-square\" alt=\"Audit Date\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOnlyTerp\u002Fprompt-cache-skills\u002Fblob\u002FHEAD\u002FCONTRIBUTING.md\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg?style=flat-square\" alt=\"PRs Welcome\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\u003Chr \u002F>\n\u003Cp>Most popular OSS agent harnesses (Cline, Roo Code, Continue, OpenCode,\nAider) leave \u003Cstrong>30-90% off your API bill\u003C\u002Fstrong> on the table because their\nprompt-caching code is subtly wrong, off-by-default, or just missing\nfor some providers.\u003C\u002Fp>\n\u003Cp>This repo is a set of \u003Cstrong>drop-in skills\u003C\u002Fstrong> that any AI coding agent\n(Claude Code, Codex, Cline, Cursor, Devin, Gemini CLI, OpenCode…) can\nread and apply on its own.\u003C\u002Fp>\n\u003Cp>You don't read the diffs. You point your agent at this repo and say:\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cem>\"Apply every skill in this repo that matches the harnesses I use.\"\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>The agent reads each \u003Ccode>SKILL.md\u003C\u002Fcode>, checks if it applies to your setup,\nlands the diff, and verifies the fix on the wire. You go from broken\nor partial caching to \u003Cstrong>80-99% cache hit rates\u003C\u002Fstrong> without doing the\nresearch yourself.\u003C\u002Fp>\n\u003Chr \u002F>\n\u003Ch2>What you actually save\u003C\u002Fh2>\n\u003Cp>One row per completed audit, so the coverage matches the scorecard:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Harness\u003C\u002Fth>\n\u003Cth>Finding\u003C\u002Fth>\n\u003Cth>Cost impact today\u003C\u002Fth>\n\u003Cth>Fix \u002F status\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Claude Desktop Code\u003C\u002Ftd>\n\u003Ctd>Default Desktop Code launches embedded Claude Code; clean Mac logs show non-zero cache read\u002Fcreate counters by default\u003C\u002Ftd>\n\u003Ctd>Already gets Anthropic cache benefits; no prompt-caching fix needed\u003C\u002Ftd>\n\u003Ctd>No skill; working baseline\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Codex CLI\u003C\u002Ftd>\n\u003Ctd>Correct OpenAI cache design: stable \u003Ccode>thread_id\u003C\u002Fcode> cache key\u003C\u002Ftd>\n\u003Ctd>Already gets OpenAI cache benefits\u003C\u002Ftd>\n\u003Ctd>No skill; reference implementation\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Aider\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>--cache-prompts\u003C\u002Fcode> off by default; 5min TTL\u002Fkeepalive overhead\u003C\u002Ftd>\n\u003Ctd>Many users get 0% cache reads unless they opt in; shorter cache window\u003C\u002Ftd>\n\u003Ctd>Skills: default-on caching + 1h TTL\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>OpenCode\u003C\u002Ftd>\n\u003Ctd>Strong Anthropic path, but proxy\u002FBedrock edge cases exist\u003C\u002Ftd>\n\u003Ctd>Some OpenAI-compatible→Anthropic\u002FBedrock routes miss cache\u003C\u002Ftd>\n\u003Ctd>Skills: proxy detection + Bedrock doc-block fix\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Roo Code\u003C\u002Ftd>\n\u003Ctd>Anthropic volatile-message bug; Bedrock custom ARN gap\u003C\u002Ftd>\n\u003Ctd>Wastes breakpoints; custom ARNs can drop to 0% cache reads\u003C\u002Ftd>\n\u003Ctd>Skills: volatile-msg fix + Bedrock custom ARN fix\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Cline\u003C\u002Ftd>\n\u003Ctd>Anthropic volatile-message bug; OpenAI lacks \u003Ccode>prompt_cache_key\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Wastes Anthropic breakpoint; OpenAI native can get 0% cache reads\u003C\u002Ftd>\n\u003Ctd>Skills: volatile-msg fix + OpenAI cache key + timestamp pin\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Continue\u003C\u002Ftd>\n\u003Ctd>Cache opt-in default; Gemini explicit caching missing; volatile-message bug\u003C\u002Ftd>\n\u003Ctd>Many users get 0% cache reads; Gemini relies on implicit luck\u003C\u002Ftd>\n\u003Ctd>Skills: default-on + volatile-msg + Gemini explicit cache\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Hermes \u002F Nous\u003C\u002Ftd>\n\u003Ctd>Multi-provider cache plumbing works; xAI wire showed cached tokens\u003C\u002Ftd>\n\u003Ctd>No verified savings bug in this audit\u003C\u002Ftd>\n\u003Ctd>No skill; working audit\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Codex Desktop\u003C\u002Ftd>\n\u003Ctd>ChatGPT Codex backend cache-scope headers observed\u002Finferred\u003C\u002Ftd>\n\u003Ctd>No verified savings bug in this audit\u003C\u002Ftd>\n\u003Ctd>No skill; inferred working\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Devin CLI\u003C\u002Ftd>\n\u003Ctd>Raw CLI model path is opaque Codeium\u002FDevin protobuf\u003C\u002Ftd>\n\u003Ctd>Cache behavior not inspectable from public CLI capture\u003C\u002Ftd>\n\u003Ctd>No skill; unver\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n",1784240407935]