同じようなプロンプトを何度も書いていた
agentic codingを始めてしばらく経った頃、あることに気づいた。同じような指示をAIに毎回ゼロから書いている。
「Reactコンポーネントを作って」「スタイルはTailwindで」「Propsの型はこうで」「エラーハンドリングはこうやって」—— 毎回同じ前置きを書いているのに、その指示を再利用できる形にしていなかった。
AIに作業を任せているつもりが、AIへの指示出しがルーティンワークになっていた。
ルーティンワークの扱い方の比較
| 毎回ゼロからプロンプト | テンプレートをコピペ | 抽象化してskill化 | |
|---|---|---|---|
| 初回の手間 | 小 | 中 | 大(抽象化が面倒) |
| 2回目以降の手間 | 同じ | やや減る | ほぼゼロ |
| 品質のばらつき | 大きい | 中 | 小さい |
| 再利用性 | なし | 低い(コピペは劣化する) | 高い |
| 他の人と共有できるか | できない | しづらい | しやすい |
抽象化の手順
- 一度AIにやらせた作業の、指示と結果のセットを保存する
- その指示から「このプロジェクト固有の部分」を抽出し、変数化する
- 残った部分を汎用的な手順としてまとめる
- それをskillファイルとして保存し、次回からは「このskillを使って」で済ませる
なぜ抽象化を面倒がってはいけないのか
この習慣を始めてから、同じような作業にかかる時間が体感で半分以下になった。一回抽象化に30分かかっても、二回目以降が5分で終わるなら、三回使えばペイする。
エンジニアなら誰でもDRY原則を知っている。コードをコピペするな、関数に切り出せというあれだ。AIへの指示も同じだ。コピペせず、抽象化して再利用する。
実践して思うのは、抽象化の一番の効用は「自分が何をやっているのかを自覚できること」かもしれない。一度やった作業を言葉にして整理すると、その作業の本質が見える。その気づき自体に価値がある。