概要
本レポートでは、AWS Terraformコードの改修作業において、ClineのフォークであるReCline(Copilotの無料Language Model API、Claude 3.5 Sonnet搭載)とSourceSageを組み合わせた実験結果を報告します。
ReCline(Claude 3.5 Sonnet) ✖ SourceSage で Terraformのアーキテクチャを改修してもらった②
無事に有識者の方からのアドバイスのお蔭でClaude 3.5 Sonnet 使えました!
*4oよりもモッサリしているので、タスクによって切り替えた方がいいかもです https://t.co/jyyETEIK2C pic.twitter.com/SPu1MX4YOu— Maki@Sunwood AI Labs. (@hAru_mAki_ch) January 13, 2025
開発環境セットアップ
SourceSageのインストールと設定
# SourceSageのインストール
pip install sourcesage
# リポジトリ情報の収集
sourcesage
# 生成されるドキュメントの場所
.SourceSageAssets\DOCUMIND\Repository_summary.md
実験内容
1. セキュリティグループの改修タスク
前提条件:
- SourceSageによるリポジトリ構造の文書化
- ReClineの設定
指示内容:
下記で下記の複数のセキュリティグループをアタッチするようにして
cloudfront_security_group_id: sg-03e35cd397ab91b2d
default_security_group_id: sg-07f88719c48f3c042
vpc_internal_security_group_id: sg-0097221f0bf87d747
whitelist_security_group_id: sg-0a7a8064abc5c1aee
ReClineの挙動:
- SourceSageが生成したリポジトリ構造を基に、関連ファイルを特定
- 既存コードの依存関係を分析
- 変更が必要なファイルのリストを作成
- 段階的な変更を提案:
- common_variables.tf
- terraform.tfvars
- compute/variables.tf
- compute/main.tf
- networking関連モジュール
結果:
- 変数型の定義を
string
からlist(string)
に変更 - モジュール間の変数受け渡しをリスト形式に対応
- 関連するすべてのモジュールでの参照を更新
2. セキュリティグループの説明追加タスク
指示内容:
セキュリティグループそれぞれにdescription を付与して可読性を上げて
実装プロセス:
- SourceSageのリポジトリ構造を参照
- 関連するセキュリティグループ設定ファイルを特定
- 各セキュリティグループの役割を分析
- 説明文の追加と更新
ツールの統合効果
SourceSageの貢献
-
プロジェクト構造の可視化
- リポジトリ全体のマークダウンドキュメント生成
- ファイル間の依存関係の明確化
- モジュール構造の体系的な把握
-
LLMの制御強化
- プロジェクト全体のコンテキスト提供
- 関連ファイルの特定精度向上
- 不適切な変更の防止
ReClineの活用
-
コード解析と生成
- Terraformベストプラクティスの適用
- 型の整合性維持
- モジュール間の一貫性確保
-
インタラクティブな改修
- エラーフィードバックの提供
- 段階的な変更提案
- ユーザーフィードバックへの適応
具体的な変更例
# 変数定義の変更
variable "security_group_ids" {
type = list(string)
description = "List of security group IDs to attach"
}
# モジュール呼び出しの更新
module "compute" {
source = "./modules/compute"
security_group_ids = [
var.cloudfront_security_group_id,
var.default_security_group_id,
var.vpc_internal_security_group_id
]
}
結論
SourceSageとReClineの組み合わせは、以下の点で特に効果的でした:
-
構造化された開発アプローチ
- リポジトリ全体の文書化
- 改修影響範囲の正確な把握
- 段階的な変更管理
-
品質管理の向上
- コードの一貫性維持
- エラーの早期発見
- ベストプラクティスの適用
-
効率的な作業プロセス
- 必要な変更箇所の迅速な特定
- 自動化された文書生成
- レビュー工数の削減
この統合アプローチにより、大規模なインフラコードの改修作業を、より安全かつ効率的に実施することができました。特に、SourceSageによるリポジトリ構造の可視化が、ReClineのコード改修精度を大きく向上させる結果となりました。
参考サイト
GitHub - Sunwood-ai-labs/SourceSage
Contribute to Sunwood-ai-labs/SourceSage development by creating an account on GitHub.
Language Model API
A guide to adding AI-powered features to a VS Code extension by using language models and natural language understanding.
GitHub - julesmons/recline: Recline: The autonomous AI assistant that seamlessly integrates with your CLI and editor to create, edit and run; redefining how you code.
Recline: The autonomous AI assistant that seamlessly integrates with your CLI and editor to create, edit and run; redefining how you code. - julesmons/recline
コメント