Catalog
JuliusBrussee/caveman-compress

JuliusBrussee

caveman-compress

Compress a memory file such as CLAUDE.md or a todo list into caveman format to save input tokens, keeping a readable backup. Trigger: /caveman-compress.

NewUpdated Sep 21, 2026

Caveman Compress

Purpose

Compress natural language files (CLAUDE.md, todos, preferences) into caveman-speak to reduce input tokens. Compressed version overwrites original. Human-readable backup saved as <filename>.original.md, but NOT beside the source file — it lives in an out-of-tree data dir ($XDG_DATA_HOME/caveman-compress/backups/<parent-dir-name>/, or %LOCALAPPDATA%\caveman-compress\backups\<parent-dir-name>\ on Windows) so skill auto-loaders don't re-ingest it as a live file.

Trigger

/caveman-compress <filepath> or when user asks to compress a memory file.

Process

  1. The compression scripts live in scripts/ (adjacent to this SKILL.md). If the path is not immediately available, search for scripts/__main__.py next to this SKILL.md.

  2. From the directory containing this SKILL.md, run:

python3 -m scripts <absolute_filepath>

  1. The CLI will:
  • detect file type (no tokens)
  • call Claude to compress
  • validate output (no tokens)
  • if errors: cherry-pick fix with Claude (targeted fixes only, no recompression)
  • retry up to 2 times
  • if still failing after 2 retries: report error to user, leave original file untouched
  1. Return result to user

Compression Rules

Remove

  • Articles: a, an, the
  • Filler: just, really, basically, actually, simply, essentially, generally
  • Pleasantries: "sure", "certainly", "of course", "happy to", "I'd recommend"
  • Hedging: "it might be worth", "you could consider", "it would be good to"
  • Redundant phrasing: "in order to" → "to", "make sure to" → "ensure", "the reason is because" → "because"
  • Connective fluff: "however", "furthermore", "additionally", "in addition"

