Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
072aa84
feat(caveman-compress): introduce caveman compression skill for natur…
BrainerVirus Apr 9, 2026
b83f19c
feat(issues): enhance issue management with new functionalities and U…
BrainerVirus Apr 9, 2026
b83ee23
fix(issues): update iteration handling in AssignedIssues components
BrainerVirus Apr 9, 2026
6893c73
fix(issues): speed up sync and refine filters
BrainerVirus Apr 9, 2026
d026ee8
fix(issues): prevent assigned issue tab data bleed
BrainerVirus Apr 13, 2026
02d49ac
fix(issues): refine assigned board filters and search
BrainerVirus Apr 13, 2026
2938fe9
feat(issues): add issue code theme preference and enhance issue details
BrainerVirus Apr 20, 2026
0ac93d1
feat(issues): enhance IssueHubPage and IssueDetails components with s…
BrainerVirus Apr 20, 2026
8d1446b
feat(issues): enhance issue commenting and metadata management
BrainerVirus Apr 20, 2026
f5d424c
feat(issues): enhance IssueDetailsMainSection with description editin…
BrainerVirus Apr 21, 2026
d217b71
feat(issues): implement description editing functionality in IssueHub…
BrainerVirus Apr 21, 2026
6d169fa
feat(issues): implement issue deletion and activity loading features
BrainerVirus Apr 21, 2026
02e7874
feat(issues): enhance issue details with time logging and improved UI…
BrainerVirus Apr 21, 2026
a348c8a
feat(issues): enhance activity section with expand/collapse functiona…
BrainerVirus Apr 21, 2026
3f94ddb
feat(issues): improve description and activity sections with dynamic …
BrainerVirus Apr 21, 2026
9c262d5
feat(issues): update layout and styling in IssueHubPage and IssueDeta…
BrainerVirus Apr 21, 2026
20b1ba9
feat(issues): enhance activity section with dynamic expand/collapse b…
BrainerVirus Apr 21, 2026
2c6a40f
feat(issues): refine activity section with improved scrolling and hei…
BrainerVirus Apr 22, 2026
e2959e8
feat(boneyard): integrate boneyard-js for skeleton loading and config…
BrainerVirus Apr 22, 2026
d4c5016
refactor(issues): update layout in IssueHubPage and styling in IssueD…
BrainerVirus Apr 22, 2026
ffec371
refactor(issues): adjust margins in IssueHubPage and IssueDetailsSkel…
BrainerVirus Apr 22, 2026
a00f5b9
fix(issues): update navigation and translations in IssueHubPage
BrainerVirus Apr 22, 2026
641e0a2
feat(issues): implement scroll reset on issue reference change in Iss…
BrainerVirus Apr 22, 2026
0892086
feat(issues): enhance IssueDetailsMainSection with badge and scroll a…
BrainerVirus Apr 22, 2026
bd168ca
feat(issues): implement issue details caching and prefetching for imp…
BrainerVirus Apr 25, 2026
ebb49ad
fix: satisfy verification gates
BrainerVirus Apr 25, 2026
0dd7603
chore: configure react doctor gate
BrainerVirus Apr 25, 2026
3e9adc9
feat(issues): enhance HomeAssignedIssuesSection with count badge and …
BrainerVirus Apr 25, 2026
c0a9194
feat(issues): enhance HomeAssignedIssuesSection with pagination and a…
BrainerVirus Apr 25, 2026
8750869
feat(issues): add localized pagination controls and enhance HomeAssig…
BrainerVirus Apr 25, 2026
6cea2f2
feat(tests): mock IssueMarkdownField in IssueHubPage tests for enhanc…
BrainerVirus Apr 25, 2026
ee30534
fix(home): avoid conditional hooks in HomeAssignedIssuesSection
BrainerVirus Apr 25, 2026
864eacc
chore: oxfmt HomeAssignedIssuesSection test
BrainerVirus Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .agents/skills/caveman/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
name: caveman
description: >
Ultra-compressed communication mode. Slash token usage ~75% by speaking like caveman
while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman",
"use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers
when token efficiency is requested.
---

# Caveman Mode

## Core Rule

Respond like smart caveman. Cut articles, filler, pleasantries. Keep all technical substance.

## Grammar

- Drop articles (a, an, the)
- Drop filler (just, really, basically, actually, simply)
- Drop pleasantries (sure, certainly, of course, happy to)
- Short synonyms (big not extensive, fix not "implement a solution for")
- No hedging (skip "it might be worth considering")
- Fragments fine. No need full sentence
- Technical terms stay exact. "Polymorphism" stays "polymorphism"
- Code blocks unchanged. Caveman speak around code, not in code
- Error messages quoted exact. Caveman only for explanation

## Pattern

```
[thing] [action] [reason]. [next step].
```

Not:
> Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by...

Yes:
> Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:

## Examples

**User:** Why is my React component re-rendering?

**Normal (69 tokens):** "The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I'd recommend using useMemo to memoize the object."

**Caveman (19 tokens):** "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`."

---

**User:** How do I set up a PostgreSQL connection pool?

**Caveman:**
```
Use `pg` pool:
```
```js
const pool = new Pool({
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
})
```
```
max = concurrent connections. Keep under DB limit. idleTimeout kill stale conn.
```

## Boundaries

