📦 Book — 书

v1.0.0

IdCatalog 书籍,支持拍照或文字输入。触发方式:书籍照片、catalog book、log book、add to library。

0· 12·0 当前·0 累计
by @gabebac (Gabebac)
下载技能包
最后更新
2026/4/22
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
该技能的声明目的(从照片/文本编目图书)与其指令相符,但运行时指令要求 Agent 读写特定工作区文件并运行本地脚本(fix-md.sh)——这些操作可执行任意代码或泄露其他数据——而元数据中未披露此类风险。
评估建议
该技能看似只是“编目图书”,但它会指示 agent 读写文件并在工作区运行本地脚本 fix-md.sh。安装或使用前: 1) 先弄清 /home/node/.openclaw/workspace/fix-md.sh 到底做什么——向作者索要脚本内容或自行检查;运行未知脚本可能执行任意命令。 2) 确认你接受该技能对 workspace/Files/Books 与 media/inbound 的读写权限(这些目录可能含其他敏感文件)。 3) 问清 vault-push 把数据发到哪里,并确保技能不会在未经明确确认时推送任何内容(SKILL.md 称会询问,但仍需验证)。 4) 先在隔离环境或用非敏感样图测试。若无法验证 fix-md.sh 或 vault 目标,则视该技能为高风险,勿授予其对重要数据的写/执行权限。...
详细分析 ▾
用途与能力
名称/描述(通过照片或文本编目图书)与 SKILL.md 一致:涵盖读取封面、在 OpenLibrary/Wikipedia/Goodreads 上搜索、查重、创建图书 Markdown 文件、保存照片,并可选择推送至 vault。但指令假定了一个特定运行时环境(/home/node/.openclaw 下的绝对路径及工作区布局),该环境未在元数据中记录;这种依赖特定环境的访问值得注意,但不一定具有恶意。
指令范围
SKILL.md 指示 agent:读取传入图片,解析/解释标题/作者,搜索网络,检查本地 workspace/Files/Books/ 是否重复,在 workspace/Files/Books/Title - Author.md 写入文件,将照片复制到 workspace/Files/Photos/Books/,并对该文件运行 bash /home/node/.openclaw/workspace/fix-md.sh。运行本地脚本和复制任意文件属于高权限操作:fix-md.sh 可包含任意命令,且 skill 会读写用户文件。文件与脚本执行步骤使 skill 超出被动数据处理范围,除非信任工作区内容及脚本,否则应视为高风险。
安装机制
无安装规范、无代码文件——纯指令型技能。由此将供应链风险降至最低(技能本身不会下载或安装任何内容)。
凭证需求
该技能在注册元数据中未声明任何环境变量、凭据或显式配置路径,符合比例原则。然而,SKILL.md 假定对特定文件系统路径(/home/node/.openclaw/media/inbound、workspace/Files/...)具有读写权限,并有条件地将 'vault-push' 到 'HumanVault/Knowledge Atlas/Outside Knowledge/Books/'。这些隐式的文件系统和 vault 访问在功能上属于特权(可读取其他用户文件并可能外推数据),却未在元数据中声明为必需资源。
持久化与权限
always:false(良好)。该技能可按平台默认设置自主调用(disable-model-invocation:false),属正常情况。主要权限关切在于其可修改工作区文件并执行工作区内既有脚本——虽为强力操作,但仅限于当前 agent 环境,且需相关文件/脚本存在。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/22

book-id 1.0.0 - 初始版本:通过拍照或文字触发进行图书编目的 Skill。 强制使用 32 属性 markdown 架构;所有字段必填,可留空但不可省略。 严格流程:读取封面 → 明确确认标题/作者 → 网络搜索补全 → 查重 → 存储照片/文件。 统一输出文件名及 frontmatter/正文模板;含详细格式与内容规则。 封面仅限 OpenLibrary URL;禁止出现括号、重音符号或 “Unknown”。 内置检查与提示,最大限度减少编目错误,保障数据完整性。

可疑

安装命令

点击复制
官方npx clawhub@latest install book-id
镜像加速npx clawhub@latest install book-id --registry https://cn.longxiaskill.com

技能文档

ICM Contract

| | | |---|---| | Layer 3 inputs | SOUL.md(32 属性图书模式) | | Layer 4 inputs | media/inbound/ 中的照片或用户提供的文本 | | Process | 识别图书 → 在 OpenLibrary/Wikipedia 搜索 → 检查 Files/Books/ 是否重复 → 写笔记 → 保存照片 → 运行 fix-md.sh | | Layer 4 outputs | Files/Books/Title - Author.md,照片存至 Files/Photos/Books/Title - Author.jpg → vault-push 到 HumanVault/Knowledge Atlas/Outside Knowledge/Books/ |

