CtrlK
BlogDocsLog inGet started
Tessl Logo

quote

为 shiji-kb wiki 页面补全「史记引文」节。搜索实体标注文件中对该页面实体的真实引用(而非裸字符匹配),展开已知 PN 的完整段落,过滤已引,输出新增候选。当用户说 /quote PAGE 时触发。

71

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

/quote — 史记引文补全

用法

/quote PAGE         → 查找并补全该页面的史记引文

执行步骤

第一步:运行脚本(获取候选引文)

从仓库根运行:

python3 .claude/skills/quote/scripts/quote_page.py PAGE
# 限制输出条数(高频词地名可能有上百条)
python3 .claude/skills/quote/scripts/quote_page.py PAGE --max 30

脚本逻辑:

  1. 读页面 frontmatter:typelabelpnaliases
  2. type 生成实体搜索正则(地名用 〖=NAME〗,人名用 〖@NAME〗〖@DISPLAY|NAME〗,国名用 〖◆NAME〗
  3. 扫描所有 chapter_md/*.tagged.md,找实体标注出现的段落号
  4. 已有 pn: 字段中的 PN 也一并展开(即使尚无对应引文)
  5. 过滤页面已引用的 PN,输出新增候选

第二步:评估候选、取舍

候选列表可能很长(高频地名有几十条),需要按以下标准取舍:

保留跳过
该实体是段落叙述的主角/核心仅路过性提及("经过X"、"至X而还")
有具体历史事件年表流水账(仅时间+事件列举,无叙述)
与页面主题直接相关同名异地/同名异人(注意辨别)
引文简短、完整(<150字为佳)超长段落(>300字)且核心内容少

第三步:读取页面,更新史记引文节

读页面现有 ## 史记引文 节,append-only

  • 若已有引文(以 > 出自 开头),只在最后追加新条目
  • 若无引文节,新建该节并添加
  • 引文格式:
> 出自 [[NNN_章节名|章节名]] (NNN-N):原文……(150字以内,超长可截断加"……")
  • 同一章节多条引文,相邻排列(不重复写章节头)
  • 引文按章节号升序排列

第四步(可选):更新 pn 字段

如果脚本发现的重要 PN 不在 frontmatter pn: 里,可追加到 pn: 字段。

第五步:记录修订(必须)

python3 wiki/scripts/butler/record_revision.py PAGE \
    --summary "quote: 补引文N条(章节名/章节名...)" \
    --author quote

只要实际向页面写入了新引文,此步骤不得省略。

实体类型与搜索模式

page type搜索正则示例
place〖=NAME〗〖=邯郸〗
person〖@NAME〗〖@.*|NAME〗〖@蔺相如〗 〖@相如|蔺相如〗
state〖◆NAME〗〖◆赵〗
role/title〖;NAME〗〖;丞相〗
story/event不做实体扫描,仅展开已知 pn

注意事项

  • 同名异义:如"邯郸"既是地名也是人名(侯),脚本按 page type 过滤,但仍需目视确认
  • 年表行r 型 PN(如 019-r85)是表格行,不在句子索引,脚本跳过,无需手动追加
  • 已有引文格式多样:页面可能有 ### 章节 (chap-N) [PN:[N]] 格式(kg/events 导入风格)或 > 出自 风格,两种都算"已引",不重复添加
  • 引文内容:使用句子索引重建的原文(已去标注符号),非 tagged 原始标注文本
Repository
baojie/shiji-kb
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.