QuranTech
Nineteen reference files and a set of rules, written for the AI agent that is about to write your Qur’an feature. It ships no code into your application, changes nothing at runtime, and is not in your dependency graph.
QuranTech is the one block in the set with no consumable data and no API. There is nothing to import, nothing to
fetch, no payload to parse. It is documentation aimed at a machine, for when an AI agent is writing code that
touches Qur’anic text and you would rather it already knew the things this domain punishes you for not knowing.
quran-ws/qurantech-skill, public and MIT. It was
transferred from the quranpedia organisation in September 2026; the old URL redirects, and the skill’s own
files still name quranpedia in places.
What ships
| Artefact | Path in the repository | What it is |
|---|---|---|
| Entry point | plugins/qurantech/skills/qurantech/SKILL.md | Triggers, an interview workflow, the mandatory rules, and an index of the references |
| References | .../skills/qurantech/references/*.md | 19 files, loaded by the agent only when the task needs one |
| Plugin manifest | plugins/qurantech/.claude-plugin/plugin.json | Declares the plugin namespace qurantech, version 1.0.0, MIT |
| Marketplace catalogue | .claude-plugin/marketplace.json | What /plugin marketplace add reads |
| Packaged skill | dist/qurantech.skill | A single file to upload to Claude.ai or attach through the API |
| Evals | evals/evals.json | Three benchmark prompts with assertions |
The reference files, by the question each one answers:
| Group | Files |
|---|---|
| Data and sources | data-sources.md · api-comparison.md · quranpedia-api.md · data-models.md |
| Text and display | text-rendering.md · mushaf-display.md · tajweed.md |
| Qirāʾāt | qiraat.md |
| Audio | audio.md · verse-recognition.md |
| Scholarly content | translations-tafsir.md · irab.md · content-types.md |
| Features | search.md · memorization.md · quranpedia-embed.md |
| Engineering | architecture.md · testing-qa.md |
| Ethics | adab.md |
Install it
Add it as a Claude Code plugin
The marketplace route gives you a namespaced skill and versioned updates. The repository states it needs Claude Code v2.1.205 or later.
/plugin marketplace add https://github.com/quran-ws/qurantech-skill /plugin install qurantech@qurantech-skillThat installs the skill as
/qurantech:qurantech.Or install it into another agent runtime
The repository documents a one-command install through the skills.sh CLI, which covers Claude Code, Cursor, Codex, Gemini CLI and GitHub Copilot.
npx skills add quran-ws/qurantech-skillOr copy the skill directory yourself
No tooling involved — an Agent Skill is a directory with a
SKILL.mdat its root.git clone https://github.com/quran-ws/qurantech-skill.git mkdir -p ~/.claude/skills cp -r qurantech-skill/plugins/qurantech/skills/qurantech ~/.claude/skills/qurantechOr upload the packaged file to Claude.ai
Upload
dist/qurantech.skillunder Settings → Capabilities → Skills, or attach it through the API's skills support. The file is committed to the default branch; there is no release or tag to pin, so you get whatever the branch holds when you download it.Check that it triggers
Skills load on relevance, not on command, so the useful test is a prompt rather than a version string. The repository suggests one:
add Warsh support to my Quran appIf the skill is live, the agent should start by asking which qirāʾah you support today and what your data model looks like, rather than writing a migration.
What it changes
Two things.
It front-loads an interview. For a new project SKILL.md instructs the agent to ask what you are building, the
target platform, which qirāʾah, which features, whether it must work offline, and which data sources — before
recommending an architecture. Picking the wrong Qiraah or the wrong text source is the change that is
expensive to undo later.
It makes a set of rules non-negotiable. references/adab.md is marked mandatory in the entry point. Its
rules are the adab of handling the text, section 7 of the Qur'an text
guideline, and the skill's file is generated from it, so the two cannot drift apart.
Alongside those it carries eleven engineering principles, among them never hard-code an ayah count (Quranic text, rule 5.2), because the counts differ across readings.
A skill changes what the agent knows; it does not check what the agent produced. An agent with QuranTech loaded still writes text into your database, and a dropped diacritic or a stripped waqf mark does not throw; it renders as slightly wrong Qur’ān. Keep the integrity check in CI: compare stored text byte-for-byte against the published source, or against the digest shipped with it. The skill tells the agent to do this. It cannot do it for you.
Two limits
It does not yet point at these blocks. The references name external sources — Quran Foundation, QUL, Tanzil,
QuranPedia, MP3Quran — and two of our repositories under their pre-transfer names, quranpedia/quran-svg and
quranpedia/qiraat-ayah-map. The string quran-ws does not appear anywhere in the skill, and Quran Text, Quran
Tajweed, Quran Engine, Quran Assets and Quran SVG Elements are not mentioned. If you want an agent to use the packages
documented on this site, name them in your own prompt or project instructions.
One of its numbers is contested. references/qiraat.md assigns the reading of Abū ʿAmr al-Baṣrī — and so
both of its riwāyāt, al-Dūrī and al-Sūsī — to the Basran counting system, total 6,204.
Our own measurements of the printed KFGQPC editions disagree: public/demo/fatiha.json records al-Dūrī at 6,217 and
al-Sūsī at 6,218 ayat, both closest to First Madinan, not Basran. Both kinds of number are meaningful, one a
scholarly counting position and the other what a publisher set in type, and we have not resolved which belongs
where. Do not let an agent write either number into a schema as settled. See
Ayah-counting systems.
How this is made, and how much to trust it
The repository labels itself experimental. The content is drawn from production Qur’an platforms, open datasets and the developer community, but coverage is uneven, recommendations about APIs and datasets age, and the benchmark suite is three prompts — enough to smoke-test the skill, not enough to claim a measured improvement.
There are no releases and no tags, so "the version you have" means "the state of the default branch on the day you installed it". The plugin manifest declares 1.0.0 and has not changed with content.
Treat it as a knowledgeable colleague rather than an authority: verify anything touching Islamic content with a qualified scholar, and review its technical output like any other code.
What this is not
| You want | Use |
|---|---|
| Verified Qur’anic text, in seven riwāyāt, with word numbering | Quran Text |
| Printed pages as vectors, with an addressable ayah layer | Quran SVG |
| Tajwīd rules as spans over the text | Quran Tajweed |
| Reference translation between counting systems | Qiraat Ayah Map |
| A runtime dependency of any kind | None of the above — QuranTech ships no code |