安全决策报告

pre-compact-resume-card

Claude会话恢复卡片工具,读取转录文件并生成状态摘要,无外部通信和凭证访问,git操作超出文档声明属于轻微阴影功能但用途合法。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/19
文件 4
IOC 0
越权项 0
发现 3

为什么得出这个结论

0/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

通过
隐藏执行与外联

当前没有明显的高危外联或执行信号。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

文档-行为差异(轻微阴影) +15

pre-compact.sh 读取 git branch/commit/status 但 SKILL.md 完全未提及 git 操作;session-start.sh 显示 git log 但也未声明

访问工作区内部文件 +7

写入 .claude/session-resume-card.md、thinking/session-logs/,访问 .claude/*.jsonl,属于本地文件系统操作,未越权

最关键的证据

低危 文档欺骗

未声明的 git 状态读取操作

pre-compact.sh 在行 44-47 执行 git branch/show-current/rev-parse --short HEAD/git status --short;session-start.sh 行 14 执行 git log --oneline。这些 git 操作完全未在 SKILL.md 中声明。

scripts/pre-compact.sh:44
在 SKILL.md 的 'What It Does' 部分补充说明会读取 git branch/commit/status 用于会话状态摘要
提示 文档欺骗

未声明的 CLAUDE_PROJECT_DIR 环境变量读取

两个脚本均读取 CLAUDE_PROJECT_DIR 环境变量来定位项目目录,但文档未提及任何环境变量依赖。

scripts/pre-compact.sh:4
文档中注明依赖 CLAUDE_PROJECT_DIR 环境变量
提示 文档欺骗

未声明的内部路径写入

写入 .claude/session-resume-card.md 和 thinking/session-logs/ 目录,文档仅模糊说 'write resume card' 未指明路径。

scripts/pre-compact.sh:57
文档中明确 resume card 写入位置

声明能力 vs 实际能力

文件系统 通过
声明 READ+WRITE
→
推断 READ+WRITE
SKILL.md 声明文件读写;scripts/pre-compact.sh:57-60 写 .claude/session-resume-card.md,scripts/pre-compact.sh:22-25 备份 transcript 到 thinking/session-logs/
命令执行 通过
声明 WRITE
→
推断 WRITE
bash scripts 执行,SKILL.md 明确声明 PreCompact/SessionStart 钩子注册使用 bash
环境变量 通过
声明 NONE
→
推断 READ
pre-compact.sh:4, session-start.sh:2 读取 CLAUDE_PROJECT_DIR 环境变量,文档未声明
网络访问 通过
声明 NONE
→
推断 NONE
无任何网络请求
剪贴板 通过
声明 NONE
→
推断 NONE
未使用
数据库 通过
声明 NONE
→
推断 NONE
未使用

可疑产物与外联

没有提取到明显 IOC。

依赖与供应链

没有结构化依赖告警。

文件构成

4 个文件 · 234 行
Shell 2 个文件 · 180 行Markdown 1 个文件 · 48 行JSON 1 个文件 · 6 行
需关注文件 · 1
scripts/pre-compact.sh Shell · 142 行
未声明的 git 状态读取操作 · 未声明的 CLAUDE_PROJECT_DIR 环境变量读取 · 未声明的内部路径写入
其他文件 · SKILL.md · session-start.sh · settings-example.json

安全亮点

纯本地操作,无任何网络请求,无外部 IP 通信
无凭证收割:代码未访问 ~/.ssh、~/.aws、.env 等敏感路径
无代码混淆:所有代码明文可读,无 base64/eval
无持久化机制:仅通过正规 Claw 钩子注册,无 crontab/rc.local 等后门
无敏感文件外传:session-resume-card.md 仅包含会话状态摘要,无凭证或密钥
session-start.sh 读取的 memory/MEMORY.md、brain/*.md 等均为项目内部文件,范围合理
备份目录有上限控制(保留最近 30 个 session 日志),防止磁盘耗尽