caveman · juliusbrussee — скилл для Claude Code: сжатие SPEC.md на ~75%
Скилл переводит записи в SPEC.md и рядом с ним на телеграфный «пещерный» язык. Токенов уходит примерно на 75% меньше, чем в обычной прозе.
npx skills add JuliusBrussee/cavekit --skill caveman -a claude-codeЧто делает caveman
Скилл включается, когда агент пишет в SPEC.md или в текст, который на спецификацию ссылается, включая записи backprop. Работает и по прямым словам: «caveman», «compress this», «be brief». Его подгружают команды /spec, /build и /check.
Внутри — грамматика и набор символов. Выбрасываются артикли, вводные слова вроде «just» и «basically», вспомогательные глаголы, вежливости и осторожные обороты. Вместо слов идут знаки: → для следствия, ∀ для «для всех», ! для обязательного, ⊥ для запрещённого. Инварианты пишутся как V1: ∀ req → auth check before handler, баги и задачи — строками таблиц с разделителем |, интерфейсы — как api: POST /x → 200 {id:string}.
Код, пути, URL, имена функций и переменных, версии, тексты ошибок, SQL, regex, JSON и YAML не сжимаются никогда. На ревью для внешних читателей, в коммитах и комментариях к диффу скилл отключается и возвращает обычный английский. Если сокращение уносит факт, слово остаётся: это сжатие, а не ампутация.
Какие задачи решает
- уложить спецификацию в контекст без потери фактов
- записать инварианты короткими строками вместо абзацев
- свести баги и задачи в таблицы с ссылками на инварианты
- описать интерфейсы одной строкой на эндпоинт
- сократить прозу вокруг спецификации по просьбе «be brief»
Примеры запросов агенту
- перепиши SPEC.md в caveman
- compress this: раздел про авторизацию
- be brief, добавь инвариант про истечение токена
Как установить caveman
1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill caveman -a claude-code2Вручную: положить файлы
~/.claude/skills/caveman/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/caveman/
1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill caveman -a codex2Вручную: положить файлы
.agents/skills/caveman/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill caveman -a cursor2Вручную: положить файлы
.cursor/skills/caveman/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install JuliusBrussee/cavekit caveman2Вручную: положить файлы
.github/skills/caveman/SKILL.md1Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill caveman -a gemini-cli2Командой платформы
gemini skills install https://github.com/JuliusBrussee/cavekit --path skills/cavemanВручную: положить файлы
.devin/skills/caveman/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add JuliusBrussee/cavekit --skill caveman -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора9
Другие версии caveman
Похожие
Рядом в теме «Настройка агента: память, контекст, субагенты»
Все скиллы по теме «Настройка агента: память, контекст, субагенты» →Вопросы о caveman
Как установить caveman в Claude?
Выполните npx skills add JuliusBrussee/cavekit --skill caveman -a claude-code. Скилл окажется в ~/.claude/skills/caveman/SKILL.md.
Что делает caveman?
Сжимает записи в SPEC.md и текст рядом с ним: убирает артикли, вводные слова и осторожные обороты, часть слов заменяет символами. Код, пути, идентификаторы и тексты ошибок остаются как есть.
Когда caveman не применяется?
В коде, текстах ошибок, сообщениях коммитов и описаниях PR. Также скилл отключается, если нужна проза для внешнего ревью или объяснение обычным английским.
Исходный текст
SKILL.md · MIT
---
name: caveman
description: |
Caveman encoding for SPEC.md and spec-adjacent writes. Loaded by /spec, /build,
/check. Cuts tokens ~75% vs prose while staying precise. Triggers on any write
to SPEC.md or when user says "caveman", "compress this", "be brief".
---
# caveman — spec encoding
Applies to SPEC.md writes, spec-referencing prose, backprop entries.
Does NOT apply to code, error strings, commit messages, PR descriptions.
## GRAMMAR
- Drop articles (a, an, the).
- Drop filler (just, really, basically, simply, actually).
- Drop aux verbs where fragment works (is, are, was, were, being).
- Drop pleasantries.
- No hedging (skip "might", "perhaps", "could be worth").
- Fragments fine.
- Short synonyms: fix > implement, big > extensive, run > execute.
## SYMBOLS
Prefer over words:
```
→ leads to / becomes / on <x>
∴ therefore / fix
∀ for all / every
∃ exists / some
! must / required
? may / optional / unknown
⊥ never / forbidden / nil
≠ not equal
∈ in
∉ not in
≤ at most
≥ at least
& and
| or
§ section reference
```
## PRESERVE VERBATIM
Never compress:
- Code blocks, snippets, one-liners with backticks.
- Paths: `src/auth/mw.go`.
- URLs.
- Identifiers: function names, variable names, env vars.
- Numbers and versions.
- Error message strings.
- SQL, regex, JSON, YAML.
- Quoted strings.
## SHAPES
**Invariant**:
```
V<n>: <subject> <relation> <condition>
V1: ∀ req → auth check before handler
V2: token expiry ≤ current_time → reject
```
**Bug row** (pipe table under §B):
```
id|date|cause|fix
B1|2026-04-20|token `<` not `≤`|V2
```
**Task row** (pipe table under §T):
```
id|status|task|cites
T3|x|add auth mw|V1,I.api
```
Status: `x` done, `~` wip, `.` todo. Escape literal `|` as `\|`.
**Interface**:
```
<kind>: <name> → <shape>
api: POST /x → 200 {id:string}
cmd: `foo bar <arg>` → stdout JSON
env: FOO_KEY ! set
```
## EXAMPLES
**Bad**:
> The system should ensure that every incoming request is properly authenticated before being forwarded to its corresponding handler function.
**Good**:
> V1: ∀ req → auth check before handler
**Bad**:
> We discovered that the token expiration check in the middleware was using a strict less-than comparison operator, which meant tokens were being rejected at the exact moment of their expiry.
**Good**:
> B1: token `<` not `≤` → reject @ expiry boundary.
**Bad**:
> The POST endpoint at /x accepts a JSON body and returns a 200 response with an object containing the created id.
**Good**:
> api: POST /x → 200 {id}
## BOUNDARIES
- User asks for prose explanation → switch to normal English.
- Spec documents for external review (RFC, pitch) → normal English.
- Commit message → normal English (git readers expect it).
- Diff comment in code → normal English.
## WHEN UNSURE
If cutting a word loses a fact, keep it. Caveman is compression, not amputation.
© JuliusBrussee · MIT · JuliusBrussee/cavekit