Support per-skill prompt caching control via frontmatter
Summary
Skills that aggregate live data from external sources (via MCP tools, etc.) produce stale analysis when prompt caching reuses prior context. There's currently no way to disable prompt caching for specific skills — only globally or per-model tier via DISABLE_PROMPT_CACHING_* env vars.
Problem
Skills like daily briefings or activity digests fetch live data from MCP servers (Slack, GitHub, etc.) on every invocation. The API calls themselves return fresh data, but prompt caching can cause the surrounding analysis to be framed by stale cached context rather than the new data.
Current workarounds are all blunt instruments:
DISABLE_PROMPT_CACHINGdisables caching globally (expensive)DISABLE_PROMPT_CACHING_{MODEL}requires dedicating a model tier to uncached skills- Injecting timestamps or images to bust the cache is fragile and wasteful
Proposal
Add an optional cache frontmatter field to skill definitions:
---
name: briefing
description: Daily engineering briefing
cache: false
---
When cache: false, skip cache_control breakpoints for that skill's prompt content so each invocation gets a fresh pass.
Use cases
- Daily standups / briefings that synthesize cross-channel activity
- Field reports aggregating team-wide status
- Any skill where the analysis of live data is the primary value, not the instructions themselves
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