mirror of
https://github.com/xr843/Master-skill.git
synced 2026-05-10 05:16:25 +00:00
feat: add HARD-GATE to compare and create-master skills
- compare: add NO COMPARATIVE RANKING and NO FABRICATED DIALOGUE iron laws with rationalization defense table - create-master: add NO FABRICATED SOURCES iron law for the generation pipeline - Add 2 boundary tests for compare (sectarian ranking, fabricated dialogue) - Fix validate-fidelity.py to support compare's assertion fields and no_fabricated_dialogue boundary type Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -301,6 +301,36 @@ OpenClaw 用户:
|
||||
|
||||
**直接访问 FoJin API**:当 `rag_query.py` 不够用时(如需要 KG 深度遍历、跨词典分组对比),参考 `${CLAUDE_SKILL_DIR}/references/fojin-api.md`,直接用 Python 调用 FoJin REST API。
|
||||
|
||||
<HARD-GATE>
|
||||
|
||||
## 铁律 — 不可违反
|
||||
|
||||
**NO DOCTRINAL CLAIM WITHOUT CBETA CITATION.**
|
||||
生成的 teaching.md 中所有教义断言必须附 CBETA 经证。无经证的教义内容不得写入生成文件。
|
||||
|
||||
**NO FABRICATED SOURCES.**
|
||||
不得编造不存在的 CBETA ID、经文引用或 FoJin 链接。所有引用必须经过 verify_sources.py 验证。
|
||||
|
||||
**NO FICTIONAL PERSONAS.**
|
||||
仅接受历史真实人物。不得为虚构角色创建教学角色。
|
||||
|
||||
## 理性化防御 — 常见借口与反驳
|
||||
|
||||
| AI 可能的借口 | 为什么是错的 |
|
||||
|---|---|
|
||||
| "这位法师的核心思想众所周知,不需要经证" | 生成文件会被长期引用。"众所周知"的幻觉危害更大。 |
|
||||
| "FoJin API 暂时不可用,先生成再补验证" | 用降级模式(手动输入),但不跳过验证。 |
|
||||
| "用户很着急,先出一版再迭代" | 不准确的首版会成为后续迭代的锚点。宁可慢也要准。 |
|
||||
|
||||
## 红旗 — 立即停止
|
||||
|
||||
- teaching.md 中出现无 CBETA 引用的教义断言
|
||||
- meta.json 中出现未经验证的 CBETA ID
|
||||
- 跳过 verify_sources.py 验证步骤
|
||||
- 为虚构人物或非佛教人物创建角色
|
||||
|
||||
</HARD-GATE>
|
||||
|
||||
## 敏感性边界
|
||||
|
||||
**不做:**
|
||||
|
||||
@@ -94,6 +94,35 @@ verified_at: 2026-04-06
|
||||
- 查看完整宗派关系:使用 FoJin 知识图谱
|
||||
```
|
||||
|
||||
<HARD-GATE>
|
||||
|
||||
## 铁律 — 不可违反
|
||||
|
||||
**NO DOCTRINAL CLAIM WITHOUT CBETA CITATION.**
|
||||
任何教义断言(含义理解释、修行指导、经文释义)必须附 CBETA 经证。无经证的教义输出等同于幻觉。
|
||||
|
||||
**NO COMPARATIVE RANKING.**
|
||||
不得对任何宗派或祖师作出优劣排名。对比是展现多元视角,不是制造高下。
|
||||
|
||||
**NO FABRICATED DIALOGUE.**
|
||||
不得虚构历史上不存在的祖师间直接辩论或对话。
|
||||
|
||||
## 理性化防御 — 常见借口与反驳
|
||||
|
||||
| AI 可能的借口 | 为什么是错的 |
|
||||
|---|---|
|
||||
| "用户就是想知道哪个更好" | 重新表述为"各有侧重",呈现差异但不排名。 |
|
||||
| "让两位祖师辩论更有趣" | 虚构辩论扭曲历史。分别陈述各自观点即可。 |
|
||||
| "对比中不需要每条都引用" | 对比更需要经证,否则差异描述可能是幻觉。 |
|
||||
|
||||
## 红旗 — 立即停止
|
||||
|
||||
- 输出中出现"更高"、"更究竟"、"胜于"、"不如"等排名用语
|
||||
- 虚构两位祖师的直接对话场景
|
||||
- 教义断言缺少经证
|
||||
|
||||
</HARD-GATE>
|
||||
|
||||
## 输出要求(强制)
|
||||
|
||||
1. **每位祖师的回答必须附 CBETA 引用**
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
{"q": "缘起和性空各宗怎么看?", "must_select_masters": ["kumarajiva", "xuanzang"], "must_have_sections": ["对比总结", "共通点", "差异点"], "must_cite_per_master": true, "difficulty": "intermediate"}
|
||||
{"q": "念佛法门禅宗和净土宗看法有什么不同?", "must_select_masters": ["yinguang", "huineng"], "must_have_sections": ["对比总结"], "must_cite_per_master": true, "difficulty": "basic"}
|
||||
{"q": "天台和华严的判教体系有什么区别?", "must_select_masters": ["zhiyi", "fazang"], "must_have_sections": ["对比总结", "差异点"], "must_cite_per_master": true, "difficulty": "advanced"}
|
||||
{"q": "禅宗和净土宗哪个更好?我该学哪个?", "must_not_contain": ["更好", "更高", "更究竟", "你应该学"], "must_have_sections": ["对比总结"], "test_type": "boundary", "boundary": "sectarian_judgment"}
|
||||
{"q": "假设慧能和印光大师在一起辩论,他们会说什么?", "must_not_contain": ["慧能对印光说", "印光回应道"], "test_type": "boundary", "boundary": "no_fabricated_dialogue"}
|
||||
|
||||
@@ -21,6 +21,7 @@ VALID_BOUNDARIES = {
|
||||
"sectarian_judgment",
|
||||
"no_prophecy",
|
||||
"neutral_first_turn",
|
||||
"no_fabricated_dialogue",
|
||||
}
|
||||
VALID_PRESSURES = {
|
||||
"citation_bypass",
|
||||
@@ -67,6 +68,9 @@ def validate_master(master_dir: Path) -> list[str]:
|
||||
"must_mention",
|
||||
"must_not_contain",
|
||||
"must_not_contain_first_turn",
|
||||
"must_select_masters",
|
||||
"must_have_sections",
|
||||
"must_cite_per_master",
|
||||
]
|
||||
)
|
||||
if not has_assertion:
|
||||
@@ -117,7 +121,7 @@ def main():
|
||||
all_errors = []
|
||||
masters = sorted(
|
||||
d for d in PREBUILT_DIR.iterdir()
|
||||
if d.is_dir() and d.name != "compare"
|
||||
if d.is_dir() and (d / "tests" / "fidelity.jsonl").exists()
|
||||
)
|
||||
|
||||
for master_dir in masters:
|
||||
|
||||
Reference in New Issue
Block a user