Model or dataset
xr843/Master-skill avatar
xr843/Master-skill

Master-skill: A Source-Grounded Buddhist Persona Framework for Claude Code and Other Agent Runtimes

FoJin-powered Buddhist AI persona framework — source-grounded, boundary-aware, fidelity-tested, runtime-ready.

394 stars79 forksPythonMIT

At a glance

What is it?
Master-skill packages fifteen Buddhist teacher personas as AgentSkills, with citation requirements, ethics gates and fidelity tests attached to each one. The interesting part is not the personas. It is the machinery that forces every doctrinal claim to carry a text ID, and the fact that most users never touch the install path at all.
Who is it for?
Adopt Master-skill if you want Buddhist teaching personas that refuse to answer without a citable source, and you are willing to run the fidelity suite yourself because CI only does a structural dry run. Do not adopt it if you need a general-purpose religious chatbot, if you cannot supply ANTHROPIC_API_KEY for scoring, or if you expect the fifteen personas to cover traditions outside Indian, Chinese, Tibetan and Theravada Buddhism.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The reading problem Master-skill is built around

The README opens with four questions in Chinese, and they are narrower than they first look. How do you start reading a hundred fascicles of the Yogacarabhumi. Which Chan patriarch should a beginner approach. How do you get past the layer that modern vernacular translations put between you and the classical text. Where do you find an authoritative citation when you want to quote a patriarch in academic work. Those are the problems the project claims to solve, and they share a shape: the user already knows roughly what they want to study, and the obstacle is orientation and provenance rather than access. The target reader is a Buddhist learner, a researcher in digital humanities, or a general reader who wants to understand one teacher's thought. The README is explicit that most of these users need no installation at all; they open fojin.app/chat, click a mode selector in the lower left of the Q&A page, and pick one of the fifteen teachers. The developer-facing AgentSkill packaging is a second audience, not the primary one.

What the persona layer actually enforces

Each teacher ships as a skill directory with a SKILL.md that is deliberately thin. The README describes the format as a decision tree plus a quick reference, with references/ and sources/ loaded only when needed. That is the progressive disclosure pattern from Anthropic's Agent Skills specification, and it matters here because a persona that inlines its whole canon would consume context before the first question. The heavier constraint sits underneath: every teacher declares a sources[] array naming the corpora it may draw on, and the framework requires that doctrinal assertions, practice instructions and textual interpretation cite something from that declared set. The allowed identifiers are CBETA canon numbers, BDRC Tibetan text numbers, Toh numbers, SuttaCentral Pali suttas, PTS references, and what the README calls compliantly compiled teachings. Fabricating a source ID is a stated violation, and so is building a persona for a figure who never existed. Live retrieval from FoJin attaches a location link only when a real text_id comes back, which means an answer either carries a resolvable citation or carries none. The README's worked example shows the intended shape: a question about sitting practice gets an answer in Hui Neng's voice, and each doctrinal sentence is followed by a Platform Sutra citation with a fojin.app/texts link.

The two-stage review and the fidelity tests

Generation runs through two independent review passes before anything is written: doctrinal accuracy first, then stylistic consistency. A failure triggers automatic repair, capped at two rounds. That cap is worth noting because it defines the failure mode. After two repair attempts the pipeline does not loop indefinitely; whatever state it reached is what gets written, which means the review is a filter with a bounded budget rather than a guarantee. The fidelity layer is separate and lives in tests/fidelity.jsonl, with ten or more question-answer pairs per teacher and eighteen for the compare-masters meta-skill. Each entry checks citation presence and keyword coverage. The repository distinguishes two modes clearly: CI runs a structural dry run on every push, and actual scoring requires ANTHROPIC_API_KEY and is performed manually before a release. The first committed baseline reports 59 of 84 tested entries passing, which is 70 percent, against a full set of 211 entries and therefore 40 percent coverage. The project publishes those numbers rather than hiding them, and the gap between 84 tested and 211 total is the most useful figure in the README for anyone evaluating maturity.

Installing it, and what the slash commands look like

The install path is a single npx command: npx master-skill install master-zhiyi, which deploys into ~/.claude/skills/master-<slug>/. Short forms work too, so install zhiyi resolves to the same target. Release v0.6.0 renamed fourteen teacher commands to carry a master- prefix, /master-zhiyi, /master-huineng and so on, with the stated reason that a Claude Code instance with fifty or more skills installed produces an ambiguous flat slash list; the prefix clusters the teachers under /m<tab>. The two meta-skills, compare-masters and create-master, kept their unprefixed names to avoid a doubled prefix. The README notes that master_profiles.py was unaffected by that rename and that the web dropdown and API are decoupled from it, so the change is confined to command discovery. Three meta-skills cover the comparative use cases: /compare-masters pairs teachers across traditions, /master-debate stages a disagreement, and /master-curriculum builds a study path. Alongside the runtime skills there are offline tools, scripts/cite.py for CBETA citation lookup, scripts/query.py for offline semantic search, and scripts/validate.py as a frontmatter linter. The sources/ directory holds key passages from core texts so that citation still works when FoJin is unreachable.

