Support per-skill prompt caching control via frontmatter

Resolved 💬 2 comments Opened Apr 7, 2026 by kellymears Closed May 20, 2026

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_CACHING disables 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

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