0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChatGPTとCodexで共通利用する開発SkillをGitHubで一元管理してみる

0
Posted at

はじめに

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として分離する方向で考えています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?