00:00:00このチャンネルをフォローしていれば、
00:00:01これまで取り上げてきたさまざまなタイプのコンテキストエンジニアリングワークフローについてご存知でしょう。さて、
00:00:06Googleもまた新しいものをリリースしました。他のワークフローより優れていると言えたらいいのですが、
00:00:11実際はそうではありません。そして、
00:00:12これには多くの問題があります。たとえGeminiエコシステムにとって優れていると主張したとしても、
00:00:17やはり良いとは言えません。なぜこれをリリースする必要がなかったのかを掘り下げる前に、
00:00:21Automataについて少しお話ししましょう。数百万人の人々にAIを使った構築方法を教えた後、
00:00:25私たちはこれらのワークフローを自分たちで実装し始めました。そして、
00:00:28これまで以上に速く、
00:00:29より優れた製品を構築できることを発見しました。私たちは、
00:00:32アプリでもウェブサイトでも、
00:00:33あなたのアイデアを実現するお手伝いをします。もしかしたら、
00:00:36私たちの動画を見て「素晴らしいアイデアがあるけど、
00:00:38それを構築する技術チームがない」と思っているかもしれません。まさにそこで私たちの出番です。
00:00:42私たちをあなたの技術的な副操縦士だと考えてください。私たちは、
00:00:45数百万人に教えてきたのと同じワークフローをあなたのプロジェクトに直接適用し、
00:00:49開発チームを雇用したり管理したりする煩わしさなしに、
00:00:51コンセプトを実際に機能するソリューションに変えます。あなたのアイデアを現実へと加速させる準備はできていますか?hello@automata.devまでご連絡ください。
00:00:59さて、
00:01:00これがコンテキストエンジニアリングワークフローへのまた別の貧弱な試みである理由を説明する前に、
00:01:04まずConductorが実際にどのように機能するのかを掘り下げていきましょう。これが記事で、
00:01:09下の説明欄にリンクを貼っておきます。最後に、
00:01:11Gemini CLIで拡張機能としてインストールするためのコマンドが表示されます。ご存じない方のために説明すると、
00:01:17拡張機能とは、
00:01:17コマンド、
00:01:18MCP、
00:01:18その他のルールをまとめてパッケージ化し、
00:01:20ホストして他の人と共有できるようにしたものです。ClaudeにもPluginsと呼ばれる似たようなものがあります。実際にワークフローを開始するには、
00:01:28コマンドを使用してインストールします。インストール後、
00:01:30Conductorでスラッシュコマンドを使用できるようになります。Conductorを制御し、
00:01:35ワークフローを使用する方法を実際にコントロールする5つのコマンドが得られます。最初に使用するコマンドはセットアップコマンドです。
00:01:41このコマンドがすることは、
00:01:43まずセットアップ状態や、
00:01:44プロジェクトがすでに初期化されているかどうかを示す他のファイルなど、
00:01:48既存のConductorファイルが利用可能かどうかをチェックすることです。
00:01:51ストーリーの代わりに、tracksと呼ばれるファイルを作成し、それらを1つずつ完了させます。
00:01:56その後、
00:01:57新しいGitHubリポジトリを初期化し、
00:01:59何を構築するかを尋ねられました。テストのために簡単なプロジェクトを作成しましたが、
00:02:04作成されるアーキテクチャが実際に優れているかどうかをテストしたかったのです。そのため、
00:02:09実際に必要なものを推奨してくれるかどうかをテストするために、
00:02:12プロダクションレディで大規模なユーザー数に対応できるスケーラビリティを持つべきだと伝えました。その後、
00:02:18構築したいものの実際のコンセプトを含むproduct.mdファイルが作成されました。実際にそれを洗練させて作り上げるために、
00:02:25質問が始まりましたが、
00:02:26最終的には質問があまりどこにも繋がらず、
00:02:28本当に単純的だったので、
00:02:30すべて自動生成させることにしました。プロダクトガイドを承認して保存した後、
00:02:34プロダクトのスタイリングやいくつかのデザイン原則に主に焦点を当てたプロダクトガイドラインという別のファイルを作成したいとのことでした。それも承認し、
00:02:42プロダクトガイドラインも保存されました。その後、
00:02:45技術スタックを定義しましたが、
00:02:47これがワークフローが良くなかった理由の1つです。私のプロジェクト全体を把握していたにもかかわらず、
00:02:52提供された技術スタックが混乱しており、
00:02:55適切なものを推奨していませんでした。それを修正した後、
00:02:58技術スタックも承認され、
00:02:59そのMDファイルも更新されました。また、
00:03:01コードスタイルガイドと呼ばれるファイルもあります。実際のフォルダーに入ると、
00:03:06これらだけの言語があり、
00:03:07プロジェクトでこれらのいずれかを使用すると判断すると、
00:03:10初期化中に現在のプロジェクトのコードスタイルガイドに追加されます。使用されているデフォルトのワークフローは実際にかなり良いものです。デフォルトでは80%のコードテストカバレッジが含まれており、
00:03:21セットアップやベースコンポーネントの作成中には、
00:03:24テストも確実に記述されており、
00:03:26タスク完了後にもテストが実行されていました。同時に、
00:03:29すべてのタスク後に変更をコミットし、
00:03:31git notesも使用しているため、
00:03:33何か問題が起きた場所やタイミングを実際に追跡できました。初期セットアップの完了後、
00:03:38最初のtrackに取り掛かれるように、
00:03:40いくつかの高レベルの製品要件が作成されました。これが実装しようとしていた最初のtrackです。
00:03:45繰り返しますが、
00:03:46これは広範すぎて、
00:03:47より小さなtrackに分割する必要がありました。1つのtrackで実行するには多すぎて、
00:03:52同時にこれだけのことを行うと、
00:03:53失敗する可能性が高くなりました。それを完了した後、
00:03:56implementコマンドを実行して作業を開始でき、
00:03:59tracksフォルダには、
00:04:001つずつ実装されるさまざまなtrackがあります。各trackには2つのファイル、
00:04:05plan.mdとspec.mdがあります。spec.mdには、
00:04:08技術スタックと最初に入力した情報から抽出された目標と技術的詳細が含まれています。plan.mdには、
00:04:141つずつ実装する必要があるタスクが実際に含まれています。実際にimplementコマンドを使用しているとき、
00:04:20tracks.mdを参照し、
00:04:22基本的にステータスに基づいて何をすべきかを実際に把握する各trackを見ます。空の場合は未開始です。これは進行中を意味し、
00:04:28これはtrackが完了したことを意味します。そしてご覧のとおり、
00:04:32この現在のtrackは進行中です。他のコマンドについては、
00:04:35statusコマンドは現在進行中の状況と、
00:04:37どのtrackが実行されていて、
00:04:39どれが完了していないかのステータスレポートを提供します。new trackコマンドを使用すると、
00:04:45新しいタスクのためにさまざまな質問が再度されます。また、
00:04:48既存のリポジトリにも実装しましたが、
00:04:50ほぼ同じように進みました。既存のファイルを確認して明確化のための質問をするだけで、
00:04:54新しいtrackを求められなかったので、
00:04:56少し違いました。
00:04:57新しい機能として、
00:04:58自分で新しいtrackを実装する必要がありました。そして、
00:05:02revertというもう1つの非常に賢い機能があり、
00:05:04これは実際に損害を軽減し、
00:05:06gitを認識しています。つまり、
00:05:07エージェントがどこかで失敗した場合に、
00:05:09gitを使用して支援します。さて、
00:05:11現在のファイル管理と構造はそれほど悪くありません。新機能や既存のタスクをtrackに実装し、
00:05:16それらを追跡する方法は実際にかなり良いです。しかし、
00:05:19指示の書き方やこれらのコマンドファイルの書き方は改善が必要です。なぜなら、
00:05:23すべてをチェックする必要があるコンテキストループを適切に管理していないからです。そして、
00:05:28変更があった場合、
00:05:29どのように変更する必要があるのかが不明確です。この初期プロセス中でさえ、
00:05:33多くの間違いがあったからです。最初の間違いは、
00:05:35各ドキュメントの作成を求めている間、
00:05:37私のアイデアを適切に分析しなかったことです。そして、
00:05:40多くのことについて私がガイドする必要がありました。十分だと思ったとき、
00:05:44残りのコンテンツを自動生成させました。そして、
00:05:46前述したように、
00:05:47技術スタックを定義している間も、
00:05:49多くのことを見落としていました。オプションBは良かったのですが、
00:05:53大規模なユーザー数に対応する完全にスケーラブルなアプリが欲しいと伝えたのに、
00:05:57明確化して必要だと明示的に伝えなければならなかった多くのことを見落としており、
00:06:01その後計画が修正されました。最初のtrackが生成されたとき、
00:06:04実際に入って、
00:06:05生成されたplanとspecsを確認しましたが、
00:06:08データベーススキーマが完全に不完全でした。アプリのセットアップに不可欠な多くのことが欠けており、
00:06:13再びガイドして正しい方向に導く必要がありました。さて、
00:06:16Geminiは実際に非常に優れたモデルです。そのため、
00:06:19実装されたコマンドがこのような動作をさせている原因だと疑わざるを得ません。
00:06:23そして、
00:06:24セットアップ自体は実際には良好であるにもかかわらず、
00:06:26私が信じる最大の理由は、
00:06:27メインのスラッシュコマンドに多くの問題があり、
00:06:30特にワークフローdotMDに問題があるということです。なぜなら、
00:06:33NPMを変更したいと伝えた後、
00:06:34大きな部分を台無しにしてしまったからです。代わりに、
00:06:37先ほど言及するのを忘れていたので、
00:06:39PNPMを使いたいと伝えました。なぜか、
00:06:41最初にバックアップを作成しようとしました。
00:06:43そして、
00:06:43その作業中に、
00:06:44NPMで作成されたファイルを削除する必要があると述べました。しかし、
00:06:48結局、
00:06:48すべての計画ファイルが含まれているコンダクターフォルダ全体を削除してしまいました。それを削除した後、
00:06:53継続的にフォルダを探していました。そして、
00:06:56見つからなかったとき、
00:06:57コンテキストとメモリに持っているすべてのものを使用して、
00:07:00コンダクターフォルダを再構築すると言いました。
00:07:02つまり基本的に、
00:07:03通常のコンテキストワークフローが行うべきこととは対照的に、
00:07:06すべてを書き直さなければなりませんでした。通常のワークフローでは、
00:07:09変更はメインのコンテキストファイルとその特定のタスクに関連するファイルにのみ影響するはずです。これがBe Madが効率的に動作する方法です。さて、
00:07:16もし突然何かを変更するように頼んでいなければ、
00:07:18うまくいっていたかもしれません。しかしそれでも、
00:07:20すべてのタスクを初期化していたとき、
00:07:22最初のトラックの実装を開始するように依頼すると、
00:07:24プロジェクトと必要な他のコアサービスを開始して初期化しました。さて、
00:07:28Superbase接続の環境変数を設定する段階になったとき、
00:07:31なぜか、
00:07:31明らかにダミーキーを入れながら、
00:07:33タスクを自動的に完了としてマークしました。Superbaseプロジェクトをセットアップしたり、
00:07:37実際のキーを提供したりするよう、
00:07:39私に尋ねることさえしませんでした。そして自動的にデータベーススキーマをプッシュしようとしました。実際のキーがなかったため、
00:07:44失敗しました。そして、
00:07:45文字列を再確認するように私に求めました。つまり、
00:07:48タスクが適切に更新されておらず、
00:07:49正しく従っていませんでした。正直なところ、
00:07:51エンドツーエンドの仕様開発には、
00:07:53現時点ではこれを使用しません。Be Madの方がはるかに優れた選択肢です。そして小規模プロジェクトの場合、
00:07:58私は依然として独自のコンテキストファイルを作成しています。これでこのビデオは終わりです。チャンネルをサポートして、
00:08:03このようなビデオを作り続けるのを手伝いたい場合は、
00:08:06下のスーパーサンクスボタンを使用してそうすることができます。いつものように、
00:08:09ご視聴ありがとうございました。次回またお会いしましょう。