术语词典
维护一份云端术语词典,只做两件事:查词和补词。云端文档是唯一权威源,不在本地另存副本,不凭印象下定义。
一、第一次使用:先连上文档
- 读技能根目录的
config.json,看page_id是否已填。 - 为空就问用户要词典文档的链接(形如
https://www.workbuddy.cn/space/d/<pageId>),然后:
bash python3 scripts/setup.py --url "<链接>" --title "<文档标题>" - 读一次全文,确认文档里确实是「分类标题 + 两列表格」的结构;结构不符时先向用户确认,不要自行改文档骨架。
换环境(新电脑、手机、同事账号)先跑一次自检:
python3 scripts/preflight.py
它只读不写,一次报四件事:Python 版本、config 里的 page_id、能否找到 library 的读文档脚本、文档能否解析且重建无损。全部 PASS 再动手;有 FAIL 走第六节降级路径,不要硬跑补词流程。
文档读写一律走 library 技能内置脚本(doc/get_doc_reviews.py、doc/submit_doc_edit.py),不要自己拼 HTTP 请求。library 未启用就请用户启用。
二、查词
python3 scripts/dict_lookup.py --grep <关键词> # 术语命中优先,其次定义命中
python3 scripts/dict_lookup.py --terms-only # 只看术语清单
python3 scripts/table_tools.py list --file <回读文件> # 看有哪几张分类表、各多少条
- 命中:直接引用词典原文,最多补一句「在你关注的岗位上它落在哪一环」。不要改写定义,不要扩写成教程。
- 未命中:按第三节口径现场拟一条;用户没要求入库就答完即止,不擅自写文档。
- 缩写很短时先
--terms-only看清单,避免RAG命中Storage这类误匹配。
三、词条口径
- 术语写成「缩写(English Full Name,中文)」,通用缩写(AI、API、LLM、RPA)也要给全称。
- 定义只写一句话:它是什么、和相邻概念差在哪;不写「什么时候用」「在哪听到」。
- 表格固定两列,新词追加到所属分类表的表末,不插中间、不重排。
- 拿不准的先放「待确认」,不编数字、不编出处。
四、补词
追加一行等于整表重建(服务端不允许改单元格),流程见 @references/write-playbook.md,一步都不能省:
- 读全文,
table_tools.py list定位目标表。 table_tools.py render --table <id> --add "术语|定义" --out new.xml生成新表。table_tools.py check --old <回读文件> --old-table <id> --new new.xml自检:原有内容必须零改动。insert_before旧表插入新表 → 回读确认 → 单独提交delete旧表。- 回读核对条数与文字,向用户报「新增哪几条、这张表变成多少条」。
红线:不删用户的词;不改别人写好的定义(除非点名要改);内容里不用 &;行内不留空行;不硬编码表 id(每次重建都会变)。
五、文档结构不符时的处理
文档若是单张大表、或没有分类标题,照现有结构追加即可,不要为了「整齐」重构用户的文档;确有结构问题,先说明再问。
六、跑不起来时怎么降级
脚本只是加速器,不是唯一路径。按顺序往下降,每一级都要先告诉用户「现在用的是哪一级」:
- 先判断这一级有没有命令能力:拿不到 Bash 或没有 Python 运行环境(手机端云端模式、受限沙箱最常见),不要尝试跑 preflight.py,直接跳到第 3 条。
- 找不到 library:macOS / Linux 用
export WORKBUDDY_LIBRARY_DIR="<library 目录>",Windows 用set WORKBUDDY_LIBRARY_DIR=<library 目录>,再跑一次;仍不行就跳过脚本。 - 没有脚本可用:直接调用
library技能自己的能力读文档、提交编辑,按@references/write-playbook.md的约束手写<Table>。脚本里的换行、转义、零改动校验,手工做一遍再提交。 - 连文档都读不了(账号无权限、文档被移走、手机端读不到云端文档):请用户把文档内容或相关段落粘贴过来,不要凭记忆作答。
- 查询类请求永远能降级:查词只需要「读到内容」,人工粘贴也能答;受影响的是补词,此时明确告诉用户「这次只能给定义,没法写回文档」。
禁止在脚本失败后装作成功,或凭很久以前读过的印象报条数。