Pali Canon for Claude

Decisions

The major decisions behind this project, why they were made, and what follows from them. When a decision changes, add a new entry that supersedes the old one rather than editing history. Newest decisions are at the bottom.

Format: context (the problem), decision (what we chose), consequences (what it means in practice).


D1. A library, not a teacher

D2. An MCP server, plus skills, packaged for Claude first

D3. Bundle the whole Pāli canon, offline

D5. Standard numbering for IDs; report the other scheme

D6. PTS volume and page as the shared anchor

D8. Never substitute one translation for another silently

D9. Mirrors must be official or long-standing

D10. Flag abbreviations; do not reconstruct them

D11. Read-only and allowlisted

D12. Software MIT; texts keep their own terms

D13. Commit the built server

D14. Write our own script transliterator

D15. Claude first, then everywhere

D16. Release assets are built by CI, with checksums made at release time

D17. Drop the dictionary’s tables before turning entries into text

D19. Privacy commitments and support contact

D20. Ask each source directly, and never guess a contact

D21. The npm package has no runtime dependencies

D22. The npm package name is pali-canon-mcp

D23. The hosted version is stateless and keeps nothing on disk

D24. MCP Registry name keeps the GitHub login’s capital letters

D25. Claude Code marketplace: one name, and the directory as the only way in

D26. Codex and Gemini run the bundled server with node, not npx

D27. One-click editor buttons go through https hand-off pages

D28. Local AI apps: node path first, Open WebUI through mcpo on this computer only

D29. Skills follow the Agent Skills spec, plus Claude Code’s argument-hint

D30. Quote checking reports what the searched texts contain, never who said what

D31. Citations in free text are read conservatively

D32. Uposatha and festival calendar: four reckonings, computed and labelled

D33. A method skill for genre, textual layers and uncertainty

D34. Daily texts and reading plans are fixed and verifiable

D35. Topics from Access to Insight’s indexes; numbered lists curated and checked against the text

D36. Proper names: the dictionary is linked, not bundled, until its licence is confirmed

D37. The tool surface is pinned by exact names, not a count

D39. Abhidhamma tools read the bundled text and add no English of their own

D41. Chanting texts come from the canon; chanting-book versions wait for permission

D43. Memorisation builds every card from retrieved text

D45. Ānandajoti Bhikkhu’s translations, linked on Pāli evidence

D46. Docs site and citation index export without new dependencies

D47. Only guidance is translated, and drafts wait for native review

D48. ChatGPT reading view only on the hosted endpoint, behind a switch

D49. Connector directory: palm-leaf icon and an annotations table that matches the server

D50. Other scripts by our own transliterator, matched to VRI’s script editions

D51. Thai, Myanmar and VRI edition pages are cited as edition, collection, volume.page

D52. Structured variant readings parse VRI’s notes conservatively

D53. Accuracy is measured by tool-level checks in CI and graded by citations for models

D54. Commentary is bundled and aligned by VRI paragraph, checked against its quotations

D55. Post-canonical books are bundled whole and labelled not canon; the Visuddhimagga is cited by chapter and VRI paragraph, not PTS page

D56. A pinned subset of the Digital Pāḷi Dictionary is bundled for word analysis and offline lookups

D58. Bundled data is refreshed monthly through a pull request, never merged automatically

D59. Parallels and cross-references are built from the bundled canon and commentary, never from SuttaCentral

D60. One normaliser for Pāli typed on an English keyboard, conservative and always labelled

D61. Sutta names resolve only when they name one text; ambiguous names list the candidates

D62. English questions are expanded into Pāli from DPD’s English index, never from invented glosses

D63. Batch integration testing