本文へ
ハクソク

世界を動かす技術を、日本語で。

プランモードは終了しました

元記事: 原文(aymannadeem.com)

概要

  • AIによるコード生成の加速 により、従来の計画モードの有用性が低下
  • Nuanced というアプリを開発し、計画と実装の連携を模索
  • AIモデルの進化 で明示的な計画文書の必要性が減少
  • AI生成テキストの可読性問題 やプロセス分断の課題が顕在化
  • 人間の理解力維持 と複雑性の可視化が今後の大きな課題

AI時代における計画モードの変容

  • AIによるコード生成 のスピードとボリュームの増加
  • 既存の インターフェース が新しいワークフローに追いついていない現状
  • 計画モードの歴史的役割
    • エージェントへの明確な指示 の提供
    • 人間の理解促進 の役割
  • モデルの進化により 明確な指示の必要性が減少
  • 理解の維持 は重要性が増すが、計画モードは最適な抽象化ではなくなりつつある

Nuanced開発の動機

  • 人間がソフトウェアシステムの全体像を把握 する難しさ
  • AIが短時間で 膨大なコードを生成 し、管理負担が増大
  • コード生成が 思考を置き去りにしがち で、設計や目的の吟味が疎かになる問題
  • アーキテクチャの曖昧さ が後の問題を引き起こすリスク
  • 複数エージェントの並列実行 による理解困難と集中力の低下
  • ユーザー入力→エージェント判断→コード→プロダクト挙動 の明確なトレースの欠如

計画モードの課題と理想のワークフロー

  • 既存の計画モードは コラボレーション性が不十分
  • チャットベース で計画を練るも、計画の管理が煩雑
  • 計画を 一時的なテキストから持続的なドキュメント へ昇華したいニーズ
  • 理想は 意図→実装→レビュー→検証 まで一貫したパイプライン
  • Nuancedは 人間の思考補助 を目指す設計

実装の失敗要因

  • 計画とプラン(成果物)を混同 した設計
  • AIモデルの進化 による計画文書の必要性低下
  • AI生成テキストの読みにくさ が情報の明確化を妨げる
  • プロセスの分断 が自然な思考や作業の流れを阻害
  • 計画と実装の 人工的な分離 がユーザー体験を悪化

計画と実装のインタラクティブな融合

  • 実際の思考は 計画と実装が有機的に交錯
  • Nuancedのインターフェースでは 「思考の終了」を強制 しがち
  • Codex のように、計画と実行の境界が曖昧化する流れ
  • モデルの進化で 自律的な行動と自己修正 が可能に
  • 新しいループ: 理解→行動→検証→明確化→調整→再行動

プラン文書から思考プロセスへの転換

  • 最大の誤りは 計画を文書化すること自体 に重きを置いた点
  • 本質は 人間の理解を深めるプロセス設計
  • 計画モードとビルドモードの 不自然な分離
  • タスクごとに 計画の要否判断 がユーザーの負担に
  • AIが文脈に応じて自動的にモードを選択 すべきという気づき

人間の理解力維持という未解決課題

  • 何を作るか、なぜ作るかの思考 は依然として重要
  • AI生成テキストの大量化 は理解を助けない
  • チャットベースの意思決定 は直感的だが、システム変化への追従が困難
  • エージェント数増加で 人間の注意が分散
  • 最小限の人間の注意で最大の効果 を発揮するインターフェース設計の必要性
  • 複雑性の可視化と理解支援 が今後も続く根本課題

提供: ハクソク · 要約更新:

AIによる日本語要約です。内容は原文とあわせてご確認ください。

Hacker Newsの議論を読む

Hackerたちの意見

プランモードが死んだ本当の理由は、エージェントにリポジトリに変更を加えないように指示したり、特定のドキュメントだけに変更を加えるように頼んだりすれば、ちゃんと聞いてくれるからだよ。昔は、選択したツールを使って強制しなきゃいけなかったけど、今はそれを超えたんだ。

