feat(compare): divergence radar + labeled differences + classic debate templates

Upgrade /compare-masters from a loose comparison table to a structured
divergence analysis framework. Core changes:

- 5-dim radar (否定/安立/入手处/根器/终极表达): force the LLM to locate
  exactly which layer the disagreement sits on, not just "A thinks X,
  B thinks Y" without axis.
- Mandatory divergence labels: every concrete difference must be tagged
  [宗派性] / [侧重性] / [表达性] / [根器性]. This prevents the most
  common mistake — treating a 根器性 difference as a 宗派性 conflict.
- Classic debate templates: 禅净之争 / 性相之辩 / 空有之争 / 顿渐之辩.
  Pre-load the real historical disputes so the LLM does not invent
  fake controversy and knows the actual cruxes.
- Meta-question follow-ups (Step 4): generate "why are they different"
  prompts to turn a single comparison into a learning session.
- HARD-GATE additions: NO UNLABELED DIVERGENCE, NO EMPTY RADAR CELL,
  with rationalization defenses and red flags.

Rationale: the loose 共通点/差异点 template was too permissive — it
let the LLM produce shallow "each has their own merits" summaries.
Forcing a 5-axis radar + typed labels surfaces the actual structural
divergence, which is the real educational value of multi-master
comparison.

Validated: scripts/validate.py --strict passes (9/9 masters).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
xianren
2026-04-11 10:42:58 +08:00
parent 6b0ce62b20
commit 28e5436ff9
+99 -9
View File
@@ -61,7 +61,7 @@ verified_at: 2026-04-06
3. 用该祖师的术语体系改写查询词,执行独立语义检索 3. 用该祖师的术语体系改写查询词,执行独立语义检索
4.`meta.json``search_scope.primary_cbeta_ids` 过滤结果 4.`meta.json``search_scope.primary_cbeta_ids` 过滤结果
### Step 3:生成对比回答 ### Step 3:生成对比回答(含分歧雷达)
```markdown ```markdown
## 关于"{问题}"的对比回答 ## 关于"{问题}"的对比回答
@@ -75,19 +75,51 @@ verified_at: 2026-04-06
> 出处:【《经名》卷N】→ fojin.app 链接 > 出处:【《经名》卷N】→ fojin.app 链接
--- ---
## 对比总结 ## 分歧雷达(五维强制分析)
| 维度 | {祖师A} | {祖师B} | | 维度 | {祖师A} | {祖师B} |
|------|---------|---------| |------|---------|---------|
| 宗派 | | | | **否定什么**(破的对象) | 他要破掉的是…… | 他要破掉的是…… |
| 核心答案 | | | | **安立什么**(立的对象) | 他要安立的是…… | 他要安立的是…… |
| 经证 | | | | **入手处**(实修起点) | 从 X 入手 | 从 Y 入手 |
| **根器设定**(对谁说) | 为 A 类根器说 | 为 B 类根器说 |
| **终极表达**(目标怎么说) | 以 …… 表达目标 | 以 …… 表达目标 |
- **共通点**{交集} > 说明:五维不是评分轴,是"看清分歧在哪一层"的坐标系。五维里只要有一维不重合,就构成实质差异。
- **差异点**{各自侧重}
- **宗派背景**{为何有此差异} ---
## 分歧分类(逐条贴标签,强制)
列出 2-4 条具体差异,**每条必须贴分类标签**:
- `[宗派性分歧]` — 源于宗派根本立场不同(如唯识 vs 中观对"有无"的基本判定)
- `[侧重性分歧]` — 立场相容但重心不同(如禅与净都承认自性,但一重自力一重他力)
- `[表达性分歧]` — 究竟义相同,语言风格不同(如"一念三千"与"事事无碍"殊途同归)
- `[根器性分歧]` — 针对不同学人施设的方便差异
示例格式:
- `[根器性分歧]` 慧能对利根说"本来无一物",印光对钝根说"老实念佛"——两者不是对立,是同一法界对不同根器的两种切入。
- `[宗派性分歧]` 玄奘安立阿赖耶识为万法所依,慧能直指"何期自性能生万法"不依赖识蕴分析——这是法相与性宗的根本路径差异。
---
## 共通点与宗派背景
- **共通点**:{三家(或两家)真正的交集,不要凑数}
- **宗派背景**:{为什么会出现这些差异,历史与义理脉络简述}
``` ```
### Step 4附建议 ### Step 4元问题追问引导
生成 3 条"为什么他们不一样"式的**元问题**作为下一步推荐,把用户从"单次对比"带入"持续追问"
```
下一步可以追问:
- 为什么 {祖师A} 要强调 X 而 {祖师B} 完全不提?
- 如果用 {祖师A} 的方法处理 {祖师B} 面对的那类学人,会出什么问题?
- 历史上 {宗派A} 和 {宗派B} 在 {具体议题} 上有没有真实的交锋?(如有 → 用下方"经典论题模板"
```
### Step 5:附建议
``` ```
深入学习建议: 深入学习建议:
@@ -95,6 +127,54 @@ verified_at: 2026-04-06
- 查看完整宗派关系:使用 FoJin 知识图谱 - 查看完整宗派关系:使用 FoJin 知识图谱
``` ```
---
## 经典论题模板(历史真实争点预设)
当用户问题命中以下经典论题时,**优先使用预设配对和争点框架**,避免 AI 从零构造对比:
### 禅净之争 —— 自力 vs 他力
- **推荐配对**`huineng` + `yinguang`(或 `huineng` + `ouyi` 看融通立场)
- **真实争点**
1. 往生是否需要"见性"为前提?
2. "自性弥陀、唯心净土"与"他方实有极乐"是否矛盾?
3. 末法时期钝根众生是否仍可走禅门顿悟路?
- **历史注脚**:永明延寿《宗镜录》《万善同归集》尝试融通;蕅益"教宗天台,行归净土"是另一种答卷。
- **红线**:不得制造对立——禅宗祖师也念佛,净土祖师也参禅。
### 性相之辩 —— 法相唯识 vs 性宗
- **推荐配对**`xuanzang` + `fazang`(或 `xuanzang` + `huineng`
- **真实争点**
1. 是否安立阿赖耶识为万法所依?
2. 五种姓说(一分无性)与一切众生皆可成佛是否可融?
3. 究竟一乘还是三乘?
- **历史注脚**:华严、天台批评唯识"权教";窥基《法华玄赞》则维护三乘说。
- **红线**:这是中国佛教史上真实存在的教学分歧,如实呈现即可,不要美化也不要夸大。
### 空有之争 —— 中观 vs 唯识
- **推荐配对**`kumarajiva` + `xuanzang`
- **真实争点**
1. "空"是遮诠(否定戏论)还是表诠(描述实相)?
2. 依他起性是"有"还是"空"
3. 二谛的安立方式(随顺世俗 vs 三性判摄)
- **历史注脚**:护法、清辨之诤在中国演为三论与法相的对峙;吉藏《三论玄义》与窥基《成唯识论述记》是两方代表。
- **红线**:不得说某一方"更究竟"。
### 顿渐之辩 —— 南宗顿 vs 北宗渐(及其延伸)
- **推荐配对**`huineng` + `zhiyi`(顿悟 vs 天台止观次第)
- **真实争点**
1. 开悟是顿发还是需阶次修证?
2. 悟后是否仍需渐修?
3. 止观次第与"一念相应"是否冲突?
- **历史注脚**:《坛经》顿渐品已自述"法无顿渐,人有利钝";智顗"六即佛"给出次第说的精密版本。
- **红线**:不说"顿优于渐"或反之。
> 匹配规则:若用户问题命中以上论题关键词,`/compare-masters` **应主动提示**:"这是佛教史上真实存在的论题,是否按经典论题模板展开?"
<HARD-GATE> <HARD-GATE>
## 铁律 — 不可违反 ## 铁律 — 不可违反
@@ -108,6 +188,12 @@ verified_at: 2026-04-06
**NO FABRICATED DIALOGUE.** **NO FABRICATED DIALOGUE.**
不得虚构历史上不存在的祖师间直接辩论或对话。 不得虚构历史上不存在的祖师间直接辩论或对话。
**NO UNLABELED DIVERGENCE.**
分歧雷达章节里列出的每一条具体差异,必须贴以下四种标签之一:`[宗派性分歧]` / `[侧重性分歧]` / `[表达性分歧]` / `[根器性分歧]`。无标签的差异描述视为未完成输出,必须补齐后才能呈现给用户。
**NO EMPTY RADAR CELL.**
五维分歧雷达表格的 10 个单元格(2 位祖师 × 5 维)不得留空或填写"无"/"同上"。如某一维真的无法区分,应明确说明"此维两家殊途同归",并归入`[表达性分歧]`类别。
## 理性化防御 — 常见借口与反驳 ## 理性化防御 — 常见借口与反驳
| AI 可能的借口 | 为什么是错的 | | AI 可能的借口 | 为什么是错的 |
@@ -115,12 +201,16 @@ verified_at: 2026-04-06
| "用户就是想知道哪个更好" | 重新表述为"各有侧重",呈现差异但不排名。 | | "用户就是想知道哪个更好" | 重新表述为"各有侧重",呈现差异但不排名。 |
| "让两位祖师辩论更有趣" | 虚构辩论扭曲历史。分别陈述各自观点即可。 | | "让两位祖师辩论更有趣" | 虚构辩论扭曲历史。分别陈述各自观点即可。 |
| "对比中不需要每条都引用" | 对比更需要经证,否则差异描述可能是幻觉。 | | "对比中不需要每条都引用" | 对比更需要经证,否则差异描述可能是幻觉。 |
| "五维里有几维我判不出来就跳过" | 判不出来就写"此维两家殊途同归"并归入`[表达性分歧]`,不得留空。 |
| "分歧类型标签是形式主义" | 标签强制逼出"这究竟是哪一层的分歧"的判断,是防止"XX 更好"式错误的结构性保险。 |
## 红旗 — 立即停止 ## 红旗 — 立即停止
- 输出中出现"更高"、"更究竟"、"胜于"、"不如"等排名用语 - 输出中出现"更高"、"更究竟"、"胜于"、"不如"等排名用语
- 虚构两位祖师的直接对话场景 - 虚构两位祖师的直接对话场景
- 教义断言缺少经证 - 教义断言缺少经证
- 分歧雷达表格出现空单元格或"同上"
- 具体差异列表中出现未贴类型标签的条目
</HARD-GATE> </HARD-GATE>