Catalog
juliusbrussee/caveman-compress

juliusbrussee

caveman-compress

Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman-compress FILEPATH or "compress memory file"

v1.0Latest
New~1.2kUpdated Aug 17, 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 · 42.2 KB

Select a file to preview

Overall Score

84/100

Grade

B

Good

Safety

85

Quality

85

Clarity

82

Completeness

80

Summary

Caveman-compress is a Claude Code skill that reduces input tokens by compressing natural-language files (CLAUDE.md, todos, preferences) into abbreviated "caveman" format while preserving code blocks, URLs, headings, and technical substance. It creates atomic backups in an out-of-tree data directory, validates compression output locally, and uses targeted Claude API calls to fix validation failures.

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/compress.py.env2x
scripts/detect.py.env2x
SEC-022SSH/Credentials File AccessMax: B

SSH key or credentials file access

scripts/compress.py.netrc

Detected Capabilities

file readfile writesubprocess executionapi request (anthropic)atomic file operationsenvironment variable read

Trigger Keywords

Phrases that MCP clients use to match this skill to user intent.

compress memory filereduce token usageshorten claude.mdcaveman formatcompress documentation

Risk Signals

INFO

Direct .env file access in SKILL.md documentation

SKILL.md | Boundaries section
INFO

Direct .env file access in compress.py

scripts/compress.py | lines with environment variable reads
WARNING

SSH credentials file access (.netrc) in compress.py

scripts/compress.py | SENSITIVE_BASENAME_REGEX pattern
INFO

Direct .env file access in detect.py

scripts/detect.py | .env in SKIP_EXTENSIONS set
INFO

Subprocess execution for Claude CLI

scripts/compress.py | call_claude() function, line ~160
INFO

File read of arbitrary user-provided path

scripts/compress.py | compress_file() at line ~210
INFO

File write with atomic operation safeguards

scripts/compress.py | write_text_atomic() function
INFO

Sensitive path heuristic denylist checks .env, .netrc, credentials, keys

scripts/compress.py | is_sensitive_path() function

Referenced Domains

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

em-content.zobj.netgithub.com

Use Cases

  • Reduce repeated token costs for project memory files loaded each session
  • Compress developer documentation and notes while preserving technical accuracy
  • Create human-readable backups of important files before compression
  • Validate and fix compressed markdown structure automatically

Quality Notes

  • ✅ Excellent security documentation: SECURITY.md explicitly addresses Snyk High Risk concerns and clarifies what the skill does/does not do
  • ✅ Clear scope boundaries: ONLY compresses natural-language files (.md, .txt, etc.), refuses code/config extensions
  • ✅ Strong credential access controls: is_sensitive_path() denylist prevents .env, .netrc, SSH keys, and credentials files from being sent to API
  • ✅ Atomic file writes with verification: write_text_atomic() prevents partial/corrupt writes, backup readback validation prevents filesystem corruption
  • ✅ Comprehensive error handling: max retry logic (2 attempts), graceful fallback from SDK to CLI auth, detailed error messages
  • ✅ Well-documented compression rules: Pattern section shows before/after examples, Preservation section lists what must never change
  • ✅ Validator subsystem: extract_headings(), extract_code_blocks(), extract_urls(), validate_inline_codes() provide deterministic structural checks
  • ✅ Proper subprocess handling: no shell=True, no string interpolation, user content passed via stdin not arguments
  • ⚠️ Relies on environment variable ANTHROPIC_API_KEY for SDK auth (expected and documented)
  • ⚠️ Fallback to CLI auth via subprocess (documented in SECURITY.md as intentional, not a bypass)
Model: claude-haiku-4-5-20251001Analyzed: Aug 17, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use juliusbrussee/caveman-compress in your dev environment

Command Palette

Search for a command to run...