By SaadRahman01
Develop and maintain Moodle plugins with automated scaffolding, code audits for security/accessibility/GDPR, PHPUnit/Behat testing, cross-version upgrades, and mobile integration — all within Claude Code.
Bump version.php and add an upgrade.php step for a Moodle plugin.
Audit a plugin's capabilities — verifies db/access.php declarations match runtime require_capability/has_capability calls, checks risk bitmasks, default archetypes, and lang strings.
Run phpcs with the Moodle coding standard and fix reported issues.
Lint Mustache templates for accessibility, security, hard-coded strings, and Moodle template conventions.
Scaffold a new Moodle plugin (asks for type + name).
Use this agent for a deep, Moodle-specific code review of a plugin or PR diff. Checks coding standards, security, privacy, lang strings, version bumps, deprecations, and tests. Returns a structured report.
Use this agent to generate a complete Moodle plugin skeleton from a brief description. Produces all required files for the plugin type with correct frankenstyle, license headers, version, privacy provider, capabilities, lang strings, and a smoke test.
Use when ensuring Moodle plugin UI meets WCAG 2.1 AA — semantic HTML in Mustache, ARIA via core helpers, keyboard navigation, color contrast in SCSS, focus management in modals, screen reader testing, and Pa11y/axe automation.
Use when writing JavaScript for Moodle — AMD modules, ES6 source, grunt build, RequireJS loading, core/ajax + core/str + core/templates + core/modal + core/notification, Mustache template hydration, and AMD unit tests.
Use when writing or running Behat acceptance tests for Moodle plugins. Covers feature files, custom step definitions, tags, data generators in Background, JavaScript scenarios, and Selenium/Chromedriver setup.
Use when implementing or migrating to the Moodle 4.4+ Hooks API. Covers hook class authoring (db/hooks.php), callback registration, dispatching, replacing legacy magic callbacks (extend_navigation, before_http_headers, etc.), and testing hook listeners.
Use when integrating a Moodle plugin with the Moodle Mobile app — db/mobile.php remote templates, Ionic/Angular components delivered server-side, mobile.php view types, addons, push notifications, and offline support.
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
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.
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— livemoodledev.iodocumentation search inside Claude Desktop / Code, Cursor, Continue, Cline.pipx install moodle-mcp.
Claude already knows PHP. It does not know:
local_<name>, mod_<name>, block_<name>, ...)upgrade_plugin_savepoint rulesnull_provider vs request\plugin\provider)require_login security patternlib.php callbackspluginfile.php file-serving callbackresetAfterTest, generators, tags)get_remote_addonsThis plugin teaches Claude all of it. Auto-activates when Claude detects Moodle work.
/plugin marketplace add https://github.com/SaadRahman01/claude-moodle-dev
/plugin install moodle-dev@moodle-dev
(If [email protected] 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.
./install.sh <cursor|copilot|aider|continue|generic> [--dest <path>]
Defaults to current directory. Or copy manually as below.
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.
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.
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.
Copy adapters/continue/ into ~/.continue/ (merge with existing config.yaml). Skills load as rules; commands appear as slash prompts.
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.
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.