[アップデート] Amazon Q Developer IDE でルールファイルを定義できるようになりました
いわさです。
先日、Amazon Q Developer IDE がアップデートされ、ワークスペースのルールを管理する機能が追加されました。v1.76.0+ から利用可能です。
今回も Visual Studio Code で確認しております。
ルールの作成
Q Developer のチャットウィンドウを確認してみると、新たに「Rules」というボタンが表示されていることが確認できます。
こちらから新しいルールの作成と、既存ルールの管理(適用させるかどうかの選択)が可能です。
Create a new rule ボタンを押すと新しいルールファイルを作成することができます。
まずはルールの名前を聞かれるので入力しましょう。
そうすると.amazonq/rules
というフォルダの下に新しいマークダウンファイルが作成されます。
重要な点がいくつかありまして、以下の公式ドキュメントにも記載されています。
Project rules are defined in Markdown files in the project's project-root/.amazonq/rules folder.
マークダウン形式であることと、.amazonq/rules
フォルダ下に格納されている必要があります。
後者についてはプロジェクトによっては別のマークダウンファイルでコーディング規約などを管理しているケースもあるので、任意のフォルダを指定出来るようになると嬉しい気もします。今後のアップデートに期待しましょう。
今回は CloudFormation テンプレートを作成するプロジェクトで以下のようなルールを作ってみました。
- CloudFormationテンプレートにはSystemNameパラメータを必ず含めてください。
- CloudFormationテンプレートにはEnvパラメータを必ず含めてください。値はprd/stg/devを許容できます。
- CloudFormationリソースにはNameタグを必ず設定してください。{SystemName}-{Env}-{リソースタイプ}-{その他}というフォーマットに沿った名前を付与してください。
- CloudFormationリソースにはCmBillingGroupタグを必ず設定してください。{SystemName}-{Env}というフォーマットに沿った値を付与してください。
のんピさんの以下の記事を参考にしています。この記事は本当にいいぞ。
ルールが存在する環境でエージェントコーディングを開始
上記ルールファイルを作成した状態で、テンプレートの作成指示を行ってみます。
すると、指定したルールファイルがコンテキストファイルとして使われていることが確認出来ました。
ルールで定義したものはこのように全てのやり取りでコンテキストに含まれるようになります。
作成された CloudFormation テンプレートを確認してみると、次のようにルールに従った実装をしてくれていることを確認しました。
AWSTemplateFormatVersion: '2010-09-09'
Description: 'CloudFormation template for VPC with one public subnet and EC2 instance'
Parameters:
SystemName:
Type: String
Description: Name of the system
Env:
Type: String
Description: Environment (prd/stg/dev)
AllowedValues:
- prd
- stg
- dev
InstanceType:
Type: String
Default: t3.micro
Description: EC2 instance type
KeyName:
Type: AWS::EC2::KeyPair::KeyName
Description: Name of an existing EC2 KeyPair to enable SSH access to the instance
Resources:
# VPC
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
- Key: Name
Value: !Sub ${SystemName}-${Env}-vpc
- Key: CmBillingGroup
Value: !Sub ${SystemName}-${Env}
:
さいごに
本日は Amazon Q Developer IDE でルールファイルを定義できるようになったので使ってみました。
挙動としてはコンテキストに自動設定されるというものではありますが、コーディング規約や実装ガイドラインみたいなものをマークダウン定義してプロジェクトの基本ルールとしてエージェントに与えたい需要はあったと思うので良さそうな機能です。
ルールファイルのパスをカスタマイズできると既に管理しているルールファイルも導入しやすくて良いので、今後に期待したいですね。