The ethics gates, and the one that constrains a specific teacher

ETHICS.md is the document that carries the boundary rules, covering AI transparency, a copyright tier system from A to D, prohibited behaviours, dual-track content licensing and an emergency takedown channel. Each persona carries a Layer 0 HARD-GATE, and the tiers are not uniform. Tier A covers eleven teachers. Tier B holds two special cases, Ajahn Chah and Mahasi Sayadaw, and the Mahasi entry adds a rule the README names NO_ATTAINMENT_JUDGMENT: the AI must not issue a verdict on any individual's level of attainment. Earlier releases added no_esoteric_instruction and no_fabricated_quotes. This is the part of the design that reads as considered rather than decorative. A Vipassana teacher persona that tells a practitioner they have reached a stage of insight is making a claim no text can support, and the gate exists because the persona's own subject matter makes that failure likely. Whether the gate holds under adversarial prompting is not something the README demonstrates, and the fidelity tests check citation and keywords rather than refusals, so the ethics layer appears to be enforced by instruction rather than by a test harness.

Where it is the wrong tool, and what to use instead

Master-skill is a poor fit for anyone who wants a general religious chatbot. The citation requirement is a hard constraint on output, and a question that no CBETA, BDRC or SuttaCentral text addresses will get either a refusal or a citation to something adjacent, not a fluent improvisation. That is the design intent, but it makes the framework worse than a plain model for exploratory conversation. The tradition coverage is also bounded: one Indian teacher, eight Chinese, three Tibetan, three Theravada. A Pure Land practitioner will find Yin Guang, and a Chan practitioner will find several options, but a question about Japanese Zen, Korean Seon or Vajrayana liturgy has no persona to route to, and the create-master path requires a real historical figure with a declared source corpus, so you cannot fill those gaps by inventing a persona. For the narrower job of grounded retrieval over Buddhist canon, a plain RAG pipeline over the same FoJin index with a citation-required output schema would give you similar provenance without the persona layer, and it would not constrain you to fifteen voices. What Master-skill adds on top of that pipeline is the stylistic fidelity requirement and the review passes, and whether that addition is worth the constraint depends on whether you want a teacher's voice or just a cited answer.

Maintenance surface, licensing and what to verify first

The project is MIT licensed, which covers the code. It does not settle the status of the scriptural text the personas quote, and the README points to a copyright tier system in ETHICS.md precisely because those sources carry their own terms. Treat the MIT grant as applying to the framework and not as a blanket clearance for redistributing canon text; that is a question for whoever handles licensing on your side, not something the repository resolves. On maintenance, the release cadence visible in the material runs from v0.10.0 in July 2026 through v0.10.1, v0.11.0 in August, with the last push in September 2026. Two of those release titles are self-critical: v0.10.1 is subtitled the gates that never ran, and v0.11.0 is the verification layer, verified. A changelog naming a gate that did not execute is a useful signal about how much of the test surface was actually wired up before that point, and it argues for running the fidelity suite yourself rather than trusting the committed baseline. The upgrade cost is low for the runtime skills, since npx master-skill install rewrites a directory under ~/.claude/skills/, but the slash command rename in v0.6.0 shows that command names are not a stable interface across minor versions. If you script against /master-<slug>, pin the version. The five plugin targets, Claude Code, Cursor, Codex CLI, OpenCode and Gemini CLI, share one prebuilt/ directory, so a change to that directory propagates across all five at once.

Editorial conclusion

Adopt Master-skill if you want Buddhist teaching personas that refuse to answer without a citable source, and you are willing to run the fidelity suite yourself because CI only does a structural dry run. Do not adopt it if you need a general-purpose religious chatbot, if you cannot supply ANTHROPIC_API_KEY for scoring, or if you expect the fifteen personas to cover traditions outside Indian, Chinese, Tibetan and Theravada Buddhism. Before committing, check three things: whether your target runtime is one of the five listed plugin targets, whether the persona you want has an ETHICS tier assigned in ETHICS.md, and whether its fidelity.jsonl entries actually pass on your model rather than on the baseline the repository committed.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. xr843/Master-skill on GitHub
Community notes

Community notes