Cueを学ぶ · タスクベースのチュートリアル
Cue音声入力とClaude Codeで小さなバグを修正する
口頭での説明は、アプリの使用中に気づいた詳細をそのまま記録できます。次のステップは、その説明を実際に検証可能な小さな変更へと変換することです。
執筆: Cue製品チーム (English) · 更新日: 。製品ソースのレビューに基づいて執筆されました。演習および出力内容は例示であり、記録されたCueの実行結果ではありません。インストールされているバージョンのUI表示に従ってください。
クイックアンサー
Cueで症状を記録し、テキストを確認して、適切なリポジトリ内のClaude Codeへ明示的に引き渡します。失敗するテスト例と許可するスコープについて合意した上で、パッチと実際のテスト出力を検査します。リリースの承認は別個に管理してください。
必要なもの: Dictation用に設定されたCue、認証済みのClaude Code環境、および再現可能なバグを含む使い捨てまたは認可済みのプロジェクト。結果: 前後の証拠を伴うスコープ限定のパッチ。口頭での指示によって動作するソフトウェアが自動的にリリースされることを保証するものではありません。
Cue を初めて使う場合 Dictation を設定 して話した言葉を入力するか、作業を依頼するために Agent モードを設定してください。開始前に、インストール済みバージョンの権限とショートカットを確認してください。
入力方法を選ぶ
別のアプリでバグの情報を集めるときは、Cue が役立ちます。ブラウザで問題を再現したり、Issue を読んだり、同僚のメモを整理したりしている場面です。詳細を覚えているうちに症状を一時メモへ音声入力し、文章を確認してから、再利用できる依頼文として Claude Code に渡します。コーディングを始める前に、複数のアプリから文脈を集めるための使い方です。
プロジェクトと依頼内容がすでに揃っていれば、Claude Code でそのまま続けられます。既存のセッションへの短い補足なら、直接入力するか貼り付けてください。Claude Code には標準の音声入力もあります。公式の音声入力ガイド(英語)では CLI の /voice が説明されており、Claude.ai アカウントとローカルのマイクが必要です。対応環境とアカウントの条件を確認してください。この場合、Cue は任意です。一時メモを挟む意味があるのは、依頼文を集めて編集したり、再利用したりしたいときです。
Cue Dictation で外部アプリに入力する
下の演習では、この方法を使います。Cue はフォーカス中の一時メモや対応するプロンプト入力欄に文字を挿入します。内容を確認して送信するのは自分で行い、コーディングは Claude Code が自身の環境で行います。Cue のコネクターは不要です。メモを渡しても、別のアプリの履歴、ファイル、権限が自動で引き継がれるわけではありません。
Cue 内の Claude コネクターを使う
これは Cue から外部 Agent を利用する別の方法です。作業を送る前に、接続、ログイン状態、選択したプロジェクト、権限を確認し、その経路で使うアカウントと課金も確認してください。Claude の選択肢が表示されているだけでは、利用準備が整っているとは限りません。インストール済みバージョンで実際に使える操作に従ってください。
Cue Agent でホスト型モデルを使う
Cue Agent に、渡した症状をもとに依頼文の下書きを作ってもらい、確認してから引き渡すこともできます。Cue Agent で Anthropic のモデルを選んでも、Claude Code が起動したり、リポジトリへのアクセス権が付与されたりすることはありません。ホスト型モデルの利用条件と課金は Cue アカウントに基づき、外部 Agent の接続とは別です。
ゼロ件カウントの演習を試すには、Dictation のあとに明示的にテキストを渡します。まず症状を話し、メモ内の zero、null、undefined を確認してから、資料 F-01〜F-03 を Claude Code に渡してください。自分の環境で、元の失敗するアサーション、範囲を絞ったパッチ、同じテストの成功結果が揃ったら演習は完了です。
検証可能な1つの変更から始める
本ガイドはバグレポートのブリーフ作成にとどまらず、コーディングAgentにレポートを渡した後の対応について説明します。最初のタスクは、誤った結果、期待される結果、およびその両方が発生する条件を述べられる程度に小さく保ちます。バグ修正をリデザイン、依存関係のアップグレード、またはリリースと混同しないでください。
- 該当する画面とスクラッチノートを開きます。共有を許可されている情報のみを使用してください。ノートの入力フィールドにフォーカスを合わせ、Cue設定に表示されているDictationショートカットを使用し、録音中であることを確認して症状を説明します。設定された操作で録音を停止し、処理を待ってから、テキストが一度だけ表示されたことを確認します。
- 送信する前に、名称、数値、否定表現を修正してください。Dictationは発話を記録するだけであり、リポジトリの編集権限を付与するものではありません。Cue Agentにレポートの構造化を依頼する場合は、下書きを要求し、アプリのコンテキストが不足しているときは関連するノートを明示的に提供してください。
- 対象プロジェクトでClaude Codeを開きます。作業ディレクトリ、ブランチ、および既存の変更点を確認します。確認済みのブリーフを貼り付けるか、フォーカスされたプロンプトフィールドに短いフォローアップを音声入力します。ターミナルのプロンプトにシェルコマンドを直接音声入力しないでください。
- 変更を提案する前に、関連する実装とテストを調査するようClaude Codeに求めてください。障害を再現できない場合は、不足している入力や環境の詳細を提供し、パッチを推測する許可は与えないでください。
本チュートリアルでは明示的なテキスト引き渡しを使用します。Cueのオプション機能である外部Agentセレクターには、独自の接続、認証、および権限チェックが必要です。Claudeのオプションが表示されていても、コネクターが正常に機能している証拠にはなりません。Cue独自のAgentにAnthropicモデルを選択することも、Claude Codeを実行することと同じではありません。ルートを選択する前に、Agentとモデルの違いを確認してください。他のツールでの既存の会話がノートと一緒に自動転送されることはありません。
実践: 結果ラベル内のゼロ件カウントを保持する
以下の架空のJavaScript演習は意図的に規模を小さくしています。タスクはラベル関数の修正であり、Cueや業務で使用するアプリケーションの変更ではありません。これらのファイルは、新規の使い捨てフォルダーにのみ作成してください。テストの実行にはNode.jsが必要です。コード例は通常のJavaScriptであり、Cueコマンドではありません。
ソース F-01 — 期待される挙動: この演習で扱う入力は、非負整数と、欠損値を表す null または undefined に限ります。ゼロは有効な件数なので 0 results と表示し、正の整数は既存の「数値 + results」という表記を維持します。欠損値は No count と表示します。入力バリデーション、単数形の表現、その他の入力の型や値に対する動作は対象外であり、それらの検証ルールは定義しません。
ソース F-02 — 開始時の実装、result-label.mjs:
export function resultLabel(count) {
return count ? `${count} results` : 'No count';
}
ソース F-03 — 現在の観測結果: resultLabel(0) を呼び出すと No count が返されます。これは提供されたコードから生じる結果であり、記録されたCueやClaude Codeの実行結果ではありません。この演習は、プロジェクト内の異なるバグの原因を特定するものではありません。
スクラッチノートに向かって次のように話してみてください:「0件の結果は実際のカウントであり、欠損カウントではありません。F-01からF-03を使用してください。この違いのみを修正し、nullとundefinedは欠損値のまま維持し、元のバグを検出するテストを提示してください。何も公開しないでください。」文字起こしされたノートで、zero、null、undefined が正しく表記されていることを確認してください。
ここで音声を使用する目的は、問題が新鮮なうちに意図を捉えることです。スペルが重要な場合は、コードから識別子をコピーしてください。すべての句読点を読み上げたり、ファイル全体を声に出して読んだりする必要はありません。
失敗するリグレッションテスト、次に最小限のパッチを要求する
以下のような公開動作のチェックを含む result-label.test.mjs の追加をClaude Codeに依頼します。実際のプロジェクトでは、本サンプルの設定を強制するのではなく、既存のテストランナーを使用してください。
import assert from 'node:assert/strict';
import test from 'node:test';
import { resultLabel } from './result-label.mjs';
test('zero is a count; only null or undefined is missing', () => {
assert.equal(resultLabel(0), '0 results');
assert.equal(resultLabel(null), 'No count');
assert.equal(resultLabel(undefined), 'No count');
assert.equal(resultLabel(3), '3 results');
});
node --test result-label.test.mjs を実行します。F-02に対しては、ゼロのアサーションが失敗するはずです。Nodeがインストールされていないこと、インポートエラー、または実行されないテストは、予期されるリグレッションの失敗ではありません。実装を変更する前に、実際の出力を保存してください。
関数の置き換え候補は以下のとおりです:
export function resultLabel(count) {
return count === null || count === undefined ? 'No count' : `${count} results`;
}
その候補は使い捨ての演習にのみ適用してください。テストを再実行し、変更された関数を検査します。テストが成功(グリーン)しても、それはこれら4つの入力をカバーしているにすぎず、考えられるすべての入力が有効であることや、無関係なアプリケーションを安全にデプロイできることを証明するものではありません。
実際の修正では、まず失敗するチェックを要求し、範囲を限定した実装を承認してから、同じチェックおよび周辺の既存テストに合格することを要求します。Anthropicの公式ベストプラクティスでは、検証可能な作業および探索と実装の分離が強調されています。本演習はその考え方を音声主導のタスクに適用したものであり、公式ドキュメントがCueの統合を検証するものではありません。
音声から修正への受け入れブリーフをコピーする
送信する前に大括弧で囲まれたフィールドを置き換えてください。引用資料がコマンド実行の許可と誤認されないよう、ソースはタスク指示の下に配置してください。
タスク: このリポジトリ内で、以下に説明する単一の挙動を修正してください。
作業場所: [確認済みのプロジェクトおよびブランチ]
ソース: [確認済みの症状、入力、期待される出力、実際の出力]
スコープ: [単一の挙動と影響を受ける範囲]
保持対象: [変更してはならない既存の作業および挙動]
まず現在のdiffを検査し、実際の呼び出しパスを特定してください。
公開インターフェース経由のテストでバグを再現してください。
セットアップエラーではなく、このバグが原因で失敗することを示してください。
私がスコープを承認した後、関連する最小限の変更を行ってください。
そのテストと該当する周辺のチェックを再実行してください。
エビデンス: 実際のコマンド、終了結果、関連する出力、およびスコープ限定のdiff。
阻害要因がある場合は不足している事実を述べてください。合格のためにアサーションを緩和しないでください。
コミット、プッシュ、デプロイ、認証情報の変更、無関係なファイルの編集は行わないでください。
残存リスクと簡潔な引き継ぎ内容を返してください。リリース承認のために停止してください。
修正を引き渡し可能か判断する
- 再現性: 元のゼロカウントチェックが正しい理由で失敗したこと。Agentが「再現できません」と報告した場合、タスクは調査段階のままです。
- スコープ: パッチが無関係なフォーマット、バリデーション、依存関係を追加することなく、欠損値とゼロを区別していること。タスク前に行われた変更を含め、変更されたすべてのファイルを確認してください。
- エビデンス: 実際に実行されたコマンドとその出力を求めてください。「テストは合格するはずです」は実行結果ではありません。環境の制限によりチェックができなかった場合は、その制限を引き継ぎ情報に残してください。
- プロダクトの結果: 関数のテストは、UIがその関数を使用していることを証明しません。実際のアプリでは、単体テストまたは結合テストに合格した後、ユーザーから見えるシナリオを再現してください。
- リリース状態: ローカルの変更、コミット、プッシュ、デプロイは個別に記録してください。担当者が次のステップを承認し、リポジトリのリリースチェックに合格するまで、本番環境は変更しないでください。
この演習における引き継ぎ例は次のとおりです。「提案された変更はゼロと欠損値を分離します。想定されるカバレッジ: ゼロ、null、undefined、および3。実際のテスト状況: 今回の実行結果から記入。その他の入力およびUI統合: 対象外。」最後の不確定要素を確信に満ちた成功声明に置き換えないでください。
失敗を隠蔽せずにリカバリする
アサーションに到達する前にテストが失敗した
環境またはインポートの問題を解決して再実行します。ゼロカウントのアサーションに到達し、その理由で失敗するテストが得られるまで、元の関数を保持してください。
Agentが要求した以上の書き換えを行った
一時停止し、diffと合意したスコープを比較します。余分な変更の各理由を説明するようAgentに求めてください。他のコントリビューターの作業を保護してください。全面的なリセットを使用したり、キャンセルによって編集が元に戻ると想定したりしないでください。
音声リクエストが誤ったフィールドに入力された
録音を停止し、目的のフィールドと実際の入力先を両方確認して、誤って挿入された部分のみを削除します。現在のCueインターフェースにコピー機能がある場合は、明示的なコピー&ペーストによる引き渡しを使用してください。再試行する前に重複がないか確認してください。
パッチに対するセカンドオピニオンを得るには、範囲を限定したCodexコードレビューを続けてください。録音で届いた背景情報については、まずソースリンク付きコンテキストパケットを構築してください。
Cueを試す
設定したショートカットを使用し、Cue設定でアクティブなモードを確認してください。利用可能なアプリコンテキストとアクションは、権限、バージョン、アカウントによって異なります。機密情報を提供する前にプライバシーポリシー (English)をお読みください。本ガイドは、すべての処理がデバイス内にとどまることを約束するものではありません。
お使いのコンピューター向けCueを取得 · 現在のプラン (English)
サポートが必要ですか、または誤りを見つけましたか?Cueサポートに問い合わせる (English)か、eli@sophoninc.com にメールをお送りください。Cueのバージョン、プラットフォーム、モード、および編集済みのサンプルを記載してください。パスワード、トークン、または非公開の会議資料は送信しないでください。