master-skill 0.10.1 → 0.12.0

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.
Files changed (77) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.cursor-plugin/plugin.json +1 -1
  4. package/GEMINI.md +1 -1
  5. package/README.md +84 -336
  6. package/README_EN.md +108 -321
  7. package/bin/cli.mjs +249 -9
  8. package/gemini-extension.json +1 -1
  9. package/hooks/session-start +68 -74
  10. package/hooks/session_start.py +152 -0
  11. package/package.json +6 -2
  12. package/prebuilt/{compare → compare-masters}/SKILL.md +21 -2
  13. package/prebuilt/master-ajahn-chah/meta.json +6 -0
  14. package/prebuilt/master-ajahn-chah/tests/fidelity.jsonl +6 -6
  15. package/prebuilt/master-atisha/tests/fidelity.jsonl +4 -4
  16. package/prebuilt/master-curriculum/SKILL.md +1 -1
  17. package/prebuilt/master-curriculum/references/tiantai.md +1 -1
  18. package/prebuilt/master-debate/SKILL.md +15 -3
  19. package/prebuilt/master-fazang/tests/fidelity.jsonl +2 -2
  20. package/prebuilt/master-help/SKILL.md +94 -0
  21. package/prebuilt/master-help/tests/fidelity.jsonl +10 -0
  22. package/prebuilt/master-huineng/tests/fidelity.jsonl +4 -4
  23. package/prebuilt/master-kumarajiva/meta.json +14 -3
  24. package/prebuilt/master-kumarajiva/tests/fidelity.jsonl +3 -3
  25. package/prebuilt/master-mahasi-sayadaw/tests/fidelity.jsonl +4 -4
  26. package/prebuilt/master-milarepa/tests/fidelity.jsonl +3 -3
  27. package/prebuilt/master-nagarjuna/meta.json +19 -4
  28. package/prebuilt/master-nagarjuna/tests/fidelity.jsonl +6 -6
  29. package/prebuilt/master-ouyi/meta.json +5 -0
  30. package/prebuilt/master-ouyi/references/teaching.md +3 -3
  31. package/prebuilt/master-ouyi/tests/fidelity.jsonl +3 -3
  32. package/prebuilt/master-tsongkhapa/meta.json +32 -5
  33. package/prebuilt/master-tsongkhapa/tests/fidelity.jsonl +2 -2
  34. package/prebuilt/master-xuanzang/tests/fidelity.jsonl +3 -3
  35. package/prebuilt/master-xuyun/tests/fidelity.jsonl +6 -6
  36. package/prebuilt/master-zhiyi/meta.json +2 -2
  37. package/prebuilt/master-zhiyi/tests/fidelity.jsonl +2 -2
  38. package/references/teaching-modes.md +8 -1
  39. package/routing.json +209 -0
  40. package/scripts/check-audit-ignores.py +105 -0
  41. package/scripts/check-eval-sdk-surface.py +142 -0
  42. package/scripts/check-gate-liveness.py +421 -0
  43. package/scripts/reaudit-report.py +163 -0
  44. package/scripts/regrade-report.py +157 -0
  45. package/scripts/smoke-eval-sdk.py +174 -0
  46. package/scripts/test-fidelity.py +992 -89
  47. package/scripts/validate-citation-references.py +150 -0
  48. package/scripts/validate-citation-templates.py +176 -0
  49. package/scripts/validate-fidelity.py +6 -1
  50. package/scripts/validate-fixture-terms.py +127 -0
  51. package/scripts/validate-routing.py +254 -0
  52. package/scripts/validate.py +63 -36
  53. package/scripts/verify-adjudication.py +316 -0
  54. package/scripts/verify_citations.py +739 -39
  55. package/skill-catalog.json +83 -20
  56. package/tools/cross_reference.py +44 -10
  57. package/tools/fojin-known-absent.json +14 -0
  58. package/tools/fojin_bridge.py +138 -8
  59. package/tools/rag_query.py +45 -2
  60. package/tools/skill_writer.py +50 -7
  61. package/tools/verify_sources.py +240 -15
  62. package/hooks/tests/test_run_hook.sh +0 -114
  63. package/hooks/tests/test_run_hook_cmd.sh +0 -94
  64. package/hooks/tests/test_session_start.sh +0 -149
  65. package/scripts/tests/test_check_manifest_versions.py +0 -217
  66. package/scripts/tests/test_debate_protocol.py +0 -159
  67. package/scripts/tests/test_injection_hardening.py +0 -174
  68. package/scripts/tests/test_select_fidelity_smoke.py +0 -142
  69. package/scripts/tests/test_validate_citation_contract.py +0 -408
  70. package/scripts/tests/test_validate_cross_critique.py +0 -149
  71. package/scripts/tests/test_validate_curriculum_sources.py +0 -144
  72. package/scripts/tests/test_validate_fidelity.py +0 -59
  73. package/scripts/tests/test_validate_lore_triggers_content.py +0 -372
  74. package/scripts/tests/test_validate_persona_fidelity.py +0 -317
  75. package/scripts/tests/test_validate_promptfoo_configs.py +0 -386
  76. package/scripts/tests/test_validate_workflow.py +0 -265
  77. /package/prebuilt/{compare → compare-masters}/tests/fidelity.jsonl +0 -0
package/README_EN.md CHANGED
@@ -17,6 +17,10 @@
17
17
  <img src="https://img.shields.io/badge/AgentSkills-Standard-orange.svg" alt="AgentSkills Standard">
18
18
  </p>
19
19
 
20
+ <p align="center">
21
+ <sub><em>Secured by SHA-pinned GitHub Actions · npm provenance · OIDC Trusted Publishing · CodeQL · cargo-audit · pip-audit — see <a href="SECURITY.md">SECURITY.md</a>.</em></sub>
22
+ </p>
23
+
20
24
  <p align="center">
21
25
  Opening the 100-fascicle Yogācārabhūmi-śāstra — not knowing where to begin?<br>
22
26
  Want to study Chan, but unsure which patriarch to approach?<br>
@@ -55,8 +59,8 @@ On the AI Q&A page, open the **"法师模式"** (Master Mode) dropdown in the bo
55
59
 
56
60
  - No install, no signup
57
61
  - Three teaching modes available: `/compare-masters` (side-by-side comparison), `/master-debate` (4-round dialectic), `/master-curriculum` (time-sequenced study path) — all cross-tradition
58
- - Live citation retrieval backed by FoJin's 503 sources and 678K+ semantic embeddings
59
- - Every answer carries an authoritative source ID (CBETA for 汉传, BDRC for 藏传, SuttaCentral for 南传)
62
+ - Live citation retrieval backed by FoJin's 10K+ texts and 678K+ semantic embeddings
63
+ - Answers cite sources in each master's declared format: mostly CBETA IDs for 汉传, Toh / BDRC numbers for 藏传, PTS / SuttaCentral references for 南传 (Theravāda and some Tibetan sources have no per-passage ID, and the citation contract says so)
60
64
 
