SkillAgentSearch skills...

claude-moodle-dev

Moodle development toolkit for AI coding assistants. Skills for XMLDB, Hooks API, PHPUnit, Behat, AMD, privacy/GDPR, security, accessibility. Native Claude Code plugin + adapters.

Install / Use

npx skills add SaadRahman01/claude-moodle-dev

Installs into whichever agent you are using.

About this skill
šŸ“¦

Other

Other agent config

Quality Score

82/100

Category

Security

Supported Platforms

Claude Code

Our assessment of claude-moodle-dev

claude-moodle-dev scores 82/100 on our quality scale, 931st of 1,098 Security skills we index.

Its Other is 13 KB long, well organised into 27 sections with 7 code examples: a thorough specification that gives an agent plenty to work with.

It has 42 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
7/20
Freshness
11/15

Maintenance, license and trust

  • The repository was last updated about 5 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
  • Our last check on 2026-10-21 found the source still online.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 95/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

claude-moodle-dev compared with similar skills

All 4 of these similar skills score higher than claude-moodle-dev; compare them before choosing.

SkillScoreStarsUpdatedFormat
claude-moodle-dev (this skill)by SaadRahman0182425mo agoOther
Agent-Reachby Panniantong100109.8k1d agoCLAUDE.md
headroomby headroomlabs-ai10079.1ktodayCLAUDE.md
Scraplingby D4Vinci10099.1k1d agoMCP Server
crawl4aiby unclecode10087.0k3d agoMCP Server

Frequently asked questions

How do I install claude-moodle-dev?
Run npx skills add SaadRahman01/claude-moodle-dev. The install tabs above show the steps for each supported agent.
Which AI agents does claude-moodle-dev work with?
It is written for Claude Code, as a Other file. Other agents that read the same format can often use it too.
Is claude-moodle-dev safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is MIT-licensed and scores 95/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is claude-moodle-dev still maintained?
The repository was last updated about 5 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.

moodle-dev

The most complete Moodle development toolkit for AI coding assistants — skills, slash commands, and subagents that turn your assistant into a Moodle expert. Native plugin for Claude Code; ships with adapters for Cursor, GitHub Copilot, Aider, Continue, and a paste-anywhere bundle.

License: MIT Version Claude Code Plugin Cursor Copilot Aider Continue Moodle 4.x MCP companion PRs Welcome

Scaffolds plugins, writes XMLDB upgrades, audits privacy/security, generates PHPUnit + Behat tests, builds AMD modules, reviews PRs — all following official Moodle coding standards (PSR-4, frankenstyle, MOODLE_INTERNAL, GPL headers, get_string, $DB).

šŸ”Œ Companion MCP server: moodle-mcp — live moodledev.io documentation search inside Claude Desktop / Code, Cursor, Continue, Cline. pipx install moodle-mcp.


Why this plugin

Claude already knows PHP. It does not know:

  • Moodle's frankenstyle conventions (local_<name>, mod_<name>, block_<name>, ...)
  • XMLDB editor workflow + upgrade_plugin_savepoint rules
  • Privacy API contracts (null_provider vs request\plugin\provider)
  • Capability + sesskey + require_login security pattern
  • Moodle 4.4+ Hooks API vs legacy lib.php callbacks
  • pluginfile.php file-serving callback
  • Behat + PHPUnit Moodle harness (resetAfterTest, generators, tags)
  • AMD/RequireJS + grunt build
  • Mobile app remote templates + get_remote_addons

This plugin teaches Claude all of it. Auto-activates when Claude detects Moodle work.


Install

Claude Code (native plugin)

/plugin marketplace add https://github.com/SaadRahman01/claude-moodle-dev
/plugin install moodle-dev@moodle-dev