Preserve EXACTLY (never modify)

  • Code blocks (fenced ``` and indented)
  • Inline code (backtick content)
  • URLs and links (full URLs, markdown links)
  • File paths (/src/components/..., ./config.yaml)
  • Commands (npm install, git commit, docker build)
  • Technical terms (library names, API names, protocols, algorithms)
  • Proper nouns (project names, people, companies)
  • Dates, version numbers, numeric values
  • Environment variables ($HOME, NODE_ENV)

Preserve Structure

  • All markdown headings (keep exact heading text, compress body below)
  • Bullet point hierarchy (keep nesting level)
  • Numbered lists (keep numbering)
  • Tables (compress cell text, keep structure)
  • Frontmatter/YAML headers in markdown files

Compress

  • Use short synonyms: "big" not "extensive", "fix" not "implement a solution for", "use" not "utilize"
  • Fragments OK: "Run tests before commit" not "You should always run tests before committing"
  • Drop "you should", "make sure to", "remember to" — just state the action
  • Merge redundant bullets that say the same thing differently
  • Keep one example where multiple examples show the same pattern

CRITICAL RULE: Anything inside ... must be copied EXACTLY. Do not:

  • remove comments
  • remove spacing
  • reorder lines
  • shorten commands
  • simplify anything

Inline code (...) must be preserved EXACTLY. Do not modify anything inside backticks.

If file contains code blocks:

  • Treat code blocks as read-only regions
  • Only compress text outside them
  • Do not merge sections around code

Pattern

Original:

You should always make sure to run the test suite before pushing any changes to the main branch. This is important because it helps catch bugs early and prevents broken builds from being deployed to production.

Compressed:

Run tests before push to main. Catch bugs early, prevent broken prod deploys.

Original:

The application uses a microservices architecture with the following components. The API gateway handles all incoming requests and routes them to the appropriate service. The authentication service is responsible for managing user sessions and JWT tokens.

Compressed:

Microservices architecture. API gateway route all requests to services. Auth service manage user sessions + JWT tokens.

Boundaries

  • ONLY compress natural language files (.md, .txt, .typ, .typst, .tex, extensionless)
  • NEVER modify: .py, .js, .ts, .json, .yaml, .yml, .toml, .env, .lock, .css, .html, .xml, .sql, .sh
  • If file has mixed content (prose + code), compress ONLY the prose sections
  • If unsure whether something is code or prose, leave it unchanged
  • Original file is backed up as FILE.original.md before overwriting — in the out-of-tree backup data dir (see Purpose), not beside the source file
  • Never compress FILE.original.md (skip it)
Files10
10 files · 66.6 KB

Select a file to preview

Overall Score

82/100

Grade

B

Good

Grades are signals, not a certification. Always review a skill yourself before use.

Safety

80

Quality

85

Clarity

82

Completeness

78

Summary

Caveman-compress is a Claude Code skill that compresses natural-language project files (CLAUDE.md, todos, preferences) into abbreviated caveman format to reduce input token usage. It reads a file, calls Claude to compress it with structured rules (preserve code, URLs, paths; remove filler), validates the output, and writes the result back while storing a human-readable backup in an out-of-tree data directory.

Static Analysis Findings

2 findings

Patterns detected by deterministic static analysis before AI scoring. Hover over any finding code for detailed information and remediation guidance.

Credential Exposure
SEC-020Direct .env File Access5x in 3 files

Direct .env file access

SKILL.md.env
scripts/detect.py.env2x
scripts/compress.py.env2x
SEC-022SSH/Credentials File AccessMax: B

SSH key or credentials file access

scripts/compress.py.netrc

Detected Capabilities

file readfile writesubprocess executionAPI call (Anthropic)file lock (cross-session)environment variable readatomic file writefile permission preservation

Trigger Keywords

Phrases that agents use to match this skill to user intent.

compress memory filereduce token usagecompress claude.mdcompress todo listcompress project notes

Risk Signals

WARNING

Direct .env file access in detection and compression scripts

scripts/detect.py, scripts/compress.py
CRITICAL

SSH key / credentials file access (.netrc) in compression script

scripts/compress.py
INFO

Environment variable read (ANTHROPIC_API_KEY, CAVEMAN_MODEL)

scripts/compress.py
WARNING

Subprocess execution (subprocess.run) to call 'claude' CLI

scripts/compress.py
INFO

File I/O operations (read/write) constrained to user-specified file + backup directory

scripts/compress.py, scripts/cli.py

Referenced Domains

External domains referenced in skill content, detected by static analysis.

em-content.zobj.netgithub.com

Use Cases

  • Reduce CLAUDE.md file size to save input tokens across sessions
  • Compress project memory and todo files while preserving code and links
  • Maintain readable backups of compressed files in a dedicated data directory
  • Validate compressed output to ensure code blocks, URLs, and structure are preserved exactly

Quality Notes

  • ✅ Excellent scope documentation: SKILL.md clearly defines which file types are compressible vs. skipped, with a comprehensive table
  • ✅ Strong validation framework: separate validate.py module with line-by-line code block extraction, URL/path/heading preservation checks, bullet structure validation
  • ✅ Atomic file writes with tempfile + fsync + os.replace() prevent corruption on mid-write failures
  • ✅ Cross-session file locking (fcntl/msvcrt) prevents concurrent compression attempts; wait timeouts prevent hangs
  • ✅ Explicit denylist for sensitive files (SENSITIVE_BASENAME_REGEX, SENSITIVE_PATH_COMPONENTS) blocks .env, .netrc, credentials, SSH keys before read
  • ✅ Frontmatter preservation logic surgically removes and reattaches YAML headers so LLM cannot corrupt them
  • ✅ Comprehensive compression rules (remove articles, filler, hedging; preserve code blocks, inline code, URLs, paths, commands, version numbers)
  • ⚠️ SEC-020/.env access: scripts check .env against denylist but also enumerate it as a skip extension; the warning confidence is 0.85 but context is defensive (it's on the SKIP list)
  • ⚠️ SEC-022/.netrc in compress.py: flagged because is_sensitive_path() regex search matches it — this is INTENTIONAL (the denylist), not a vulnerability — the code REJECTS .netrc before reading
  • ⚠️ Documentation of security rationale is thorough (SECURITY.md) but somewhat buried; a note in SKILL.md 'Boundaries' section would make this even clearer
  • ✅ Fallback error handling: if validation fails, Claude is called again to fix ONLY the broken parts (no full recompression); retries capped at 2
  • ✅ README demonstrates real-world token savings (46% average across 5 fixtures) with validator proof that structure was preserved
  • ✅ Edge case handling: empty files, mixed CRLF/LF, non-UTF-8 encoding rejected early with clear message, large files (>500KB) rejected before API call
Model: claude-haiku-4-5-20251001Analyzed: Sep 21, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Version History

  1. v2.2

    Content updated

    ✦ AIREADME.md documentation updated; no behavioral changes to skill logic or instructions.

    2026-09-21

    LATEST
  2. v2.1

    Content updated

    ✦ AIUpdates executable script scripts/cli.py

    2026-09-15

    View This Version
  3. v2.0

    Contract changed: description

    ✦ AIDescription narrowed to less specific usage guidance; compression scripts significantly expanded (compress.py doubled, validate.py increased 67%).

    triggering2026-09-09

    View This Version
  4. v1.0

    2026-08-17

    View This VersionInitial version

Use JuliusBrussee/caveman-compress in your dev environment

Command Palette

Search for a command to run...