用途:只读探索 Scrivener 3(.scriv)项目,适合在任何编辑类技能动手前先了解项目结构,也常用于复合流程的第一步:先 inspect,再把 UUID 交给写入或导出技能。
主要能力:outline 返回嵌套 binder 树,每个节点含 uuid、title、type、label、status、include_in_compile 和 children;read <id> 返回单个文档的 uuid、title、type、include_in_compile、label、status、synopsis、has_synopsis_image、正文(RTF 转纯文本)以及 constructs 标记;find <query> 按标题子串(不区分大小写)、精确 UUID 或精确类型(如 Folder、Text、DraftFolder)匹配,返回 uuid、title、type。
使用方式:三条命令均为只读,默认输出 JSON,加 --format text 得到可读视图,并始终用 --project 指向 .scriv 包或其 .scrivx。示例:python3 ${CLAUDE_PLUGIN_ROOT}/tools/scrivener/cli.py outline --project "<path.scriv>";read <uuid-or-title> --project "<path.scriv>";find "<query>" --project "<path.scriv>"。标题不唯一,歧义时用 UUID。Draft 用 find "DraftFolder" 定位,不靠标题;研究在 ResearchFolder,删除项在 TrashFolder。
限制:不修改项目,因此无需备份或先关闭 Scrivener,但项目处于云同步中时读取最不可靠。文件夹和空文档的 text 与 constructs 为 null 属正常。find 只匹配标题/UUID/类型,全文或字段搜索需用 scrivener-search。无标题项会按梗概首行→正文首行→"Untitled" 派生显示标题(约 60 字符截断),应视为显示名而非稳定标识,需用 UUID 引用。constructs 中任一为 true 表示文档含富内容,重写会丢数据。read 输出中的笔记、日期、书签、链接暂未提供,计划中。