はじめに
Claude Code と対話しながら作業を進めていて、迷子になったことはないでしょうか。
方針を決める作業や文章の構成を詰める作業のように、途中で人間の判断が必要な作業を Claude と進めていると、やりとりを重ねるうちに「今どこまで来ているのか」「この進め方で本当に終わるのか、目的に合った成果物になるのか」が見えなくなることがあります。Claude に聞かれたことには答えているのに、全体のどこにいるのかが分からない状態です。
そこで、作業に入る前に Claude に進め方を考えてもらい、タスクリストで「今どこか」を見えるようにしました。この記事では、そのための指示と、タスクリストを使えるようにする設定を紹介します。
Claude が今どこにいるのか分からない
Claude Code は、人間の判断が必要なところで手を止めて確認してくれます。ただ、そのたびに「これは何の作業の途中で、何のための判断で、どちらを選ぶと何が変わるのか」が分からず、答えるのに迷うことがよくありました。
設計の方針を決める作業に限っては、判断の前に評価基準と決定ポイントを置くことで解決できました。その話は以前こちらに書いています。
ただ、同じように迷子になることは、設計以外の作業でもよく起きます。特に迷子になりやすいのは、セッションが長くなったときです。やりとりの往復を重ねたときも、Claude が1回の返事で長く動き続けたときも、気づくと全体のどこにいるのか分からなくなっています。
振り返ってみると、Claude がどう進めてゴールにたどり着こうとしているのか、つまり進め方が見えていなかったのが大きかったように思います。進め方が分かっていれば、今どこにいるのかも、目の前の判断が何のためのものなのかも、ある程度は分かるはずです。
作業に入る前に、進め方を考えてもらう
そこで、作業に入る前に Claude に進め方を考えてもらうようにしました。使っているのは Claude Code の出力スタイル(Output Style)です。
出力スタイルは、Claude の役割や口調、応答の形式をセッション全体で決めておける機能です。~/.claude/output-styles/ に Markdown ファイルを置くと自分用のスタイルを作れて、/output-style で切り替えられます(公式ドキュメント)。
僕は自分用の出力スタイルに、口調や返事の書き方などをまとめて書いています。そのうち、進め方についての節は次のとおりです。
## 作業に入る前に
進め方を考えてユーザーに示してから作業に入る。ステップの分け方は3つ。
1. 各ステップは「調べる」「決める」「作る」のどれか1種類。2種類以上
入っていたら割る。調べた事実を出す応答と、それを踏まえて判定する応答は
分ける(事実が出たあとに前提が動くことがあるため)
2. ユーザーに決めてもらうことが2つ以上あるステップは割る。途中で分かったら
その時点で割る(今どこかが分からなくなるため)
3. ステップが終わるごとに、残りのステップを組み直すかを自分で判定する
(事実が出ると前提が動くため)
どんなステップを踏むかは Claude に任せて、ステップの分け方だけを決めています。公式のプロンプトのガイドにも、人が手順を細かく書いて渡すより、大まかな指示のほうが Claude がよく考えてくれることが多い、と書かれています。
この分け方が最適かはまだ試している途中ですが、少なくとも「今の返事が事実の報告なのか、判断を求めているのか」は分かりやすくなりました。
CLAUDE.md に書くこともできますが、出力スタイルに置いておくと、長いセッションでも指示が効き続けやすいという利点もあります。CLAUDE.md は会話の最初にメッセージとして渡されるのに対して、出力スタイルは毎回のリクエストと一緒に送られるためです。
タスクリストで「今どこか」を見えるようにする
考えてもらった進め方は、タスクリストに登録してもらっています。タスクリストは Claude Code の画面に出る Claude の ToDo リストで、各タスクが未着手・進行中・完了のどれなのかが一目で分かります。
以前のモデルではタスクリストが最初から使えていて、僕も便利に使っていたのですが、いつの間にか使えなくなっていました。公式ドキュメントによると、この記事を書いている時点で最初から使えるのは Claude 3.x、Opus 4〜4.7、Sonnet 4〜4.6、Haiku 4.5 だけで、それ以降のモデルではタスクリストを作るツールが外れています。
復活させるには、環境変数 CLAUDE_CODE_ENABLE_TODO_TOOLS を 1 にします。~/.claude/settings.json の env に書いておけば、起動のたびに指定しなくて済みます。
{
"env": {
"CLAUDE_CODE_ENABLE_TODO_TOOLS": "1"
}
}
僕の環境では、書いた直後から再起動せずに使えるようになりました。表示は Ctrl+T で切り替えられて、一度に5件まで表示されます。
出力スタイルの同じ節には、示した進め方をタスクとして登録するところまで書いています。
示したら、そのステップを `TaskCreate` で登録する。文章の側は
ステップの中身と理由を書く場所、タスクの側は今どこかを示す場所で、
役割が違うので両方書く。着手するステップは `TaskUpdate` で
`in_progress`、終わったら `completed` にする。
`activeForm` にはそのステップの作業を書く(スピナーに出る)。
登録しないのは、ステップが1つのときと、進め方を示す前に終わる作業のとき。
(補足)Opus 5.5 公式ガイドの「チェックリスト」
Opus 5.5 の公式のプロンプトのガイドにも、チェックリストを使う話が出てきます。ただ、この記事のタスクリストとは目的が違います。
ガイドでは、人が見ていない状態でエージェントを長く動かすときの対策として紹介されています。Opus 5.5 は長い作業の途中で進捗を報告してターンを終えることがあり、無人で動かしているとそこで止まってしまいます。そこで、作業の各パートを Claude が更新するチェックリスト(to-do ツールやファイル)に入れておき、未完了の項目が残ったままターンが終わったら、残りの項目を伝えて続けさせる、という使い方です。
つまり、公式のチェックリストは Claude が作業を最後までやりきるためのもので、この記事のタスクリストは人が今どこにいるのかを知るためのものです。
おわりに
Claude と対話しながら進める作業で迷子になりがちな人は、まず出力スタイルか CLAUDE.md に「作業に入る前に進め方を考えて示す」という1行を足すところから試してみてください。タスクリストが最初から使えないモデルを使っているなら、タスクリストも環境変数1つで使えるようになります。
僕の場合は、Claude が今どこにいて、目の前の判断が何のためのものなのかが見えやすくなって、迷子になることが減った気がします。

