From 760e3d2b595eacc66a61037d41e0e77252c59743 Mon Sep 17 00:00:00 2001 From: vraj Date: Sun, 5 Apr 2026 10:19:57 -0700 Subject: [PATCH 1/4] Add intensity levels (lite, full, ultra) to caveman mode Adds three compression levels so users can dial caveman up or down: - Lite: drops filler/pleasantries, keeps normal grammar - Full: existing default behavior, unchanged - Ultra: maximum telegraphic compression with abbreviations Closes #10 Co-Authored-By: Claude Opus 4.6 --- caveman.skill | Bin 1314 -> 2000 bytes plugins/caveman/skills/caveman/SKILL.md | 56 ++++++++++++++++++++++-- skills/caveman/SKILL.md | 56 ++++++++++++++++++++++-- 3 files changed, 104 insertions(+), 8 deletions(-) diff --git a/caveman.skill b/caveman.skill index 1dadcb0db53e2791013054e963a6d86423ec11ec..c7630ba91db6db142ff0392596d95ce7413ffe48 100644 GIT binary patch literal 2000 zcmV;>2QT z%<%mDJhQ6i1r_RsYh|;NL*aE3wX+NQA|v|VM6b>ZS2vzR;F9oIw^kQQWT7Sqe<&U)LC^W3L+HT0`E$@vG?J8}Uw#<#ZT(`zhfd>_@{x>y=P%Ehu+DGY2`Jq@zQzVy1~0Ze;Tgj^py#YR2$uS^m?;lA9@^p zba=hig=SlHqyu?=*K&wl=Gi$ik$pfH1H|Wmh~GGHp6O+4@arXq#@Vt*9BSnw?X4mK zgacgwFQTH2VLzwFunNio2#1{hifEHMiF9aJAu3yNo@I~wARa=!pxI2~JDWj&r7Y6A z)3KuE=xoZta(;9m;wJ|wAIm(s^0ikrP-odWJ@&5IwheKP zKmm6*r4XsC+6zrqYR;1k;72NuO(@Hf>hs4O$R~71v zLT8=rYTR4t4Oth7Z&NgGq}KFpI+}<*uGu2w6r5>OBdndDh@uycDlRut*3+=n4a6hW zdQ(M0>Fi*o0syEi*+VGZdE(VZ^aa?kXea2fj8;q49as`lFyyZHiHq!k61nSu5TVFv za^*}{JKt0~)RXiICEpw$Lc;~>idM!I+d!=?QdY}+Uv{Zokr>xnY4j3ai^tlgAGm+% zJ*vJ&Q=rQOy=xt+cZ4u%aR{`;1LuuVHW5XtfGZUN9M8+;GJ6v%`2Q2V!CeU80a*@s z$mxwm*x>>ZrhhEL$04KxLC=er(jjlq?j@K2=s6iXfdteVxq!rrK?Gi-gwEz!{ z+R=k_sn^M59Cd);5#Fe4R3GL9Anch`9em4E8F-d)gaaf(e1U(@xpq<&HU8IsV_}s+ zb3T!{j#WDS=rph|PJ(dkJ4~H8DgM#J6g822cns0o8@UHMU z{X521t!@|e@rN?OG|KrJ!F6qX4wBWFrGNeqf8^c4_#KIllfXaDMq?Qi!Up6qs#Ed~ zSI1G)rn-6j2=!NMwB(Ut+G=4o3}8+dhb~9cJlzlaXKB#O;Ro~#gNAZVf7eO`$~8|D0rApc!dx+VwggXU;%}7;QpS*_|PyP(F9226iIA4yi6^ z!KtB6)XLp3felTU_uA6ZmI8)6>AJ0H<6Db}U9;g0N)&CC(`9Njj3h9)@@QoYAP~0n zzDHYf3e;D?mE7`e^0P55I1=ZpmFF9+BBzZIF#4G^ef(&im~$?fUF(fZ?|1T#EGC%p zGCkA8MXVcSl;bP z8L6Y`kMzsG|3k0O?$p=+NY7G|i8o#g3%^G&920KOw)|UM`(MZgc~{!Jk4X<)IZ{u& z$3C-}6xaWo;}AqCx@6{{s@Eg&A2rGIk*?q4$xB%uV5d}3Ve{j=+=x`&R-MBFd1*Hw z-zqJV5dB)GPQ(zwBO928N0~7!N00;ngQiWXgm|PPY2LJ#{ z4*&oV02lxO000010001_fdBvi0ApcxWo=<@FH=iNOiV6qWK~oJ00Xj_(rI;g3jhHG i^#K3?1ONa408mQ>1^@s60096209F710AvRM0002rw6#V6 literal 1314 zcmV+-1>O2kO9KQH000080Iy(#T-YCwqM!r-0HX*101yBG0ApcxWo=<@FH=iNOiV6q zWMx+UZ`(Ey{at^>O~Vi;u(h_sHq2;RENR*mTY@YfD2AYbY3VF6mPnPPVr#?px9=V0 zuWSK=P~`FM-Me?kOeT}WsD`JMt0!)hNecG4({0e!OzBNRbYBOjCb?}|$KG>6ST>!} zxe^;{Y{41b*2-5D?2-+2UX@J${P_JhH1El`td`o8RO==0q7bbrT{A72TRB{Gbxncu zO8nNO^1O2@?=!mh4Abb99eLGzN;gho=yXhJQ1$Ye`*e%|DQ@gHD6N5hKBcaF!DvkOWav9=3{rE?y;m1^4_)XCM`$|7Um8*BOo_vX4J zV*~Lzpg8)8CGU0IN+ljQY(NTmTX#`&3+qyGbY-dHq7(s*{8G0t57g+g3WV~m5TybD zxGdPgDBgMRR4M*EVi+hFJ`6+EQGp%@C@I74Zbxlk2b5s92SQMhQF?9bzOk;Yv~SXQ z1X;F+oA7Xs%G12I`O;Ho@=BQ!`q&90HUv?B#>KWEW4 zxw2uJyrElE^DFvzR0x;b@`3NVrQUY5(jYff3RvzcMi2Oo<=_Y^2Nn#!2^GZ3?TjmzJPNd{`;@AwLcq><~tZPu|(GNdu zCd9EgNF}j>D9OzI&rfXpy{m&%=NyyW5|YD95DNvdt;o(FITsiUb|N=ak>I+b!4>5_ zdNo4=90OCUFuG7|bQLtay{@oFE!uEA06T(6E3~OyMTp920qz;v(HrYRFJj2B^}$aJ zdV_ADK1^gl*iJiG?{dqc3>?ek#|8=^xgftwZmg)H!C(C+%T(ET&QjrZtJ2ZS=fqw; zBjGT2gnE{wYlMRm~$BUaTN7J0i=utAelg+rA(#q+;=rHMr{gk;dC7@Mt+Q9UKj$MFAfIHY? z_xgqo{&_e&x!=6ql=^^jZXacNc+ - 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. + Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman + while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra. + 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 @@ -13,6 +13,8 @@ description: > Respond like smart caveman. Cut articles, filler, pleasantries. Keep all technical substance. +Default intensity: **full**. Change with `/caveman lite`, `/caveman full`, `/caveman ultra`. + ## Grammar - Drop articles (a, an, the) @@ -64,9 +66,55 @@ const pool = new Pool({ max = concurrent connections. Keep under DB limit. idleTimeout kill stale conn. ``` +## Intensity Levels + +### Lite — trim the fat + +Professional tone, just no fluff. Grammar stays intact. + +- Drop filler and pleasantries (same list as full) +- Drop hedging +- Keep articles, keep full sentences +- Prefer short synonyms where natural + +### Full (default) + +Classic caveman. Rules from Grammar section above apply. + +### Ultra — maximum grunt + +Telegraphic. Every word earn its place or die. + +- All full rules, plus: +- Abbreviate common terms (DB, auth, config, req, res, fn, impl) +- Strip conjunctions where possible +- One word answer when one word enough +- Arrow notation for causality (X → Y) + +## Intensity Examples + +**User:** Why is my React component re-rendering? + +**Lite:** "Your component re-renders because you create a new object reference each render. Inline object props fail shallow comparison every time. Wrap it in `useMemo`." + +**Full:** "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`." + +**Ultra:** "Inline obj prop → new ref → re-render. `useMemo`." + +--- + +**User:** Explain database connection pooling. + +**Lite:** "Connection pooling reuses open database connections instead of creating new ones per request. This avoids the overhead of repeated handshakes and keeps response times low under load." + +**Full:** "Pool reuse open DB connections. No new connection per request. Skip repeated handshake overhead. Response time stay low under load." + +**Ultra:** "Pool = reuse DB conn. Skip handshake overhead → fast under load." + ## Boundaries - Code: write normal. Caveman English only - Git commits: normal - PR descriptions: normal - User say "stop caveman" or "normal mode": revert immediately +- Intensity level persist until changed or session end diff --git a/skills/caveman/SKILL.md b/skills/caveman/SKILL.md index 4ebcea7..2813db5 100644 --- a/skills/caveman/SKILL.md +++ b/skills/caveman/SKILL.md @@ -1,10 +1,10 @@ --- 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. + Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman + while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra. + 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 @@ -13,6 +13,8 @@ description: > Respond like smart caveman. Cut articles, filler, pleasantries. Keep all technical substance. +Default intensity: **full**. Change with `/caveman lite`, `/caveman full`, `/caveman ultra`. + ## Grammar - Drop articles (a, an, the) @@ -64,9 +66,55 @@ const pool = new Pool({ max = concurrent connections. Keep under DB limit. idleTimeout kill stale conn. ``` +## Intensity Levels + +### Lite — trim the fat + +Professional tone, just no fluff. Grammar stays intact. + +- Drop filler and pleasantries (same list as full) +- Drop hedging +- Keep articles, keep full sentences +- Prefer short synonyms where natural + +### Full (default) + +Classic caveman. Rules from Grammar section above apply. + +### Ultra — maximum grunt + +Telegraphic. Every word earn its place or die. + +- All full rules, plus: +- Abbreviate common terms (DB, auth, config, req, res, fn, impl) +- Strip conjunctions where possible +- One word answer when one word enough +- Arrow notation for causality (X → Y) + +## Intensity Examples + +**User:** Why is my React component re-rendering? + +**Lite:** "Your component re-renders because you create a new object reference each render. Inline object props fail shallow comparison every time. Wrap it in `useMemo`." + +**Full:** "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`." + +**Ultra:** "Inline obj prop → new ref → re-render. `useMemo`." + +--- + +**User:** Explain database connection pooling. + +**Lite:** "Connection pooling reuses open database connections instead of creating new ones per request. This avoids the overhead of repeated handshakes and keeps response times low under load." + +**Full:** "Pool reuse open DB connections. No new connection per request. Skip repeated handshake overhead. Response time stay low under load." + +**Ultra:** "Pool = reuse DB conn. Skip handshake overhead → fast under load." + ## Boundaries - Code: write normal. Caveman English only - Git commits: normal - PR descriptions: normal - User say "stop caveman" or "normal mode": revert immediately +- Intensity level persist until changed or session end From 04af4695c62f11eec8f1a24531db0ce0553981ee Mon Sep 17 00:00:00 2001 From: vraj Date: Sun, 5 Apr 2026 10:27:31 -0700 Subject: [PATCH 2/4] Address review feedback: update README and add Codex syntax - Add intensity levels section to README so feature is discoverable - Document Codex trigger syntax ($caveman lite|full|ultra) in SKILL.md - Sync plugin copy and rebuild .skill archive Co-Authored-By: Claude Opus 4.6 --- README.md | 12 ++++++++++++ caveman.skill | Bin 2000 -> 2017 bytes plugins/caveman/skills/caveman/SKILL.md | 2 +- skills/caveman/SKILL.md | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index caf5613..4d84b58 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,18 @@ Trigger with: Stop with: "stop caveman" or "normal mode" +### Intensity Levels + +Sometimes full caveman too much. Sometimes not enough. Now you pick: + +| Level | Trigger | What it do | +|-------|---------|------------| +| **Lite** | `/caveman lite` or `$caveman lite` | Drop filler, keep grammar. Professional but no fluff | +| **Full** | `/caveman full` or `$caveman full` | Default caveman. Drop articles, fragments, full grunt | +| **Ultra** | `/caveman ultra` or `$caveman ultra` | Maximum compression. Telegraphic. Abbreviate everything | + +Level stick until you change it or session end. + ## What Caveman Do | Thing | Caveman Do? | diff --git a/caveman.skill b/caveman.skill index c7630ba91db6db142ff0392596d95ce7413ffe48..709fef074153acf6ada05c1c3857fc8fa258472f 100644 GIT binary patch delta 1792 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 Respond like smart caveman. Cut articles, filler, pleasantries. Keep all technical substance. -Default intensity: **full**. Change with `/caveman lite`, `/caveman full`, `/caveman ultra`. +Default intensity: **full**. Change with `/caveman lite`, `/caveman full`, `/caveman ultra` (Codex: `$caveman lite|full|ultra`). ## Grammar diff --git a/skills/caveman/SKILL.md b/skills/caveman/SKILL.md index 2813db5..d3b02c9 100644 --- a/skills/caveman/SKILL.md +++ b/skills/caveman/SKILL.md @@ -13,7 +13,7 @@ description: > Respond like smart caveman. Cut articles, filler, pleasantries. Keep all technical substance. -Default intensity: **full**. Change with `/caveman lite`, `/caveman full`, `/caveman ultra`. +Default intensity: **full**. Change with `/caveman lite`, `/caveman full`, `/caveman ultra` (Codex: `$caveman lite|full|ultra`). ## Grammar From 73e35f5232c06b269266a05890b0a343292e96b6 Mon Sep 17 00:00:00 2001 From: vraj Date: Sun, 5 Apr 2026 10:52:09 -0700 Subject: [PATCH 3/4] Add intensity level examples to README Before/After section Show lite, full, and ultra side-by-side using the same React re-render and auth middleware examples from the existing Before/After section. Also fixes emoji encoding from prior edit. Co-Authored-By: Claude Opus 4.6 --- README.md | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ caveman.skill | Bin 2017 -> 2017 bytes 2 files changed, 68 insertions(+) diff --git a/README.md b/README.md index 4d84b58..12a3c4d 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,74 @@ Based on the viral observation that caveman-speak dramatically reduces LLM token **Same fix. 75% less word. Brain still big.** +### Now with intensity levels + +Same examples, you pick the grunt level: + + + + + + + + + + + + + + + + + + +
LevelReact re-render question
🪶 Lite + +> "Your component re-renders because you create a new object reference each render. Inline object props fail shallow comparison every time. Wrap it in `useMemo`." + +
🪨 Full + +> "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`." + +
🔥 Ultra + +> "Inline obj prop → new ref → re-render. `useMemo`." + +
+ + + + + + + + + + + + + + + + + + +
LevelAuth middleware bug
🪶 Lite + +> "Your auth middleware has a bug. The token expiry check uses `<` instead of `<=`. Here's the fix:" + +
🪨 Full + +> "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:" + +
🔥 Ultra + +> "Auth bug. Expiry: `<` → `<=`. Fix:" + +
+ +**Same fix. Three grunt level. Pick your rock size.** + ## Benchmarks Real token counts from the Claude API ([reproduce it yourself](benchmarks/)): diff --git a/caveman.skill b/caveman.skill index 709fef074153acf6ada05c1c3857fc8fa258472f..0fdc981a8cd5cd4e2a3a2a3343373491f99e9ef8 100644 GIT binary patch delta 45 zcmaFJ|B#<2z?+#xgn@y9gP}2OB9A(o)51%cP760$dayG!hD~l}H)V2KIC&SlIsg{g B4G{nU delta 45 zcmaFJ|B#<2z?+#xgn@y9gCR3`B9A&->Fi6HrL#9$dayHP22XBgH)SfFJ$V Date: Sun, 5 Apr 2026 11:00:49 -0700 Subject: [PATCH 4/4] Clean up README intensity levels section to match existing style Replace verbose two-table layout with compact 3-column side-by-side table matching the existing Before/After HTML pattern. Remove chatty intro and forced taglines in favor of natural caveman voice. Co-Authored-By: Claude Opus 4.6 --- README.md | 60 ++++++++++--------------------------------------------- 1 file changed, 11 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 12a3c4d..8e13c34 100644 --- a/README.md +++ b/README.md @@ -66,34 +66,27 @@ Based on the viral observation that caveman-speak dramatically reduces LLM token **Same fix. 75% less word. Brain still big.** -### Now with intensity levels - -Same examples, you pick the grunt level: +**Sometimes too much caveman. Sometimes not enough:** - - - - - - - - - - - - - -
LevelReact re-render question
🪶 Lite + + +#### 🪶 Lite > "Your component re-renders because you create a new object reference each render. Inline object props fail shallow comparison every time. Wrap it in `useMemo`."
🪨 Full + + +#### 🪨 Full > "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`."
🔥 Ultra + + +#### 🔥 Ultra > "Inline obj prop → new ref → re-render. `useMemo`." @@ -101,38 +94,7 @@ Same examples, you pick the grunt level:
- - - - - - - - - - - - - - - - - -
LevelAuth middleware bug
🪶 Lite - -> "Your auth middleware has a bug. The token expiry check uses `<` instead of `<=`. Here's the fix:" - -
🪨 Full - -> "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:" - -
🔥 Ultra - -> "Auth bug. Expiry: `<` → `<=`. Fix:" - -
- -**Same fix. Three grunt level. Pick your rock size.** +**Same answer. You pick how many word.** ## Benchmarks