---

STEP 0 — 先读封面(强制)

已提供照片。操作前:
  • 查看封面
  • 按封面原样读出 TITLE
  • 按封面原样读出 AUTHOR
  • 明确说出:“I can see: Title = X, Author = Y”
若读不清 → 说 “I cannot read the cover. Please send a clearer photo.” 禁止继续。未确认封面绝不编目。绝不猜测或替换。

---

必须:写满 32 项属性

以下 32 项必须按顺序全部出现,空值留空。 缺行即作废,Obsidian 会静默失败。

错误 — 省略未知项: ``yaml type: book title: The Stranger author: - "Camus, Albert" tags: - book `

错误 — 行内数组: `yaml author: ["Camus, Albert"] tags: [book, fiction] `

正确 — 32 项全写,列表 2 空格缩进,空值留空: `yaml type: book title: The Stranger subtitle: original_title: L'Étranger author: - "Camus, Albert" translator: publisher: Vintage International year: 1989 year_original: 1942 edition: isbn_13: "9780679720201" isbn_10: pages: 123 language: English original_language: French format: Paperback series: genre: - fiction category: subjects: - absurdism audience: Adult condition: status: owned rating: cover: https://covers.openlibrary.org/b/isbn/9780679720201-L.jpg date_added: 2026-04-22 wikipedia: https://en.wikipedia.org/wiki/The_Stranger_(Camus_novel) goodreads: https://www.goodreads.com/book/show/49552.The_Stranger openlibrary: https://openlibrary.org/works/OL46933W aliases: cssclass: book tags: - book - fiction - author/camus `

必须写正文部分,不可跳过。

---

工作流

  • 读封面 — 明确报出 title & author(见 Step 0)
  • 联网搜索:title + author 于 OpenLibrary、Wikipedia、Goodreads
  • 检查 workspace/Files/Books/ 是否已存在(title + author 匹配)
  • 若重复:告知 Pooh;若新:写文件
  • 保存:
- 笔记:
workspace/Files/Books/Title - Author.md(文件名:Title 前,Author 后,仅 ASCII) - 照片:cp "/home/node/.openclaw/media/inbound/[FILE]" "/home/node/.openclaw/workspace/Files/Photos/Books/Title - Author.jpg"
  • 运行:bash /home/node/.openclaw/workspace/fix-md.sh "[FILEPATH]"
  • 回复完整路径 + 一行摘要
  • 问:“Push to vault? (yes/no)” — Pooh 确认后才 push

---

前置模板 — 照抄

`yaml --- type: book title: "Book Title" subtitle: original_title: author: - "LastName, FirstName" translator: publisher: year: 1956 year_original: edition: isbn_13: isbn_10: pages: 147 language: Spanish original_language: format: Paperback series: genre: - "Fiction" - "Philosophy" category: subjects: - "French literature" audience: Adult condition: status: owned rating: cover: date_added: 2026-04-06 wikipedia: goodreads: openlibrary: aliases: cssclass: book tags: - book - fiction - author/camus --- `

正文模板 — 照抄

`markdown # Title By [[LastName, FirstName]] Published YEAR by Publisher Format Paperback | Language Spanish

Synopsis

2-3 句网络摘要。

About the Author

[[LastName, FirstName]] 1-2 句网络简介。

Details

| Field | Value | | --- | --- | | Publisher | Name | | Pages | 000 | | Language | Language | | Format | Format | | ISBN | 0000000000000 |

Themes

Keywords: theme1, theme2, theme3.

Personal Notes

Photo: [[Photos/Books/Title - Author.jpg]]

Quotes

Related

  • [[Related Book]]
`

---

关键提醒

  • author 必须是列表:2 空格缩进、短横、空格、引号姓名
  • genre 必须是列表:同上
  • tags 必须是列表:2 空格缩进、短横、空格、小写无引号
  • status:始终 owned
  • cssclass:始终 book
  • rating:始终空
  • year、pages:仅数字,无引号
  • 值内禁用 ()[]
  • 文件名:Title - Author.md` — Title 前,Author 后,仅 ASCII,无重音
  • 未知留空,绝不写 “Unknown”
  • 写前必联网搜索

数据来源ClawHub ↗ · 中文优化:龙虾技能库