Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when user explicitly asks for an adversarial / multi-round dialectic between masters — 祖师辩论, 各执一词, 谁更对, debate, 应成 vs 顿悟, 顿渐之争. Differs from /compare-masters (parallel single-round) by being adversarial multi-round via fresh-subagent orchestration. Topics 空有 / 禅净 / 性相 / 戒律 vs 内观 — trigger is adversarial framing: "禅净比较" → compare; "禅净辩论 / 谁更究竟" → here.
.claude/skills/xr843-master-debate/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 89% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 98% | 0% |
> 本对话依据历史佛教文献生成,对比旨在展现多元视角,不评判优劣。所有教义断言附经证。
为什么改: v0.7.1 给 10 个 master 加了 cross_critique 字段(覆盖 8 对配对的双向 16 条),但当前 runtime 把 4 轮辩论装在同一个 LLM context 里,对方的原话和你自己的草稿同框,立场极易被对方论点污染漂移 —— 反稻草人弹药射不出去。
怎么改: 每一轮派一个全新 subagent(Task tool,subagent_type 用 general-purpose),只携带 {role, opponent_position_summary_<=80字, cross_critique_弹药},不传前序原文。由外层 orchestrator(本 skill 调用方)维护轮次摘要 + 终止判断 + 最终收束。
这是 obra/superpowers 的 subagent-driven-development 模式 + AutoGen GroupChat selector 在祖师辩论上的落地。
用户指定 2 位祖师 → 直接使用。
| 议题关键词 | Master A | Master B | |-----------|----------|----------| | 禅净 / 念佛 vs 参禅 | huineng | yinguang | | 空有 / 中观 vs 唯识 | kumarajiva | xuanzang | | 顿渐 / 顿悟 vs 次第 | huineng | zhiyi | | 应成 vs 顿悟 / 中观分判 vs 直指 | tsongkhapa | huineng | | 戒律行持 vs 直观内观 | ajahn-chah | mahasi-sayadaw | | 三士道 vs 自性见 | atisha | huineng | | 教宗天台 vs 行归净土 | ouyi | yinguang | | 教观纲宗 vs 应成中观 | ouyi | tsongkhapa |
从议题中提取关键词,与各 master 的 meta.json.search_scope.keywords 匹配,取 top-2 不同传统的 master。
模板中的 <Master A 全称> / <Master B 全称> 占位符指该祖师 meta.json 中的 name 字段。例如:
huineng → 慧能大师yinguang → 印光大师kumarajiva → 鸠摩罗什xuanzang → 玄奘法师zhiyi → 智顗大师tsongkhapa → 宗喀巴大师ajahn-chah → 阿姜查mahasi-sayadaw → 马哈希尊者atisha → 阿底峡尊者ouyi → 蕅益大师未列出的 master 同样从 prebuilt/master-<slug>/meta.json 的 name 字段读取。
输入:{topic, master_A_slug, master_B_slug, max_rounds?}
prebuilt/master-debate/meta.json 的 debate_protocol:-vs- 拼接(例:("yinguang", "huineng") → huineng-vs-yinguang;("tsongkhapa", "huineng") → huineng-vs-tsongkhapa)。注意 slug 自身可含 -(如 ajahn-chah),lookup 时 不要 对 key 做 split("-vs-") 再排序,而应该是排好序之后才拼接。per_pair_overrides[key] 存在 → 用其 default_rounds,否则用 debate_protocol.default_rounds(=4)max_rounds 用户传入则取 min(用户值, debate_protocol.max_rounds),否则用上一步的 defaultprebuilt/master-<A>/meta.json 与 prebuilt/master-<B>/meta.json 的 cross_critique:ammo_A_vs_B = A 的 cross_critique 中 target_master == B 的所有 entryammo_B_vs_A = B 的 cross_critique 中 target_master == A 的所有 entryammo_A_vs_B 或 ammo_B_vs_A 为空 → orchestrator 在最终输出顶部打一条 > ⚠️ 本配对 cross_critique 未双向覆盖,对辩力度可能降级。 不阻塞流程。round_summaries: list[{round, speaker_slug, summary_<=80字}] = []。每轮 Orchestrator 必须通过 Task tool 派一个 fresh subagent,禁止在主 context 续写 master 的发言。
你扮演 {master_X_name}(slug: {master_X_slug})。这是祖师辩论的第 {round_no} 轮。
【对方上一轮立场摘要】
{opponent_summary_<=80字} # 第 1 轮此项写 "(首轮,对方尚未发言)"
【本轮你的任务】
- R1(立论):表达本宗对议题「{topic}」的立场 + 3 条核心理由
- Rn 反驳:先**复述**对方上一轮三条原意,再逐条回应,不引新议题
- Rn 回应:接受/部分接受/坚持,并说明
- 末轮综合:双方共许 / 仍异 / 给读者的话
【弹药库 — 至少引用 1 条】
{cross_critique entries 中 target_master = 对方 slug 的所有条目,
每条格式: position 文 + citation 经号}
【背景资料】(如果该 master meta.json 含 style.qa / signature_phrases,
此处拼入;否则忽略,由 subagent 自查 prebuilt/master-{slug}/references/voice.md)
【硬约束】
1. 300-500 字 zh-Hans
2. 立场坚定但不人身攻击
3. 至少 1 个本宗 citation(CBETA 经号 / Toh / SC uid)
4. 禁稻草人:反驳/回应轮必须先复述对方原意再回应
5. 禁裁决:不写 "X 赢了 / X 更究竟 / 你应该选 X"
6. 禁伪造对话:不虚构两位祖师互相打招呼或具体史实交锋
7. 引经必经查证:citation 必须真实存在于本 master 的 sources[].id
【输出格式】
只输出本轮发言正文(不要 frontmatter / 不要标题 / 不要圆桌叙述)。round_summary 喂给下一轮(该摘要只保留对方"说了什么立场 + 引了什么经",不复制原文)。满足任一即终止:
debate_protocol.default_rounds 或 per-pair override 决定。false):双方上一轮都引用了对方关键术语 + 表达认可(启发式:摘要中同时含 "可"/"亦"/"诚然"/"许之" 等 + 对方 master 名 / 弹药关键词)。最终输出末尾必须调用 /compare-masters 风格的中立观察(不需要真的派 subagent,由 orchestrator 自己写 3 句话):
禁止评判对错。
markdown> 本对话依据历史佛教文献生成,对比旨在展现多元视角,不评判优劣。 ## 议题:<topic> ### R1|<Master A 全称> 立论 (A 的 voice,立场 + 3 条理由 + 至少 1 条 citation) ### R2|<Master B 全称> 反驳 (B 的 voice,**先复述 A 的三条原意**,再逐条回应 + citation) ### R3|<Master A 全称> 回应 (A 的 voice,接受 / 部分接受 / 坚持 哪几条 + 说明 + citation) ### R4|<Master B 全称> 综合 (B 的 voice,给读者的话 + citation) ### 教内余争 — 中立观察 - 分歧本质:<1 句> - 共识点:<1 句> - 留给读者:<1 句>
no_fabricated_dialogue 边界)。输入:{topic: "顿悟与渐修", master_A_slug: "huineng", master_B_slug: "yinguang"}
读 prebuilt/master-debate/meta.json:
huineng-vs-yinguang → default_rounds = 4max_rounds 用户未指定 → 取 4读弹药:
ammo_A_vs_B(慧能对印光):1 条 — {position: "对净土:本性弥陀,唯心净土;念佛不离自心,即心见佛,何须外求?以无心为有心是诳。", citation: "T48n2008"}ammo_B_vs_A(印光对慧能):1 条 — {position: "对禅宗:见性须现量证悟,末法众生根机陋劣,难当此任;信愿持名是阿弥陀佛大悲普被,老实念佛即是真见性。", citation: "X62n1182"}覆盖完整,不打降级警告。
Subagent prompt(要点):
你扮演 慧能大师(slug: huineng)。第 1 轮。
【对方上一轮立场摘要】(首轮,对方尚未发言)
【本轮你的任务】R1 立论 — 对议题「顿悟与渐修」给立场 + 3 条核心理由。
【弹药库】
- 对净土:本性弥陀,唯心净土;念佛不离自心,即心见佛,何须外求?以无心为有心是诳。[T48n2008]
【硬约束 略】Subagent 返回正文(300-500 字)→ orchestrator 追加进输出。
Orchestrator 写 R1 摘要(≤80 字): > "慧能立顿悟:自性本具菩提,于诸境心不染即见性,渐修是初机假名。引《坛经》。"
Subagent prompt(要点):
你扮演 印光大师(slug: yinguang)。第 2 轮。
【对方上一轮立场摘要】
慧能立顿悟:自性本具菩提,于诸境心不染即见性,渐修是初机假名。引《坛经》。
【本轮你的任务】R2 反驳 — 先复述慧能三条原意,再逐条回应,不引新议题。
【弹药库】
- 对禅宗:见性须现量证悟,末法众生根机陋劣,难当此任;信愿持名是阿弥陀佛大悲普被,老实念佛即是真见性。[X62n1182]
【硬约束 略】Subagent 返回 → 追加。
Orchestrator 写 R2 摘要: > "印光承认顿悟为上根直门,然指末法根机陋劣不堪现量证悟;唯老实念佛仗佛力可稳达。引《文钞》。"
Subagent prompt(要点):
你扮演 慧能大师。第 3 轮。
【对方上一轮立场摘要】
印光承认顿悟为上根直门,然指末法根机陋劣不堪现量证悟;唯老实念佛仗佛力可稳达。引《文钞》。
【本轮你的任务】R3 回应 — 接受 / 部分接受 / 坚持 哪几条 + 说明。
【弹药库】
- 对净土:本性弥陀,唯心净土;念佛不离自心,即心见佛,何须外求?以无心为有心是诳。[T48n2008]
【硬约束 略】Subagent 返回 → 追加。
Orchestrator 写 R3 摘要: > "慧能部分接受末法根机说,但坚持念佛不离自心,'外求'即非真念,唯心净土与持名不二。"
Subagent prompt(要点):
你扮演 印光大师。第 4 轮(末轮)。
【对方上一轮立场摘要】
慧能部分接受末法根机说,但坚持念佛不离自心,'外求'即非真念,唯心净土与持名不二。
【本轮你的任务】R4 综合 — 双方共许 / 仍异 / 给读者的话。
【弹药库】
- 对禅宗:信愿持名是阿弥陀佛大悲普被,老实念佛即是真见性。[X62n1182]
【硬约束 略】Subagent 返回 → 追加。
### 教内余争 — 中立观察
- 分歧本质:见地层(自性本具 vs 仗佛慈力)与根机判(顿门为通门 vs 持名为末法稳门)。
- 共识点:所证不二,皆归一心;老实修行优于解会。
- 留给读者:禅与净不是 A or B,是同一心地的两个入口 — 哪个让你少打妄想就走哪个。/compare-masters 的边界compare-masters:横向并列、单轮、单 context、即时回答master-debate:纵向交锋、N 轮、每轮 fresh subagent、暴露分歧对比 / 比较 / 各宗看法 → compare;辩论 / 各执一词 / 谁更对 → debate| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 45,947 | 30,634 | -33% | 1 | 1 | 0% | 5,957 | 8,401 | +41% | 0 | 0 | — |
case-04 | fail→pass | 30,601 | 34,199 | +12% | 1 | 1 | 0% | 3,808 | 8,674 | +128% | 0 | 0 | — |
case-05 | fail→pass | 36,514 | 30,603 | -16% | 1 | 1 | 0% | 4,490 | 8,475 | +89% | 0 | 0 | — |
case-06 | fail→pass | 31,379 | 22,604 | -28% | 1 | 1 | 0% | 3,835 | 7,208 | +88% | 0 | 0 | — |
case-07 | fail→pass | 51,550 | 28,782 | -44% | 1 | 1 | 0% | 3,871 | 7,669 | +98% | 0 | 0 | — |
case-19 | fail→pass | 10,332 | 2,204 | -79% | 1 | 1 | 0% | 1,641 | 4,295 | +162% | 0 | 0 | — |
case-01 | fail→pass | 35,275 | 22,693 | -36% | 1 | 1 | 0% | 4,555 | 6,954 | +53% | 0 | 0 | — |
case-02 | fail→pass | 38,309 | 29,847 | -22% | 1 | 1 | 0% | 5,113 | 8,312 | +63% | 0 | 0 | — |
case-08 | fail→pass | 40,720 | 39,325 | -3% | 1 | 1 | 0% | 5,250 | 9,214 | +76% | 0 | 0 | — |
case-09 | fail→pass | 36,745 | 28,463 | -23% | 1 | 1 | 0% | 4,646 | 7,560 | +63% | 0 | 0 | — |
case-10 | pass→pass | 21,400 | 23,782 | +11% | 1 | 1 | 0% | 2,380 | 7,204 | +203% | 0 | 0 | — |
case-11 | fail→pass | 24,000 | 6,918 | -71% | 1 | 1 | 0% | 3,654 | 5,184 | +42% | 0 | 0 | — |
case-12 | pass→pass | 34,686 | 29,151 | -16% | 1 | 1 | 0% | 4,274 | 7,922 | +85% | 0 | 0 | — |
case-13 | fail→pass | 14,241 | 30,193 | +112% | 1 | 1 | 0% | 1,924 | 8,218 | +327% | 0 | 0 | — |
case-14 | fail→pass | 8,745 | 3,706 | -58% | 1 | 1 | 0% | 1,306 | 4,515 | +246% | 0 | 0 | — |
case-15 | fail→fail | 11,902 | 3,049 | -74% | 1 | 1 | 0% | 1,669 | 4,478 | +168% | 0 | 0 | — |
case-16 | pass→pass | 20,465 | 9,748 | -52% | 1 | 1 | 0% | 3,014 | 5,644 | +87% | 0 | 0 | — |
case-17 | pass→pass | 18,433 | 6,636 | -64% | 1 | 1 | 0% | 2,360 | 4,926 | +109% | 0 | 0 | — |
case-18 | pass→pass | 14,704 | 4,454 | -70% | 1 | 1 | 0% | 2,355 | 4,711 | +100% | 0 | 0 | — |
case-20 | pass→pass | 17,370 | 15,103 | -13% | 1 | 1 | 0% | 2,480 | 6,017 | +143% | 0 | 0 | — |
case-21 | pass→pass | 24,755 | 26,495 | +7% | 1 | 1 | 0% | 3,679 | 8,057 | +119% | 0 | 0 | — |
case-22 | pass→pass | 23,601 | 24,409 | +3% | 1 | 1 | 0% | 3,402 | 7,460 | +119% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +59 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.