本日はAWESOME-COPILOTの技術調査枠です。
AWESOME-COPILOTのドキュメントを読みながら実際に操作を試して記事に残します。
今回はカスタムインストラクションの一つProject Contextについてです。
Project Context
Project ContextはGitHub Copilot を「Moodle専用PHP/Plugin開発アシスタント」にするルールです。
Moodle は、学校・企業向けの「学習管理システム(LMS: Learning Management System)」です。
以下のページからGenaiscriptのインストールボタンをクリックして取得します。
github.com
インストールボタンを押してProject Contextをダウンロードします。
すると.github/instructions配下にインストラクションがインストールされます。

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
このインストラクションを読み込むと、CopilotはPHP、JavaScript、Mustache、XML、CSS/SCSSをMoodle開発前提で生成するようになります。
以下の関連ファイルを対象に動作します。
- **/*.php
- **/*.js
- **/*.mustache
- **/*.xml
- **/*.css
- **/*.scss
具体的にはCopilotは以下のような行動をとります。
Moodleプロジェクト前提になる
Copilotはコード生成時に Moodle repository と判断して振る舞います。
前提として以下を理解します。
- Plugin development
- Theme customization
- CLI scripts
- Moodle API integration
Moodle Plugin構造を強制する
Copilotは標準ディレクトリ構造を守ります。
例えば plugin を作ると以下の構成を遵守します。
local/myplugin/ ├── classes/ ├── db/ ├── lang/ ├── templates/ ├── version.php ├── settings.php └── lib.php
Moodle namespace(Frankenstyle)を使う
普通のnamespaceではなく、Moodle固有のFrankenstyle namingを使います。
Moodle標準実装を選ぶ
方法が複数ある場合、CopilotはMoodle recommended approachを選択します。
例えばフォームならmoodleformを優先します。
DB変更ならinstall.xml、upgrade.phpの正式手順を優先します。
生成できる機能
Copilotは特に以下の生成が得意になります。
ローカルプラグイン生成
local/myplugin/の雛形一式。
install.xml
DBテーブル定義。
upgrade.php
マイグレーション。
moodleform
フォーム生成。
Renderer + Mustache
UI表示。
Moodleに存在しない関数を作らない
Copilotは架空のMoodle APIを生成しないよう制約されます。
つまりmoodle_get_user()みたいな架空関数を避けます。