Issue 04 | Four-level Shifting — From Lite to Ultra to Classical Chinese
🎯 Learning Objectives
Upon completing this issue, you will master:
- Caveman's 7 intensity levels and their applicable scenarios
- How to smoothly switch levels within a conversation
- The unique advantages of Wenyan (Classical Chinese) mode
- Comparison of Token compression rates across levels
📖 Core Content
4.1 Intensity Levels Overview
graph LR
subgraph English["English Mode"]
direction LR
L["🪶 lite
Mild Compression"] --> F["🪨 full
Standard Compression
(Default)"] --> U["🔥 ultra
Extreme Compression"]
end
subgraph Chinese["Wenyan Mode"]
direction LR
WL["📜 wenyan-lite
Vernacular Wenyan"] --> W["📜 wenyan
Standard Wenyan"] --> WU["📜 wenyan-ultra
Minimalist Wenyan"]
end
English -.->|"Shorter Chinese Tokens"| Chinese4.2 Same Problem, Seven Answers
Problem: Why do React components frequently re-render?
🗣️ Normal Claude (No Caveman)
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 so
that React can properly detect that the prop hasn't changed.
~69 tokens
🪶 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.
~30 tokens (56% compression)
🪨 Full (Default)
New object ref each render. Inline object prop = new ref = re-render.
Wrap in useMemo.
~19 tokens (72% compression)
🔥 Ultra
Inline obj prop → new ref → re-render. useMemo.
~10 tokens (86% compression)
📜 Wenyan-Lite
每渲染新建对象参照,行内对象属性每次皆判为新值,致使重绘。以 useMemo 缓存之。
📜 Wenyan
物出新參照,致重繪。useMemo 裹之。
📜 Wenyan-Ultra
行内物→新參→重繪。useMemo。
4.3 Token Compression Rate Comparison
| Level | Style | Compression Rate | Applicable Scenarios |
|---|---|---|---|
| Normal | Complete polite sentences | 0% (Baseline) | No Caveman used |
lite |
Complete sentences, no fluff | ~50-55% | Newbie adaptation period / Technical documentation writing |
full |
Fragmented technical phrases | ~70-75% | Daily development (Recommended) |
ultra |
Telegram style / Arrow chain | ~82-87% | Quick debugging / Familiar domains |
wenyan-lite |
Mixed vernacular and classical | ~60% | Chinese projects / Readability requirements |
wenyan |
Standard Wenyan | ~75% | Chinese projects / Extreme Token compression |
wenyan-ultra |
Minimalist Wenyan | ~85%+ | Pushing limits / Pure Token saving |
4.4 Switching Commands
In Claude Code:
/caveman # Switch to full (default)
/caveman lite # Switch to lite
/caveman full # Switch to full
/caveman ultra # Switch to ultra
/caveman wenyan-lite # Switch to wenyan lite
/caveman wenyan # Switch to wenyan full
/caveman wenyan-ultra # Switch to wenyan ultra
In Antigravity:
> Please switch to caveman ultra mode
> switch to caveman lite
> Answer in Wenyan mode
In Gemini CLI:
/caveman ultra
/caveman wenyan
/caveman lite
4.5 Mode Persistence
stateDiagram-v2
[*] --> Full: Automatically written by SessionStart Hook
Full --> Lite: /caveman lite
Full --> Ultra: /caveman ultra
Full --> Wenyan: /caveman wenyan
Lite --> Full: /caveman full
Ultra --> Full: /caveman full
Wenyan --> Full: /caveman full
Full --> Normal: "stop caveman"
Lite --> Normal: "stop caveman"
Ultra --> Normal: "stop caveman"
Wenyan --> Normal: "stop caveman"
Normal --> Full: "caveman mode"
Normal --> [*]: Session endsKey Rules:
- The mode remains unchanged throughout the session until you manually switch it
- It will not automatically "revert" to normal mode due to an increase in conversation turns
- The mode resets after the session ends (defaults to
fullon next startup) - Code blocks, commit messages, and PR descriptions always maintain normal formatting
4.6 Unique Advantages of Wenyan Mode
Why did Caveman implement Wenyan mode? Because Classical Chinese (Wenyan) is one of the most Token-efficient written languages in human history.
Modern Chinese (55 characters):
"由于每次渲染都会创建一个新的对象引用,当你将行内对象作为属性传递时,
React 的浅比较每次都会认为它是一个不同的对象,从而触发重新渲染。
建议使用 useMemo 来缓存这个对象。"
Wenyan (12 characters):
"物出新參照,致重繪。useMemo 裹之。"
Wenyan mode is particularly suitable for:
- Developers whose primary working language is Chinese
- Scenarios requiring extreme Token compression
- Reducing visual fatigue when reading large amounts of Agent output
💻 Practical Exercises
Exercise 1: Experience Gear Switching
Execute the following operations sequentially in your Agent, comparing the answer style of each mode:
> /caveman lite
> Explain what a JavaScript closure is
> /caveman full
> Explain what a JavaScript closure is
> /caveman ultra
> Explain what a JavaScript closure is
> /caveman wenyan
> Explain what a JavaScript closure is
Exercise 2: Find Your Optimal Gear
For your current project, complete the following tasks using lite, full, and ultra modes respectively, to feel which gear best suits your workflow:
- Debug a Bug (requires detailed diagnosis →
liteorfullmight be suitable) - Refactor a Function (clear objective →
fullorultramight be suitable) - Explain an Architectural Decision (requires some context →
litemight be suitable)
📝 Key Takeaways from This Issue
- Caveman offers 7 intensity levels: 3 English + 3 Wenyan + 1 disabled
fullis the recommended daily gear, balancing readability and compression rate (~75%)ultrais suitable for quick debugging, with the highest compression rate (~87%) but requires strong contextual understanding- Wenyan mode is a hidden gem for Chinese developers, saving more Tokens than Modern Chinese
- The mode persists within the session and will not automatically "degrade" back to normal mode