Codexへの自走指示
生成AIと手を取り合ったプログラム開発にもいい加減少しは慣れていく必要がある。
コピペコーダーにはなりたくない思いから、これまでもコーディングにおいてはChatGPTに質問して得た部位についても自分で理解をしながらエディタに書き込んできた。しかしやればやる程、手の動かし方という意味ではほぼ Copy&Paste になっていることは否めないし、AIの出すコードの妥当性についても段々と信用できるなと思い始めている。ならばもう、書き込むことをAIに任せても良いだろう。レビューとマージでもって俺のものにしていく。
丁度小さく切り出したIssueが GitHub にあるので、その対応をCodexにさせてみることにした。
Codex Prompt
@GitHub Issue #110 を対応してください。
- Issue の内容と現在のリポジトリ構成・実装を確認した上で、必要な変更を実装してください。
- 対応にあたっては mainブランチからこの対応のための新しいブランチを生成し、その中で作業を行ってください。
- 実装方法については、既存の構成やスタイルを踏まえて適切だと思う方法を選んで構わいません。
- 特に、Blog 専用スタイルとサイト共通スタイルを分けるべきかについても、現在の利用状況を確認して判断してください。
- ただし、今回の目的は CSS の外部ファイル化なので、見た目や既存のレスポンシブ挙動などを意図せず変更しないこと。Issue と直接関係のないリファクタリングや仕様変更は行わないこと。
- 変更後は可能な範囲で動作確認・テストを行い、最後に以下をまとめて報告してください。
- 変更した内容
- CSS の配置・分割方針とその理由
- 実施した確認・テスト
- 判断が必要だった点や残課題があればその内容
プロンプトに関するメモ
- 今回の実施だけでは「Codexに指示を出す時のテンプレート」はまだできそうにない。少しずつ色々なことをさせて育てていく。
- ブランチを切って作業することは明示。目的を明確にした上で、「余計なことはするな」も明示。
- 現行の実装を見ながら必要な作業をせよ、という言い方をしている。細かくどのようにしろとは言わず、そこはよしなにの状態。
- ファイル分割如何など「どうした方が良いか」を判断させた。
- 試験内容にも詳しくは言及していない。
- 最後にこれこれを報告せよ、と書いて自分がレビューしやすいようにしている。
- 「構わいません」などの誤字が含まれている。
結果
- Issue #110
- PR #113
- Codex Cloud で実行
- 実装レビュー: ChatGPTでPRレビュー、修正要求なし。差分については自分でも目視確認済み。
- 実機確認: 問題なし
メモ
- Codexに対するPush指示は上手く行かない。ドラフトPRの作成を指示する。
- ⇒
git push -u origin issue-110-externalize-css— 実行環境のHTTPSプロキシがGitHubへの接続を403 Forbiddenで拒否したため、pushできませんでした。 - 今回はCloud内部でのコミットまでで止まってしまったので次回は「対応後にドラフトPRを作成してください」を追加すれば通るかも。
- ⇒
- 対応後の Issue には「このタスクに対してこれこれのPRが作られた」はコメント等に出てこないが、PR側には「このIssueのための作業である」は紐ついているので良しとする。
- Issueへのコメント追加は(Pushと同様に)上手く行かなかった。
- ⇒
gh issue comment 110 --repo me/repo --body ...— GitHub CLIに認証情報が設定されておらず、gh auth loginまたはGH_TOKENが必要なため、Issue#110 へのコメント投稿は完了できませんでした。
- ⇒
- ローカルで実施するならば PhpStorm を介することで良いが、その場合はPushやPR作成の指示はする必要がない。「テストを行い」の部分で自ら「php artisan serve」して動かした上で、Codexが試験を進められるかどうかを見たい。