Book Capture Obsidian
Execute this workflow to add or migrate books into an Obsidian vault.
Workflow
- 1. Ask the user for the destination Obsidian vault path if missing.
- Read
references/configuration.md and set environment variables. - Choose one mode:
- Photo ingest with
scripts/ingest_photo.py
- Goodreads CSV migration with
scripts/migrate_goodreads_csv.py
- 4. For Goodreads migration, prefer
--group-by-shelf and Google enrichment enabled. - Upsert notes with
scripts/upsert_obsidian_note.py. - Refresh the dashboard with
scripts/generate_dashboard.py. - Run validation and security checks:
-
sh scripts/run_ci_local.sh
- INLINECODE7
Required References
- -
references/configuration.md for runtime settings and portability - INLINECODE9 for normalized schema and output contracts
- INLINECODE10 for Goodreads import sequence
- INLINECODE11 for extraction and merge failures
Operating Rules
- - Require explicit vault destination (
BOOK_CAPTURE_VAULT_PATH or --vault-path) before bulk writes. - Prefer barcode extraction first; use OCR as fallback.
- Keep filenames human-readable (
Title - Author (Publisher, Year)). - Keep
shelf as property and include tag book in all notes. - Use shared compact series tags (for example
theexpanse, harrypotter) when volume metadata exists; avoid separate series hub notes. - Preserve user notes section during updates.
- Keep outputs deterministic and idempotent for repeated runs.
- Do not store secrets or personal identifiers in generated artifacts.
- Simplified frontmatter: keep only
title, author, publisher, year, isbn_10, isbn_13, cover, shelf, source, source_url, tags. Remove published_date, genre, status, date_started, date_read, needs_review, goodreads_book_id.
Book Capture Obsidian
执行此工作流以将书籍添加或迁移到Obsidian仓库中。
工作流程
- 1. 如果缺少目标Obsidian仓库路径,询问用户。
- 读取references/configuration.md并设置环境变量。
- 选择一种模式:
- 使用scripts/ingest_photo.py进行照片导入
- 使用scripts/migrate
goodreadscsv.py进行Goodreads CSV迁移
- 4. 对于Goodreads迁移,优先使用--group-by-shelf并启用Google增强功能。
- 使用scripts/upsertobsidiannote.py执行笔记的更新插入。
- 使用scripts/generate_dashboard.py刷新仪表盘。
- 运行验证和安全检查:
- sh scripts/run
cilocal.sh
- sh scripts/security
scanno_pii.sh
必需参考文档
- - references/configuration.md:运行时设置和可移植性
- references/data-contracts.md:标准化模式和输出契约
- references/migration-runbook.md:Goodreads导入顺序
- references/troubleshooting.md:提取和合并失败处理
操作规则
- - 批量写入前要求明确指定仓库目标(BOOKCAPTUREVAULTPATH或--vault-path)。
- 优先使用条形码提取;OCR作为备用方案。
- 保持文件名可读性(书名 - 作者(出版社,年份))。
- 将shelf作为属性保留,并在所有笔记中包含book标签。
- 当存在卷元数据时,使用共享的紧凑系列标签(例如theexpanse、harrypotter);避免创建独立的系列中心笔记。
- 更新时保留用户笔记部分。
- 保持输出确定性和幂等性,以支持重复运行。
- 不在生成的制品中存储密钥或个人标识符。
- 简化前置元数据:仅保留title、author、publisher、year、isbn10、isbn13、cover、shelf、source、sourceurl、tags。移除publisheddate、genre、status、datestarted、dateread、needsreview、goodreadsbookid。