【ITニュース解説】Driving AI CLI Tools to Write Code: A Semi-Automated Workflow
2025年09月16日に「Dev.to」が公開したITニュース「Driving AI CLI Tools to Write Code: A Semi-Automated Workflow」について初心者にもわかりやすく解説しています。
ITニュース概要
AIツールがコードを書き、人間が設計・品質管理をする半自動プログラミングを紹介する。Pythonスクリプト等でAI(CLIツール)を動かし、自動でコード生成を繰り返す。詳細な仕様作成と人間によるレビューが重要で、開発者は高レベルな業務に集中し、生産性を高めることができる。
ITニュース解説
このニュース記事は、AI(人工知能)がコードを生成する仕組みを人間が半自動的に管理する、新しいプログラミング手法について解説している。具体的には、AIが継続的にコードを書き続ける環境を人間が制御し、人間はシステムの設計や品質保証、レビューといった高レベルな作業に集中するという考え方が提示されている。これは、システムエンジニアを目指す方々にとって、AIとの協業の未来を理解する上で非常に重要な内容である。
近年、Claude CodeやGemini CLI、QWENといった様々なAIコーディングツールが登場し、これらはコマンドラインインターフェース(CLI)経由で利用できるため、開発者の生産性を大きく向上させている。しかし、これらのツールを手動で一つずつ操作し、プロンプトと呼ばれる指示を与えてコードを生成させるだけでは、効率には限界がある。そこで提案されているのが「半自動化」のアプローチである。このアプローチでは、スクリプトと呼ばれる自動化されたプログラムを使ってAIツールを連携・管理する。具体的には、tmuxのようなツールを用いてターミナルセッションを維持し、AIが継続的に作業できるようにする。これにより、人間が構造化されたプロンプトを自動的にAIに送信し、AIの応答を収集し、タスクが完了するまでAIに作業を続けさせることが可能となる。最終的な目標は、人間が設計やアーキテクチャ、品質管理に専念できるよう、24時間 tireless(疲れを知らない)な「仮想開発者」がコードを生成し続ける環境を構築することである。
この半自動プログラミングワークフローは、主に四つの段階で構成されており、それぞれの段階で人間のレビューが不可欠であると強調されている。この人間によるレビューこそが、作業の健全性を保つ「秘訣」である。
第一段階は「プロジェクトの初期化と骨格作成」である。コードを書き始める前に、しっかりとした指針とプロジェクトの構造を確立することが重要だ。これが半自動化を可能にする基盤となる。具体的には、まずGitHubリポジトリを作成し、プロジェクトの基本的なドキュメント(例えば、cpp-linux-playgroundのような雛形)を用意する。そして、それを実際に使用する技術スタック(例:TypeScript)に合わせて書き換え、「PROJECT.md」などのファイルとして保存する。この段階で、使用する技術スタック(プログラミング言語、ツール、開発標準)、タスクの検証方法(テスト、品質保証)、静的解析やコード品質ツール、プロジェクトのディレクトリ構造、そしてGitのコミット規則などを計画しておく。AIはこのようなドキュメントの下書きを支援できるが、最終的な内容は人間が詳細に確認し、承認する必要がある。
第二段階は「タスクを詳細な仕様書に分割」である。次に、実装する機能や修正すべきバグの一つ一つを、詳細な仕様書として「@specifications/task_specs/」ディレクトリの下に作成する。この時点ではまだコードを書かず、詳細な計画に集中する。各仕様書には、機能の記述、実装手順、入力と出力、テストケース、そしてエッジケースや潜在的なリスクなどを定義する。このように詳細な計画を立てることで、あいまいさを減らし、AIが生成するコードの品質を劇的に向上させることができる。
第三段階は「コーディングプロセスの自動化」である。詳細な仕様書が完成したら、いよいよ実際の半自動コーディングが始まる。Pythonスクリプトを用いてAIコマンドラインセッションを連携・管理し、tmuxを使ってセッションを継続的に実行させる。そして、Claude、Gemini、QWENといったAIツールに対し、構造化されたプロンプトを送信してコードを生成させる。このプロセスでは、いくつかの重要なルールが適用される。一つは、AIが生成したコードを自動でコミットしないこと。もう一つは、コードの生成ごとに検証を実行すること。そして、プロジェクトの進捗を「TODO.md」ファイルに同期させ、それを「PROJECT.md」から参照できるようにすることである。このワークフローは、先行事例からヒントを得ており、プロンプトのパイプライン化やAIの応答をプログラムで処理する方法が示されている。また、もしタスクの実行が1時間を超えるようなら、AIに現在の進捗を再確認させるという工夫も紹介されている。
第四段階は「『完了』の明確な定義」である。タスクが「完了」したと見なされるには、明確な基準がある。それは、生成されたすべてのコードが計画と一致していること、単体テストがすべて合格すること、自動化スクリプトとプロンプトが適切に更新されていること、ビルドおよびテストのパイプラインがクリーンに実行されること、そしてGitに変更がコミットされていることである。これらの条件が満たされ、次のタスクに着手できる状態になったとき、そのタスクは「完了」である。最終的に、AIが「Done.」とだけ応答する状態が目標となる。記事では、TypeScriptの学習環境であり、CI/CD(継続的インテグレーション・デリバリー)が有効化された「ts-playground」が、このAI支援型半自動プログラミングの実践的な例として紹介されている。
このワークフローは意図的に「半自動化」であり、「完全自動化」ではない点が強調されている。その理由は、仕様策定やアーキテクチャ設計には依然として人間の洞察が必要であること、プロンプトやスクリプトはまだ発展途上であり、あらゆるケースを最初からカバーできるわけではないこと、そしてAIの出力は常に安定しているわけではないため、コード品質のチェックは不可欠であることにある。半自動化はコストが低く、再利用性があり、人間の制御下にあるため、現実的なアプローチだと考えられている。完全な自動化は、複数のAIエージェントシステムや複雑なコンテキスト管理を必要とし、現在の段階では「やりすぎ」であると判断されている。
AIが生産的に機能し続けるためには、プロジェクトのコンテキスト(文脈)が適切に構造化されていることが極めて重要である。具体的には、ガイドラインをカテゴリやディレクトリごとに整理し、タスクの仕様書も参照しやすいように構造化する。そして、AIにはそのタスクに関連する最小限の必要なコンテキストのみを与える。このようにすることで、AIは単なる高機能なオートコンプリート(入力補完)ではなく、真の「アシスタント」として機能できるようになる。
このワークフローは、AIと人間の役割を再定義するものだと言える。AIは「コーダー+アシスタント」として、細かいタスクの実行を担当する。一方で人間は「テックリード」として、システム全体の設計、AIが生成したコードのレビュー、そして品質管理といった高レベルな作業に集中する。AIは開発者を完全に置き換えるのではなく、人間の能力を増幅させるツールとして機能する。これにより、人間はより高度な思考、意思決定、問題解決に注力できるようになる。
簡単に言えば、この半自動プログラミングとは、まず強固なプロジェクトの骨格とドキュメントを整備し、次に作業を詳細でレビュー可能な仕様書に細分化する。そして、Pythonスクリプトやtmux、AIのコマンドラインツールを活用してコード生成を自動化し、最後に「完了」の定義を明確にして繰り返し作業を行う、という流れである。これは、AIを活用したコーディングを実践的に、低コストで試すことができる方法であり、スピードを追求しつつも、作業のコントロールを失いたくない個人開発者や小規模チームにとって理想的なアプローチとなるだろう。