Baby Sign Language Does Not Trump Caveman Language

Inspired by the caveman skill that saves token counts within Claude by having it talk like a caveman, I thought perhaps having Claude leverage the vocabulary of baby sign language would save even more tokens.

I fed Claude a baby sign language dictionary and had it create a skill where it used that dictionary, allowing for technical words in backticks and code snippets too.

It unfortunately was not great, however it did come up with some exceptional phrases:

Technical Term Babysign Translation
database host big-book-home
max connections most doors open same time
password secret-word
JWT exp field big-number-time (no small dots)
Date.now() small-number-time (with small dots)
object reference thing-with-names
re-render make new picture
component (client) baby home
idle timeout close door after wait
min connections keep doors open always
auth middleware auth
unit mismatch not same! like try put big apple in little cup
connection pool pool for many want-things same time

Benchmark: Normal vs Caveman vs Babysign

Model: claude-sonnet-4-20250514
Trials: 1 per prompt per mode
Prompts: 3 of 10 (react-rerender, auth-middleware-fix, postgres-pool)

Token Counts

Task Normal Caveman Saved Babysign Saved
Explain React re-render bug 1180 237 80% 265 78%
Fix auth middleware token expiry 704 125 82% 257 63%
Set up PostgreSQL connection pool 2272 635 72% 471 79%
Average 1385 332 78% 331 73%

Caveman: 72%--82% savings range.
Babysign: 63%--79% savings range.

Sample Responses

React Re-render Bug

Caveman (237 tokens):

Object reference change every render. React see new object, trigger re-render.
Common causes: Create object inline, return new object from function each time, spread operator create new reference. Fix: useMemo for computed objects.

Babysign (265 tokens):

Bad thing! You make new thing-with-names each time. Baby home think it other thing -> make new picture. Put thing outside or hold same thing with useMemo.

Auth Middleware Fix

Caveman (125 tokens):

JWT exp field in seconds. Date.now() in milliseconds. Fix: Date.now() < token.exp * 1000

Babysign (257 tokens):

Bad thing in auth! token.exp = big-number-time (no small dots). Date.now() = small-number-time (with small dots). Not same!
Like try put big apple in little cup. Fix: Date.now() < token.exp * 1000

PostgreSQL Pool Setup

Caveman (635 tokens):

PostgreSQL connection pool setup need pg package. max: 20 max connections, min: 5 min connections, idleTimeoutMillis: 30000 close idle after 30s...

Babysign (471 tokens):

Big-book need pool for many want-things same time. max: 20 most doors open same time, min: 2 keep doors open always, idle: 10000 close door after wait...

Observations

  • Average tokens nearly identical: caveman 332, babysign 331
  • Caveman wins on short prose answers (auth fix: 125 vs 257) -- dropping articles/filler is very efficient for terse explanations
  • Babysign wins on code-heavy answers (postgres pool: 471 vs 635) -- vocabulary constraint forces harder prose cuts around
    unchanged code blocks
  • Different compression strategies: caveman removes grammar; babysign constrains vocabulary to ~100 baby sign words, forcing
    creative paraphrase