概要
Devin AIを利用してmarkdownファイルの設計書を作成します。
完成品サンプル
プルリク: https://github.com/shioharugit/iidxmemo/pull/1
markdown:https://github.com/shioharugit/iidxmemo/pull/1/changes
作成までの過程
GitHubアカウントとDevin AIを紐づけ
あまり特別なことはありませんでした。
このあたり参考に実施しました。
https://aismiley.co.jp/ai_news/devin-ai-github-core-enterprise/
なお、今回は特に課金せずfreeプランの範疇でできそうなのでそちらを使用します。
Devinを利用してブランチ・プルリク作成
操作したいリポジトリを選択して、以下のプロンプトを送信。
mainブランチからmd_file_testブランチを作成してください。
次にmainブランチにmd_file_testブランチをマージするためのプルリクエストを作成してください。
このプルリクエストは勝手にマージを行わないでください。
markdownファイルの設計書作成
以下のプロンプトを送信しました。
md_file_testブランチに下記のクラスの詳細設計所をmarkdown形式で出力してください。
対象ファイル:app/Http/Controllers/User/MemoController.php
出力先:doc/app/Http/Controllers/User/
添付した「[AI]詳細設計所作成PromptTemplate.md」のプロンプトテンプレートに従って作成してください。
[AI]詳細設計所作成PromptTemplate.md
## 設計書の構成
以下の項目を記載してください。
### 1. 基本情報
- クラス名
- 名前空間
- 役割・目的(クラスの責務を簡潔に説明)
- 関連サービス・コンポーネント(テーブル形式で関係性と説明を記載)
### 2. クラス構造
- 継承関係(基底クラス、実装インターフェース)
- クラス階層図(アスキーアート形式)
### 3. 定数定義
- クラス固有定数(テーブル形式:定数名、値、説明)
- 使用するその他の定数(テーブル形式:定数名、値、説明)
### 4. プロパティ
- プロパティ一覧(テーブル形式:名前、型、アクセス修飾子、初期値、説明)
- プロパティ詳細(各プロパティの型、説明、使用箇所)
### 5. 処理フロー
- シーケンス図(mermaid形式)
### 6. メソッド仕様
各メソッドについて以下を記載:
- シグネチャ
- 説明
- パラメータ(テーブル形式:名前、型、必須、説明、デフォルト値)
- 戻り値(テーブル形式:型、説明、備考)
- 例外(テーブル形式:例外クラス、発生条件、説明)
- 処理フロー
### 7. データベース操作仕様
- 使用DSN
- 使用テーブル(テーブル形式:テーブル名、操作種別、用途、メソッド名、DB名)
- SQL詳細(各SQLについて用途、SQL文、パラメータ、戻り値、トランザクション)
### 8. ログ出力仕様
- ログレベル
- ログ出力箇所
- ログファイル設定
- ログファイル例
### 9. エラーハンドリング
- 例外処理(テーブル形式:例外クラス、発生条件、処理内容、ログ出力)
- エラーレスポンス
- リトライ処理(テーブル形式:処理名、リトライ回数、間隔、条件、最大リトライ後の処理)
### 10. 変更履歴
- バージョン、日付、変更内容をテーブル形式
無事設計書が作成され、プルリクもそれに合わせて変更されました。
所感・まとめ
・思った以上に簡易な命令でmarkdownファイルを作成することができた。
・思った以上に詳細に設計書に起こしてくれた。
→今回、view側でAjaxを使用している処理があるが、そこもフロー図に反映されている。




