跳转到正文
报告库
用途分类 / 其他用途

Caveman Skill 安全审计

作者说它能做什么(原文)

>

第三方安全检查结论

发现安全风险

已检查文件
4
发现的风险
3
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

文件内容会发送给 Claude 处理

原文依据:3 处
发现了什么

压缩流程明确要求“call Claude to compress”。目标包括 CLAUDE.md、待办和偏好文件,这些文件可能含内部指令、私人信息、路径、链接或环境配置。

为什么需要注意

调用时,目标文件的内容可能离开本地环境并由外部模型服务处理。可见源码没有说明发送范围、服务端保留政策或敏感内容过滤。

调用 `/caveman-compress` 处理指定文件时,流程会把文件内容交给 Claude 压缩。适用对象明确包括 CLAUDE.md、待办和偏好文件,因此其中的私人信息、内部指令、路径或链接可能被发送给外部模型服务。来源没有说明使用哪个 Claude 服务、数据保留政策或发送前的脱敏措施。用户可要求作者说明接收方和保留政策,并只对已检查且不含敏感信息的文件使用该功能。

caveman-compress/SKILL.md:12来自说明文档打开原文件
Compress natural language files (CLAUDE.md, todos, preferences) into caveman-speak to reduce input tokens. Compressed version overwrites original. Human-readable backup saved as `<filename>.original.md`, but NOT beside the source file — it lives in an out-of-tree data dir (`$XDG_DATA_HOME/caveman-compress/backups/<parent-dir-name>/`, or `%LOCALAPPDATA%\caveman-compress\backups\<parent-dir-name>\` on Windows) so skill auto-loaders don't re-ingest it as a live file.
查看另外 2 个位置
caveman-compress/SKILL.md:26来自说明文档打开原文件
3. The CLI will:- detect file type (no tokens)- call Claude to compress- validate output (no tokens)- if errors: cherry-pick fix with Claude (targeted fixes only, no recompression)- retry up to 2 times- if still failing after 2 retries: report error to user, leave original file untouched
caveman-compress/SKILL.md:16来自说明文档打开原文件
`/caveman-compress <filepath>` or when user asks to compress a memory file.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 1 项风险
中风险

有损压缩会覆盖活动的记忆或指令文件

原文依据:4 处
发现了什么

技能会覆盖源文件,并允许合并“重复”条目、删除相似示例。判断两条指令是否重复需要语义判断,可能意外删除例外、优先级或细微限制。

为什么需要注意

压缩后的 CLAUDE.md、待办或偏好文件可能改变后续代理行为或遗漏任务。虽然说明承诺备份,但备份位于另一个目录,而且可见实现没有证明备份和验证一定先于覆盖成功完成。

该功能会用模型生成的压缩版本覆盖活动文件,并允许合并项目和删除相似示例。即使保留结构和代码区域,语义压缩仍可能把看似重复但具有不同例外、优先级或条件的指令合并掉,从而影响代理之后的决定。风险受到两点限制:只处理列出的自然语言文件,且原文会备份到独立数据目录。用户可先保存并核对备份,要求作者提供覆盖前的差异预览和明确确认。

caveman-compress/SKILL.md:12来自说明文档打开原文件
Compress natural language files (CLAUDE.md, todos, preferences) into caveman-speak to reduce input tokens. Compressed version overwrites original. Human-readable backup saved as `<filename>.original.md`, but NOT beside the source file — it lives in an out-of-tree data dir (`$XDG_DATA_HOME/caveman-compress/backups/<parent-dir-name>/`, or `%LOCALAPPDATA%\caveman-compress\backups\<parent-dir-name>\` on Windows) so skill auto-loaders don't re-ingest it as a live file.
查看另外 3 个位置
caveman-compress/SKILL.md:68来自说明文档打开原文件
- Drop "you should", "make sure to", "remember to" — just state the action- Merge redundant bullets that say the same thing differently- Keep one example where multiple examples show the same pattern
caveman-compress/SKILL.md:108来自说明文档打开原文件
- If unsure whether something is code or prose, leave it unchanged- Original file is backed up as FILE.original.md before overwriting — in the out-of-tree backup data dir (see Purpose), not beside the source file- Never compress FILE.original.md (skip it)
caveman-compress/SKILL.md:104来自说明文档打开原文件
- ONLY compress natural language files (.md, .txt, .typ, .typst, .tex, extensionless)- NEVER modify: .py, .js, .ts, .json, .yaml, .yml, .toml, .env, .lock, .css, .html, .xml, .sql, .sh- If file has mixed content (prose + code), compress ONLY the prose sections- If unsure whether something is code or prose, leave it unchanged- Original file is backed up as FILE.original.md before overwriting — in the out-of-tree backup data dir (see Purpose), not beside the source file- Never compress FILE.original.md (skip it)
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
中风险

会话级风格覆盖并抑制工具操作说明

原文依据:3 处
发现了什么

启用后,技能要求对整个会话持续生效,并命令代理在工具调用前后不提供计划或进度说明。自动清晰规则保留安全与不可逆警告,但一般文件、账户或网络操作可能缺少上下文。

为什么需要注意

用户可能更难看出代理正在做什么、为何需要某项操作,或及时发现范围偏移。极度压缩也可能削弱非安全类决策的限定条件。

启用后,该风格默认贯穿整个会话,并要求一般工具调用前后不说明计划或进度。这可能使用户较难及时了解普通文件、账户或网络操作的目的和结果。风险不是完全无保护:澄清、歧义、安全警告和不可逆确认允许或要求恢复清晰表述。用户可要求作者把涉及文件、账户、权限和网络的操作也列为必须说明的例外,或在敏感任务前关闭该模式。

SKILL.md:13来自说明文档打开原文件
Default style for this whole session, every response, until user say "stop caveman" or "normal mode". Keep terse on long sessions no filler drift.Default: **full**. Switch: `/caveman lite|full|ultra|wenyan-lite|wenyan-full|wenyan-ultra|off`.
查看另外 2 个位置
SKILL.md:27来自说明文档打开原文件
Tool calls: fire direct. No preamble, plan, or progress note before or between calls. After result: next call direct or final answer never announce next call. Text before call only to clarify, warn security/irreversible, or resolve ambiguity.
SKILL.md:70来自说明文档打开原文件
Drop caveman when:- Security warnings- Irreversible action confirmations- Multi-step sequences where fragment order or omitted conjunctions risk misread- Compression itself creates technical ambiguity (e.g., `"migrate table drop column backup first"` order unclear without articles/conjunctions)- User asks to clarify or repeats questionResume caveman after clear part done.
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

5 个说明模块

主技能只改变模型回复风格,并要求该风格持续整个会话,直到用户明确关闭。

查看原文
SKILL.md:9来自说明文档打开原文件
Respond terse like smart caveman. All technical substance stay. Only fluff die.
SKILL.md:13来自说明文档打开原文件
Default style for this whole session, every response, until user say "stop caveman" or "normal mode". Keep terse on long sessions no filler drift.

压缩子技能接受自然语言文件路径,调用 Claude 生成压缩内容,并宣称在成功后覆盖源文件、把备份放到用户数据目录。

查看原文
caveman-compress/SKILL.md:12来自说明文档打开原文件
Compress natural language files (CLAUDE.md, todos, preferences) into caveman-speak to reduce input tokens. Compressed version overwrites original. Human-readable backup saved as `<filename>.original.md`, but NOT beside the source file — it lives in an out-of-tree data dir (`$XDG_DATA_HOME/caveman-compress/backups/<parent-dir-name>/`, or `%LOCALAPPDATA%\caveman-compress\backups\<parent-dir-name>\` on Windows) so skill auto-loaders don't re-ingest it as a live file.
caveman-compress/SKILL.md:24来自说明文档打开原文件
python3 -m scripts <absolute_filepath>
caveman-compress/SKILL.md:26来自说明文档打开原文件
3. The CLI will:- detect file type (no tokens)- call Claude to compress- validate output (no tokens)- if errors: cherry-pick fix with Claude (targeted fixes only, no recompression)- retry up to 2 times- if still failing after 2 retries: report error to user, leave original file untouched

提供的 Python 入口仅把执行委托给 `.cli.main`;可见代码没有展示发送数据、验证、备份或覆盖文件的实现,因此这些保护措施只能视为说明中的声明。

查看原文
caveman-compress/scripts/__main__.py:1来自代码打开原文件
from .cli import mainmain()

README 对 ultra 模式的描述与实际技能指令冲突:README 宣称使用缩写和箭头,而技能明确禁止二者。这会使用户难以准确预测输出。

查看原文
README.md:19来自说明文档打开原文件
| `full` | Default. Drop articles, fragments OK, short synonyms. || `ultra` | Bare fragments. Abbreviations (DB, auth, fn). Arrows for causality. || `wenyan-lite` | Classical Chinese register, light compression. |
SKILL.md:46来自说明文档打开原文件
| **full** | Drop articles, fragments OK, short synonyms. Classic caveman. No tool-call narration, no decorative tables/emoji, no long raw error-log dumps unless asked. Standard acronyms OK; no invented abbreviations || **ultra** | Strip conjunctions when cause-then-effect stay unambiguous. One word when one word enough. State each fact once. NO prose abbreviations (cfg/impl/req/res/fn/auth), NO arrows (X → Y) measured zero token saving under tokenizer, cost decode clarity. Code symbols, function names, API names, error strings: never touch || **wenyan-lite** | Semi-classical. Drop filler/hedging but keep grammar structure, classical register |
从这里开始 · 工作说明SKILL.md
caveman
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。

文件引用关系图

2 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录4 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • caveman-compress/scripts/__main__.py已纳入全文
  • caveman-compress/SKILL.md已纳入全文
  • README.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • README.md配套文件
  • SKILL.md工作说明
  • caveman-compress/SKILL.md配套文件
  • caveman-compress/scripts/__main__.py脚本

代码和说明中提到的操作

安装其他软件包
caveman-compress/SKILL.md:51来自说明文档打开原文件
- File paths (`/src/components/...`, `./config.yaml`)- Commands (`npm install`, `git commit`, `docker build`)- Technical terms (library names, API names, protocols, algorithms)
读取密钥或账号配置
caveman-compress/SKILL.md:105来自说明文档打开原文件
- ONLY compress natural language files (.md, .txt, .typ, .typst, .tex, extensionless)- NEVER modify: .py, .js, .ts, .json, .yaml, .yml, .toml, .env, .lock, .css, .html, .xml, .sql, .sh- If file has mixed content (prose + code), compress ONLY the prose sections
读取了多少行
257
文件校验值(用于核对版本)
dd7f48c5afa9fc88ca520ddba9064ee70f4659cc367e8ac3605ce11fc09e036f