コードを書かないSE日誌

SE歴26年。コードを書かずにClaude Codeで8体のAIエージェントチームを動かしています。AIエージェント・自動化・GTDの実験日誌。

Claude Code /todoで始めるGTD——話しかけるだけで自然言語タスク管理が回る

この記事の要点: Claude Code の /todo スキルを使うと、コマンド構文を一切覚えなくても「話しかけるだけ」でタスクが管理できる。バックエンドは GitHub Issues で、GTDのInbox/Next/Waitingがラベルとして実装されている。朝のデイリーレビュー・セッション中のタスク積み・週次の棚卸しを、すべて自然言語で完結している実例を紹介する。


タスク管理ツールを使い続けられたことが、ほとんどない。

Notionで丁寧にデータベースを組んで3日で飽きた。Todoistに課金してほぼ使わなかった。GTDの本を読んでノートにウィークリーレビューを書き、2週間後にはノートが行方不明になった。「仕組みを整える」ことに疲れて、気づけば付箋とSlackの未読通知に戻っていた。

そんな私が今、タスク管理を続けられているのは、「話しかけているだけ」だからだと思う。

/todoとは何か

Claude Code のカスタムスキル /todo は、GitHub Issues を GTD スタイルで操作する仕組みだ。Inbox・Next・Waiting・Someday などの GTD カテゴリが GitHub ラベルとして実装されていて、タスクの追加・移動・確認を Claude に話しかけることで操作できる。

コマンドとしての実体はあるが、使うときはほぼ意識しない。Claude が自然言語を解釈して、裏で /todo を呼び出してくれる。

技術的な補足(興味がなければ読み飛ばしてよい): /todo は GitHub Issues を GTD ラベルで管理するスキルとして実装されている。スキルの実体は ~/.claude/commands/todo.md(スキル定義ファイル)として配置してあり、Claude Code のセッション中に呼び出せる。todo.sh(シェルスクリプトエンジン)はオプションで追加することもできる。GitHub CLI(gh)のインストールと gh auth login による認証が必要なので、ゼロから始める場合はそこだけセットアップが要る。

朝のデイリーレビュー

朝の始業前にセッションを開くことが多い。起動して最初にやることは、Claudeへの一言だ。

「今日やることなんだろう」

すると Claude が /todo を呼んで、Inbox に溜まったタスクの一覧と、Next の中から今日やるべきものを整理して返してくれる。

Inbox (3件):
- アイラウイスキー記事のZennクロスポスト確認
- scripts/article/ のエラーログを確認
- [ネタ帳] バーボン入門シリーズのアイデア

→ 今日の候補:
  - アイラ記事クロスポスト(5分)
  - エラーログ確認(15分)

「今日の候補」として出てくるのは Claude が文脈から判断したもので、厳密なフレームワークの話ではない。「今日これだけやれば十分」という感覚を教えてくれる感じが心地よかった。

コマンドは何も打っていない。ただ「今日やることなんだろう」と聞いただけだ。

セッション中にタスクを積む

作業中に「あ、これあとでやらなきゃ」と気づく瞬間がある。以前はそのたびに別のツールを開いていたが、今はそのままClaudeに言う。

「Zennクロスポスト、Waiting に入れといて」

返ってくるのはこれくらいシンプルだ。

GitHub Issues に登録しました:
 #47 バーボン記事のZennクロスポスト確認
 ラベル: ⏳ waiting

これだけ。GitHub を開かずに、作業の文脈を切らずに、Waiting に入った。

週次レビューを実行すると Waiting の一覧が出てくるので、「確認待ち」で止まったままのものをそこでまとめて確認できる。以前のツールでは見逃しがちだった「返事待ちのタスク」が、週次レビューの流れで自然に浮かび上がってくるのは、以前のどのツールでもできていなかった体験だった。

作業中にAIが「これ別タスクにしますか?」と声をかけてくる

「セッション中にタスクを積む」とは少し違う体験がある。

前のセクションは「ユーザーが気づいて、Claudeに言う」という流れだ。でも実際の作業中は、自分が気づく前にClaudeが先に動いていることがある。

たとえばこんな状況。スクリプトのバグを直している最中、Claudeが作業ファイルを眺めていて言ってくる。

「このエラーハンドリング、別の問題があるかもしれません。今の修正とは切り離して、別Issueにしておきますか?」

「お願い」

それだけでいい。Claudeが Issue を作って Next に積んでくれる。今の作業は中断しない。

記事を書いている途中でも同じことが起きた。執筆中に見出し構成を変えたついでに、Claudeが提案してくる。

「この記事、SEOタイトルを見直した方がよさそうです。ネタ帳に入れておきましょうか?」

「うん」

それだけでネタ帳の次の候補に入った。SEO改善のアイデアを取り逃がさずに、記事の続きを書き続けられた。

こういう場面が週に2〜3回ある。頻繁ではないが、「あ、言ってくれなかったら忘れてた」と感じるのがちょうどそのくらいだ。

この体験で変わったのは「気づくコスト」だ。以前は作業中に何か引っかかっても、「後で思い出せるかな」「メモする余裕はないな」と流していた。Claudeが先に声をかけてくれると、「うん」か「後でいい」の二択で済む。脳内の作業スタックを崩さずに、気になることを回収できるようになった。

ただし注意しておきたいのは、Claude が何でも提案するわけではない点だ。作業中に関係ないことで割り込んでくると邪魔になる。実際のところ、提案が来るのは「Claudeが担当している作業の中」に限られる。Claude Code のセッション内で一緒に作業していて、Claude が何かを発見したとき——その文脈の中でしか声はかからない。セッション外の「気づき」は拾えない。

週末の週次レビュー

週の終わりに、こんな一言を投げる。

