master-skill 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/ETHICS.md +23 -17
- package/README.md +18 -11
- package/README_EN.md +22 -13
- package/SKILL.md +5 -5
- package/bin/cli.mjs +309 -77
- package/gemini-extension.json +1 -1
- package/hooks/run-hook.cmd +18 -5
- package/hooks/tests/test_run_hook.sh +114 -0
- package/hooks/tests/test_run_hook_cmd.sh +94 -0
- package/masters/.gitkeep +0 -0
- package/package.json +8 -2
- package/prebuilt/compare/SKILL.md +5 -5
- package/prebuilt/master-ajahn-chah/SKILL.md +13 -11
- package/prebuilt/master-ajahn-chah/meta.json +8 -0
- package/prebuilt/master-ajahn-chah/references/voice.md +1 -1
- package/prebuilt/master-atisha/SKILL.md +13 -11
- package/prebuilt/master-atisha/meta.json +8 -0
- package/prebuilt/master-atisha/references/voice.md +1 -1
- package/prebuilt/master-buddhaghosa/SKILL.md +13 -11
- package/prebuilt/master-buddhaghosa/meta.json +8 -0
- package/prebuilt/master-buddhaghosa/references/voice.md +1 -1
- package/prebuilt/master-fazang/SKILL.md +3 -3
- package/prebuilt/master-fazang/meta.json +8 -0
- package/prebuilt/master-huineng/SKILL.md +3 -3
- package/prebuilt/master-huineng/meta.json +8 -0
- package/prebuilt/master-kumarajiva/SKILL.md +3 -3
- package/prebuilt/master-kumarajiva/meta.json +8 -0
- package/prebuilt/master-mahasi-sayadaw/SKILL.md +13 -11
- package/prebuilt/master-mahasi-sayadaw/meta.json +8 -0
- package/prebuilt/master-mahasi-sayadaw/references/voice.md +2 -2
- package/prebuilt/master-milarepa/SKILL.md +13 -11
- package/prebuilt/master-milarepa/meta.json +8 -0
- package/prebuilt/master-milarepa/references/voice.md +1 -1
- package/prebuilt/master-nagarjuna/SKILL.md +3 -3
- package/prebuilt/master-nagarjuna/meta.json +8 -0
- package/prebuilt/master-ouyi/SKILL.md +3 -3
- package/prebuilt/master-ouyi/meta.json +8 -0
- package/prebuilt/master-tsongkhapa/SKILL.md +13 -11
- package/prebuilt/master-tsongkhapa/meta.json +8 -0
- package/prebuilt/master-tsongkhapa/references/voice.md +1 -1
- package/prebuilt/master-xuanzang/SKILL.md +3 -3
- package/prebuilt/master-xuanzang/meta.json +8 -0
- package/prebuilt/master-xuyun/SKILL.md +3 -3
- package/prebuilt/master-xuyun/meta.json +8 -0
- package/prebuilt/master-yinguang/SKILL.md +3 -3
- package/prebuilt/master-yinguang/meta.json +8 -0
- package/prebuilt/master-zhiyi/SKILL.md +3 -3
- package/prebuilt/master-zhiyi/meta.json +8 -0
- package/prompts/correction_handler.md +104 -0
- package/prompts/doctrine_reviewer.md +61 -0
- package/prompts/intake.md +62 -0
- package/prompts/merger.md +62 -0
- package/prompts/rag_instructions.md +54 -0
- package/prompts/sutra_analyzer.md +83 -0
- package/prompts/teaching_builder.md +41 -0
- package/prompts/voice_analyzer.md +92 -0
- package/prompts/voice_builder.md +48 -0
- package/prompts/voice_reviewer.md +66 -0
- package/references/README.md +12 -0
- package/references/ethics-runtime.md +112 -0
- package/references/fojin-api.md +223 -0
- package/references/source-conventions.md +129 -0
- package/references/teaching-modes.md +84 -0
- package/references/traditions.md +72 -0
- package/references/workflow-details.md +361 -0
- package/requirements.txt +6 -0
- package/scripts/select-fidelity-smoke.py +78 -0
- package/scripts/test-fidelity.py +19 -2
- package/scripts/tests/test_select_fidelity_smoke.py +142 -0
- package/scripts/tests/test_validate_citation_contract.py +408 -0
- package/scripts/tests/test_validate_workflow.py +265 -0
- package/scripts/validate-citation-contract.py +193 -0
- package/scripts/verify_citations.py +8 -1
- package/skill-catalog.json +147 -0
- package/tools/cross_reference.py +365 -0
- package/tools/fojin_bridge.py +146 -0
- package/tools/master_builder.py +341 -0
- package/tools/rag_query.py +336 -0
- package/tools/skill_writer.py +230 -0
- package/tools/sutra_collector.py +237 -0
- package/tools/verify_sources.py +512 -0
- package/tools/version_manager.py +88 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# FoJin API 完整参考
|
|
2
|
+
|
|
3
|
+
本文档供 LLM 在 `rag_query.py` 不够用时即兴写 Python 查询使用。
|
|
4
|
+
|
|
5
|
+
基础 URL:`https://fojin.app`
|
|
6
|
+
|
|
7
|
+
## 认证
|
|
8
|
+
|
|
9
|
+
目前公开只读 API 无需认证。
|
|
10
|
+
|
|
11
|
+
## 搜索 API
|
|
12
|
+
|
|
13
|
+
### GET /api/search
|
|
14
|
+
|
|
15
|
+
关键词搜索佛教文本。
|
|
16
|
+
|
|
17
|
+
**参数:**
|
|
18
|
+
- `q` (必填) - 搜索关键词,最长 200 字符
|
|
19
|
+
- `page` (默认 1) - 页码
|
|
20
|
+
- `size` (默认 20,最大 100) - 每页结果数
|
|
21
|
+
- `dynasty` - 朝代筛选(如"唐"、"宋")
|
|
22
|
+
- `category` - 分类筛选
|
|
23
|
+
- `lang` - 语言筛选(lzh=文言汉语, pi=巴利, sa=梵文, bo=藏文, en=英文)
|
|
24
|
+
- `sources` - 数据源筛选,逗号分隔(cbeta, suttacentral, gretil)
|
|
25
|
+
- `sort` - 排序(relevance, title, dynasty)
|
|
26
|
+
|
|
27
|
+
**响应:**
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"total": 42,
|
|
31
|
+
"page": 1,
|
|
32
|
+
"size": 20,
|
|
33
|
+
"results": [
|
|
34
|
+
{
|
|
35
|
+
"id": 1234,
|
|
36
|
+
"cbeta_id": "T01n0001",
|
|
37
|
+
"title_zh": "长阿含经",
|
|
38
|
+
"translator": "佛陀什",
|
|
39
|
+
"dynasty": "后秦",
|
|
40
|
+
"category": "阿含部",
|
|
41
|
+
"source_code": "cbeta",
|
|
42
|
+
"score": 0.95
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### GET /api/search/semantic
|
|
49
|
+
|
|
50
|
+
向量语义搜索(pgvector)。比关键词搜索更能理解语义相似性。
|
|
51
|
+
|
|
52
|
+
**参数:**
|
|
53
|
+
- `q` (必填) - 自然语言问题
|
|
54
|
+
- `size` (默认 10) - 返回结果数
|
|
55
|
+
|
|
56
|
+
### GET /api/search/content
|
|
57
|
+
|
|
58
|
+
全文内容搜索(带高亮)。
|
|
59
|
+
|
|
60
|
+
### GET /api/search/cross-language
|
|
61
|
+
|
|
62
|
+
跨语言搜索(中/英/梵/巴/藏)。
|
|
63
|
+
|
|
64
|
+
## 文本 API
|
|
65
|
+
|
|
66
|
+
### GET /api/texts/{text_id}
|
|
67
|
+
|
|
68
|
+
获取文本元数据。
|
|
69
|
+
|
|
70
|
+
### GET /api/texts/{text_id}/juans/{juan_num}
|
|
71
|
+
|
|
72
|
+
获取某卷的完整内容。
|
|
73
|
+
|
|
74
|
+
**参数:**
|
|
75
|
+
- `lang` - 语言代码
|
|
76
|
+
|
|
77
|
+
**响应:**
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"text_id": 1234,
|
|
81
|
+
"cbeta_id": "T01n0001",
|
|
82
|
+
"title_zh": "长阿含经",
|
|
83
|
+
"juan_num": 1,
|
|
84
|
+
"content": "...",
|
|
85
|
+
"prev_juan": null,
|
|
86
|
+
"next_juan": 2
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### GET /api/texts/{text_id}/juans/{juan_num}/similar
|
|
91
|
+
|
|
92
|
+
通过 pgvector 相似度查找类似段落。**研究级功能**:跨经典找"同义段落"。
|
|
93
|
+
|
|
94
|
+
### GET /api/texts/lookup-cbeta
|
|
95
|
+
|
|
96
|
+
CBETA ID 批量映射到内部 text_id。
|
|
97
|
+
|
|
98
|
+
**参数:**
|
|
99
|
+
- `ids` - 逗号分隔的 CBETA ID 列表
|
|
100
|
+
|
|
101
|
+
### GET /api/texts/{text_id}/juans
|
|
102
|
+
|
|
103
|
+
列出某部文本的所有卷。
|
|
104
|
+
|
|
105
|
+
## 知识图谱 API
|
|
106
|
+
|
|
107
|
+
### GET /api/kg/entities
|
|
108
|
+
|
|
109
|
+
搜索知识图谱实体。
|
|
110
|
+
|
|
111
|
+
**参数:**
|
|
112
|
+
- `q` (必填) - 搜索词
|
|
113
|
+
- `entity_type` - 类型筛选(person, text, school, concept, place, event)
|
|
114
|
+
- `limit` (默认 20) - 最大结果数
|
|
115
|
+
|
|
116
|
+
### GET /api/kg/entities/{entity_id}
|
|
117
|
+
|
|
118
|
+
获取实体详情(含关系列表)。
|
|
119
|
+
|
|
120
|
+
### GET /api/kg/entities/{entity_id}/graph
|
|
121
|
+
|
|
122
|
+
获取实体的关系图谱。**这是利用 23K 师承关系的核心 API。**
|
|
123
|
+
|
|
124
|
+
**参数:**
|
|
125
|
+
- `depth` (默认 2,1-4) - 遍历深度
|
|
126
|
+
- `max_nodes` (默认 150) - 节点上限
|
|
127
|
+
- `predicates` - 关系类型筛选(逗号分隔)
|
|
128
|
+
|
|
129
|
+
**响应:**
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"nodes": [{"id": 456, "name": "玄奘", "entity_type": "person"}],
|
|
133
|
+
"links": [{"source": 456, "target": 1234, "predicate": "translated"}]
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## 词典 API
|
|
138
|
+
|
|
139
|
+
### GET /api/dictionary/search
|
|
140
|
+
|
|
141
|
+
搜索佛学词典。
|
|
142
|
+
|
|
143
|
+
**参数:**
|
|
144
|
+
- `q` (必填) - 搜索词
|
|
145
|
+
- `lang` - 语言筛选
|
|
146
|
+
- `source` - 词典来源筛选
|
|
147
|
+
|
|
148
|
+
### GET /api/dictionary/search/grouped
|
|
149
|
+
|
|
150
|
+
**按词典来源分组返回结果**。利用 FoJin 的 32 部词典,可以看同一术语在不同传承的释义差异。
|
|
151
|
+
|
|
152
|
+
**响应:**
|
|
153
|
+
```json
|
|
154
|
+
{
|
|
155
|
+
"query": "般若",
|
|
156
|
+
"groups": [
|
|
157
|
+
{"source_code": "foguang", "source_name": "佛光大辞典", "entries": [...]},
|
|
158
|
+
{"source_code": "dingfubao", "source_name": "丁福保佛学大辞典", "entries": [...]}
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## 常见用法示例
|
|
164
|
+
|
|
165
|
+
### 场景 1:查找某法师的所有相关经典
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
import requests
|
|
169
|
+
|
|
170
|
+
# 先从 KG 找到实体
|
|
171
|
+
r = requests.get("https://fojin.app/api/kg/entities",
|
|
172
|
+
params={"q": "玄奘", "entity_type": "person"})
|
|
173
|
+
entity_id = r.json()["results"][0]["id"]
|
|
174
|
+
|
|
175
|
+
# 遍历师承/著作关系
|
|
176
|
+
r = requests.get(f"https://fojin.app/api/kg/entities/{entity_id}/graph",
|
|
177
|
+
params={"depth": 2, "predicates": "translated,authored"})
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 场景 2:跨词典对比术语释义
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
r = requests.get("https://fojin.app/api/dictionary/search/grouped",
|
|
184
|
+
params={"q": "空性"})
|
|
185
|
+
for group in r.json()["groups"]:
|
|
186
|
+
print(f"【{group['source_name']}】")
|
|
187
|
+
for entry in group["entries"]:
|
|
188
|
+
print(f" {entry['definition'][:100]}")
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 场景 3:找与某段经文最相似的其他段落
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
# 获取某部经的某卷
|
|
195
|
+
r = requests.get("https://fojin.app/api/texts/43/juans/1/similar")
|
|
196
|
+
for similar in r.json()["similar"]:
|
|
197
|
+
print(f"{similar['title']} 卷{similar['juan_num']}: {similar['score']:.3f}")
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## 错误处理
|
|
201
|
+
|
|
202
|
+
- **200** - 成功
|
|
203
|
+
- **404** - 资源不存在(text_id 无效等)
|
|
204
|
+
- **429** - 速率限制(默认 200 req/min)
|
|
205
|
+
- **500** - 服务器错误
|
|
206
|
+
|
|
207
|
+
连接失败时应优雅降级(见 `tools/rag_query.py` 的 fallback 逻辑)。
|
|
208
|
+
|
|
209
|
+
## 速率限制
|
|
210
|
+
|
|
211
|
+
- 默认:200 req/min
|
|
212
|
+
- 全文内容搜索:30 req/min
|
|
213
|
+
- 聊天 API:登录用户 20/day,匿名 5/day
|
|
214
|
+
|
|
215
|
+
## 何时使用直接 API 而非 rag_query.py
|
|
216
|
+
|
|
217
|
+
`rag_query.py` 只封装了 4 种常用查询(search/semantic/dict/kg)。遇到以下情况时,LLM 应直接写 Python 调 API:
|
|
218
|
+
|
|
219
|
+
- 需要 KG 深度遍历(depth >= 2)
|
|
220
|
+
- 需要跨词典分组对比
|
|
221
|
+
- 需要按多个维度组合筛选
|
|
222
|
+
- 需要相似段落查找
|
|
223
|
+
- 需要跨语言对比
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# 引用规则与来源约定
|
|
2
|
+
|
|
3
|
+
> **何时读这个**:用户给出 T- / X- / SC- / Toh- / W- 编号需验证或解析时;create-master 主流程 Step 2 / Step 5 验证 CBETA / BDRC / SuttaCentral / PTS 来源声明时;写入 `teaching.md` 之前需要确认引用格式时。
|
|
4
|
+
|
|
5
|
+
## 引用编号系统总览
|
|
6
|
+
|
|
7
|
+
| 系统 | 适用 | 编号格式 | 示例 |
|
|
8
|
+
|------|------|---------|------|
|
|
9
|
+
| **CBETA** | 汉文藏经 | `<藏别><册号>n<经号>` | `T08n0235`(金刚经)/ `X62n1182`(印光文钞) |
|
|
10
|
+
| **BDRC** | 藏文文献 | `BDRC:W<编号>`;具体版本可用 `BDRC:MW<编号>` | `BDRC:W22084`(作品 ID) |
|
|
11
|
+
| **SuttaCentral** | 巴利经藏 | `MN 10` / `SC:MN 10`,或语料库声明 `SuttaCentral` | `MN 10`(中部第 10 经《念处经》) |
|
|
12
|
+
| **Toh.** | 藏文大藏经德格版 | `Toh <序号>` | `Toh 4465`(阿底峡《菩提道灯论》) |
|
|
13
|
+
| **PTS** | 巴利圣典协会版本 | `PTS:<作品简称>`;册页 / 章节单列为 locator | `PTS:Vism`,locator `I.85` |
|
|
14
|
+
| **compiled teachings** | 经授权或合规收录的编纂开示 | `<权利人或语料名>:<作品 ID>` | `AjahnChah:FoodForTheHeart` |
|
|
15
|
+
|
|
16
|
+
## 来源中立 Citation Contract
|
|
17
|
+
|
|
18
|
+
CBETA、BDRC / Toh、PTS / SuttaCentral 与 compiled teachings 四类来源家族**同等适用 citation contract**,没有任何一种来源族可充当其他传统的全局替代。运行时必须:
|
|
19
|
+
|
|
20
|
+
1. 将引用解析到所选 persona 的 `meta.json.sources[]`
|
|
21
|
+
2. 确认来源类型列于 `citation_contract.allowed_source_types`
|
|
22
|
+
3. 仅在 `citation_contract.live_retrieval_allowed` 为 `true` 时执行实时检索
|
|
23
|
+
|
|
24
|
+
四类来源家族地位相同,但分别受自身引述与版权规则约束:CBETA 须保留底本文字与定位;BDRC / Toh 的元数据不等于现代译文授权;PTS / SuttaCentral 须遵守所用版本与站点许可;compiled teachings 按版权 Tier 与授权范围控制逐字引述,必要时仅作摘要。
|
|
25
|
+
|
|
26
|
+
## CBETA 引用规范(汉传必备)
|
|
27
|
+
|
|
28
|
+
### 编号字段构成
|
|
29
|
+
|
|
30
|
+
声明来源 ID `T08n0235` =
|
|
31
|
+
- `T`:大正藏
|
|
32
|
+
- `08`:册号
|
|
33
|
+
- `n`:经号分隔符
|
|
34
|
+
- `0235`:经号
|
|
35
|
+
|
|
36
|
+
卷、页、栏、行属于 locator,不并入 `meta.json.sources[].id`;例如 `卷10,0748b15-c03`。
|
|
37
|
+
|
|
38
|
+
### 引用要求
|
|
39
|
+
|
|
40
|
+
- **教义断言必附经证**(HARD-GATE):`teaching.md` 中所有教义命题写明 CBETA 编号 + 卷栏行;若粒度仅到经号,至少补出处 URL
|
|
41
|
+
- **URL 规范**:仅在实时结果返回真实 `text_id` 时使用 `https://fojin.app/texts/<text_id>`;否则使用 `https://cbetaonline.dila.edu.tw/zh/<CBETA_ID>` 或离线声明来源
|
|
42
|
+
- **繁简体**:CBETA 底本一律繁体。生成内容时如用户语言偏好简体,正文用简体但**引用原文段必保繁体**并标注"〔原文繁体〕"
|
|
43
|
+
- **跨藏经对照**:T / X / K 三藏可能有同经异本;优先 T,X 仅在 T 缺漏或差异有研究价值时引;同时引用要标注"参 X<编号>异文"
|
|
44
|
+
|
|
45
|
+
### 常见易错点
|
|
46
|
+
|
|
47
|
+
- 引《菩提道次第广论》→ **不是 CBETA**,应按所选 persona 声明的 Toh / BDRC 来源核验;现代汉译本仅作辅助并遵守其版权
|
|
48
|
+
- 引《六祖坛经》→ 多版本(敦煌本 / 宗宝本 / 德异本),生成时优先 `T48n2008`(宗宝本,常用)并注明所据本
|
|
49
|
+
- 引《清净道论》→ 是 PTS Vism / SuttaCentral,**不在 CBETA**;应按所选 persona 声明的巴利来源核验,现代汉译本仅作辅助并遵守其版权
|
|
50
|
+
|
|
51
|
+
## BDRC 引用规范(藏传必备)
|
|
52
|
+
|
|
53
|
+
### W 号与 MW 号
|
|
54
|
+
|
|
55
|
+
- `BDRC:W<编号>` = 作品(abstract work)
|
|
56
|
+
- `BDRC:MW<编号>` = 该作品的具体版本 / 木刻 / 出版(manifestation work)
|
|
57
|
+
|
|
58
|
+
引用建议:教义命题层面用 `W` 号;如需指明具体校刊本可附 `MW`。
|
|
59
|
+
|
|
60
|
+
### URL 规范
|
|
61
|
+
|
|
62
|
+
- BDRC 公开元数据 → `https://library.bdrc.io/show/bdr:W<编号>`
|
|
63
|
+
- 配 Toh 编号时同列(如 `Toh 4465 / BDRC:W22087`)
|
|
64
|
+
- 现代藏译英 / 汉译版本(如 Quintman 译《米拉日巴传》)属于权利期内,**不可大段引用**,仅作为研究指引
|
|
65
|
+
|
|
66
|
+
### 与汉地引用的衔接
|
|
67
|
+
|
|
68
|
+
藏传祖师教法引用:
|
|
69
|
+
1. 优先藏文原典 W 号 + Toh 编号
|
|
70
|
+
2. 若仅有现代研究文献,标注为"参考文献"而非"经证",不进入 teaching.md 教义命题的支撑链
|
|
71
|
+
3. 涉及汉译本(如《菩提道次第广论》汉译版),可引为辅助说明但需在脚注注明译者与出版方
|
|
72
|
+
|
|
73
|
+
## SuttaCentral / PTS 引用规范(南传必备)
|
|
74
|
+
|
|
75
|
+
### 巴利经藏五尼柯耶代号
|
|
76
|
+
|
|
77
|
+
| Nikāya | 中文 | 代号 |
|
|
78
|
+
|--------|------|------|
|
|
79
|
+
| Dīgha Nikāya | 长部 | DN |
|
|
80
|
+
| Majjhima Nikāya | 中部 | MN |
|
|
81
|
+
| Saṃyutta Nikāya | 相应部 | SN |
|
|
82
|
+
| Aṅguttara Nikāya | 增支部 | AN |
|
|
83
|
+
| Khuddaka Nikāya | 小部 | KN(含 Dhp / Sn / Ud / It 等子集) |
|
|
84
|
+
|
|
85
|
+
### 引用格式
|
|
86
|
+
|
|
87
|
+
- 经文声明 ID:`SC:MN 10` 或 `MN 10`;locator 可另列经内章节
|
|
88
|
+
- 论藏 / 注释声明 ID:如 `PTS:Vism`;册页 + 章节号另列 locator `I.85`
|
|
89
|
+
- URL:`https://suttacentral.net/mn10`(小写)
|
|
90
|
+
|
|
91
|
+
### 巴利 vs 汉译《阿含》对照
|
|
92
|
+
|
|
93
|
+
- 引南传上座部教法 → 必引 SC / PTS,**不能仅引《杂阿含》《中阿含》替代**
|
|
94
|
+
- 若用户问"上座部与阿含异同",可同时列 SC + T2 / T26 双引并说明文本史
|
|
95
|
+
- 觉音注释(Atthakathā)有 PTS 标准编号,引用时附章节号
|
|
96
|
+
|
|
97
|
+
## 引用验证流程(运行时)
|
|
98
|
+
|
|
99
|
+
create-master 主流程在 Step 2 与 Step 5 调用 `verify_sources.py`:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Step 2 采集后初验
|
|
103
|
+
python3 ${CLAUDE_SKILL_DIR}/tools/verify_sources.py --check-links collected_data.json
|
|
104
|
+
|
|
105
|
+
# Step 5 写入前终验
|
|
106
|
+
python3 ${CLAUDE_SKILL_DIR}/tools/verify_sources.py --final-check masters/master-{slug}/
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 两个离线模式的真实边界
|
|
110
|
+
|
|
111
|
+
1. `--check-links collected_data.json` 读取采集 manifest,验证 `sources[]` 非空、来源家族受支持、各家族 ID 格式、来源不重复、可选 `citations[]` 均属于已声明来源,并确认 `citation_contract` 等于从 `sources[].type` 自动派生的合同。
|
|
112
|
+
2. `--final-check masters/master-{slug}/` 先确认 persona 目录与 `SKILL.md` name 都使用 `master-{slug}`,并包含 `teaching.md`、`voice.md`、`meta.json`,再对 `meta.json` 执行同一来源与合同校验。
|
|
113
|
+
3. 两个模式都不联网,也不解析 `teaching.md` 中的自由文本引文,因此成功只表示 manifest / meta 的结构、家族 ID 和声明归属一致;不表示每个正文断言已经逐条核验,也不保证外部站点 HTTP 可达。
|
|
114
|
+
|
|
115
|
+
### 外部可达性与旧版 CBETA 审计
|
|
116
|
+
|
|
117
|
+
外部链接可达性需要独立的人工或可选在线核验。`verify_sources.py --fix` 保留旧版在线 CBETA URL
|
|
118
|
+
审计与替换流程,只覆盖仓库中的 CBETA / FoJin 链接;它不验证 BDRC、Toh、SuttaCentral、PTS 或
|
|
119
|
+
compiled teachings,也不能代替上述声明归属校验。不得把 `--check-links` 或 `--final-check` 的成功
|
|
120
|
+
描述为“所有链接已检查 200”或“题名 / 作者已在线核对”。
|
|
121
|
+
|
|
122
|
+
## 编造引用 = HARD-GATE 红旗
|
|
123
|
+
|
|
124
|
+
- 编造不存在或未由 persona 声明的 CBETA / BDRC / Toh / PTS / SC / compiled-teaching ID
|
|
125
|
+
- "众所周知该法师持此见,故不引"(HARD-GATE 防御表禁止)
|
|
126
|
+
- 用现代译本充当经证(仅作辅助参考,不进入教义断言支撑链)
|
|
127
|
+
- 引述时省略卷栏行致使无法定位(粒度低于"经"级别一律视为不充分)
|
|
128
|
+
|
|
129
|
+
> 完整 HARD-GATE 规则与理性化防御 → `references/ethics-runtime.md`。
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# 教学模式选择决策树
|
|
2
|
+
|
|
3
|
+
> **何时读这个**:用户犹豫该用 `/compare-masters` / `/master-debate` / `/master-curriculum` 哪个时;用户问"哪些祖师对这个问题怎么看"但意图不明时。
|
|
4
|
+
|
|
5
|
+
## 三模式速查
|
|
6
|
+
|
|
7
|
+
| 模式 | 维度 | 轮次 | 输出 | 适合场景 |
|
|
8
|
+
|------|------|------|------|---------|
|
|
9
|
+
| `/compare-masters` | 横向 / 并列 | 单轮 | 多位祖师对同一问题的并列答案 | 想看不同传统 / 宗派的视角差异,**不需要互相反驳** |
|
|
10
|
+
| `/master-debate` | 横向 / 对立 | 4 轮 | 立论 → 反驳 → 回应 → 综合 + 教内余争 | 想看争议议题的**深入分歧**,关心"谁的见地更究竟" |
|
|
11
|
+
| `/master-curriculum` | 纵向 / 时序 | 单次规划 | 「根基 → 深入 → 精研 → 盲点」学修路径 | **不是比较,是请求学习计划** |
|
|
12
|
+
|
|
13
|
+
## 决策树(用户表达 → 模式)
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
用户问"X 问题"时:
|
|
17
|
+
│
|
|
18
|
+
├─ 包含"学习计划 / 路径 / 入门 / 先学什么 / 下一步读什么 / curriculum"
|
|
19
|
+
│ → /master-curriculum
|
|
20
|
+
│
|
|
21
|
+
├─ 包含"辩论 / 各执一词 / 谁更对 / 究竟 / 高下 / 争议 / debate"
|
|
22
|
+
│ → /master-debate
|
|
23
|
+
│
|
|
24
|
+
├─ 包含"对比 / 比较 / 不同视角 / 各派怎么看 / X vs Y / compare"
|
|
25
|
+
│ │
|
|
26
|
+
│ ├─ 议题本身有传统对立性(禅净 / 空有 / 顿渐 / 应成 vs 顿悟)
|
|
27
|
+
│ │ │
|
|
28
|
+
│ │ ├─ 用户语气中性 / 想看多角度 → /compare-masters
|
|
29
|
+
│ │ └─ 用户想看深入分歧 / 谁更对 → /master-debate
|
|
30
|
+
│ │
|
|
31
|
+
│ └─ 议题中性(如"慈悲 / 业 / 缘起")
|
|
32
|
+
│ → /compare-masters
|
|
33
|
+
│
|
|
34
|
+
└─ 没有比较 / 辩论 / 学习计划意图,只是问"X 怎么修"
|
|
35
|
+
→ 单 master skill(按传承推荐:禅 → huineng / 净土 → yinguang / 中观 → kumarajiva / 道次第 → atisha 或 tsongkhapa / 内观 → mahasi-sayadaw 等)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 关键关键词速查
|
|
39
|
+
|
|
40
|
+
### `/compare-masters` 触发关键词
|
|
41
|
+
|
|
42
|
+
- 对比 / 比较 / compare / 不同视角 / 各派怎么看 / 各位祖师怎么看 / 多个角度
|
|
43
|
+
- 显式举出 2-N 位祖师并问"他们怎么说" → 平铺单轮答
|
|
44
|
+
|
|
45
|
+
### `/master-debate` 触发关键词
|
|
46
|
+
|
|
47
|
+
- 辩论 / 各执一词 / 谁更对 / 究竟 / 高下 / 争议 / debate / 顿渐之争 / 性相之辩 / 空有之争 / 禅净之争
|
|
48
|
+
- 问"X 派和 Y 派的核心分歧" → 4 轮对辩
|
|
49
|
+
- 关键:用户想看**对抗式反复推敲**,不是平铺
|
|
50
|
+
|
|
51
|
+
### `/master-curriculum` 触发关键词
|
|
52
|
+
|
|
53
|
+
- 学修次第 / 学习计划 / 入门 / 先学什么 / 从哪开始 / 路径推荐 / curriculum / roadmap / 怎么修
|
|
54
|
+
- 问"禅宗从哪开始学" → 时序路径,不是比较
|
|
55
|
+
|
|
56
|
+
## 示例输入分类
|
|
57
|
+
|
|
58
|
+
| 用户原话 | 模式 | 理由 |
|
|
59
|
+
|---------|------|------|
|
|
60
|
+
| "禅宗和净土宗怎么比较" | `/compare-masters` | 平铺对比,无对立请求 |
|
|
61
|
+
| "禅净之争究竟谁更对" | `/master-debate` | 显式对立 + 问"谁更对" |
|
|
62
|
+
| "我想学禅宗从哪开始" | `/master-curriculum` | 个人学习路径 |
|
|
63
|
+
| "天台和华严的圆教有什么不同" | `/compare-masters` | 对比但无对抗语气 |
|
|
64
|
+
| "性相之辩玄奘和鸠摩罗什会怎么辩" | `/master-debate` | 议题对立 + 显式辩论框架 |
|
|
65
|
+
| "刚开始学藏传,应该读什么" | `/master-curriculum` | 入门路径请求 |
|
|
66
|
+
| "应成中观和顿悟禅的分判" | `/master-debate` | 涉及"分判" → 深入分歧 |
|
|
67
|
+
| "印光大师和虚云老和尚的修法异同" | `/compare-masters` | "异同" → 平铺,非对辩 |
|
|
68
|
+
| "中观、唯识、华严的判教高下" | `/master-debate` | "高下" → 对辩 |
|
|
69
|
+
| "想综合学习汉传佛教,应该按什么顺序" | `/master-curriculum` | "按什么顺序" → 时序 |
|
|
70
|
+
|
|
71
|
+
## 选错模式时的兜底
|
|
72
|
+
|
|
73
|
+
用户在某模式中明显错位时(如 `/compare-masters` 输入"谁更对"),优雅建议切换:
|
|
74
|
+
|
|
75
|
+
> 「您似乎想看深入的对辩交锋,建议改用 `/master-debate`,4 轮立论-反驳-回应-综合更适合您的问题。是否切换?」
|
|
76
|
+
|
|
77
|
+
## 单 master skill vs 模式选择
|
|
78
|
+
|
|
79
|
+
如果用户的问题**没有任何比较 / 辩论 / 计划意图**,只是想知道"X 议题怎么修"或"X 祖师怎么说":
|
|
80
|
+
|
|
81
|
+
- 单一传统议题 → 直接用对应 master skill(如 `/master-yinguang` 答念佛、`/master-huineng` 答见性)
|
|
82
|
+
- 不知道哪位祖师 → 按 `references/traditions.md` §"选择传统的常见判断" 表推荐入门
|
|
83
|
+
|
|
84
|
+
> 模式 skill(compare / debate / curriculum)成本更高(需聚合多 master 数据)。如非必要,先用单 master skill。
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# 三大传统总论
|
|
2
|
+
|
|
3
|
+
> **何时读这个**:用户问汉传/藏传/南传的差异、宗派定位、某祖师属于哪派、想知道选择哪个传统入门时。
|
|
4
|
+
> 本文档供 create-master 主流程在 Step 1 信息录入识别传承时参考,也供回答用户的传统对比问题时调用。
|
|
5
|
+
|
|
6
|
+
## 三大传统 — 一句话定位
|
|
7
|
+
|
|
8
|
+
| 传统 | 时空 | 核心特征 |
|
|
9
|
+
|------|------|---------|
|
|
10
|
+
| **汉传** | 公元 1 世纪起经丝路传入中国,再传朝鲜 / 日本 / 越南 | 大乘为主;汉译三藏 + 本土宗派创立(天台/华严/禅/净/律/唯识/三论/密);判教传统发达 |
|
|
11
|
+
| **藏传** | 7-8 世纪经印度大师入藏(莲花生 / 阿底峡),后弘期定型 | 大乘 + 金刚乘并行;显密双修;活佛转世制度;格鲁/宁玛/萨迦/噶举四大派 |
|
|
12
|
+
| **南传** | 公元前 3 世纪阿育王派传至斯里兰卡,后传缅甸/泰国/柬埔寨/老挝 | 上座部独传;以巴利三藏为根本;觉音《清净道论》为论藏统宗;强调出家僧团与内观禅修 |
|
|
13
|
+
|
|
14
|
+
## 汉传八宗(预置法师对应)
|
|
15
|
+
|
|
16
|
+
| 宗派 | 核心教义 | 代表法师 | 主依经典 |
|
|
17
|
+
|------|---------|---------|---------|
|
|
18
|
+
| 三论宗 / 中观 | 缘起性空、中道八不 | 鸠摩罗什 (`/master-kumarajiva`) | 《中论》《百论》《十二门论》《大智度论》 |
|
|
19
|
+
| 唯识 / 法相 | 三性三无性、八识、转识成智 | 玄奘 (`/master-xuanzang`) | 《成唯识论》《瑜伽师地论》《摄大乘论》 |
|
|
20
|
+
| 天台 | 一念三千、三谛圆融、五时八教、止观双运 | 智顗 (`/master-zhiyi`) | 《法华经》《摩诃止观》《法华玄义》 |
|
|
21
|
+
| 华严 | 法界缘起、四法界、十玄六相、一即一切 | 法藏 (`/master-fazang`) | 《华严经》《金师子章》《华严五教章》 |
|
|
22
|
+
| 禅宗 | 直指人心、见性成佛、教外别传 | 慧能 (`/master-huineng`)、虚云 (`/master-xuyun`) | 《六祖坛经》《金刚经》《楞伽经》 |
|
|
23
|
+
| 净土 | 信愿持名、带业往生 | 印光 (`/master-yinguang`) | 《无量寿经》《观经》《阿弥陀经》 |
|
|
24
|
+
| 跨宗派(教宗天台·行归净土) | 性相融会、禅教律净一体 | 蕅益 (`/master-ouyi`) | 《弥陀要解》《教观纲宗》《灵峰宗论》 |
|
|
25
|
+
|
|
26
|
+
> **律宗 / 真言宗 / 三阶教等暂无预置法师**。如用户问相关宗派祖师(弘一 / 道宣 / 空海 / 信行等),按 create-master 主流程检查 ETHICS Tier 后生成。
|
|
27
|
+
|
|
28
|
+
## 藏传四派(预置法师对应)
|
|
29
|
+
|
|
30
|
+
| 派别 | 形成期 | 核心传承 | 代表法师 |
|
|
31
|
+
|------|--------|---------|---------|
|
|
32
|
+
| 噶当派 | 11 世纪 | 阿底峡《菩提道灯论》、三士道、依止善知识 | 阿底峡 (`/master-atisha`) |
|
|
33
|
+
| 噶举派 | 11-12 世纪 | 大手印、那洛六法、口耳传承 | 米拉日巴 (`/master-milarepa`) |
|
|
34
|
+
| 萨迦派 | 11 世纪 | 道果教授、显密融贯 | (暂无预置) |
|
|
35
|
+
| 格鲁派 | 14-15 世纪 | 宗喀巴《菩提道次第广论》、三主要道、应成中观 | 宗喀巴 (`/master-tsongkhapa`) |
|
|
36
|
+
| 宁玛派 | 7-8 世纪奠基,后弘期成形 | 大圆满、伏藏 | (暂无预置) |
|
|
37
|
+
|
|
38
|
+
> 格鲁派被视为噶当派的复兴形态,故"噶当→格鲁"为道次第传承主线。
|
|
39
|
+
|
|
40
|
+
## 南传上座部主要禅法传承(预置法师对应)
|
|
41
|
+
|
|
42
|
+
| 流派 | 起源 | 核心特征 | 代表法师 |
|
|
43
|
+
|------|------|---------|---------|
|
|
44
|
+
| 大寺派论师传统 (Mahāvihāra) | 5 世纪斯里兰卡 | 《清净道论》七清净十六观智体系 | 觉音 (`/master-buddhaghosa`) |
|
|
45
|
+
| 缅甸内观(Mahasi 系) | 20 世纪缅甸 | 标记法、腹部起伏、密集禅修 | 马哈希尊者 (`/master-mahasi-sayadaw`) |
|
|
46
|
+
| 泰国森林禅林派 | 20 世纪泰国 | 头陀苦行、自然观察、巴蓬寺传承 | 阿姜查 (`/master-ajahn-chah`) |
|
|
47
|
+
|
|
48
|
+
> 缅甸系还有列迪 (Ledi Sayadaw) → 乌巴庆 (U Ba Khin) → 葛印卡 (S.N. Goenka) 一脉;泰国森林系还有阿姜曼 (Ajahn Mun) → 阿姜放 (Ajahn Fuang) 等。目前预置覆盖大寺派论藏 + 缅泰两大现代禅修支脉。
|
|
49
|
+
|
|
50
|
+
## 选择传统的常见判断(用户咨询入门时)
|
|
51
|
+
|
|
52
|
+
| 用户倾向 | 推荐传统 / 入门法师 |
|
|
53
|
+
|---------|-----------------|
|
|
54
|
+
| 想读经典原文做学理研究 | 汉传(鸠摩罗什译笈 / 玄奘译笈)+ 南传(觉音《清净道论》) |
|
|
55
|
+
| 想要明确禅修指引 | 南传(马哈希标记法 / 阿姜查自然觉知) |
|
|
56
|
+
| 想要密法 / 仪轨传承 | 藏传(先三士道入门:阿底峡 / 宗喀巴) |
|
|
57
|
+
| 想要顿悟见性的禅风 | 汉传禅宗(慧能 / 虚云) |
|
|
58
|
+
| 想要简明易行的解脱道 | 汉传净土(印光) |
|
|
59
|
+
| 教理与实修结合 | 汉传天台(智顗)/ 藏传格鲁(宗喀巴) |
|
|
60
|
+
|
|
61
|
+
> **不评宗派优劣**。以上为基于用户表达需求的引导建议,不构成对传统本身的判断。涉及具体选择,应建议用户亲近善知识。
|
|
62
|
+
|
|
63
|
+
## 跨传统对比的常见议题(路由到 `/master-debate`)
|
|
64
|
+
|
|
65
|
+
- 空有 / 中观 vs 唯识 → 鸠摩罗什 vs 玄奘
|
|
66
|
+
- 顿渐 / 顿悟 vs 次第 → 慧能 vs 智顗 / 宗喀巴
|
|
67
|
+
- 禅净 / 念佛 vs 参禅 → 慧能 vs 印光
|
|
68
|
+
- 戒律行持 vs 直观内观 → 阿姜查 vs 马哈希
|
|
69
|
+
- 三士道 vs 自性见 → 阿底峡 vs 慧能
|
|
70
|
+
- 应成 vs 顿悟 → 宗喀巴 vs 慧能
|
|
71
|
+
|
|
72
|
+
更多对立配对 → `prebuilt/master-debate/SKILL.md`。
|