From d6848902b52e42d8f9807d2d37e2e0795d914a4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Benedicte?= Date: Mon, 16 Feb 2026 19:14:42 +0100 Subject: [PATCH 1/2] Add Moodle instructions --- docs/README.instructions.md | 1 + instructions/moodle.instructions.md | 57 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 instructions/moodle.instructions.md diff --git a/docs/README.instructions.md b/docs/README.instructions.md index 7b2909619..96e2d33fe 100644 --- a/docs/README.instructions.md +++ b/docs/README.instructions.md @@ -143,6 +143,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for | [Power Platform MCP Custom Connector Development](../instructions/power-platform-mcp-development.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpower-platform-mcp-development.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpower-platform-mcp-development.instructions.md) | Instructions for developing Power Platform custom connectors with Model Context Protocol (MCP) integration for Microsoft Copilot Studio | | [PowerShell Cmdlet Development Guidelines](../instructions/powershell.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell.instructions.md) | PowerShell cmdlet and scripting best practices based on Microsoft guidelines | | [PowerShell Pester v5 Testing Guidelines](../instructions/powershell-pester-5.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell-pester-5.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpowershell-pester-5.instructions.md) | PowerShell Pester testing best practices based on Pester v5 conventions | +| [Project Context](../instructions/moodle.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fmoodle.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fmoodle.instructions.md) | Instructions for GitHub Copilot to generate code in a Moodle project context. | | [Python Coding Conventions](../instructions/python.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md) | Python coding conventions and guidelines | | [Python MCP Server Development](../instructions/python-mcp-server.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython-mcp-server.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython-mcp-server.instructions.md) | Instructions for building Model Context Protocol (MCP) servers using the Python SDK | | [Quarkus](../instructions/quarkus.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fquarkus.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fquarkus.instructions.md) | Quarkus development standards and instructions | diff --git a/instructions/moodle.instructions.md b/instructions/moodle.instructions.md new file mode 100644 index 000000000..3789ae162 --- /dev/null +++ b/instructions/moodle.instructions.md @@ -0,0 +1,57 @@ +--- +applyTo: '*.php, *.js, *.mustache, *.xml, *.css, *.scss' +description: 'Instructions for GitHub Copilot to generate code in a Moodle project context.' +--- + +# Project Context + +This repository contains a Moodle project. It is based on Moodle version XXXX (specify version). + +It includes: +- Plugin development (local, block, mod, auth, enrol, tool, etc.) +- Theme customization +- CLI scripts +- Integrations with external services using the Moodle API + +# Code Standards + +- Follow the official Moodle Coding guidelines: https://moodledev.io/general/development/policies/codingstyle +- PHP must be compatible with the core version (e.g., PHP 7.4 / 8.0 / 8.1). +- Do not use modern syntax that is not supported by core if it breaks compatibility. +- Class naming must use Moodle namespaces. +- Use the MVC structure in plugins (classes/output, classes/form, db/, lang/, templates/…). +- Mandatory use of Moodle security functions: + - `$DB` with SQL placeholders + - `require_login()`, `require_capability()` + - Parameters handled with `required_param()` / `optional_param()` + +# Code Generation Rules + +- When creating new classes, use the namespace `vendor\pluginname`. +- In plugins, always respect the structure: + - /db + - /lang + - /classes + - /templates + - /version.php + - /settings.php + - /lib.php (only if necessary) + +- Use renderers and Mustache templates for HTML. Do not mix HTML inside PHP. +- In JavaScript code, use AMD modules, not inline scripts. +- Prefer Moodle API functions over manual code whenever possible. +- Do not invent Moodle functions that do not exist. + +# Examples of What Copilot Should Be Able to Answer + +- "Generate a basic local plugin with version.php, settings.php, and lib.php." +- "Create a new table in install.xml and an upgrade script in upgrade.php." +- "Generate a Moodle form using moodleform." +- "Create a renderer with Mustache to display a table." + +# Expected Style + +- Clear and specific answers in the Moodle context. +- Always include files with full paths. +- If there are multiple ways to do something, use the approach recommended by Moodle. + From 23ed831d93e894bb656480dfb7e12d6b7f1c9395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Benedicte?= Date: Tue, 17 Feb 2026 09:05:53 +0100 Subject: [PATCH 2/2] Correct some mistakes following Copilot CI advice --- instructions/moodle.instructions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/instructions/moodle.instructions.md b/instructions/moodle.instructions.md index 3789ae162..6a82943cc 100644 --- a/instructions/moodle.instructions.md +++ b/instructions/moodle.instructions.md @@ -1,11 +1,11 @@ --- -applyTo: '*.php, *.js, *.mustache, *.xml, *.css, *.scss' +applyTo: '**/*.php, **/*.js, **/*.mustache, **/*.xml, **/*.css, **/*.scss' description: 'Instructions for GitHub Copilot to generate code in a Moodle project context.' --- # Project Context -This repository contains a Moodle project. It is based on Moodle version XXXX (specify version). +This repository contains a Moodle project. Ensure that any generated code is compatible with the specific Moodle version used in this project (for example, Moodle 3.11, 4.1 LTS, or later). It includes: - Plugin development (local, block, mod, auth, enrol, tool, etc.) @@ -19,7 +19,7 @@ It includes: - PHP must be compatible with the core version (e.g., PHP 7.4 / 8.0 / 8.1). - Do not use modern syntax that is not supported by core if it breaks compatibility. - Class naming must use Moodle namespaces. -- Use the MVC structure in plugins (classes/output, classes/form, db/, lang/, templates/…). +- Follow Moodle’s standard plugin directory layout (for example: classes/output, classes/form, db/, lang/, templates/…). - Mandatory use of Moodle security functions: - `$DB` with SQL placeholders - `require_login()`, `require_capability()` @@ -27,7 +27,7 @@ It includes: # Code Generation Rules -- When creating new classes, use the namespace `vendor\pluginname`. +- When creating new PHP classes in plugins, use the Moodle component (Frankenstyle) namespace that matches the plugin's component name, e.g. `local_myplugin`, `mod_forum`, `block_mycatalog`, `tool_mytool`. - In plugins, always respect the structure: - /db - /lang @@ -45,7 +45,7 @@ It includes: # Examples of What Copilot Should Be Able to Answer - "Generate a basic local plugin with version.php, settings.php, and lib.php." -- "Create a new table in install.xml and an upgrade script in upgrade.php." +- "Create a new table in db/install.xml and an upgrade script in db/upgrade.php." - "Generate a Moodle form using moodleform." - "Create a renderer with Mustache to display a table."