はじめに
ChatGPTで仕様を整理してGitHub Issueを作成し、Codexで実装、その後ChatGPTでPRレビューする流れで個人開発を進めています。
この運用を続けていると、毎回同じ開発ルールを指示する場面が増えてきました。
そこで、プラットフォームや言語に依存しない部分を "app-development" という共通Skillにまとめ、GitHubで一元管理することにしました。
Skillの正本を1か所にする
共通Skillの正本は "ai-dev-bridge" リポジトリに置きました。
skills/
└── app-development/
├── SKILL.md
├── agents/
│ └── openai.yaml
└── references/
├── issue-guidelines.md
├── implementation.md
├── coding-guidelines.md
├── quality-checks.md
├── security.md
├── testing.md
├── dependencies.md
├── impact-analysis.md
├── pr-guidelines.md
├── review.md
└── definition-of-done.md
各アプリのリポジトリで別々に管理すると、ルールを変更したときに内容がずれていく可能性があります。
そのため、共通ルールは "ai-dev-bridge" 側だけを正本として更新し、必要なプロジェクトへ同期する方針にしました。
共通化した内容
今回まとめたのは、主に以下のような開発フローです。
- GitHub Issueを実装仕様の正本として扱う
- Codexへの依頼は原則としてIssue番号だけにする
- 既存の設計やコーディング規約を優先する
- Build、Unit Test、Lint、静的解析など意味のある品質チェックを行う
- セキュリティ観点を実装・レビューの両方で確認する
- OSS依存関係の脆弱性、EOL、バージョンを確認する
- 変更影響や回帰リスクを確認する
- Definition of Doneを満たしてから完了とする
- PRレビュー時にはIssue、差分、GitHub Actionsの結果まで確認する
静的解析については、特定のツール名には固定していません。
言語やプラットフォームによって適切なツールは変わりますし、今後新しいものも出てくるためです。
その時点のリポジトリや開発環境に合った「意味のあるチェックを行う」という方針にしています。
各プロジェクトへ同期
最初の利用先として、現在開発している以下の2リポジトリへ同期しました。
- NAS Photo Backup
- PhotoToolkit
各リポジトリでは次の場所に配置しています。
.agents/skills/app-development/
共通ルールを変更するときは各プロジェクト側を直接修正せず、まず "ai-dev-bridge" 側を変更し、その後同期する運用にします。
今後
Skill自体はまだ初版です。
実際のIssue作成、Codexでの実装、PRレビューで使いながら、
- 足りないルール
- 過剰なルール
- 実際には機能しない指示
- プラットフォーム固有に分離した方がよいもの
を確認して更新していく予定です。
AndroidやPCなど固有のルールは、共通Skillへ詰め込まず、必要になった段階で別Skillとして分離する方向で考えています。