概要
本レポートでは、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-0a7a8064abc5c1aeeReClineの挙動:
- 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; redefi...
 
  
  
  
  

コメント