以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2026/03/15/234830より取得しました。


AWESOME-COPILOTのドキュメントを読む その60(Code Generation Guidelines)

本日はAWESOME-COPILOTの技術調査枠です。
AWESOME-COPILOTのドキュメントを読みながら実際に操作を試して記事に残します。
今回はカスタムインストラクションの一つCode Generation Guidelinesについてです。

Code Generation Guidelines

Code Generation GuidelinesはNode.js + JavaScriptプロジェクトでVitestを使ったテスト開発を行う際のコーディングルールとベストプラクティスです。
VitestはViteエコシステムの高速テストフレームワークで、Node.jsやフロントエンドJavaScriptプロジェクトで広く使われています。

以下のページからCode Generation Guidelinesのインストールボタンをクリックして取得します。
github.com

インストールボタンを押してCode Generation Guidelinesをダウンロードします。
すると.github/instructions配下にインストラクションがインストールされます。

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
このインストラクションを読み込むと、Copilotは以下の前提でコードを生成・レビューします。

  • Node.js 環境
  • ES Modules
  • async/await を使った非同期処理
  • Vitest によるテスト

次のような拡張子のファイルに適用されます。

**/*.js, **/*.mjs, **/*.cjs

具体的にはCopilotは以下のような行動をとります。

Node.js + ES Modulesを前提にコードを書く

CopilotはNode.js プロジェクトで以下を使う前提でコードを提案します。

  • ESM(ES Modules)
  • Node.js 20+
  • ES2022 機能

async / awaitを標準で使用

非同期処理は以下の理由からasync / awaitを使います。

  • 可読性が高い
  • callback を避ける
  • Promise chain を減らす

例えば以下のようなコードです。

async function loadConfig() {
  const data = await fs.readFile("config.json", "utf8");
  return JSON.parse(data);
}

callbackベースのコードは基本的に避けるようCopilotが提案します。

外部依存をできるだけ減らす

CopilotはNode.js 標準モジュールを優先します。
基本的にNode.js built-in modulesを使う提案になります。

シンプルで保守しやすいコードを書く

Copilotはコードが自己説明的であることを重視して次のようなコーディングスタイルを守ります。

  • 分かりやすい関数名
  • シンプルなロジック
  • 過剰な abstraction を避ける

そのため、不要なコメントを書かないというルールもあります。

Vitestを使ったテストを必ず作る

Copilotは必ずVitestを使ったテストを作成します。
以下のコード変更に対して必ずテストコードを生成するようになります。

  • 新機能
  • バグ修正

テストのために本体コードを変更しない

Copilotはテストを簡単にするために本体コードを変更しません。
つまり必ず本来のコードをそのままテストする提案を行い、テストしやすいようにコードを改変するような提案は行わなくなります。

エラー処理もテスト対象にする

Copilotはテストを書くとき、以下を含めたテストを生成します。

  • 正常系
  • 例外ケース
  • 不正入力



以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2026/03/15/234830より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14