1实现原理 · 为什么它能做到
输入必须能确定原文、书名与章节;版本不明时保留异文边界,不替用户拍定底本。
输入必须能确定原文、书名、章节;版本不明时保留异文边界。
三层彩色夹注各有语义色与回答的问题:青色 word 注字词义、朱色 clause 注句子动作、赭色 variant 标异文与不确定处。
| `word` | 青色 | 这个字词在此处是什么意思 | 古今义、虚词功能、语法、读音 |
「逐字」以覆盖率兑现:所有非标点 token 都必须有 note;成词、虚词、通假按最小有意义单位注,不机械拆单字。
“逐字注解”通过覆盖率兑现:所有非标点 token 都有 note。
渲染器读 UTF-8 JSON,按 token 顺序拼接 text 必须与 original 逐字一致;非标点 token 必填 note 与 tone。
按 token 顺序拼接 `text`,必须与 `original` 逐字一致。
排版只做一件事:眼睛先沿黑色原文读,遇阻力看身边的彩色注,读完整章自然落到蓝色章节解读。
页面只做一件事:让眼睛先沿黑色原文读,再在遇到阻力时看身边的彩色注,读完整章后自然落到蓝色解读。
默认调用内置 image_gen 生成一幅无字、低干扰的章节意旨图放在章节标题与原文之间;图像不可用时继续出无图版本并说明。
默认调用内置 `image_gen` 生成一幅无字、低干扰的章节意旨图,放在章节标题与原文之间;图像不可用时继续生成无图版本并说明。
每次运行先建独占 /tmp/ljg-classic-* 工作区,JSON、HTML、manifest、意旨图、候选 PNG 与 QA 切片都只放该工作区;验收后再复制到 $HOME/Downloads/。
候选 PNG 完成硬验收后,才复制到 `$HOME/Downloads/` 作为最终卡片;用户显式指定另一最终路径时以本次指令为准。
章节解读只保留一个主关系,先直白再准确:章内零件、条件触发动作、结果、迁移或失效边界。
章节解读只保留一个主关系。
注解不能改写原文:底本疑似错字、通假或版本差异用 variant 标出,不能静默替换。
注解不能改写原文。底本疑似错字、通假或版本差异用 `variant` 标出,不能静默替换。
工具链为本地 Bun/Playwright:RenderClassic.ts 渲染、ValidateClassic.ts 校验,均由 package.json 脚本暴露。
"render": "bun Tools/RenderClassic.ts",
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| package | playwright |
| host-tool | 内置 image_gen(章节意旨图) |
4风险提醒 风险提醒:蓝色 · 知晓即可
- 高度依赖内置 image_gen 生成意旨图;无图像能力时只能出无图版本,视觉呈现打折。
- 注解与解读质量依赖模型对古文的判断,非标点 token 覆盖率虽可校验,但注解是否准确仍靠人工复核。
- 运行依赖 Bun + Playwright,环境缺失时无法渲染出一致的长图。
5第二遍独立确认
- [ok] 文件名与类型一致性 — SKILL.md、三份 References、Workflows/AnnotateAndRender.md、Tools/RenderClassic.ts、Tools/ValidateClassic.ts、package.json 均在 §1 清单中可见。
- [ok] 逐字注解覆盖率口径 — AnnotationMethod.md 与 InputSchema.md 均要求非标点 token 有 note,SKILL.md Gotchas 亦重申 100% 覆盖。
- [ok] original 拼接不变量 — InputSchema.md 第 1 条与 SKILL.md 合同一致:token 顺序拼接必须与 original 逐字一致。
- [ok] 交付路径与临时工作区 — SKILL.md 要求 /tmp 验收后复制到 $HOME/Downloads/ 并读回 SHA-256,与 gotchas 一致。
- [ok] 网络与凭证面 — 扫描命中的 URL 均为测试数据字符串;目录内无 fetch/curl、无 env/API key 读取。
- [ok] 判级口径 — 仅本地脚本与本地读写、零凭证零网络,符合 blue。
6结论
5821f03373434196…9e75497a95