- Code: write normal. Caveman English only
- Git commits: normal
- PR descriptions: normal
- User say "stop caveman" or "normal mode": revert immediately
159 changes: 159 additions & 0 deletions .agents/skills/compress/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
<p align="center">
<img src="https://em-content.zobj.net/source/apple/391/rock_1faa8.png" width="80" />
</p>

<h1 align="center">caveman-compress</h1>

<p align="center">
<strong>shrink memory file. save token every session.</strong>
</p>

---

A Claude Code skill that compresses your project memory files (`CLAUDE.md`, todos, preferences) into caveman format — so every session loads fewer tokens automatically.

Claude read `CLAUDE.md` on every session start. If file big, cost big. Caveman make file small. Cost go down forever.

## What It Do

```
/caveman:compress CLAUDE.md
```

```
CLAUDE.md ← compressed (Claude reads this — fewer tokens every session)
CLAUDE.original.md ← human-readable backup (you edit this)
```

Original never lost. You can read and edit `.original.md`. Run skill again to re-compress after edits.

## Benchmarks

Real results on real project files:

| File | Original | Compressed | Saved |
|------|----------:|----------:|------:|
| `claude-md-preferences.md` | 706 | 285 | **59.6%** |
| `project-notes.md` | 1145 | 535 | **53.3%** |
| `claude-md-project.md` | 1122 | 687 | **38.8%** |
| `todo-list.md` | 627 | 388 | **38.1%** |
| `mixed-with-code.md` | 888 | 574 | **35.4%** |
| **Average** | **898** | **494** | **45%** |

All validations passed ✅ — headings, code blocks, URLs, file paths preserved exactly.

## Before / After

<table>
<tr>
<td width="50%">

### 📄 Original (706 tokens)

> "I strongly prefer TypeScript with strict mode enabled for all new code. Please don't use `any` type unless there's genuinely no way around it, and if you do, leave a comment explaining the reasoning. I find that taking the time to properly type things catches a lot of bugs before they ever make it to runtime."

</td>
<td width="50%">

### 🪨 Caveman (285 tokens)

> "Prefer TypeScript strict mode always. No `any` unless unavoidable — comment why if used. Proper types catch bugs early."

</td>
</tr>
</table>

**Same instructions. 60% fewer tokens. Every. Single. Session.**

## Install

Compress is built in with the `caveman` plugin. Install `caveman` once, then use `/caveman:compress`.

If you need local files, the compress skill lives at:

```bash
caveman-compress/
```

**Requires:** Python 3.10+

## Usage

```
/caveman:compress <filepath>
```

Examples:
```
/caveman:compress CLAUDE.md
/caveman:compress docs/preferences.md
/caveman:compress todos.md
```

### What files work

| Type | Compress? |
|------|-----------|
| `.md`, `.txt`, `.rst` | ✅ Yes |
| Extensionless natural language | ✅ Yes |
| `.py`, `.js`, `.ts`, `.json`, `.yaml` | ❌ Skip (code/config) |
| `*.original.md` | ❌ Skip (backup files) |

## How It Work

```
/caveman:compress CLAUDE.md
↓
detect file type (no tokens)
↓
Claude compresses (tokens — one call)
↓
validate output (no tokens)
checks: headings, code blocks, URLs, file paths, bullets
↓
if errors: Claude fixes cherry-picked issues only (tokens — targeted fix)
does NOT recompress — only patches broken parts
↓
retry up to 2 times
↓
write compressed → CLAUDE.md
write original → CLAUDE.original.md
```

Only two things use tokens: initial compression + targeted fix if validation fails. Everything else is local Python.

## What Is Preserved

Caveman compress natural language. It never touch:

- Code blocks (` ``` ` fenced or indented)
- Inline code (`` `backtick content` ``)
- URLs and links
- File paths (`/src/components/...`)
- Commands (`npm install`, `git commit`)
- Technical terms, library names, API names
- Headings (exact text preserved)
- Tables (structure preserved, cell text compressed)
- Dates, version numbers, numeric values

## Why This Matter

`CLAUDE.md` loads on **every session start**. A 1000-token project memory file costs tokens every single time you open a project. Over 100 sessions that's 100,000 tokens of overhead — just for context you already wrote.

Caveman cut that by ~45% on average. Same instructions. Same accuracy. Less waste.

```
┌──────────────────────────────────────────┐
│ TOKEN SAVINGS PER FILE ████████ 45% │
│ SESSIONS THAT BENEFIT ████████ 100% │
│ INFORMATION PRESERVED ████████ 100% │
│ SETUP TIME █ 1x │
└──────────────────────────────────────────┘
```

## Part of Caveman

This skill is part of the [caveman](https://github.com/JuliusBrussee/caveman) toolkit — making Claude use fewer tokens without losing accuracy.

- **caveman** — make Claude *speak* like caveman (cuts response tokens ~65%)
- **caveman-compress** — make Claude *read* less (cuts context tokens ~45%)
110 changes: 110 additions & 0 deletions .agents/skills/compress/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
name: compress
description: >
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"
---

# 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`.

## Trigger

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

## Process

1. This SKILL.md lives alongside `scripts/` in the same directory. Find that directory.

2. Run:

cd <directory_containing_this_SKILL.md> && python3 -m scripts <absolute_filepath>

3. 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

4. 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, 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
- Never compress FILE.original.md (skip it)
Empty file.
3 changes: 3 additions & 0 deletions .agents/skills/compress/scripts/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .cli import main

main()
Loading