【ITニュース解説】Stop Writing The Same Prompts - Makefiles Changed Everything
2025年09月09日に「Dev.to」が公開したITニュース「Stop Writing The Same Prompts - Makefiles Changed Everything」について初心者にもわかりやすいように丁寧に解説しています。
ITニュース概要
AIへの繰り返しプロンプト入力を、コマンド手順書であるMakefileで自動化する手法。`make commit`等のコマンド実行で、過去の履歴やルールがAIに提示される。AIは実行結果から文脈を学習し、手動で指示しなくても適切な作業を行うことができる。(116文字)
ITニュース解説
AI、特にコーディングを支援するAIアシスタントとの対話において、毎回同じ指示を繰り返すことに煩わしさを感じた経験はないだろうか。「コミットメッセージは過去の形式に合わせて」「この規約に従ってコードを修正して」といった指示は、AIとのセッションが始まるたびに必要になる定型的な作業だった。しかし、この反復作業をなくし、AIとの連携を劇的に効率化するアイデアが注目されている。その鍵となるのが、古くから存在する「Makefile」というツールだ。
Makefileとは、本来、ソフトウェアのソースコードをコンパイルし、実行可能なプログラムを生成するまでの一連の作業、いわゆるビルドプロセスを自動化するために使われてきたツールである。ファイル内に「ターゲット」と呼ばれる作業の単位と、それを実行するためのコマンドの組み合わせを記述しておくことで、makeというコマンド一つで複雑な手順を間違いなく実行できる。例えば、make buildと入力するだけで、コンパイル、ライブラリのリンク、ファイルの配置といった複数のステップを自動で処理させることが可能だ。このMakefileを、AIへの指示を自動化するツールとして活用するというのが、今回のアイデアの核心である。
この手法の根底にあるのは、AIへの指示方法に関する発想の転換だ。従来の方法は、人間が自然言語で「何をすべきか」をAIに伝える「プロンプト」が中心だった。しかし、この新しいアプローチでは、AIに直接的な指示を与えるのではなく、AIが自ら文脈を読み取って「何をすべきか」を判断できるような情報を提供する。その情報の提供手段として、Makefileの実行結果を利用するのである。近年のAIアシスタントの多くは、開発者が日常的に使用するターミナル、つまりコマンドを入力してコンピュータと対話する画面上の文脈を深く理解する能力を持っている。Makefileに定義された一連のコマンドが実行されると、そのコマンド自体と実行結果がターミナルに表示される。この一連の出力が、AIにとって非常にリッチな「文脈情報」となるのだ。AIは、この実行結果を見ることで、人間から細かな指示を受けずとも、次に取るべき行動を自律的に推測できるようになる。
具体的な活用例として、ソフトウェア開発で頻繁に行われるGitのコミット作業を考えてみよう。通常、AIにコミットメッセージの作成を依頼する場合、「これからコミットする変更点を要約し、動詞から始まる形式でメッセージを作成して」といったプロンプトが必要になる。しかし、Makefileを使えばこの手間は不要になる。まず、commitというターゲットをMakefileに作成し、その中にコミットメッセージの作成に必要な情報を表示するコマンド群を記述する。例えば、git statusでどのファイルが変更されたかを表示し、git logで過去のコミットメッセージの履歴を数件表示させる。これにより、AIは過去のメッセージの形式や命名規則を学習できる。さらに、git diffで変更内容の差分を具体的に示し、最後にechoコマンドを使って「メッセージは動詞から始める」「変更の目的を明確に」といったルールをリマインダーとして表示させる。開発者はターミナルでmake commitと入力するだけで、これら全ての情報が画面に出力される。AIはこの出力全体を文脈として捉え、「現在の変更点」「過去のフォーマット」「守るべきルール」を総合的に理解し、適切なコミットメッセージを自動で生成してくれる。もはや、人間が毎回同じプロンプトを考える必要はなくなる。
この手法には、単なる効率化以上の大きな利点がある。言葉によるプロンプトは、その場限りの一時的な指示であり、セッションが終われば消えてしまう。しかし、Makefileはプロジェクトのバージョン管理下に置かれるファイルとして永続的に存在する。これは、プロジェクトの作業手順やノウハウが、誰でも再現可能な「生きたドキュメント」としてコード化されることを意味する。新しいメンバーがプロジェクトに参加した際も、Makefileを見れば、どのようにテストを実行し、ビルドやデプロイを行うべきかが一目瞭然となる。これは、作業手順の標準化と知識の共有に大きく貢献する。
最終的にこのアプローチは、AIとの協業のあり方を「指示」から「協調」へと進化させるものだ。AIに「何をすべきか」を細かく教えるのではなく、MakefileとGitの履歴を通じて「私たちはこれまでこうやってきた」という実績と方法論を見せる。AIはそれを学習し、プロジェクトの文化や文脈に沿った形で自律的に振る舞うようになる。Makefileに蓄積された「どのように行動するか」という知識と、Git履歴に記録された「なぜそうしたか」という理由が組み合わさることで、AIはプロジェクトの集合的記憶を学習するパートナーへと進化する。このように、古くからあるツールを新しい視点で捉え直すことで、開発の生産性を飛躍的に向上させる可能性が生まれる。システムエンジニアを目指す上で、こうした柔軟な発想とツールの本質を理解する力は、極めて重要なスキルとなるだろう。