こんにちは,shimasan0x00(@shimasan0x00)です.
今回、ChatGPTとCursor Composer, Chatを活用して「CursorRulesHub」というツールを開発しました.この記事では,開発過程や使用した技術,学びについて詳しく紹介します.
特に,AIツールを活用した効率的な開発プロセスと,その過程で得られた知見に焦点を当てています.
本記事のポイント
- AIツールを活用した効率的な開発フロー
- ChatGPTとの効果的な対話方法
- Cursor Composerの実践的な活用方法
開発したサービス:CursorRulesHub
CursorRulesHubは,Cursorエディタの設定ファイル(.cursorrules)を効率的に探索・参照できるプラットフォームです・
主な機能
- GitHubからの.cursorrulesファイルの自動収集
- スター数や言語によるフィルタリング
- 日次での自動データ更新
開発プロセスとAIツールの活用
今回,CursorRulesHubの開発にあたって以下のフローで進めました.
- 作成するサービス(ツール)の仕様や内容の壁打ち
- 実装
- Cursor Composer, Cursor Chat
1. 仕様検討フェーズ
ChatGPTとの対話を通じて,サービスの仕様を段階的に具体化しました.
- 仕様の壁打ち: ChatGPTを相手に,サービスのアイデアを具体化
- プロンプト例: “このサービスを提供するうえで考慮すべき点を理由とともにステップバイステップで提示してください.”
- 最初から構造化しなきゃ,構造化しなきゃと考えずにChatGPTのフォローを受けたほうが進むことがある
- 各項目の深掘り: 構造化された設計に基づき,詳細を詰めていく
対話のコツ
- 構造化された指示
- Markdown形式で指示を出す
- 各要件に理由を付けて説明を求める
- 段階的に詳細化していく
- プロンプトの過信を避ける
- ユーザは的確な指示を出せているわけがない
- ChatGPTと壁打ちするのに躊躇している人は深く考えずに取り敢えず思ったことを入力する意識
- 具体的な壁打ち例
- 提案された仕様の現実性を検証
- 例:GitHub APIの利用頻度の最適化
- 当初:リアルタイムでのAPI呼び出し
- 改善:24時間ごとのバッチ処理に変更
2. 実装フェーズ
Cursor ComposerとCursor Chatを使用して実装を進めました.
- Cursor Composer: 事前に作成したpromptを元に対話しながらメイン実装
- Premium modelsへのrequestは120回くらい
- 今回はコマンド実行の自動化は有効化せず,全部確認
- プロセスをすべてリアルタイムで追いたかった
- push前にセキュリティインシデントが起きないようチェックするプロセスを追加
- .cursorrulesファイルは重要
- Composerは全体像の把握が重要
- Cursor Chat: 実装を進めていくうえでの相談,検討事項の共有
開発で出会った事象
- 重複する処理を記述する
- リポジトリ全体を最初にスキャンさせてもcontextにコードファイルを追加しないとダメだった
- GitHub Actionsの重複
- デプロイとデータ更新の2つを作成
- 実際はデプロイのワークフローにデータ更新も含まれているのでデータ更新のワークフローは不要だった
- データ収集スクリプト
- config.pyを作成してGitHub APIへのQueryを制御しているはずにも関わらずデータ収集用のプログラム内でQueryを作成していた
- 入力が多く,一度新しいComposerに切り替えた
- 全体を薄く作ったらあとは別々のComposerで細かく作るのがよいのか?と思った.次は試してみる.
おすすめのプラクティス
実装後,Cursor Composerにサービスを構成するためのプロンプトを生成してもらう
- 次回の開発への知見として活用
- Composerとの入力とリポジトリ内容のスキャン結果に基づいて作成される
- リポジトリのprompts以下に配置しているので参考にしてみてください
まとめ
ChatGPTとCursor Composerを活用した今回のツール開発を通じて,効率化の可能性や課題を多く学びました.特に,AIを活用した壁打ちやプロンプト設計の改善は大きな成果でした.
Cursor Composerのおかげで,イメージから実装までのスピードが向上し,思ったことを具体化しやすくなった気がします.今までより上流工程の理解が必要なことは明らかなので勉強していきます.
ABOUT ME
高専→大学編入→大学院→データエンジニア
専攻は計算社会科学,ウェブマイニング
趣味でSNSやVTuberのデータ集めたり分析しながら生活している