61
65
  **Not sure which master to ask?** Start here:
62
66
 
@@ -81,50 +85,56 @@ On the AI Q&A page, open the **"法师模式"** (Master Mode) dropdown in the bo
81
85
 
82
86
  ## What It Looks Like
83
87
 
84
- A real `/master-huineng` (Master Huineng, the Sixth Patriarch of Chan) exchange. Note that **every doctrinal claim carries a CBETA citation**, and the voice matches the master himself direct, plain-spoken, fond of metaphor:
88
+ A real `/master-huineng` answer, **reproduced unedited** (line-wrapped for display) from the 2026-08-31 full run — model `deepseek-v4-flash`, commit [`06b8142`](https://github.com/xr843/Master-skill/commit/06b814204082b3e4738185cf3eefa44ed149f9f0), index 1 of `master-huineng` in the [stored report](eval/reports/0.11.0-06b8142-deepseek.json). It graded PASS, and all five citations carry a CBETA ID that the repository's offline citation audit resolved to Huineng's declared sources (T48n2008 *Platform Sutra*, T08n0235 *Diamond Sutra*). Masters answer in Chinese; below is our English translation, with every citation kept exactly as the model wrote it:
85
89
 
86
90
  ```text
87
- You: I want to practice Chan, but I can't sit still and my mind is too busy.
91
+ You: What is the difference between sudden awakening and gradual cultivation?
88
92
 
89
93
  Master Huineng:
90
- You say you "can't sit still" — you have mistaken the posture for Chan.
91
- You say your mind is "too busy" you have made your thoughts the enemy.
92
- Neither of these is Chan.
93
-
94
- What is "sitting in meditation"? When, amid all conditions good and bad,
95
- no thought arises in the mind that is "sitting". When you inwardly see
96
- the self-nature unmoved that is "Chan". Sitting is not a matter of the
97
- legs; it is the mind not grasping at objects.
98
- 【Platform Sutra · Sitting Meditation】→ https://fojin.app/texts/58
99
-
100
- Do not fear arising thoughts. "Amid all objects the mind is unstained —
101
- this is called no-thought." It does not mean having no thoughts; it means
102
- a thought arises yet you do not chase it, do not let it stick. Like a
103
- cloud crossing the sky the sky has never moved.
104
- 【Platform Sutra · Concentration and Wisdom】→ https://fojin.app/texts/58
94
+
95
+ Tell me: are sudden and gradual really two different teachings?
96
+
97
+ The Dharma itself is neither sudden nor gradual; people differ in
98
+ sharpness and dullness. The sutra says, "Unawakened, a buddha is a
99
+ sentient being; in one moment of awakening, a sentient being is a
100
+ buddha"delusion and awakening lie in a single thought, hence the name
101
+ "sudden". It also says, "The previous thought deluded is an ordinary
102
+ person; the next thought awakened is a buddha" — turning delusion into
103
+ awakening needs nothing sought outside
104
+ 【《六祖坛经·般若品》,T48n2008】→ https://fojin.app/texts/58
105
+
106
+ Shenxiu of the Northern School wrote the verse: "The body is the bodhi
107
+ tree, the mind a bright mirror stand; wipe it diligently at all times,
108
+ and let no dust alight." an expedient for gradually sweeping away
109
+ defilement. The Sixth Patriarch answered: "Bodhi has no tree, the bright
110
+ mirror is no stand. Originally there is not a single thing — where could
111
+ dust alight?" — directly revealing that self-nature is empty at root,
112
+ with nothing that can stain it
113
+ 【《六祖坛经·行由品》,T48n2008】→ https://fojin.app/texts/58. One deliberately
114
+ applies antidotes; the other takes it up right here. These two verses
115
+ mark exactly where sudden and gradual part ways.
116
+
117
+ Yet sudden and gradual are not two. Even concentration and wisdom are
118
+ one — "concentration is the substance of wisdom, wisdom the function of
119
+ concentration; at the moment of wisdom, concentration is in wisdom; at
120
+ the moment of concentration, wisdom is in concentration"
121
+ 【《六祖坛经·定慧品》,T48n2008】→ https://fojin.app/texts/58 — so how could sudden
122
+ and gradual be two kinds? The deluded cultivate gradually, the awakened
123
+ accord at once; the medicine is given for the illness, and the Dharma
124
+ has no high or low 【《六祖坛经·定慧品》,T48n2008】→ https://fojin.app/texts/58.
125
+
126
+ Know too that the Sixth Patriarch saw his own nature on hearing "give
127
+ rise to a mind that abides nowhere"
128
+ 【《金刚经》,T08n0235】→ https://fojin.app/texts/7. Sudden awakening is not
129
+ mindlessness; it is not abiding in objects. Gradual cultivation is not
130
+ dead sitting; it is awareness in thought after thought. In the end there
131
+ is only one question: turning the light around in a single thought — has
132
+ the original mind appeared yet?
105
133
 
106
134
  For further study, consult the original texts at FoJin (fojin.app).
107
135
  ```
108
136
 
109
- > ⚠️ The above is **AI-synthesized content**, generated from the *Platform Sutra*; it does not represent Master Huineng's actual spoken teachings. Masters currently answer in Classical/Modern Chinese the English here is an illustrative translation. Try the multi-master `/compare-masters` mode directly at [fojin.app/chat](https://fojin.app/chat).
110
-
111
- ---
112
-
113
- > **v0.6 Update (2026-05-02)**: Slash command namespace cleanup — all 14 master slash commands prefixed with `master-`. `/master-zhiyi`, `/master-huineng`, etc.
114
- > - **Why**: Claude Code users typically have 50+ skills installed; bare-word slash commands like `/atisha` get scattered. Prefixing clusters all 14 masters under `/m<tab>` for fast discovery.
115
- > - **Unaffected**: `compare-masters` and `create-master` meta-skills keep their existing names (avoiding `/master-compare-masters` doublespeak). `fojin.app/chat` web-side dropdown is decoupled — its master IDs stay bare (`atisha`, `huineng`, etc.); backend `master_profiles.py` unchanged.
116
- > - **NPX installer**: both `npx master-skill install zhiyi` (short) and `install master-zhiyi` (full) work; install destination is always `~/.claude/skills/master-<slug>/`.
117
- > - See [CHANGELOG.md §0.6.0](CHANGELOG.md#060--2026-05-02) for full details.
118
- >
119
- > **v0.5 Update (2026-05-02)**: Second cross-tradition expansion — Tibetan and Theravāda each grow from 1 master to 3. Total **14 masters**.
120
- > - 藏传 added: Atiśa (Kadam founder · Toh 4465 *Bodhipathapradīpa* · three scopes) + Tsongkhapa (Gelug founder · three principal aspects · Madhyamaka prasaṅgika)
121
- > - 南传 added: Buddhaghosa (commentarial summit · *Visuddhimagga*) + Mahasi Sayadaw (Burmese vipassanā · noting method · ETHICS Tier B special case)
122
- > - HARD-GATE strengthened: Mahasi Sayadaw specifically gets `NO_ATTAINMENT_JUDGMENT` (AI must not confirm any individual's stage of insight)
123
- > - ETHICS Tier A grows to 11 masters; Tier B special-case grows to include Mahasi Sayadaw (parallel to Ajahn Chah)
124
- >
125
- > **v0.4 Update (2026-05-02)**: First cross-tradition expansion — added Tibetan **Milarepa** (Kagyu / Mahāmudrā) and Theravāda **Ajahn Chah** (Thai Forest Tradition). Citation system extended to support BDRC and SuttaCentral. HARD-GATE adds `no_esoteric_instruction` and `no_fabricated_quotes`.
126
- >
127
- > **v0.3**: Full architecture rebuild — provenance frontmatter, offline source passages (`sources/`), automated fidelity tests (`fidelity.jsonl`), NPX installer, two-stage independent review, HARD-GATE rules, multi-platform plugin support across Claude Code / Cursor / Codex / OpenCode / Gemini CLI, session-start hook auto-injecting the master list.
137
+ > ⚠️ The above is **AI-synthesized content**, generated from the *Platform Sutra* and *Diamond Sutra*; it does not represent Master Huineng's actual spoken teachings. The Chinese original is in [README.md](README.md#效果示例). Try the multi-master `/compare-masters` mode directly at [fojin.app/chat](https://fojin.app/chat).
128
138
 
129
139
  ---
130
140
 
@@ -140,17 +150,17 @@ This project is built out of respect for Buddhist traditions. All content is gen
140
150
 
141
151
  ## Features
142
152
 
143
- - **15 pre-built masters across four traditions**: 1 印度 (Madhyamaka · Nāgārjuna) + 8 汉传 (Yogācāra, Madhyamaka, Chan, Tiantai, Huayan, Pure Land, cross-tradition) + 3 藏传 (Kadam · Atiśa; Gelug · Tsongkhapa; Kagyu · Milarepa) + 3 南传 (Theravāda commentator · Buddhaghosa; Burmese vipassanā · Mahasi Sayadaw; Thai Forest · Ajahn Chah) — plus a `compare-masters` multi-master comparison meta-skill, ready to use out of the box
153
+ - **15 pre-built masters across four traditions**: 1 印度 (Madhyamaka · Nāgārjuna) + 8 汉传 (Yogācāra, Madhyamaka, Chan, Tiantai, Huayan, Pure Land, cross-tradition) + 3 藏传 (Kadam · Atiśa; Gelug · Tsongkhapa; Kagyu · Milarepa) + 3 南传 (Theravāda commentator · Buddhaghosa; Burmese vipassanā · Mahasi Sayadaw; Thai Forest · Ajahn Chah) — plus 4 teaching modes (`/compare-masters` side-by-side, `/master-debate` multi-round dialectic, `/master-curriculum` study path, `/master-help` who-to-ask) and the `/create-master` generator
144
154
  - **Provenance enforcement**: Every master ships with declared source IDs (CBETA / BDRC / Toh / SuttaCentral / PTS / compliant compiled teachings); live retrieval adds a FoJin locator only when a real `text_id` is returned, and every doctrinal claim must carry a source citation
145
155
  - **Offline source passages**: `sources/` captures key passages from each master's core canon, so citations still work when FoJin is unreachable
146
156
  - **Progressive disclosure**: SKILL.md is a decision tree + quick reference; `references/` and `sources/` are loaded on demand to keep context lean
147
157
  - **HARD-GATE discipline**: Both `/create-master` and every prebuilt master require doctrinal claims, practice guidance, and text interpretation to cite that persona's declared sources (CBETA / BDRC / Toh / SuttaCentral / PTS / compliant compiled teachings); fabricated source IDs and fictional personas are forbidden
148
158
  - **Two-stage independent review**: The generation pipeline forces a "doctrinal accuracy → voice consistency" review before write; FAIL triggers up to 2 rounds of automatic repair
149
- - **Automated fidelity tests**: Each master's `tests/fidelity.jsonl` holds 10+ Q&A samples (the `compare-masters` meta-skill holds 18) validating citations and keyword coverage; CI runs a dry-run on every push
159
+ - **Automated fidelity tests**: 211 fixtures (10+ per master, 18 for the `compare-masters` meta-skill) check keyword and citation coverage, and every graded answer also goes through the offline citation audit; CI runs a structural dry-run on every PR and on `main`; graded runs support Anthropic / DeepSeek / Gemini (`--provider`) with the matching API key, as a manual local/pre-release step — the latest full run and its case-by-case adjudication are [below](#fidelity-evaluation-current-data)
150
160
  - **Unified multi-platform plugin**: Claude Code, Cursor, Codex CLI, OpenCode, and Gemini CLI share one `prebuilt/` tree, with a session-start hook injecting the master list on every platform
151
161
  - **NPX one-shot install**: `npx master-skill install master-zhiyi` drops skills straight into Claude Code
152
162
  - **Offline toolchain**: `scripts/cite.py` (CBETA lookup), `scripts/query.py` (offline semantic search), `scripts/validate.py` (frontmatter linter)
153
- - **FoJin data bridge**: Connected to [fojin.app](https://fojin.app) with 503 data sources, 10K+ texts, 678K+ semantic embeddings, and a 31K-entity knowledge graph
163
+ - **FoJin data bridge**: Connected to [fojin.app](https://fojin.app) 10K+ texts, 678K+ semantic embeddings, a knowledge graph of 110K+ entities, and 600+ registered data sources
154
164
  - **AgentSkills standard**: Compliant with [Anthropic Agent Skills](https://github.com/anthropics/skills) — progressive disclosure, decision trees, black-box script pattern
155
165
 
156
166
  ## Framework Positioning
@@ -161,142 +171,58 @@ Master-skill is not a prompt pack. It is a verifiable Buddhist AI persona framew
161
171
  |---|---|
162
172
  | Source-grounded | `sources[]`, offline excerpts, FoJin live fallback, and citation self-audits per master |
163
173
  | Boundary-aware | `ETHICS.md`, per-master Layer 0 HARD-GATE rules, copyright tiers, and boundary violation reporting |
164
- | Fidelity-tested | `tests/fidelity.jsonl`, persona-fidelity schema, and promptfoo RAW / SPE / CUS evals |
174
+ | Fidelity-tested | `tests/fidelity.jsonl`, persona-fidelity schema, promptfoo RAW / SPE / CUS evals (currently for 3 masters: Huineng, Tsongkhapa, Ajahn Chah), [current data below](#fidelity-evaluation-current-data) |
165
175
  | Runtime-ready | `prebuilt/master-*` AgentSkills, npm CLI, multi-platform hooks, and a FoJin runtime contract |
166
176
 
167
177
  The v1.0 track prioritizes framework stability over adding more masters. See [docs/v1-framework-roadmap.md](docs/v1-framework-roadmap.md) and [docs/fojin-runtime-contract.md](docs/fojin-runtime-contract.md).
168
178
 
169
- ---
170
-
171
- ## Developer Installation
172
-
173
- > 👤 **Just want to try it?** Use [fojin.app/chat](https://fojin.app/chat) in your browser and skip this section entirely.
174
- > 🛠️ **This section is for**: Claude Code / Cursor / Codex CLI / OpenCode / Gemini CLI users who want to invoke `/master-xuanzang`, `/master-huineng`, etc. directly as terminal AgentSkills.
179
+ ### Fidelity evaluation (current data)
175
180
 
176
- ### Installation
181
+ The 211 fixtures (`prebuilt/*/tests/fidelity.jsonl`) run mechanical checks against real model answers: do the expected keywords and citations appear, and do the forbidden ones stay out. Every graded answer also goes through the offline citation audit. Read each number together with the model and the grading method that produced it:
177
182
 
178
- **NPX (recommended, no global state)**
183
+ | | Value | Basis |
184
+ |---|---|---|
185
+ | Latest full run | **199 / 211 graded** (94.3%) | DeepSeek `deepseek-v4-flash`, commit [`06b8142`](https://github.com/xr843/Master-skill/commit/06b814204082b3e4738185cf3eefa44ed149f9f0), 2026-08-31; 12 answers were truncated and are recorded as unmeasured, not failed |
186
+ | Pass rate as graded | 137 / 199 = 68.8% | Substring matching: it cannot tell a paraphrase from a missing term, or a correct refusal from a boundary violation |
187
+ | After case-by-case adjudication | **179 / 199 = 89.9%** | doctrine 94.3% · boundary 85.9% · citation-under-pressure 83.3%. 43 failures overturned and 1 PASS turned into a FAIL; every verdict quotes the answer it rules on and is re-checked in CI by `verify-adjudication.py` |
188
+ | Citation audit coverage | **569 / 619 = 92%**, 0 known fabrications | The same stored answers re-audited offline with the current auditor, across the CBETA, BDRC / Toh, PTS / SuttaCentral, and compiled-teaching families |
189
+ | Meta-skill targeted re-run | compare-masters **0% → 90%** | 2026-09-13, 34 fixtures. After their output templates were fixed, `compare-masters` citations went from 0% to 90% checkable and `master-curriculum` from 0% to 100%; `master-debate` used to write sutra IDs in parentheses the audit could not see at all, and is now at 100% |
179
190
 
180
- `npx master-skill install --all` installs all 19 skills: 15 personas, 3 teaching modes, and the `create-master` generator. The generator is copied as a self-contained runtime, so it remains usable after the transient npx package directory is removed; reinstall and `update --all` refresh the runtime while preserving user-generated personas under `create-master/masters/`.
191
+ **This column cannot advance the v1.0 gate.** The gate is defined on the Anthropic (`claude-sonnet-4-6`) column; two models are two instruments and are never pooled. That column still holds only one partial run, from 2026-08-18 (84 / 211, stopped when the account ran out of credit), whose "zero fabricated citations" was retracted on 2026-08-31 — the audit had not actually run on a single case.
181
192
 
182
- ```bash
183
- # Install individual public skills
184
- npx master-skill install master-zhiyi
185
- npx master-skill install compare-masters
186
- npx master-skill install create-master
187
-
188
- # Install or list the complete 19-skill catalog
189
- npx master-skill install --all
190
- npx master-skill list
191
- ```
193
+ These are **keyword and citation-string coverage checks, not doctrinal correctness and not LLM-judged answer quality**. Details: [BASELINE-deepseek.md](eval/reports/BASELINE-deepseek.md) (the full run), [ADJUDICATION.md](eval/reports/ADJUDICATION.md) (case-by-case rulings), [BASELINE.md](eval/reports/BASELINE.md) (the Anthropic partial run and its retraction), and the [meta-skill re-run report](eval/reports/0.11.0-e97ded0-deepseek-metaskills.json).
192
194
 
193
- **Global install (frequent use / offline-friendly)**
195
+ ---
194
196
 
195
- ```bash
196
- npm install -g master-skill # Adds the binary to $PATH
197
- master-skill install master-zhiyi # No more npx prefix
198
- master-skill list
199
- npm update -g master-skill # Pull next minor / patch
200
- ```
197
+ ## Developer Installation
201
198
 
202
- **Claude Code**
199
+ > 👤 **Just want to try it?** Use [fojin.app/chat](https://fojin.app/chat) — no install needed.
200
+ > 🛠️ **This section is for** Claude Code / Cursor / Codex CLI / OpenCode / Gemini CLI users.
203
201
 
204
202
  ```bash
205
- git clone https://github.com/xr843/Master-skill ~/Master-skill
206
- cd ~/Master-skill && pip install -r requirements.txt
207
- for d in prebuilt/master-*/; do ln -sf "$(pwd)/$d" ~/.claude/skills/"$(basename $d)"; done
208
- ln -sf "$(pwd)/prebuilt/compare" ~/.claude/skills/compare-masters
209
- ln -sf "$(pwd)" ~/.claude/skills/create-master
210
- ```
211
-
212
- **Cursor** — Clone the repo; Cursor auto-detects `.cursor-plugin/plugin.json`.
213
-
214
- **OpenCode** — Add to `opencode.json`:
215
-
216
- ```json
217
- {"plugin": ["master-skill@git+https://github.com/xr843/Master-skill.git"]}
218
- ```
219
-
220
- **Codex CLI** — See [.codex/INSTALL.md](.codex/INSTALL.md)
221
-
222
- **Gemini CLI** — Auto-discovered via `gemini-extension.json` and `GEMINI.md`.
223
-
224
- ### Use a Pre-built Master
225
-
226
- In any AgentSkills-compatible environment (Claude Code / Cursor / Codex CLI / OpenCode / Gemini CLI):
227
-
228
- ```
229
- # 印度 (Indian)
230
- /master-nagarjuna — Nāgārjuna (Indian · Madhyamaka | root of the eight schools)
231
-
232
- # 汉传 (Chinese)
233
- /master-xuanzang — Master Xuanzang (Yogacara)
234
- /master-kumarajiva — Kumarajiva (Madhyamaka / Sanlun)
235
- /master-huineng — Master Huineng (Chan, Sixth Patriarch)
236
- /master-zhiyi — Master Zhiyi (Tiantai)
237
- /master-fazang — Master Fazang (Huayan)
238
- /master-yinguang — Master Yinguang (Pure Land)
239
- /master-ouyi — Master Ouyi (Tiantai / Pure Land, cross-tradition)
240
- /master-xuyun — Master Xuyun (Chan, Five Houses)
241
-
242
- # 藏传 (Tibetan)
243
- /master-atisha — Atiśa Dīpaṃkara (Kadam founder · three scopes · 982-1054)
244
- /master-tsongkhapa — Tsongkhapa (Gelug founder · three principal aspects · prasaṅgika · 1357-1419)
245
- /master-milarepa — Milarepa (Kagyu · Mahāmudrā · Naro Chodruk · 1052-1135)
246
-
247
- # 南传 (Theravāda)
248
- /master-buddhaghosa — Buddhaghosa (commentarial summit · Visuddhimagga · 5th century)
249
- /master-mahasi-sayadaw — Mahasi Sayadaw (Burmese vipassanā · noting method · 1904-1982)
250
- /master-ajahn-chah — Ajahn Chah (Thai Forest Tradition · Wat Pah Pong · 1918-1992)
251
- ```
252
-
253
- ### Teaching Modes (v0.7)
254
-
255
- - **`/compare-masters`** — multiple masters answer the same question side-by-side (horizontal, single-turn)
256
- - **`/master-debate`** — masters from different traditions engage in a 4-round adversarial dialectic (claim → rebut → respond → synthesize + remaining disagreements)
257
- - **`/master-curriculum`** — given your target tradition and current level (L0-L3), get a time-sequenced study path (foundation → intermediate → advanced + likely blind spots)
258
-
259
- **`/compare-masters` usage examples:**
260
-
261
- ```
262
- # Auto-pick relevant masters
263
- /compare-masters what is emptiness
264
-
265
- # Manually pick masters (recommended for precise results)
266
- /compare-masters how to read the Heart Sutra --masters master-xuanzang,master-huineng,master-zhiyi
267
-
268
- # Natural-language triggers
269
- compare Huineng and Yinguang on nianfo
270
- how do Chan and Pure Land differ on practice
203
+ npx master-skill install --all # all 20 skills at once
204
+ npx master-skill install master-huineng # or just one
205
+ npx master-skill list # see everything installable
206
+ npx master-skill recommend "how do I actually practice nianfo" # not sure who to ask?
207
+ npx master-skill doctor # check the local install and runtime paths
208
+ npx master-skill update --all # upgrade: reinstall everything, clearing stale files
271
209
  ```
272
210
 
273
- **Selection logic**: the command first tries to extract keywords from the question and match them against each master's core concepts; if nothing matches strongly, it falls back to topic mapping (nianfo / meditation / Yogacara-Madhyamaka / classification, etc.). **If the auto-pick feels off, use `--masters` to override.**
211
+ Once installed, invoke `/master-huineng`, `/compare-masters`, etc. directly in chat.
274
212
 
275
- ### Generate a Custom Master
276
-
277
- ```
278
- /create-master Hongyi
279
- ```
280
-
281
- Or use natural language:
282
-
283
- ```
284
- Create a persona for Master Hongyi
285
- ```
286
-
287
- The system will guide you through a three-step intake, then automatically collect data from FoJin and generate the doctrinal analysis and style files.
288
-
289
- ---
213
+ > Per-platform setup (Claude Code plugin / Cursor / OpenCode / Codex CLI / Gemini CLI),
214
+ > global install, teaching-mode usage, and `/create-master`
215
+ > → **[docs/install.en.md](docs/install.en.md)**
290
216
 
291
217
  ## Desktop Manager
292
218
 
293
- A native desktop console (pure Rust, egui, single binary, no Electron) that unifies management of installation status, fidelity evaluation coverage, run tracing, and the quality gate across all 17 master skills:
219
+ A native desktop console (pure Rust, egui, single binary, no Electron) that unifies management of installation status, fidelity evaluation coverage, run tracing, and the quality gate across 18 skills (the 15 masters plus `master-debate`, `master-curriculum` and `master-help`):
294
220
 
295
- ![Master-skill Desktop Manager](https://raw.githubusercontent.com/xr843/Master-skill/master/docs/assets/desktop-manager.png)
221
+ ![Master-skill Desktop Manager](https://raw.githubusercontent.com/xr843/Master-skill/main/docs/assets/desktop-manager.png)
296
222
 
297
- **Download**: [Releases](https://github.com/xr843/Master-skill/releases) provides pre-built binaries for Linux / Windows / macOS — download and run directly (execute from the repository root; requires a local clone of this repo). On Linux/macOS you'll need to `chmod +x` the downloaded binary first; on macOS it's unsigned, so the first run needs right-click → Open, or `xattr -d com.apple.quarantine <file>` to clear the quarantine flag.
223
+ **Download**: [Releases](https://github.com/xr843/Master-skill/releases) provides pre-built binaries for Linux / Windows / macOS; run them from the root of a local clone (they call the repository's `scripts/` and `bin/`). On Linux/macOS, prefer the matching `.tar.gz`, which keeps the executable bit when extracted; the raw binaries remain for compatibility and need `chmod +x`. Each release carries `SHA256SUMS` — check a download with `sha256sum --check --ignore-missing SHA256SUMS` — and build-provenance attestations, verifiable with `gh attestation verify <file> --repo xr843/Master-skill`. **Windows binaries before v0.12.0 cannot launch Python or npm**; from v0.12.0 they resolve them per platform, but CI does not yet run the desktop manager on a Windows host, so if it fails to find them, set `MASTER_SKILL_PYTHON` / `MASTER_SKILL_NPM`. The macOS binary is unsigned, so first launch still requires right-click → Open or `xattr -d com.apple.quarantine <file>`.
298
224
 
299
- **Build from source**:
225
+ **Build from source** (Rust 1.95+):
300
226
 
301
227
  ```bash
302
228
  cd desktop && cargo build --release
@@ -308,156 +234,37 @@ cd desktop && cargo build --release
308
234
 
309
235
  ## Pre-built Masters
310
236
 
311
- ### Nāgārjuna (c. 150-250)Indian · Madhyamaka
312
-
313
- The founder of Mahāyāna Madhyamaka, revered in Chinese Buddhism as the **common patriarch of the eight schools** — Sanlun, Tiantai, Pure Land, Huayan, and Chan all trace their lineage back to him, and the Tibetan prasaṅgika Madhyamaka takes him as its root authority. He used the **eightfold negation of the middle way** to dismantle all conceptual proliferation, opened up dependent origination as emptiness with "whatever arises through conditions, that I declare to be emptiness," taught by way of the **two truths** while resolving into ultimate emptiness and the quiescence of proliferation, and distinguished the **easy and difficult paths** of practice. His *Mūlamadhyamakakārikā* is the root treatise of all later Madhyamaka study, and his *Mahāprajñāpāramitā-śāstra* is an encyclopedia of the Prajñāpāramitā teachings.
314
- Primary sources: CBETA — Mūlamadhyamakakārikā (T30n1564), Mahāprajñāpāramitā-śāstra (T25n1509), Dvādaśanikāya-śāstra (T30n1568), Vigrahavyāvartanī (T32n1631), Daśabhūmika-vibhāṣā (T26n1521).
315
- Invoke: `/master-nagarjuna`
316
-
317
- ### Master Xuanzang (602-664)
318
-
319
- The greatest translator in Chinese Buddhist history. Traveled to India for 17 years, translated 75 texts in 1,335 fascicles. Founded the Yogacara (Faxiang) school in China. Known for precise, rigorous translation methodology and the "Five Categories of Non-Translation" principle.
320
- Primary sources: CBETA Mahaprajnaparamita Sutra, Yogacarabhumi-sastra, Cheng Weishi Lun, Heart Sutra.
321
- Invoke: `/master-xuanzang`
322
-
323
- ### Kumarajiva (344-413)
324
-
325
- One of the four great translators of Chinese Buddhism. Born in Kucha, translated in Chang'an. His translations are celebrated for literary elegance — the Lotus Sutra, Diamond Sutra, Vimalakirti Sutra, and Mulamadhyamakakarika remain the most widely used versions today. Established the foundation of the Sanlun (Madhyamaka) school in China.
326
- Primary sources: CBETA Lotus Sutra, Diamond Sutra, Vimalakirti Sutra, Mulamadhyamakakarika, Mahaprajnaparamita-sastra.
327
- Invoke: `/master-kumarajiva`
328
-
329
- ### Master Huineng (638-713)
330
-
331
- The Sixth Patriarch of Chan Buddhism, founder of the Southern School. An illiterate woodcutter who attained enlightenment upon hearing the Diamond Sutra. His Platform Sutra is the only Chinese-authored text honored with the title "sutra." Advocated "directly pointing to the mind, seeing one's nature to become Buddha."
332
- Primary sources: CBETA — Platform Sutra (T48n2008).
333
- Invoke: `/master-huineng`
334
-
335
- ### Master Zhiyi (538-597)
336
-
337
- Founder of the Tiantai school, honored as "the Little Shakyamuni of the East." Established the first comprehensive doctrinal classification system in Chinese Buddhism (Five Periods, Eight Teachings). Authored the Three Great Works of Tiantai. Core teachings: three thousand realms in a single thought-moment, perfect interfusion of the three truths, dual cultivation of samatha and vipasyana.
338
- Primary sources: CBETA — Mohe Zhiguan (T46n1911), Fahua Xuanyi (T33n1718).
339
- Invoke: `/master-zhiyi`
340
-
341
- ### Master Fazang (643-712)
342
-
343
- Third Patriarch and true systematizer of the Huayan school. National Preceptor under Empress Wu Zetian. Used the Golden Lion treatise to explain Huayan philosophy. Core teachings: dharmadhatu dependent origination, four dharma-realms, ten mysterious gates, six characteristics in perfect harmony.
344
- Primary sources: CBETA — Huayan Jing Tanxuan Ji (T35n1733), Huayan Wujiao Zhang (T45n1866).
345
- Invoke: `/master-fazang`
346
-
347
- ### Master Yinguang (1861-1940)
348
-
349
- 13th Patriarch of the Chinese Pure Land school. Central figure in the modern Pure Land revival. His writing is sincere and straightforward; he guided countless practitioners through correspondence, collected in the three volumes of the Yinguang Fashi Wenchao.
350
- Primary sources: CBETA — Wenchao volumes and the three Pure Land sutras.
351
- Invoke: `/master-yinguang`
352
-
353
- ### Master Ouyi (1599-1655)
354
-
355
- One of the Four Great Masters of Late Ming Buddhism, 9th Patriarch of Pure Land. His motto: "Doctrine follows Tiantai, practice returns to Pure Land." The most important cross-tradition synthesizer in Chinese Buddhist history. His commentary on the Amitabha Sutra was praised by Master Yinguang as unsurpassable.
356
- Primary sources: CBETA — Amituo Jing Yaojie (T37n1762), Jiaoguan Gangzong.
357
- Invoke: `/master-ouyi`
358
-
359
- ### Master Xuyun (1840-1959)
360
-
361
- Modern Chan patriarch who lived to 119 years. Unprecedented in Buddhist history for holding dharma transmission in all five houses of Chan (Linji, Caodong, Guiyang, Yunmen, Fayan). Restored six major ancestral monasteries. Advocated hua-tou investigation, honest practice, and harmonizing Chan with Pure Land.
362
- Primary sources: CBETA — Shurangama Sutra, Diamond Sutra, Platform Sutra.
363
- Invoke: `/master-xuyun`
364
-
365
- ### Atiśa Dīpaṃkara (982-1054) — Tibetan · Kadam · Indo-Tibetan bridge
366
-
367
- Royal-born Indian master from the Sahor kingdom (modern Bangladesh). Studied Madhyamaka, Yogācāra and tantra at Vikramaśīla; received the bodhicitta lineage from Dharmakīrti of Suvarṇadvīpa (Sumatra). Invited to Tibet in 1042 by King Yeshe Ö to reform a tradition where Vinaya had decayed and tantra had become disconnected from sūtra foundations. His *Bodhipathapradīpa* (Toh 4465) became the source text for all later Tibetan *lamrim* literature. His chief disciple Dromtönpa founded Reting Monastery, originating the **Kadam school** — later succeeded by Tsongkhapa's "New Kadam" (Gelug). All four Tibetan schools recognize him as a root teacher.
368
- Primary sources: Toh 4465 *Bodhipathapradīpa* + Toh 3948 self-commentary + Kadam oral lineage *Pha chos / Bu chos*.
369
- Invoke: `/master-atisha`
370
-
371
- ### Tsongkhapa (1357-1419) — Tibetan · Gelug founder
372
-
373
- Founder of the **Gelug school** (dGe lugs pa, "the way of virtue"; popularly known as the "Yellow Hat school") — basis of the Dalai Lama and Panchen Lama lineages. Born in Tsongkha (Qinghai). Studied with masters across all major schools, particularly the Sakya scholar Rendawa for prasaṅgika Madhyamaka. Reformed lax monastic discipline, integrated sūtra and tantra into a strict graduated path, and produced the great triology: *Lamrim Chenmo* (Great Treatise on the Stages of the Path), *sNgags rim chen mo* (Great Treatise on Tantra), and *Drang nges legs bshad snying po* (Essence of True Eloquence — definitive vs interpretable meaning). Founded Ganden Monastery (1409) — the seat of the school.
374
- Primary sources: Tsongkhapa's collected works (*gsung 'bum*, searchable on BDRC.io). Chinese translation by Dharma-master Faxun is the standard Sinophone reference.
375
- Invoke: `/master-tsongkhapa`
376
-
377
- > ⚠️ Tantric practice steps, empowerment liturgy, generation- and completion-stage details, deity mantras, and channels-and-drops practice are introduced **only at the level of name and historical context — concrete practice instructions are never given**.
378
-
379
- ### Milarepa (1052-1135) — Tibetan · Kagyu
380
-
381
- Spiritual ancestor of the Tibetan Kagyu lineage and the paradigm of the "yogi tradition" (no monastery, mountain retreat, teaching through song). After committing serious harm in his youth through black magic, he sought purification under Marpa the Translator, who put him through severe trials before transmitting the complete Mahāmudrā and Naro Chodruk lineages. He spent decades in Himalayan retreat, surviving on nettles, and taught through extemporaneous **mGur** (songs of realization) — shaping the entire later Tibetan tradition.
382
- Primary sources: BDRC — *The Hundred Thousand Songs of Milarepa* (mGur 'bum, W1KG14334) and *The Life of Milarepa* (rNam thar, W22272).
383
- Invoke: `/master-milarepa`
384
-
385
- > ⚠️ Naro Chodruk (Six Yogas), tummo, generation/completion stages and other esoteric practices are introduced **only at the level of name and historical context — concrete practice instructions are never given**. Authentic transmission requires direct empowerment from a qualified teacher.
386
-
387
- ### Buddhaghosa (5th century) — Theravāda · commentarial summit
388
-
389
- The most influential commentator and śāstra master in Theravāda history. Born a brahmin scholar in southern India, he travelled to the Mahāvihāra in Anurādhapura (Sri Lanka) to translate the old Sinhala commentaries (*Sīhaḷa-aṭṭhakathā*) into Pali. To prove his competence, he first composed the *Visuddhimagga* — a 23-chapter encyclopedia of Theravāda meditation and doctrine organized around the threefold training of **sīla, samādhi, paññā**. He then translated the four Nikāya commentaries, the Vinaya commentary *Samantapāsādikā*, and the Abhidhamma commentaries. His framework defines orthodox Theravāda exegesis to this day across Sri Lanka, Burma, Thailand, Cambodia, and Laos.
390
- Primary sources: PTS edition *Visuddhimagga* + four Nikāya *aṭṭhakathā* (Sumaṅgalavilāsinī, Papañcasūdanī, Sāratthappakāsinī, Manorathapūraṇī) + *Samantapāsādikā* (Vinaya) + *Atthasālinī* (Abhidhamma).
391
- Invoke: `/master-buddhaghosa`
392
-
393
- ### Mahāsi Sayādaw U Sobhana (1904-1982) — Theravāda · Burmese vipassanā
394
-
395
- One of the most internationally influential meditation masters of modern Burma. Recognized as a *Pariyatti Sāsanahita* — the highest scriptural qualification in Burmese monasticism — by age 27. Studied four-foundations vipassanā with U Nārada (Mingun Sayadaw) from 1932. Established the **Mahasi Sasana Yeiktha** retreat center in Yangon in 1947, formalizing the **noting method** (rising-falling at the abdomen as primary object) tied to Visuddhimagga's seven purifications and sixteen insight knowledges. Served as *Final Editor* of the Sixth Buddhist Council (1954-1956) — the largest modern revision of the Pali Canon. His lineage profoundly shaped the founders of America's Insight Meditation Society (Goldstein, Salzberg, Kornfield).
396
- Primary sources: *Manual of Insight* (Wisdom Publications, 2016 English ed.), *The Progress of Insight* (BPS Sri Lanka Wheel No. 280), *Practical Vipassanā Meditation Exercises* (Mahasi Sasana Yeiktha).
397
- Invoke: `/master-mahasi-sayadaw`
398
-
399
- > ⚠️ **The AI must never confirm any individual's stage of insight or attainment of fruition.** Verification requires face-to-face interview with a qualified teacher. This is the strictest guardrail in this skill — the Mahasi tradition's "fruition is attainable" framing is famous for inducing self-attainment delusions, and the AI is forbidden from playing that role.
400
-
401
- ### Ajahn Chah Subhaddo (1918-1992) — Theravāda · Thai Forest
402
-
403
- One of the most internationally influential masters of the Thai Forest Tradition. Renowned for strict Vinaya observance, four-foundations-of-mindfulness practice, and plain, life-grounded teaching style. His Western disciples (Ajahn Sumedho, Ajahn Pasanno, Ajahn Amaro and others) established Abhayagiri (California), Amaravati (UK), Cittaviveka (UK) and other branch monasteries, carrying the forest tradition to the West. Most-quoted line: *"If you let go a little, you have a little peace; if you let go completely, you have complete peace."*
404
- Primary sources: Pali Canon (SuttaCentral) + authorized English collections — *Food for the Heart*, *A Still Forest Pool*, *Living Dhamma*.
405
- Invoke: `/master-ajahn-chah`
406
-
407
- ---
237
+ Fifteen masters across four traditions. The command *is* the skill name invoke it directly once installed.
238
+
239
+ | Command | Master | Tradition · School | Dates |
240
+ |---|---|---|---|
241
+ | `/master-nagarjuna` | Nāgārjuna | Indian · Madhyamaka | c. 150-250 |
242
+ | `/master-kumarajiva` | Kumārajīva | Chinese · Sanlun / Madhyamaka | 344-413 |
243
+ | `/master-zhiyi` | Zhiyi | Chinese · Tiantai | 538-597 |
244
+ | `/master-xuanzang` | Xuanzang | Chinese · Yogācāra | 602-664 |
245
+ | `/master-huineng` | Huineng | Chinese · Chan (Sixth Patriarch) | 638-713 |
246
+ | `/master-fazang` | Fazang | Chinese · Huayan | 643-712 |
247
+ | `/master-ouyi` | Ouyi | Chinese · Tiantai / Pure Land | 1599-1655 |
248
+ | `/master-xuyun` | Xuyun | Chinese · Chan (all five houses) | 1840-1959 |
249
+ | `/master-yinguang` | Yinguang | Chinese · Pure Land | 1861-1940 |
250
+ | `/master-atisha` | Atiśa Dīpaṃkara | Tibetan · Kadam (lamrim) | 982-1054 |
251
+ | `/master-milarepa` | Milarepa | Tibetan · Kagyu (Mahāmudrā) | 1052-1135 |
252
+ | `/master-tsongkhapa` | Tsongkhapa | Tibetan · Gelug (Prāsaṅgika) | 1357-1419 |
253
+ | `/master-buddhaghosa` | Buddhaghosa | Theravāda · commentarial | 5th c. |
254
+ | `/master-mahasi-sayadaw` | Mahāsi Sayādaw | Theravāda · Burmese vipassanā | 1904-1982 |
255
+ | `/master-ajahn-chah` | Ajahn Chah | Theravāda · Thai Forest | 1918-1992 |
256
+
257
+ **Teaching modes**: `/compare-masters` · `/master-debate` · `/master-curriculum` · `/master-help` · **Generator**: `/create-master`
258
+
259
+ > Life, doctrine, and declared sources for each → **[docs/masters.en.md](docs/masters.en.md)**
408
260
 
409
261
  ## Architecture
410
262
 
411
- ```
412
- User request
413
- |
414
- v
415
- session-start hook ──> auto-injects master list (5 platforms, unified)
416
- |
417
- v
418
- SKILL.md (AgentSkills entry: decision tree + quick reference)
419
- |
420
- +-- Pre-built masters --> prebuilt/{slug}/
421
- | +-- SKILL.md (decision tree + <HARD-GATE>)
422
- | +-- meta.json (version / lineage / provenance)
423
- | +-- references/ (loaded on demand)
424
- | | +-- teaching.md
425
- | | +-- voice.md
426
- | +-- sources/ (offline declared-source passages)
427
- | | +-- *.md
428
- | +-- tests/
429
- | +-- fidelity.jsonl (CI dry-run samples)
430
- |
431
- +-- Offline toolchain
432
- | +-- scripts/validate.py (frontmatter linter)
433
- | +-- scripts/cite.py (CBETA lookup)
434
- | +-- scripts/query.py (offline semantic search)
435
- | +-- scripts/test-fidelity.py (fidelity runner)
436
- | +-- scripts/validate-fidelity.py
437
- | +-- bin/cli.mjs (NPX installer)
438
- |
439
- +-- Custom generation (/create-master, HARD-GATE enforced)
440
- +-- Step 1-2 prompts/intake.md → tools/sutra_collector.py
441
- | └─> FoJin API (KG + semantic search + text)
442
- +-- Step 3 prompts/{sutra,voice}_analyzer.md → two-stage analysis
443
- +-- Step 3.5 two-stage independent review ──┬─ prompts/doctrine_reviewer.md
444
- | └─ prompts/voice_reviewer.md
445
- +-- Step 4-5 tools/master_builder.py → tools/skill_writer.py
446
- └─> tools/verify_sources.py (final pre-write check)
447
-
448
- Unified multi-platform manifests:
449
- .claude-plugin/ → Claude Code (hooks/run-hook.cmd → session-start)
450
- .cursor-plugin/ → Cursor (hooks/hooks-cursor.json)
451
- .codex/ → Codex CLI (.codex/INSTALL.md)
452
- .opencode/ → OpenCode (referenced from opencode.json)
453
- gemini-extension.json → Gemini CLI (auto-loaded with GEMINI.md)
454
- ```
455
-
456
- ---
263
+ Directory layout and data flow → **[docs/architecture.en.md](docs/architecture.en.md)**
457
264
 
458
265
  ## Relationship to FoJin
459
266
 
460
- [FoJin](https://fojin.app) is a Buddhist text aggregation platform integrating 503 data sources, 10K+ texts, 678K+ semantic vector embeddings, and a knowledge graph of 31K entities. It covers major corpora including CBETA Chinese Buddhist Canon, SuttaCentral Pali Canon and translations, and 84000 Tibetan Buddhist translations.
267
+ [FoJin](https://fojin.app) is a Buddhist text aggregation platform holding 10K+ texts (about 9K of them in full text), 678K+ semantic vector embeddings, and a knowledge graph of 110K+ entities. It registers 600+ data sources, but **only four supply full text** — the CBETA Chinese Buddhist Canon, the SuttaCentral Pali Canon and translations, 84000's Tibetan Buddhist translations, and the GRETIL Sanskrit library; the rest are metadata records.
461
268
 
462
269
  Master-skill connects to the FoJin API via `tools/fojin_bridge.py` to enable:
463
270
 
@@ -491,33 +298,13 @@ Every citation must resolve to the persona's declared source ID. A FoJin locator
491
298
 
492
299
  ## Troubleshooting
493
300
 
494
- **Q: Does it still work when the FoJin API is unreachable?**
495
-
496
- Yes. Each prebuilt master ships with `prebuilt/<name>/sources/` — key passages from that master's core canon, stored offline. When FoJin is down, the master degrades to offline mode and declares "currently running on offline passages" in the reply. The `/create-master` pipeline asks the user to switch to manual-input mode when the API fails, so you can paste source text and continue.
497
-
498
- **Q: What does a valid CBETA citation look like, and how are sources verified?**
499
-
500
- CBETA citations use a `Txxn####` identifier (for example, the Lotus Sutra is `T09n0262`); Tibetan, Pali, and compiled-teaching personas use the BDRC / Toh, SuttaCentral / PTS, or teaching IDs declared in `meta.json.sources[]`. `scripts/validate-citation-contract.py` and `tools/verify_sources.py --check-links/--final-check` validate source families, identifier shapes, declared membership, and contract consistency offline. They do not parse free-text citations or guarantee HTTP reachability. The legacy online `verify_sources.py --fix` audit covers CBETA / FoJin links only.
501
-
502
- **Q: `npx master-skill install` fails with ENOTEMPTY or a permission error — what now?**
503
-
504
- Clean up any leftover `~/.claude/skills/master-<name>/` directories before retrying. For npm-cache weirdness, run `npm cache clean --force` and rerun NPX. Windows users should execute from Git Bash or WSL to avoid cmd.exe path-escaping issues.
505
-
506
- **Q: The generated master says things that don't match the historical record — how do I correct it?**
507
-
508
- Just tell the master in-chat: "he wouldn't phrase it like that" or "he should sound more stern." The `/create-master` correction mode classifies the fix (doctrinal → appended to `teaching.md`; stylistic → appended to `voice.md`), writes it as a `## Correction` block with timestamp, and bumps the patch version. Correction blocks take priority over analysis-generated content at runtime.
509
-
510
- **Q: How do I contribute a new prebuilt master?**
511
-
512
- See "Contributing" below. The short version: follow the v0.3 layout under `prebuilt/<name>/`, pass `scripts/validate.py --strict` with zero errors, ship at least 5 fidelity Q&A samples in `tests/fidelity.jsonl`, then open a PR.
513
-
514
- ---
301
+ Common install, invocation, and retrieval questions **[docs/troubleshooting.en.md](docs/troubleshooting.en.md)**
515
302
 
516
303
  ## Contributing
517
304
 
518
305
  Contributions are welcome: new prebuilt masters, corrections to source attributions, offline passage additions, or toolchain improvements.
519
306
 
520
- New masters must follow the v0.3 layout: `prebuilt/<name>/` containing SKILL.md (with provenance routing and a decision tree), `meta.json` (declared sources plus citation contract), `references/teaching.md` and `references/voice.md` (loaded on demand), `sources/*.md` (offline declared-source passages), and `tests/fidelity.jsonl` (5+ Q&A fidelity samples). Run `python3 scripts/validate.py --strict` and `python3 scripts/validate-citation-contract.py` for zero errors, and make sure the CI fidelity dry-run passes before opening a PR.
307
+ New masters must follow the v0.3 layout: `prebuilt/<name>/` containing SKILL.md (with provenance routing and a decision tree), `meta.json` (declared sources plus citation contract), `references/teaching.md` and `references/voice.md` (loaded on demand), `sources/*.md` (offline declared-source passages), and `tests/fidelity.jsonl` (5+ Q&A fidelity samples, at least one of them a boundary case). Run `python3 scripts/validate.py --strict`, `python3 scripts/validate-fidelity.py` and `python3 scripts/validate-citation-contract.py` for zero errors, and make sure the CI fidelity dry-run passes before opening a PR.
521
308
 
522
309
  Before submitting, verify that every source resolves to the persona's declared source family, content is faithful to historical documents, and no sectarian bias is introduced.
523
310