対話コンテキストをテキストファイルにexport/importし、別のAI sessionに引き継ぐAgent Skill
pull requestにおいて、やらない事とその理由が、レビューにも、コードの自動改善にも重要だ
色々AIと検討したけど採用しなかった設計や、試したけどダメだったというAI対話コンテキストを、読みやすい章立てでテキストファイルに書き出すAgent Skill 記載するもの
目的や実装したものの挙動。ただしコード読めばわかる詳細は除外
実装しなかった別案とその理由
調査・設計・実装の中で言語化された、隠れた制約事項
あえて今回は対応しない事にした物事
注意が必要な難所
検討した事が実装者とAIの会話ログにしか残らないのはもったいない
やった事はコード読めばわかる
検討した上でやらなかった事こそ、設計のレビューに必要な情報である AIで自動再調査できる
試したけどダメだった方法は、試し方がダメなのかもしれない
結果ではなくプロセスをレビューする
sub PR全ての試行錯誤コンテキストを統合PRに取り込むと、別のbugも見つけつつ、方針に沿って自動修正できる
特に、あえてやらない、と判断した物事が重要
検討し、採用しなかった設計や実装手段と、その理由
人間から、今回はやらなくていいと指示された事
やらない事リストが適切に引き継ぎできれば
feature PRでも、複数AI間の往復レビューを使って自動的なコードの改善ができる
しかし複数のsub PRを統合したfeature PRは、コンテキストが分断されている
AI session間でのcontext引き継ぎが必要だshokai.icon
1対1ではなく、1対多
feature PRのAIは、sub PRのAIたちが議論した内容を全て統合して理解しているべき
3つのsub PRで議論された事項がまとまっている
特に「やらなかった事」が書かれている
これを使って、3つのsub PRを統合したfeature PRでも自動コード改善ができる
新たなbugを発見し、自動改善できた
色々検討した結果あえて不自然な設計になっている箇所は、修正しない事を自動選択できた
3つのcontextをimport
https://scrapbox.io/files/6a258459601c8b4efdcf31af.png
bugハンティング開始
https://scrapbox.io/files/6a25845d601c8b4efdcf31b4.png
https://scrapbox.io/files/6a258461601c8b4efdcf31be.png
4番は、複数のsub PRの変更が合わさった結果server/clientでの実装に差異が出た事を報告しつつ、importしたcontextからこの差異が意図したものである事を理解し、修正対象ではないと弁護している
良い感じshokai.icon
1回のsessionに収まりきらないような長い開発でのAIとのcontextをどうやって集約して、統合レビュー時点のAIに渡すか
https://gyazo.com/87a3c3d70fac4f6bb1dfe0cf1f878aa7
https://gyazo.com/9c8054bd9428d6e4876f7a1bdc437dc5
https://gyazo.com/a1a2ef4bd6cb76b5e0f5d557628ff76d
https://gyazo.com/0d5c74579b0be1129163c3b38d6bddfe
ちょうど3つのsub PRがある開発タスクを対象にやってみようshokai.icon
結構うまく出てるように見えるshokai.icon
もしかしてこれって別のAIや、別の人間の開発者に引き継ぐ時にも有効な方法なのか?
prettierかける指示がSKILLに含まれている。これは各リポジトリのやり方に任せるべき
https://scrapbox.io/files/6a25848b601c8b4efdcf31f2.png
一旦ファイルとして書き出すと、対話コンテキストのレビューもできそうだなshokai.icon
このskillの開発プルリク自体の対話context
このブランチはfeature PRを経由しないので、commitに意図ファイルを含めない
代わりにコメントとして添付した
context exportの改善
https://scrapbox.io/files/6a258492601c8b4efdcf31fc.png
https://scrapbox.io/files/6a258497601c8b4efdcf3202.png
https://scrapbox.io/files/6a25849b601c8b4efdcf3206.png
概要欄の統合もできる
mergeされた動作確認方法ができる
https://scrapbox.io/files/6a2584ac601c8b4efdcf3214.png
元の3つがまともかつ衝突しない内容なので、当然まともにできる
案の定、.dev/contexts/*.mdを削除し忘れたshokai.icon
https://scrapbox.io/files/6a2584b2601c8b4efdcf321c.png
https://scrapbox.io/files/6a2584b6601c8b4efdcf321f.png
ブランチ名に/が含まれている時に、exportされたコンテキストファイルが深い階層に保存されてしまう
dependabot/npm_and_yarn/feed-5.2.0とか
ブランチ名の/は-に置換するべきだshokai.icon
「TEMPLATE.mdが見つからない」とよく言われる
SKILL.mdと同じディレクトリにある事がわからないようだ
書き出し日時が年月日だけだが、時分秒まで付けるべき
一日に複数回書き出されて、上書きされる可能性があるので
「export時点でPR未作成」と記載した後、PRを作成しても更新されない
export済みファイルがPR番号なし状態の場合の、PR番号確認手順が書かれてない
Claude Code.iconのcontextをCodex CLI.iconに引き継ぐ
https://scrapbox.io/files/6a2584bc601c8b4efdcf322a.png
さらにmerge
https://scrapbox.io/files/6a2584c0601c8b4efdcf322f.png
https://scrapbox.io/files/6a258507601c8b4efdcf3281.png
色々調査して試した結果、採用しなかった方法が全て残っていて良いshokai.icon*2
長くなってきた
ちょっと冗長なので、ブラッシュアップする
https://scrapbox.io/files/6a258512601c8b4efdcf328e.pnghttps://scrapbox.io/files/6a258515601c8b4efdcf3298.pnghttps://scrapbox.io/files/6a258518601c8b4efdcf329d.pnghttps://scrapbox.io/files/6a25851c601c8b4efdcf32a3.png
なんか良い感じになってきたような気がするshokai.icon
export後に作業してさらにexportした場合のマージ戦略が足りない気がしているshokai.icon
例えば新事実の発見によって問題が解決したり、事実誤認が見つかったりして、書き直しをした方が良い項目が出る事もあると思う
項目内でそのまま書き直すとか、あるいは項目間で移動させるとか、最適な方法は都度都度違うと思うけども
現状のSkillだと、既存の記録の書き直しについて何か指示は書いてありましたっけ?
https://scrapbox.io/files/6a258532601c8b4efdcf32dc.png
https://scrapbox.io/files/6a258540601c8b4efdcf32ee.png
https://scrapbox.io/files/6a258546601c8b4efdcf32fd.png
https://scrapbox.io/files/6a25854d601c8b4efdcf3308.png
分類ミスや不要情報の混入を防ぐ、マージルールを精緻化したshokai.icon
かなりよく、やる・やらない・その理由を別sessionのAIに引き継げるようになった