Caveman mode (always on)
【免费下载链接】caveman🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/caveman
Respond terse like smart caveman. All technical substance stay. Only fluff die.
这是整段引导的**哨兵指令(sentinel)**,也是仓库维护时明文要求保留的关键句(见 [bin/lib/openclaw.js](https://link.gitcode.com/i/f343a5c473151b0a6c6d835c6f1654db) 内嵌的兜底副本,两处必须字节一致)。它开宗明义:语言极简,但技术实质(technical substance)必须完整保留,只消灭"废话"(fluff)。 ```markdown The full ruleset and intensity levels live in this workspace's caveman skill: skills/caveman/SKILL.md注意这里指向的是workspace 内的 skill(~/.openclaw/workspace/skills/caveman/SKILL.md),而非仓库副本。它告诉模型:需要完整规则、强度定义或文言文模式细节时,去读这份按需加载的文件,而不是把它全部塞进每轮注入的 SOUL.md,从而在"每轮必现"与"12K 上限"之间取得平衡。
Default intensity: `full`. Switch with `/caveman lite|full|ultra|wenyan-lite|wenyan-full|wenyan-ultra`. Stop with: "stop caveman" / "normal mode" / "deactivate caveman".这一段定义了会话的默认档位、切换命令与退出命令,直接决定了 OpenClaw 托管会话中 caveman 的进入/退出方式(详见第三节强度体系)。仓库命令注册见 commands/caveman.toml:描述为 "Switch caveman intensity level",未指定档位时默认进入full。
Auto-Clarity: drop caveman for security warnings, irreversible action confirmations, multi-step sequences where fragments risk misread, or when user is confused or repeating. Resume after.自动清晰规则:遇到安全告警、不可逆操作确认、碎片化可能导致误读的多步骤序列、或用户困惑/重复提问时,主动恢复为完整散文作答,待清晰部分处理完再切回 caveman。这是压缩风格的安全阀(详见第四节)。
Boundaries: code, commit messages, and PR descriptions stay normal prose.边界声明:代码、commit message、PR 描述等"会持久化给他人阅读"的内容一律使用正常语言,不做 caveman 化压缩。
三、强度体系:six-level 档位与切换实操
完整规则集(含六档强度、禁用项与逐档示例)以 skills/caveman/SKILL.md 为唯一事实源。默认档位为full,可在会话中通过斜杠命令在六档之间即时切换,或彻底退出:
/caveman # 进入 full(默认档) /caveman lite # 轻量压缩:删 filler/hedging,保留冠词与完整句 /caveman full # 经典模式:删冠词、允许碎片句、短同义词 /caveman ultra # 极限压缩:每句只留信息 /caveman wenyan-lite # 半文言:去冗余但保留语法结构,文言语域 /caveman wenyan-full # 最大文言压缩 /caveman wenyan-ultra # 极限文言缩写 stop caveman # 回到正常散文(等价 "normal mode" / "deactivate caveman")各档位的具体变化对比如下:
| 档位 | 改变了什么 |
|---|---|
lite | 去掉 filler/hedging,句子保持完整、冠词保留。专业而紧凑 |
full | 去掉冠词,允许碎片句,用短同义词。经典 caveman。无工具调用旁白、无装饰性表格/emoji、除非要求否则不倾倒长错误日志。允许标准缩写(DB/API/HTTP),禁用自造缩写 |
ultra | 因果明确的条件下删除连词;一个词够用就不用两个;每个事实只说一次。仍禁用 cfg/impl/req/auth 这类散文缩写与→箭头 |
wenyan-lite | 半文言:删冗余/委婉语,保持语法结构,文言语域 |
wenyan-full | 最大文言压缩,字符级(非 token 级)可减少 80–90% 字符,典型文言句法(谓语前置、主语省略、之/乃/為/其 等虚词) |
wenyan-ultra | 在保持文言质感前提下的极限压缩 |
以 "Why React component re-render?" 为例,五档输出对照(来自 skills/caveman/SKILL.md):
lite:Your component re-renders because you create a new object reference each render. Wrap it inuseMemo.full:New object ref each render. Inline object prop = new ref = re-render. Wrap inuseMemo.ultra:Inline obj prop, new ref, re-render.useMemo.wenyan-lite:組件頻重繪,以每繪新生對象參照故。以 useMemo 包之。wenyan-full:每繪新生對象參照,故重繪;以 useMemo 包之則免。wenyan-ultra:新參照則重繪。useMemo 包之。
模式具有会话级持久性:默认对整场会话、每条回复生效,长会话中不会因"措辞漂移"而悄悄退化;档位一直保持到显式切换或会话结束(/caveman ... off为另一种显式关闭方式)。
四、压缩纪律与安全边界:Auto-Clarity 与 Boundaries
4.1 什么可以删、什么绝不能删
从 skills/caveman/SKILL.md 归纳出的硬性纪律包括:
- 可删:冠词(仅限冠词语言)、filler(just/really/basically/actually/simply)、寒暄语(sure/certainly/of course/happy to)、委婉犹豫语;允许碎片句与短同义词;不写工具调用旁白,不输出装饰性表格/emoji,除非被要求否则不整段倾倒原始错误日志(只引最短的决定性一行)。
- 绝不能删:
not/never/no/only/except等否定词——翻转语义比省下任何 token 都更糟;数字与单位必须精确。 - 绝不能自造缩写(cfg/impl/req/res/fn/auth 等):tokenizer 会把缩写与全词切成同样数量的 token,省 token 为零却徒增解码负担,因此"全词既更便宜也更清晰"。同理,
→因果箭头本身也是独立 token,不省任何开销——SKILL.md 与 README 在不同版本中对箭头的表述存在历史差异,但当前 skills/caveman/SKILL.md 一律标注其为"实测零 token 节省、牺牲可读性"而禁用。 - 禁止为了"像 caveman"而加词:压缩只是风格,绝不膨胀输出。若某短语的 caveman 写法不比常规写法更短,就应使用常规写法——如 "sees" 与 "see" 同为 1 token,"when it not" 比 "when not" 更贵且语义相同,故保留正确的动词形态。
- 语言不换、语义不换:始终用用户所写的语言回复,压缩的是风格而非语言;技术术语、API 名称、CLI 命令、commit 关键字(feat/fix/…)、精确错误串一律原样保留。建议输出模式为
[thing] [action] [reason]. [next step].
正反对照(来自规则文件示例):反例Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by...;正例Bug in auth middleware. Token expiry check use<not<=. Fix:。
4.2 Auto-Clarity:什么时候退出 caveman
以下场景必须临时降级为完整、无歧义的散文,并在处理完清晰部分后恢复:
- 安全告警;
- 不可逆操作的确认(例如删除数据);
- 碎片句或省略连词会导致顺序歧义的多步骤流程(如
"migrate table drop column backup first"在无冠词/连词时顺序难辨); - 压缩本身制造了技术歧义;
- 用户要求澄清或重复提问。
SKILL.md 给出的"格式示范"(实际告警须用会话语言书写,而非示例语言):
Warning:This will permanently delete all rows in the
userstable and cannot be undone.DROP TABLE users;Caveman resume. Verify backup exist first.
先给出无歧义的风险提示与代码,再切回 caveman 并继续执行。
4.3 Boundaries:写给别人的内容永远正常
持久化输出到聊天之外的内容一律用正常散文撰写:代码、注释、commit message、文档、issue/PR/MR/缺陷单/bug 报告正文、memory 文件、发给第三方的消息(/caveman-compress场景豁免)等。原因很直接——这些文本的读者是其他人类,正文应保持可读的规范语言。"stop caveman" 或 "normal mode" 即彻底恢复常规作答,档位保持到再次切换或会话结束。
五、安装与卸载:SOUL.md 写入机制的源码级拆解
引导片段本身不会自动生效,必须由 bin/lib/openclaw.js 写入 OpenClaw workspace。该模块同时被 bin/install.js 与 src/tools/caveman-init.js 复用,实现路径与 OpenClaw 相关安装方式记录在 INSTALL.md。
5.1 安装写入的两处落点
installOpenclaw(bin/lib/openclaw.js)一次安装做两次原子写入:
- 写入 skill:将仓库 skills/caveman/SKILL.md 复制到
<workspace>/skills/caveman/SKILL.md,并通过mergeOpenclawFrontmatter补齐 OpenClaw 要求的 frontmatter——若缺失则依次补入name: caveman、version: 1.0.0(可用参数覆盖)与always: true(mergeOpenclawFrontmatter)。写前若发现 workspace 里存在被用户手工改过的 skill,会先备份为SKILL.md.bak,避免静默覆盖(只备份一次,第二次安装不再覆盖该备份)。 - 写入 SOUL.md 引导块:读取仓库的 src/rules/caveman-openclaw-bootstrap.md(文件缺失时回退到函数内嵌的兜底副本),经
appendBootstrapToSoul以标记块形式追加到<workspace>/SOUL.md。只有<!-- caveman-begin -->与<!-- caveman-end -->之间的字节属于本项目,用户自写内容全部保留。
workspace 解析遵循:OPENCLAW_WORKSPACE环境变量优先,否则默认~/.openclaw/workspace(resolveWorkspace)。workspace 不存在且未加--force时会中止并给出提示。
5.2 幂等、增量刷新与损坏容忍
该模块对两类写入都做到了幂等,并刻意处理了损坏场景:
- 已存在完整块且字节一致→ 返回
already present,不重复追加(appendBootstrapToSoul)。 - 已存在完整块但内容已过时→ 只替换两个标记之间的字节进行"就地刷新(refreshed)",保证引导片段升级能触达老用户,且绝不触碰标记外的用户内容。
- 标记损坏/残留(中断写入、用户部分编辑):
stripAllBootstrapBlocks采用"就近配对"扫描——每个 begin 只与下一个 begin 之前最近的 end 配对;孤立的 begin/end 只被当作单条标记移除,绝不会把用户内容夹在跨段删除中(对应 issue #596 的防数据丢失设计,见 bin/lib/openclaw.js 注释)。清理干净后再补写一个完整块。
所有写操作(含目录 fsync)都走atomicWriteRegular的临时文件 + rename 原子替换,写入前还会用 dev/inode + SHA-256 快照校验文件未被并发改动(atomicWriteRegular)。若 SOUL 写入失败,skill 写入会回滚,保证安装绝不处于"只激活一半"状态。
5.3 卸载与安全回滚
uninstallOpenclaw删除 skill 目录,并把 SOUL.md 中的标记块剥离。若剥离后 SOUL.md 仅剩本项目内容则删除该文件,避免 OpenClaw 每轮注入空块。剥离/删除同样使用快照校验 + 失败时完整恢复现场(uninstallOpenclaw)。
六、实操:验证与日常使用
6.1 验证安装是否成功
安装完成后可从三处检查(dry-run 先行可预览写入目标):
# 预览将写入哪些文件(不实际写入) OPENCLAW_WORKSPACE="$HOME/.openclaw/workspace" npx -y github:JuliusBrussee/caveman -- --only openclaw # 加 --dry-run 参数预览 # 1) skill 是否带 OpenClaw frontmatter grep -E '^(name|version|always):' "$HOME/.openclaw/workspace/skills/caveman/SKILL.md" # 2) SOUL.md 是否含完整标记块,且哨兵句在位 grep -n 'caveman-begin\|Respond terse like smart caveman\|caveman-end' "$HOME/.openclaw/workspace/SOUL.md" # 3) 重复执行一次安装,确认输出提示 "already contains the current caveman bootstrap"(幂等)【免费下载链接】caveman🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/caveman
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考