Back to skill
Skillv2.0.0

ClawScan security

Diary Force · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

SuspiciousMar 8, 2026, 12:28 PM
Verdict
suspicious
Confidence
medium
Model
gpt-5-mini
Summary
技能目的(催促写日记与思维模型分析)与代码总体一致,但在依赖声明、配置可覆盖性、文件路径与 Git 推送行为上存在不一致和潜在的数据泄露风险。
Guidance
简明建议: 1) 不安装前先人工检查脚本:scripts/diary_force.py 与 scripts/think.py 中的 DIARY_PATH 和 MEMORY_PATH 是硬编码为 E:/ 与 D:/(Windows 绝对路径)。如果你不希望访问这些位置或脚本覆盖别处数据,务必修改为安全的、可通过环境变量指定的路径,并确认脚本实际读取该 envvar。 2) 注意 Git 行为:think.py 中的 git_push() 在 MEMORY_PATH.parent 目录执行 git add . && git commit && git push,会把仓库里所有改动提交并推送到远端(可能包含敏感文件)。建议改为仅 git add 指定的文件,或在安全的、空的仓库中运行;在允许推送前确认远端/凭据。 3) 外部依赖未在 registry metadata 中声明:该技能依赖 opencode CLI 与 git。确认 opencode CLI 来源可信并已正确安装;否则调用外部 CLI 会失败或带来额外风险。 4) 审核 subprocess 调用与用户输入:think.py 将用户输入包含到 prompt 并通过 subprocess 调用 opencode,建议确认 subprocess 使用方式安全(避免在 shell 上直接插入未过滤的用户输入),将 shell=False 并以参数传递更安全。 5) 运行环境建议:若想试用,先在隔离环境(虚拟机或容器)中运行,使用一个专门的空仓库做测试,确保没有意外上传敏感数据;或手动移除/修正自动 git push 行为。 6) 若你信任该技能作者且想长期使用,要求作者或维护者修复:把路径改为从环境变量读取并在 README/SKILL.md 明确列出依赖,将 git 操作限制为只提交/推送相关文件,并提供非 Windows 平台兼容说明。 总体结论:功能与描述大体一致,但若按当前代码直接运行,有明显风险(路径硬编码 + 无限制 git add . push + 未声明依赖),在未做改动与充分测试前不建议在含敏感数据的环境中启用。

Review Dimensions

Purpose & Capability
concern技能名和描述是日记催促/分析/内化,代码确实实现了检测日记、交互记录、调用 OpenCode 分析并写入本地记忆并 git push,功能匹配。但 registry metadata 声明“无需外部二进制/环境变量”,而 README/SKILL.md 和代码都明确依赖 opencode CLI、git、Python;此外 SKILL.md 提到可以通过环境变量 DIARY_PATH 覆盖,实际脚本中未读取该环境变量(硬编码为 E:/ 和 D:/ 路径)。这些不一致说明声明与实际需求不匹配。
Instruction Scope
concern运行时指令和脚本会读取/写入本地文件(硬编码为 E:\My-life\daily 和 D:\ObsidianVault/...),将分析追加到日记并把 memory 目录内容 git add/commit/push 到远端。写入与推送用户本地仓库是技能核心功能,但这也意味着可能会触及大量本地数据并上传到远端;SKILL.md 和脚本都没有限制 git 操作只提交特定文件(脚本使用 git add .),也未声明需要或如何使用远端凭据。SKILL.md 中宣称可通过环境变量覆盖路径但脚本没有实现,导致实际行为与文档不一致。
Install Mechanism
note技能为 instruction-only(无安装 spec),但包含可执行脚本并依赖外部工具(opencode CLI、git、Python)。没有提供安装/来源校验或可信来源的二进制下载步骤;registry metadata 没有把这些二进制列为必需项,这样的遗漏会让用户在安装前误判依赖情况。总体安装风险不高(无网络下载),但依赖外部 CLI 未声明是一个可追溯性/可用性问题。
Credentials
concernregistry 没有要求任何环境变量或凭据,但脚本确实会使用本地 git(可能隐式使用用户的 SSH keys 或 git 凭据)来 push 数据到远端,且会在 MEMORY_PATH.parent 目录执行 git add .,这可能把仓库内所有内容包含在提交中,从而意外上传敏感文件。SKILL.md 提到 DIARY_PATH 环境变量可覆盖,但脚本中没有读取该环境变量(硬编码路径),这造成声明与实际权限/访问范围不一致。
Persistence & Privilege
note技能未设置 always:true,默认可由用户调用或由 agent 自主触发(正常)。脚本会在本地创建/修改日记和 memory 文件并执行 git 提交/推送:这是其正常职责范围,但实现上使用了 git add .(无范围限制),会赋予该脚本对仓库的大范围写入/推送能力,增加潜在泄露面。