MRが楽しい

MRやVRについて学習したことを書き残す

AWESOME-COPILOTのドキュメントを読む その109(Project Context)

本日は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()みたいな架空関数を避けます。