「今週どうだった」

すると Claude が GitHub Issues を集計して、今週クローズしたタスク・Nextに残ったもの・Waitingで止まったままのものをまとめて出してくれる。

今週の完了 (6件):
- アイラウイスキー記事 はてな公開
- Zennクロスポスト確認
- scripts/article/ エラーログ対応
- ...

積み残し (Next: 3件):
- バーボン入門記事 執筆
- GA4レポート確認
- ...

Waiting停滞 (2件 / 3日以上応答なし):
- note記事の校正依頼 → フォローアップ必要?

「次週に持ち越すもの」と「今週中に終わらせたいもの」を仕分けるのも、そのまま会話で済む。

「バーボン記事はNextのまま。GA4は来週でいい、Somedayに下げて」

週次レビューはGTDの肝なのに、以前は「やらなきゃ」と思いながらほぼ飛ばしていた。専用のツールを開いて、フォーマットに沿って記入して——という手順が重かった。「今週どうだった」と聞くだけで10分以内に終わるようになってから、ようやく続けられるようになった。

忘れ物チェック(ネタ帳棚卸し)

週に一度、こんな会話をする。

「ネタ帳、まだ記事化してないもの。InboxとSomedayを確認したい」

Claude がネタ帳ファイルを読みつつ /todo で Inbox を確認して、まだ着手していないものを出してくれる。「これ記事化できそう?」と続けると、NextかSomedayに昇格させてくれる。

「バーボン入門シリーズはNextに昇格して。SEOタイトル改善はSomedayのまま」

以前はスプレッドシートを使ってネタ管理していたが、「スプレッドシートを開く」という一手間が毎回ハードルになっていた。今は会話の流れで片付く。

/todoの制限と注意点3つ

正直に書くと、万能ではない。

リマインドは能動的にしか機能しない: Claude はセッションを開いている間だけ「助言」してくれる。バックグラウンドで時刻を見張ってくれるわけではないので、「明日の朝9時に自動で通知」というような完全自動のリマインドはできない。私は /alarm というカスタムスキルを別途自作して /todo と組み合わせているが、これは私の環境固有のものなので、そのまま使えるわけではない。同じことをやりたい場合はスキルを自分で作る必要がある。

Inbox が汚れやすい: 何でも放り込めるので、整理しないと数十件に膨れる。週次棚卸しをサボると収集がつかなくなる。これはGTDそのものの問題だが、ツールが使いやすくなった分、溜め込みやすくなった面もある。

セットアップはゼロではない: GitHub Issues へのアクセス設定、/todo スキルのインストール、Claude Code の設定——このあたりは一度だけ手間がかかる。「話しかけるだけ」が機能するのはセットアップ後の話だ。

「今日やることなんだろう」——自然言語GTDが続く理由

タスク管理ツールを続けられなかった理由のひとつは、「ツールの文法を覚えること自体がコスト」だったからだと思う。GTDのフレームワークを理解して、ツールの操作を覚えて、習慣化する——その前に力尽きていた。

/todo が続いているのは、「話しかけるだけ」という入口が維持されているからだ。Claude が文脈を読んで GitHub Issues を操作してくれるので、GTDの構造を意識しなくても「Inboxが溜まっているらしい」「Waitingが確認できたらしい」という体験だけ得られる。

「今日やることなんだろう」——朝にそれを聞くだけで1日が始まる。コマンドを覚えなくていい。仕様書を読まなくていい。それだけで続いている。


Claude Code の関連記事として「タスク管理・リサーチ・記事公開を全部AIに振ったら、人間はどこで判断すればよくなったか」も合わせてどうぞ。/todo が組織全体の中でどう機能しているかの全体像を書いています。


/todoのセットアップ手順(最小3ステップ)

まず「雰囲気だけ知りたい」方へ

コマンドラインを触る前に、全体像をつかみたい場合はこちらを先に読むのをおすすめする。「タスク管理・リサーチ・記事公開を全部AIに振ったら、人間はどこで判断すればよくなったか」は /todo がAIエージェント組織の中でどう機能しているかを書いた記事だ。「GitHubとかコマンドとかは後でいい、どんな体験なのかだけ知りたい」という段階ならそちらを先に読んでほしい。

セットアップしてみたい方へ(最小3ステップ)

最小手順だけ書いておく。

  1. Claude Code のインストール: まだの場合は公式ドキュメントを参照してインストールする
  2. GitHub CLI の準備: gh をインストールして gh auth login で認証を通す(GitHub Issues がバックエンドになるため)
  3. /todo スキルのインストール:
    • ~/.claude/commands/todo.md(スキル定義ファイル)を配置する
    • todo.sh(シェルスクリプトエンジン)を使う場合は Node.js が必要。todo.md だけで始めるなら不要(Claude Code の GitHub MCP 経由で直接動作するため、シェルスクリプトを介さなくてよい)
    • 詳細・ファイル入手先: https://github.com/saitoko/claude-todo-gtd(READMEに構成の違いを記載)

上記3点が整えば、あとは Claude に「今日やることなんだろう」と話しかけるだけで動き出す。

今日できる最初の一言: Claude Code を起動して、まずこれだけ打ってみてほしい。

「来週までにやりたいこと、3つ教えて。そのままInboxに入れておいて」

コマンドは覚えなくていい。この一文から始まる。


/todo で「話しかけるだけのタスク管理」が動き始めると、次の問いが出てくる——このスキルを組み込んだAIチーム全体は、どう設計・構築すればいいのか。私はその問いに答えを探しながら、Claude Code でエージェント組織を一から作り上げた。その設計原則と実装の流れを、Zenn Book Vol.1「AIチームを作るまで」にまとめている(序章・第1部無料)。