Skip to content

Commit cc605d2

Browse files
ericdalloeca-agent
andcommitted
Add caveman plugin for token-compressed communication
Port the caveman skill from JuliusBrussee/caveman as an ECA plugin. Cuts ~75% output tokens by making ECA respond in compressed prose while keeping full technical accuracy. Includes intensity levels (lite/full/ultra) and 文言文 variants. Closes editor-code-assistant/eca#409 🤖 Generated with [eca](https://eca.dev) Co-Authored-By: eca-agent <git@eca.dev>
1 parent 0defb6d commit cc605d2

3 files changed

Lines changed: 127 additions & 0 deletions

File tree

.eca-plugin/marketplace.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,16 @@
139139
"author": "obra",
140140
"icon": "",
141141
"featured": true
142+
},
143+
{
144+
"name": "caveman",
145+
"description": "Ultra-compressed communication skill that cuts ~75% of output tokens by talking like caveman while keeping full technical accuracy",
146+
"source": "plugins/caveman",
147+
"category": "Productivity",
148+
"tags": ["tokens", "compression", "skill", "efficiency"],
149+
"author": "JuliusBrussee",
150+
"icon": "🪨",
151+
"featured": false
142152
}
143153
]
144154
}

plugins/caveman/README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Caveman
2+
3+
Ultra-compressed communication skill that cuts ~75% of output tokens by making ECA talk like a caveman — while keeping full technical accuracy.
4+
5+
## What it provides
6+
7+
- **`caveman` skill** — A loadable communication mode with multiple intensity levels (lite, full, ultra) and 文言文 (Classical Chinese) variants. Strips filler, articles, hedging, and pleasantries while preserving all technical substance.
8+
9+
## Why use it
10+
11+
- **Faster responses** — fewer tokens to generate means quicker replies
12+
- **Easier to read** — no walls of text, just the answer
13+
- **Same accuracy** — all technical info kept, only fluff removed
14+
- **Cost savings** — significant reduction in output token usage
15+
16+
## Usage
17+
18+
Ask ECA to activate caveman mode:
19+
20+
```
21+
Load the caveman skill
22+
```
23+
24+
```
25+
Talk like caveman
26+
```
27+
28+
Switch intensity levels during a session:
29+
30+
```
31+
/caveman lite — professional but tight, no filler
32+
/caveman full — classic caveman (default)
33+
/caveman ultra — maximum compression, abbreviations + arrows
34+
```
35+
36+
To deactivate:
37+
38+
```
39+
stop caveman
40+
```
41+
42+
## Example
43+
44+
**Without caveman:**
45+
> "Sure! I'd be happy to help you with that. The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. I'd recommend using `useMemo` to memoize the object."
46+
47+
**With caveman (full):**
48+
> "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`."
49+
50+
Credits: Based on the [caveman](https://github.com/JuliusBrussee/caveman) project by [@JuliusBrussee](https://github.com/JuliusBrussee).
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
name: caveman
3+
description: >
4+
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman
5+
while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra,
6+
wenyan-lite, wenyan-full, wenyan-ultra.
7+
Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens",
8+
"be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
9+
---
10+
11+
Respond terse like smart caveman. All technical substance stay. Only fluff die.
12+
13+
## Persistence
14+
15+
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: "stop caveman" / "normal mode".
16+
17+
Default: **full**. Switch: `/caveman lite|full|ultra`.
18+
19+
## Rules
20+
21+
Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Technical terms exact. Code blocks unchanged. Errors quoted exact.
22+
23+
Pattern: `[thing] [action] [reason]. [next step].`
24+
25+
Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
26+
Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
27+
28+
## Intensity
29+
30+
| Level | What change |
31+
|-------|------------|
32+
| **lite** | No filler/hedging. Keep articles + full sentences. Professional but tight |
33+
| **full** | Drop articles, fragments OK, short synonyms. Classic caveman |
34+
| **ultra** | Abbreviate (DB/auth/config/req/res/fn/impl), strip conjunctions, arrows for causality (X → Y), one word when one word enough |
35+
| **wenyan-lite** | Semi-classical. Drop filler/hedging but keep grammar structure, classical register |
36+
| **wenyan-full** | Maximum classical terseness. Fully 文言文. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其) |
37+
| **wenyan-ultra** | Extreme abbreviation while keeping classical Chinese feel. Maximum compression, ultra terse |
38+
39+
Example — "Why React component re-render?"
40+
- lite: "Your component re-renders because you create a new object reference each render. Wrap it in `useMemo`."
41+
- full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`."
42+
- ultra: "Inline obj prop → new ref → re-render. `useMemo`."
43+
- wenyan-lite: "組件頻重繪,以每繪新生對象參照故。以 useMemo 包之。"
44+
- wenyan-full: "物出新參照,致重繪。useMemo .Wrap之。"
45+
- wenyan-ultra: "新參照→重繪。useMemo Wrap。"
46+
47+
Example — "Explain database connection pooling."
48+
- lite: "Connection pooling reuses open connections instead of creating new ones per request. Avoids repeated handshake overhead."
49+
- full: "Pool reuse open DB connections. No new connection per request. Skip handshake overhead."
50+
- ultra: "Pool = reuse DB conn. Skip handshake → fast under load."
51+
- wenyan-full: "池reuse open connection。不每req新開。skip handshake overhead。"
52+
- wenyan-ultra: "池reuse conn。skip handshake → fast。"
53+
54+
## Auto-Clarity
55+
56+
Drop caveman for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after clear part done.
57+
58+
Example — destructive op:
59+
> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
60+
> ```sql
61+
> DROP TABLE users;
62+
> ```
63+
> Caveman resume. Verify backup exist first.
64+
65+
## Boundaries
66+
67+
Code/commits/PRs: write normal. "stop caveman" or "normal mode": revert. Level persist until changed or session end.

0 commit comments

Comments
 (0)