(If git@github.com SSH auth fails, use the full https:// URL as shown above.)

Local dev: /plugin marketplace add /absolute/path/to/claude-moodle-dev. Verify: /plugin list.

One-liner installer (any non-Claude assistant)

./install.sh <cursor|copilot|aider|continue|generic> [--dest <path>]

Defaults to current directory. Or copy manually as below.

Cursor

Copy adapters/cursor/.cursor/ into your project (or ~/.cursor/ for global use). Each skill becomes an on-demand rule; agents and commands surface via @<name> mentions in chat.

GitHub Copilot

Copy adapters/copilot/.github/ into your repo. copilot-instructions.md is applied to every chat in the repo; per-skill chatmodes appear in the chat-mode picker.

Aider

Drop adapters/aider/CONVENTIONS.md into your project root and add it to .aider.conf.yml:

read:
  - CONVENTIONS.md

Load individual skills on demand with /read-only adapters/aider/skills/<name>.md.

Continue.dev

Copy adapters/continue/ into ~/.continue/ (merge with existing config.yaml). Skills load as rules; commands appear as slash prompts.

Any other assistant

Paste relevant sections from adapters/generic/PROMPTS.md — it's one self-contained markdown file with every skill, agent, and command. Works with anything that takes a system prompt.


Companion MCP server: live Moodle docs

moodle-mcp is a separate Model Context Protocol server that gives any MCP-capable client (Claude Desktop / Code, Cursor, Continue, Cline, Windsurf) live access to the canonical Moodle developer documentation. The skills here teach conventions; the MCP server provides authoritative lookups.

What it adds

| Tool | What it returns | |------|-----------------| | search_moodle_docs(query, limit, offset) | Top hits on moodledev.io with title, URL, headings, excerpt. Synonym expansion (cap→capability, ws→webservice, hook↔listener), quoted-phrase boost, BM25 scoring, pagination. | | fetch_moodle_page(url) | Full body + headings for one page — follow-up after a search. | | get_hooks_api_listeners() | Core Hooks API index + detected hook classes. | | get_capability_docs(component?) | Access API + RISK_* quick-reference; optional component scope. | | lookup_db_xmldb(query) | XMLDB / schema / upgrade.php patterns. | | list_plugin_types() | Every Moodle plugin type with one-line hint + docs URL. | | get_version_info() | Current Moodle versions parsed from /general/releases. | | search_tracker(query, limit) | Issue search against tracker.moodle.org (Jira). |

Plus MCP resources (moodle://docs/apis/...) and prompts (moodle-plugin-skeleton, moodle-capability-review, moodle-hooks-migration).

No API keys. Sitemap + disk cache + conditional GET. Pairs cleanly with this plugin.

Install (Claude Code)

Auto-wired when installing this plugin via marketplace. Requires uv on PATH:

brew install uv      # or: pip install uv

The plugin's mcpServers entry runs uvx --from git+https://github.com/SaadRahman01/moodle-mcp moodle-mcp on demand — no manual pipx install needed.

Manual install (any client):

pipx install moodle-mcp
claude mcp add moodle moodle-mcp

Other clients: see moodle-mcp README.


What's inside

Skills (auto-activate)

| Skill | Triggers on | |-------|-------------| | moodle-plugin-development | Creating/modifying any plugin (all types) | | moodle-phpunit-testing | Writing/running PHPUnit tests | | moodle-behat-testing | Writing/running Behat acceptance tests | | moodle-amd-javascript | AMD modules, ES6, grunt build | | moodle-web-services | REST/AJAX/external functions, tokens | | moodle-security-audit | Security review, capability/sesskey audit | | moodle-privacy-gdpr | Privacy provider, GDPR compliance | | moodle-performance | MUC caching, query tuning, ad-hoc tasks | | moodle-accessibility | WCAG 2.1 AA, ARIA, screen reader checks | | moodle-theme-development | Boost child themes, SCSS, layouts | | moodle-upgrade-migration | Cross-version upgrades, deprecations | | moodle-mobile-app | Mobile app remote templates, addons | | moodle-hooks-api | 4.4+ Hooks API: authoring, listening, migrating magic callbacks |

Slash commands

| Command | What it does | |---------|--------------| | /moodle-new-plugin | Scaffold a new plugin (asks type + name) | | /moodle-bump-version | Bump version.php + add upgrade step | | /moodle-privacy-audit | Check privacy provider correctness | | /moodle-security-review | Run security checklist on a file/plugin | | /moodle-string-check | Find hard-coded English needing get_string | | /moodle-codestyle | Run phpcs with Moodle ruleset | | /moodle-mustache-lint | Lint Mustache templates: a11y, security, hard-coded strings | | /moodle-capability-audit | Cross-check db/access.php against runtime has_capability use |

Subagents

| Agent | Use case | |-------|----------| | moodle-reviewer | Deep PR review against Moodle coding standards | | moodle-scaffolder | Generates a plugin skeleton from a brief |


Example: from prompt to plugin

You:

Build a local_attendance_export plugin that lets teachers export per-course attendance as CSV. Needs a capability, a settings page, and a CLI script.

Claude (with this plugin loaded) generates:

local/attendance_export/
ā”œā”€ā”€ version.php                            # 2026050200, requires 2024042200
ā”œā”€ā”€ settings.php                           # admin_setting_configtext for default delimiter
ā”œā”€ā”€ lib.php                                # local_attendance_export_extend_navigation()
ā”œā”€ā”€ cli/export.php                         # require($CFG->libdir . '/clilib.php'); cli params
ā”œā”€ā”€ classes/
│   ā”œā”€ā”€ exporter.php                       # business logic, uses $DB
│   ā”œā”€ā”€ output/renderer.php
│   └── privacy/provider.php               # null_provider (no user data stored)
ā”œā”€ā”€ db/
│   ā”œā”€ā”€ access.php                         # local/attendance_export:export
│   └── install.xml                        # (empty — no tables)
ā”œā”€ā”€ lang/en/local_attendance_export.php    # pluginname, capability, settings strings
└── tests/exporter_test.php                # PHPUnit, resetAfterTest, generator

Every file follows Moodle conventions. require_capability + require_sesskey wired. PHPUnit test uses $this->getDataGenerator(). Privacy provider declared. version.php bumped correctly.


Example prompts

See EXAMPLES.md for 30+ prompts covering scaffolding, upgrades, testing, security audits, performance tuning, theme work, and mobile app integration.


Comparison

| | Vanilla Claude | + moodle-dev | |--|----------------|--------------| | Knows frankenstyle naming | partial | yes | | Bumps version.php correctly | no | yes | | Adds upgrade_plugin_savepoint | no | yes | | Writes privacy provider | rarely | always | | Adds require_sesskey on POST | no | yes | | Uses $DB not raw SQL | partial | yes | | Uses get_string() not English literals | no | yes | | Generates passing PHPUnit + Behat | no | yes | | Knows Moodle 4.4 Hooks API | no | yes | | Generates pluginfile.php callback | no | yes | | Mobile app remote templates | no | yes |


Repository layout

.claude-plugin/         # Claude Code plugin manifest
skills/                 # canonical skills (Claude reads these directly)
agents/                 # canonical subagents
commands/               # canonical slash commands

adapters/               # generated per-assistant — DO NOT hand-edit
  cursor/.cursor/rules/*.mdc
  copilot/.github/copilot-instructions.md + chatmodes/*.chatmode.md
  aider/CONVENTIONS.md + skills/ + commands/
  continue/config.yaml + rules/ + prompts/
  generic/PROMPTS.md    # paste-anywhere single-file bundle

scripts/build-adapters.py   # regenerates adapters/ from canonical files
install.sh                  # one-liner adapter installer for non-Claude assistants
tests/run.sh                # structural test harness (run before commit)
docs/ADAPTER_AUTHORING.md   # how to add a new assistant
.githooks/pre-commit        # phpcs + PHPUnit + version.php monotonicity (install: git config core.hooksPath .githooks)
.github/workflows/lint.yml     # CI: JSON, frontmatter, adapter sync, links, spellcheck, actionlint
.github/workflows/release.yml  # tag-driven release: bundle + changelog extraction + GH release
.github/CODEOWNERS          # auto-review routing
.github/dependabot.yml      # weekly GitHub Actions updates
SECURITY.md                 # vulnerability disclosure policy

Editing workflow

  1. Edit canonical files under skills/, agents/, or commands/.
  2. Run python3 scripts/build-adapters.py to regenerate adapters.
  3. Commit both. CI fails if adapters/ drifts from canonical source.

Compatibility

| Moodle | Status | |--------|--------| | 5.2 | supported (PHP 8.3 min, /public doc-root, React core, Oracle dropped — releases 2026-04-20) | | 5.1 | support

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars42
CategorySecurity
Updated4mo ago
Forks7

Languages

Python

Trust signals

95/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 info
claude-moodle-dev — Other: Install & Safety Check | SkillAgent