└

それに、計画や決定の監査トレイルを残すこともできない(デフォルトではね)。私のプロンプトのほとんどは、「変更Xのための計画を提案してファイルYに書き込む」とか、「ファイルYからステップM-Nを実行する」みたいな感じ。この記事についてだけど、このプロセスがなぜフォローする価値があるのかは、時間と注意を無駄にして初めてわかると思う。会話形式での構築は、無駄に向かう特急列車みたいだよ。何を作りたいのか理解してないなら、Claudeと話す意味がわからないな。

└

誤用の可能性が低くなったからって、サンドボックス対策を実装しないのは賢明じゃないと思う。

└

それに同意するよ。プランモードは、以前のモデルが自由すぎて好き勝手にやってたから生まれたんだ。今のモデルは指示に従うのが上手くなったから、別のモードは必要なくなった。でも、実行よりも計画のために別の賢いモデルを使う価値はまだあるし、完了時に監査のために残しておくのもいいと思う。もしプランモードを使うなら、https://plannotator.ai/ がいいかも。私は通常、デフォルトモデルと会話して計画を正しい方向に向けさせてから、賢いレビュアーと一緒に反復して欠陥を見つけるんだ。

[Claude Codeで働いてる] 著者の意見には大体同意するよ:プランモードは役に立ってたけど、今はもう役に立たない。Claude Codeでは、プランモードは「プランモード中です、まだコーディングしないでください」っていうちょっとしたリマインダーをユーザーメッセージに追加するだけなんだ。これは数ヶ月前の日曜日の夜遅くに思いついたもので、毎回新しいセッションでコーディングする前にClaudeに計画を立ててもらうのが面倒になったから。人々が気づかないかもしれないことは、プランモードは常にプロンプトだったってこと。ツールセットを変更することはプロンプトキャッシュを壊すことになるから、ユーザーにとっては高くつくんだ。これがうまく機能していたけど、数ヶ月前にFableの初期バージョンを使っているとき、プランモードを使わなくなったことに気づいた。モデルがちゃんと理解してくれるようになったからだし、私がモデルに頼んだ複雑な作業のために、計画がインタラクティブで反復的になったから。Opus 5.5でも、Opusがその段階に達したと感じているよ。コードベースの理解のために、時々Claudeに変更の一部を説明するアーティファクトを生成させることがある。システムのコア部分に対する複雑な差分については、しばしば図やインタラクティブなデモを作らせて、変更や考慮された代替案をよりよく理解できるようにしている。これを頻繁にはやらないけど、必要なときにコードを説明するのに役立つ方法だと思う。これらのアーティファクトをPRにも添付するようにClaudeに頼んでいるから、他の人も理解できるし、未来のClaudeも文脈を持っている。

└

これは役に立つよ。モデルが実装する前に、どんな決定を下すかを見ることができるから。モデルは今は賢くなったけど、私の意図を間違って推測したら、アンダースペシフィケーションの問題は解決しないんだよね。

└

こんにちは、投稿の作者です。基本的には、私が言いたいのはこの違いです。歴史的に見ると、プランモードは2つの役割を果たしてきました。1つ目は、エージェントの指示を実行できるくらい具体的にすること。2つ目は、人間が何が起こるかを理解する手助けをすることです。エージェントが進化するにつれて、#1はあまり必要なくなってきていると思います。#2は逆に重要度が増してきていて、モデルがより多くのことを自分でできるようになると、より複雑な作業が増えてきます。私が考えを変えたのは#2のインターフェースについてです。私は、インタラクティブで反復的なワークフローの方が、人々が実際に理解を深める方法に近いと思うようになりました。特に、自分が作成していない長い生成文書を渡されるよりも。人間の理解の問題は本当に深刻ですけどね。

└

プランモードの初期バージョンでは、承認するとチャット履歴が消えて、新しいセッションの始まりとしてプランが提示されていた。あれが懐かしいな。すごくうまく機能していて、文脈がきれいに保たれていた。

