详细分析 ▾
运行时依赖
版本
book-id 1.0.0 - 初始版本:通过拍照或文字触发进行图书编目的 Skill。 强制使用 32 属性 markdown 架构;所有字段必填,可留空但不可省略。 严格流程:读取封面 → 明确确认标题/作者 → 网络搜索补全 → 查重 → 存储照片/文件。 统一输出文件名及 frontmatter/正文模板;含详细格式与内容规则。 封面仅限 OpenLibrary URL;禁止出现括号、重音符号或 “Unknown”。 内置检查与提示,最大限度减少编目错误,保障数据完整性。
安装命令
点击复制技能文档
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”
---
必须:写满 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:始终ownedcssclass:始终book- rating:始终空
- year、pages:仅数字,无引号
值内禁用()或[]文件名:Title - Author.md` — Title 前,Author 后,仅 ASCII,无重音- 未知留空,绝不写 “Unknown”
- 写前必联网搜索