a11y-pass
Catch the accessibility failures that ship in almost every AI-built UI. Use after building any interactive component.
Cache the parts of the prompt that don't change so a long-running loop stops paying full price on every turn. Use when the system prompt, tool defs, or reference docs are stable across many turns.
$ npx -y skills add Archive228/loopkit --skill prompt-caching --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/prompt-cachingContext preview
The summary Claude sees to decide when to auto-load this skill.
Cache the parts of the prompt that don't change so a long-running loop stops paying full price on every turn. Use when the system prompt, tool defs, or reference docs are stable across many turns.
name: prompt-caching description: Cache the parts of the prompt that don't change so a long-running loop stops paying full price on every turn. Use when the system prompt, tool defs, or reference docs are stable across many turns. when_to_use: long session, repeated large context, cost climbing, system prompt >1024 tokens, unchanged tool definitions across turns
Every turn of a Plan→Act→Verify loop resends the same system prompt, the same tool definitions, and (usually) the same reference docs. Without cache breakpoints you pay full input price on all of it, every turn. With them, cached reads cost ~10% of the write.
Cache from the top of the prompt down. The cache is prefix-matched — a break in the middle invalidates everything after it.
1. **System prompt** — mark the end of it as a breakpoint if it's >1024 tokens (Sonnet/Opus) or >2048 (Haiku). 2. **Tool definitions** — cache immediately after, if the tool set is stable across the loop. 3. **Large stable docs** — repo map, style guide, spec — before any turn-specific user text. 4. **User message stem** — only if the same preamble repeats every turn.
Everything past the last breakpoint is billed fresh every turn. That's fine — that's where the changing content goes.
Pick 5m unless you know turns are minutes apart.
If cost isn't dropping, log the cache-hit metric. Do not assume.
Cache write ≈ 1.25× normal input. Cache read ≈ 0.1× normal input. So a stable 20K-token prefix hit N times: N=1 costs more than no-cache; N=2 breaks even; N=10 costs ~15% of no-cache. Long loops win big; short chats lose.
Cache is the single biggest cost lever on a long-running agent. Set it once at the start of the loop, verify hits, forget it.
33 battle-tested skills + minimal .claude harness for any coding agent (Claude Code, Cursor, Codex, Gemini CLI).
Catch the accessibility failures that ship in almost every AI-built UI. Use after building any interactive component.
Before compaction Loopkit extracts decisions into claude-decisions.json (machine-readable). Read it alongside claude-progress.txt…
Review a diff against the goal spec assuming the code is BROKEN. The reviewer
Verify that an endpoint checks ownership, not just authentication. Use on any handler that reads or mutates user data.
Find the exact commit that introduced a bug. Use when something worked before and broke, and you don't know which change did it.
Before picking new work, smoke-test the last "completed" feature. If it's broken, revert and re-open it before touching anything…