└

これはしばらくうまくいっていたけど、数ヶ月前に初期バージョンのFableを使っているとき、プランモードを使わなくなったことに気づいた。モデルが理解してくれるようになったからだし、ますます複雑な作業を頼むと、計画がインタラクティブで反復的になったから。Opus 5.5では、Opusもその段階に達したと感じている。私にとっては逆で、Claude Codeのプランモードはほとんど不十分だ。個人的には、Claudeにプランを書いたマークダウンファイルを作成させて、それをplannotatorでレビューして、行ったり来たりする(大抵はコメントが問題で、コードじゃない)。それから新しいセッションを始めて、プランを元に種をまいて、Claudeに曖昧さや摩擦点、見落としを見つけさせて、それを解決してから実装する。再度plannotatorでレビューして、行ったり来たりしてからPRを送る。かつて想像された「バイブコーディング」ではないかもしれないけど、これでコードとアーキテクチャ、品質を完全に把握できるし、長期的な劣化も防げる。

└

モデルが理解しているという主張には反対だね。最近Fable 5.1で試した実例を紹介するよ。「証明書を使ってリモートシステムとの安全な通信を確立するためのGo関数を書いて。短く、単一の関数にして、使い方を説明して。」ってプロンプトを与えたんだ。出力は、どこにも要件として指定されていないのに、ファイルに保存された秘密鍵を使うことを強制してきた。Claudeが書いた関数は、秘密鍵ファイルの引数を取って、秘密鍵ファイルが必要なGolangの関数(tls.LoadX509KeyPair)を呼び出すんだけど、GoにはHSMやKMSのような他の形態の秘密鍵をサポートできるcrypto.Signerがあるのにね。「理解している」人(セキュリティにある程度経験がある人)は、これが機能するために秘密鍵の材料を必要としない選択をするはずだと思う。ちなみに、これはClaudeに特有のことじゃないよ。ChatGPTやGeminiも同じことをするけど、それぞれに独自の癖がある。ChatGPTは、サーバー認証のためにCAファイルも受け入れる唯一のものだったから、追加点をもらったよ。誤解しないでほしいけど、LLMはソフトウェア開発の未来(もしかしたら現在)だけど、完全に手放しで使えるようになるにはまだ道のりがあると思う。デザインを修正しなきゃいけないことがあるし、プランモードはその助けになってくれる。もちろん、Claudeの仕事に感謝してるよ。 :)

└

プランモードは、コードベースのメンタルモデルを更新しやすくしてくれるし、必要な変更のメンタルオーバーヘッドが本当にやる価値があるのかを判断するのにも役立つ。これが今、一番の制約要因になってるんだ(コードの差分を読むのはもうスケールしないからね)。

└

プランモードは役に立っていたけど、今は役に立たない。 > Claude Codeでは、プランモードは「プランモードにいるので、まだコーディングしないでください」というちょっとしたリマインダーをユーザーメッセージに追加するだけだよ。プランモードが役に立たないというのは、Claude Codeの実装が不足しているからだと思わざるを得ない。仮にそうだとしても、他のハーネスではプランモードがワークフローを安定させるのに役立っているよ。実際にコードを合成するのはプロセスの一部に過ぎなくて、ワークアイテムをエンドツーエンドでプロダクションに持っていくには多くのことが関わっているし、プランモードはこの流れに構造を与えてくれる。それ以上に、変更をコミットする前に再集結する機会でもあるんだ。プロセスを持続可能でスムーズなリズムに遅くすることで、結果的にプロセスを加速させるんだ。だから、Claudeのプランモードがコードの回転を早めるために設計されている一方で、例えばOh My Piのように戦略的に設計されているなら、ここでの認識の違いが説明できるかもしれない。無理に使う必要はないけど、このモードをループから切り離すつもりなら、可能性のある副作用に注意してね。

Hacker Newsで議論の続きを見る