| name | maintain-lacan-knowledge-base |
| description | Search, create, update, fact-check, link, merge, audit, or repair the project knowledge base under 知识库/. Use for 关键词检索、按 TAG 和双向链接扩展相关知识卡与译文分段、跨全部研讨班法语原文和互联网做语义检索、新建或补写知识卡、判断翻译解读/建言/注释是否值得入库、更新来源与 verification、维护卡片间双向关联、修复 YAML/标签/链接/索引统计,以及维护 知识库/README.md。 |
Maintain Lacan Knowledge Base
检索并维护 知识库/ 中可独立阅读、来源可核验、能返回翻译语境且彼此关联的知识卡。处理个人解读、“建言”与注释时,始终以实时 知识库/README.md 和现有卡片为规范,不从旧会话臆测目录状态。
先确定模式和授权
- 用户要求创建、更新、维护、修复或整理时,编辑明确范围内的知识卡,并同步必要的索引统计。
- 用户只要求检索、查找、检查、解释、审阅或盘点时,保持只读;运行检索或检查脚本并报告结果,不改卡片、翻译文本或 README。
- 用户只要求补充关联时,不顺带重写整张卡;用户只要求核实一个事实时,不扩展成全库改写。
- 删除、改名或合并会使旧路径消失。只有用户明确授权这些动作时才执行;否则列出候选和依据。
建立现场上下文
- 运行
git status --short,把已有修改和未跟踪文件视为用户内容。
- 完整读取
知识库/README.md。
- 读取目标卡;新建时读取至少两张最相近的现有卡:
- 一张与主题或领域相近;
- 一张与来源结构相近,例如“本地法文原文 + 外部权威资料”。
- 读取每个拟关联的译文分段;涉及拉康研讨班表述时,同时读取同 ID 的本地法语原文及必要的相邻段落。
- 创建或改名前搜索标题、别名、核心外文词、人物名和概念标签:
rg -n -i '核心词或别名' 知识库 --glob '*.md'
不要仅凭文件名判定重复。比较两张卡的知识对象、核心论点、来源与关联;同一知识对象应优先更新既有卡并追加关联。
检索知识库与项目语料
检索任务先读取 references/search-playbook.md,按“词面召回 → TAG/链接图扩展 → 法语原文与互联网补检 → 证据分层”的顺序执行。脚本只负责稳定召回和图遍历,最终相关性必须由语境判断。
1. 关键词 grep 式召回
先做模糊召回,再做精确核对。把短语拆成至少两个稳定词核,用允许少量插字的正则覆盖不同说法;例如把“四话语”写成 四.{0,2}话语,同时覆盖“四种话语”。人名同时搜索稳定汉字片段、常见译名和原文拼写。
用 rg 同时搜索全部知识卡和已有译文,不只搜文件名:
rg -n -i -C 2 \
--glob '知识库/*.md' \
--glob 'texts/*/translation/*.md' \
-- '四.{0,2}话语|常见说法|人名译法1|人名译法2|原文名' 知识库 texts
再单独 grep TAG,避免正文措辞差异漏掉已归类卡片:
rg -n -i --glob '知识库/*.md' \
-- '^ - .*(话语|人名稳定片段|概念词)' 知识库
把用户概念展开为中文译名、别译、原文拼写、词形变体、人物或书名变体,再分轮搜索。模糊模式不要只剩一个常见汉字;至少保留两个能共同消歧的词核。不要把一次零命中解释成“项目中不存在”。
2. TAG 与双向链接扩展
使用检索脚本把关键词命中的卡片、精确 TAG、知识卡互链和译文分段关联组合成候选图:
python3 .agents/skills/maintain-lacan-knowledge-base/scripts/search_local_corpus.py \
--repo-root . \
--query '对象 a' \
--query 'agalma' \
--tag '概念/对象a'
search_local_corpus.py 默认对空格、标点、少量插字和短人名译法差异做模糊召回;需要只看精确结果时才加 --exact。图中的边按双向遍历:
知识卡 ↔ 知识卡:读取 ## 关联 中的显式卡片互链;
知识卡 ↔ 译文分段:把卡片指向译文的链接同时作为译文的反向入口;
知识卡 ↔ TAG ↔ 知识卡:优先人物、作品和概念等高辨识度标签,研讨班或宽泛领域标签只作弱线索;
- 旧卡尚无显式卡片链接时,用共享译文分段和高辨识度 TAG 推导候选,但把“显式链接”和“推导关联”分开报告。
给定卡名、TAG 或分段 ID 时,分别使用 --card、--tag 或 --segment。需要机器可读结果时加 --json。
3. 全部法语原文与互联网语义补检
把概念转换成法语核心词、同义词、旧拼法、屈折形式和相邻理论词,再检索整个项目的 texts/*/original/*.md:
rg -n -i -C 3 \
--glob 'texts/*/original/*.md' \
-- 'désir|désirer|désirant' texts
也可在检索脚本中加入多个法语 --query 并使用 --include-originals。命中后读取完整分段、相邻 ID 和该研讨班 original/README.md,不要仅凭单行片段解释。
本地证据不足、用户要求外部检索或事实可能更新时,使用互联网搜索。按对象选择法文、德文、英文及其他原始语言查询,优先原典、权威词典、学术出版物、图书馆和机构来源;外部拉康引文必须尽量回定位到本地法语原文。列出采用来源的标题、URL、语言,并把直接证据、相邻语境与解释性推论分开。
先判断素材是否值得入库
不要把注释自动当作知识库素材。只有内容脱离当前句后仍能帮助读者理解人物、文本、事迹、历史背景或专业术语,并且可由原典、权威词典、图书馆资料或可靠研究独立核实时,才创建或更新知识卡。
以下内容原则上留在原注释,不单独建卡:
- 纯页码、版本、书目信息、转录异文或排印勘误;
- 只指向某课、某段的内部导航;
- 只解决当前句的微型词义提示、一次性双关或口语笑点;
- 尚无独立证据的个人联想和语境判断;
- 没有新增背景知识的大段引文。
若既有卡片可以承载可复用的新材料,补充其正文、来源和关联,不另建近义卡。
核实再写
- 把原解读或建言拆成可核实的事实、文本判断和解释性延伸,分别寻找证据。
- 优先使用原典、项目本地法语底本、权威词典、学术出版物、图书馆或机构资料;不以搜索摘要、聚合转载或无出处博文支撑关键事实。
- 按对象选择中文、法文、德文、英文、意大利文、古典语言等资料,不把英语当作默认唯一来源。
- 涉及拉康研讨班时优先引用本地法语原文。若采用外部英文版本,同时寻找本地法语对应段落;找不到时明确写出证据边界。
- 让正文只保留核实后的知识。不要复述原建言,不单列“核实结论”,也不要为了说明
需更正 而把已知错误重新写进正文。
- 外部人物、典故、著作、科学或历史卡保持中立;只有卡片主题本身是拉康的概念、文本或生平时,才在正文讨论拉康。
按原解读、建言或注释中的事实陈述与可靠证据的关系选择 verification:
已核实:事实核心有直接或可靠支持;
部分准确:主旨可保留,但需要限定、拆分角色或降低断言强度;
需更正:名称、出处、年代、人物关系或概念有可定位错误;
解释性延伸:超出可直接核实的文本事实或历史共识。
若没有可识别的原陈述,不要凭空制造“错误状态”;根据促成建卡的具体陈述判定,证据仍不足时先报告缺口。
创建知识卡
创建前读取 references/card-spec.md。按该文件的模板写入 知识库/<title>.md,并满足以下规则:
- 文件名与
title 指向同一知识对象,不加编号;文件名可为路径安全与简洁省略排版空格或书名号,不另设一级标题或“知识卡”标题。
- 使用固定属性:
title、type、verification、tags、verified_at;type 固定为 knowledge-card。
- 选 3–5 个核心标签。包含所有实际关联研讨班的稳定标签,再选择领域和最重要的人物、作品、概念、语言或时空标签。
- 写独立、紧凑、中立的正文,明确必要限定、常见混淆和证据边界。
- 在
## 来源 中逐条列出原典或可靠资料,并标注资料语言及用途。
- 在
## 关联 中先放相关知识卡的双向链接,再放译文分段链接。卡片链接使用 [[知识库/<文件名>.md|<卡片标题>]],并在对方卡片补上本卡链接。
- 只连接知识对象或论证关系确实相关的卡片,不因共享宽泛领域标签就制造链接;没有可靠关联时明确说明,不虚构。
- 使用当天日期填写
verified_at,但只有完成实际核实时才建卡。
更新知识卡
- 保留卡片的知识对象和已核实内容,只改本次证据要求涉及的部分。
- 新语境指向同一知识时,追加并去重
关联,同步补充对应研讨班标签;不要复制建卡。
- 新来源改变事实边界时,修订正文、来源和
verification,并把 verified_at 更新为本次复核日期。
- 仅补关联、修排版或改标签且未重新核实事实时,保留原
verified_at。
- 新增卡片关联时同时维护对方卡片的反向链接;检索器会兼容旧单向链接,但新改动不得继续制造单向边。
- 替换失效或低质量来源前先确认新来源直接支持相应陈述;不要因链接可访问就视为证据充分。
- 改名时搜索并更新所有仓库内链接。合并时把不重复的事实、来源、标签和关联汇入保留卡,再处理旧文件。
建立知识卡双向关系网络
当用户要求“建立、补全、整理或维护知识卡片关联”时,按主题簇逐批建立关系;这只授权补充经判断的链接,不授权改写正文、来源或 verified_at。不要按全部 TAG、同一研讨班或同一人物自动互连。
- 从一张种子卡开始,用
--card、标题/别名的模糊 rg、高辨识度 TAG 和共享译文分段收集候选:
python3 .agents/skills/maintain-lacan-knowledge-base/scripts/search_local_corpus.py \
--repo-root . --card '种子卡标题' --depth 1 --limit 20
rg -n -i -C 2 -- '标题片段|别名|原文名' 知识库 texts
rg -n -i --glob '知识库/*.md' -- '^ - .*(人物|作品|概念的稳定词核)' 知识库
- 完整读取候选双方的正文、
## 来源、## 关联 和共同指向的分段;再按证据强度决定:
- 可连:一方明确讨论另一方;共享同一原典/论证;定义与其形式化、应用或反例互相解释;作品与其接受、批评或历史语境直接相关。
- 可作为候选:共享高辨识度人物、作品、概念 TAG 或同一精确分段;必须在全文和来源中确认具体关系后才连。
- 不连:只共享宽泛领域、研讨班标签、常见人名或时代背景;把这类结果报告为“TAG 候选”,不伪装成知识卡关系。
- 在两张卡的
## 关联 中同时写入 [[知识库/<对方文件名>.md|<对方标题>]],卡片链接置于译文链接之前,并在两类链接之间保留空行。去重、不自链;通常每张卡保留 1–5 条最有解释力的关系,核心枢纽卡可更多,但每条都必须有不同的语义理由。
- 遇到旧单向链接时,先重新判断其语义依据,再补反向链接;没有用户明确授权时不因关系不足而删除既有链接。记录“显式链接”“本次新增链接”和“仅 TAG 推导候选”的区别。
每完成一个主题簇,先验证整批显式关系,再继续下一批:
rg -l0 '^\\[\\[知识库/' 知识库 --glob '*.md' \
| xargs -0 python3 .agents/skills/maintain-lacan-knowledge-base/scripts/validate_knowledge_base.py \
--repo-root . --require-card-links
python3 .agents/skills/maintain-lacan-knowledge-base/scripts/validate_knowledge_base.py \
--repo-root .
git diff --check -- 知识库
交付时报告新增或复核的关系数、涉及卡片数、每个主题簇的关系理由,以及因只有宽泛 TAG 重合而跳过的候选。不要用校验脚本通过替代语义判断。
维护与批量检查
- 先用只读检查定位问题,再做最小范围修复。
- 对疑似重复卡按“同一知识对象 + 同一核心问题”判断;仅共享人物或领域不构成重复。
- 用
search_local_corpus.py --card '卡名' 查找可补充的显式关联;逐条阅读后再决定,不自动接受脚本建议。
- 标签改名要全库搜索旧值,统一替换并检查 3–5 个标签上限。
- 新增研讨班标签时,同时在
知识库/README.md 的标签体系和“按研讨班浏览”中登记路径。
- 不把
verification 值、工作状态或“知识卡片”写成标签。
同步索引并验证
卡片编辑完成后同步 README 统计:
python3 .agents/skills/maintain-lacan-knowledge-base/scripts/sync_readme_stats.py \
--repo-root . --write
只读审阅或确认统计未漂移时,使用:
python3 .agents/skills/maintain-lacan-knowledge-base/scripts/sync_readme_stats.py \
--repo-root . --check
然后运行完整结构与链接检查:
python3 .agents/skills/maintain-lacan-knowledge-base/scripts/validate_knowledge_base.py \
--repo-root .
git diff --check
新建或更新的卡片还要运行聚焦严格检查:
python3 .agents/skills/maintain-lacan-knowledge-base/scripts/validate_knowledge_base.py \
--repo-root . --require-card-links 知识库/<目标卡片>.md
检查脚本验证属性、标签、章节顺序、来源语言标注、知识卡双向链接、译文路径、分段 ID,以及研讨班标签与译文关联的一致性。它不替代语义相关性判断,也不替代对外部来源内容和链接可用性的人工核实。
完成门槛
只有同时满足以下条件才报告完成:
- 已查重,且创建或更新的是正确知识对象。
- 检索任务已覆盖用户要求的词面、TAG/链接图、译文、法语原文和互联网层级;没有命中时区分“词面未命中”与“没有证据”。
- 正文中的实质性事实都有来源支持,直接证据与解释性延伸没有混写。
verification 描述原陈述的核实状态,而不是正文是否“有错”。
- 本地法文原文、译文关联、研讨班标签和分段 ID 相互一致。
- 新建或更新卡片包含经过人工确认的相关卡片双向链接与译文关联;显式链接和 TAG 推导关系没有混为一谈。
- 若发生编辑,README 计数已同步,结构检查、链接检查和任务范围内的 diff 检查通过;只读检索不运行写操作。
- 最终改动不包含用户已有的无关修改,也未擅自删除、改名或合并卡片。