← Blog一覧へ

タスク管理の中身、実際に全部見せます

タスクの整理をほとんど自分でやらなくなった、という以前の記事の続きです。frontmatterでの状態管理、statusを「担当」ではなく「今動けるか」で決めている理由など、ObsidianやClaudeを使っている人がそのまま今日から始められる形で仕組みを公開します。

先日「タスク管理を、もう自分ではやらなくなった話」という記事を書きました。タスクの整理や優先順位づけをAIに任せるようになって、自分ではほとんど手を動かさなくなった、という話です。思っていたより多くの方に読んでいただけて、何人かから「具体的にどういう仕組みでやっているのか気になる」という反応をいただきました。

なので今日は、その中身を具体的に公開します。フォーマットを紹介するだけの記事で終わらせず、ObsidianやClaudeを使っている人がそのまま今日から始められるところまで書きます。

仕組みはたった2つしかない

私がやっているのは、突き詰めると次の2つだけです。

  1. タスクを1件につき1つのMarkdownファイルにする
  2. ファイルの中身の一番上に、状態をfrontmatterとして持たせる

特別なアプリもデータベースも要りません。この2つさえ守れば、あとはObsidianでもClaude Codeでも、好きなツールで読み書きできます。順番に説明します。

1. タスクは1件1ファイルにする

タスク管理ツールの多くは、1つの大きなリストやデータベースに全タスクを詰め込みます。でもファイルベースだと逆で、タスク1件がそのまま1つの独立したファイルになります。

これには実利があります。ファイルが独立しているので、人間が普段使っているファイルエクスプローラーやエディタで、そのタスクだけを直接開いて編集できます。AIに渡すときも同じです。「このファイルを読んで」「このファイルを更新して」と、ファイル単位でそのままAIに指示できる。逆に1つの巨大なファイルやデータベースに全部入れてしまうと、AIに「〇〇というタスクの部分だけ」を正確に指定させるのが途端に難しくなります。

ファイルの中身はこれだけです。

---
status: 1_todo
project:
assignee:
created: YYYY-MM-DD
due:
priority: 2_mid
lane:
---
 
<1〜2文でタスクの要約>
 
## 背景
 
(なぜこのタスクが必要か)
 
## 完了条件
 
- [ ]

冒頭の --- で囲まれた部分がfrontmatterで、ここに状態を持たせます。それ以外の本文は自由に書けるMarkdownです。新しいタスクを作りたければ、このテンプレートをコピーするだけです。

2. 状態はfrontmatterに持たせる

ここが一番大事な部分です。

frontmatterに何を書くかは自由ですが、私が実際に使っている軸はこの5つです。

  • status:今どの段階か
  • project:どの仕事に属するか
  • assignee:誰の手番か
  • due:期限
  • priority:優先度

これを本文と分けて機械が読める場所に置いておくと、人間もAIも同じ場所を見て同じ判断ができるようになります。「今日のタスクをまとめて」とAIに聞けば、AIはフォルダの中の全ファイルのfrontmatterを読んで、status が着手できる値になっているものだけを拾って返してくれます。

statusは「誰の担当か」ではなく「今、動けるか」で決める

私が最初にやって、後で直した失敗があります。

最初は「自分(人間)の確認待ち」を waiting という値にしていました。担当が自分に移っている、という感覚的にはそれが自然に思えたからです。でも実際に運用してみると、自分の確認待ちのタスクがどんどん waiting に溜まっていって、自分がボードを開いたときに「今日やれること」が埋もれて見えなくなりました。よく考えると変な話で、自分の確認待ちのタスクは自分がいつでも着手できます。ブロックされているのは自分ではなく、相手(このケースではAI)側の作業です。

そこでルールを変えました。waiting は「今は誰も着手できない」ものだけに絞る。公開日がまだ来ていない、外部からの返答を待っている、前工程がまだ終わっていない。この手の話に限定します。自分の確認待ちは「進行中」のまま置きます。判断はいつでも自分がやれるので、そのほうが実態に合っています。

これは、人間とAIが同じ1枚のボードを共有するときに一番効いてくるルールだと思っています。status は「誰の担当か」の記録ではなく、「今このタスクは動かせるか」を表すものにする。この軸を決めてから、ボードを開いたときに迷う場面がかなり減りました。自分でルールを決めるときの参考にしてみてください。

番号を振っておくと、並び順で困らない

1_todo 2_doing のように、値の先頭に番号を振っています。見た目のためではなく、実用上の理由があります。

自分が使っているツールでは、リストの並び順を個別に指定する設定がなく、値を文字列としてそのままアルファベット順(辞書順)に並べる仕様でした。素の値のまま doing done todo waiting と書くと、doing → done → todo → waiting の順に並んでしまい、直感とまったく合いません。番号を先頭に振れば、文字列としての辞書順がそのまま望みの並び順になります。

もし自分の環境で status を並べてみて、思った順番にならなかったら、この対処法を試してみてください。値を文字列の辞書順でしか並べられないツールは意外と多いです。

語彙は先に決めておく

projectassignee のような値も、思いついたまま自由に書くのではなく、あらかじめ決めた語彙から選ぶようにしています。

理由はシンプルで、フィルタや絞り込みの多くは完全一致で動くからです。同じ意味のつもりで書いた表記ゆれ(大文字小文字の違いや、送り仮名の有無など)は、フィルタの上では別の値として扱われます。見た目は同じ仕事のつもりでも、絞り込むと片方だけ抜け落ちる、ということが起こり得ます。だから新しい値を使いたくなったら、まず自分の中の語彙リストに足してから使う、というルールにしています。

Obsidianで見る

ここまでの話は、特別なアプリを使わなくても成立します。私自身は普段Marten(後述)でこのファイル群を管理していますが、この仕組み自体はツールに依存しません。ここでは、読者の方の多くが使っているであろうObsidianでの実現方法を紹介します。

Propertiesパネルでfrontmatterを見る

Obsidianはfrontmatterを「プロパティ」として扱う機能を標準で持っています。ファイルを開くと本文の上にプロパティのパネルが表示され、statusdue のような値が、テキスト・リスト・数値・チェックボックス・日付・日時・タグという7種類の型として認識されます(公式ヘルプ)。表示方法は設定から「常に表示」「非表示(プロパティビューで確認可能)」「YAMLソースのまま表示」の3パターンを選べるので、frontmatterを直接編集したい人はソース表示にも切り替えられます。

Basesでテーブル・ボードにする

frontmatterを一覧で見たいなら、Obsidianの標準機能「Bases」が使えます。Basesはノートの集まりをデータベースのように扱えるコアプラグインです。設定のコアプラグイン一覧から有効にするだけで使え、追加のプラグインをインストールする必要はありません(公式ヘルプ)。コアプラグインの一覧に見当たらない場合は、Obsidianを最新版に更新してみてください。

やることはシンプルです。タスクファイルが入っているフォルダを対象に指定し、statusdue をカラムとして追加すれば、それだけでテーブルビューが組み上がります。テーブルのほかにリスト・カード・マップの表示形式もあり、絞り込み(filter)や並び替え(sort)も設定できます。カンバンのように status でグルーピングして眺めたい場合は、カードビューが近い見た目になります。データベースもAPI連携も要らず、ただのMarkdownファイル群に、Basesの定義を1枚重ねるだけです。

Claudeに読ませる

frontmatterがただのテキストファイルに書かれているということは、Claude(Claude CodeやClaude Desktopなど、ローカルのファイルを読める環境)にとっても特別な準備が要らないということです。

タスクが入っているフォルダを指定して、こんなふうに聞くだけで動きます。

  • 「タスクのフォルダを読んで、今日やれることをまとめて」
  • 「進行中のタスクだけ教えて」
  • 「〇〇という新しいタスクをこのテンプレートの形式で作って」

Claudeはフォルダの中の各ファイルを開き、frontmatterと本文の両方を読んだ上で、指示通りに整理して返してくれます。専用のAPI連携もMCPサーバーも要りません。ファイルとして存在しているだけで、AIがそこに手を伸ばせる状態になっています。

Claudeに「tasksフォルダを読んで、今日やれることをまとめて」と聞いた結果。各ファイルのfrontmatterのstatus・due・assignee・priorityを読んだうえで、今日やれること/今は動けないものを分けて返してきている

私はMartenで管理しています

ここまで書いた仕組みは、Obsidian+Claudeの組み合わせだけでも完結します。特別なツールは必須ではありません。

先ほど触れた通り、私自身はこのファイル群をMartenというノートアプリで管理しています。GitHubをデータの置き場にするMarkdownエディタで、frontmatterのプロパティをそのままビューとして見せる機能を持っていて、この記事で紹介したタスクのfrontmatterも実際にMartenのビューで見ながら運用しています。複数端末を使っていると、Obsidianのvaultフォルダの同期に地味に気を使う場面が出てきますが、ノートもタスクの覚え書きも同じ場所(GitHubリポジトリ)に置いておけば、マルチデバイスでも迷わず同じ状態を開けます。

ファイル+frontmatterという考え方自体はツールに依存しないので、Obsidianのままでも困りません。ただ同期の面倒さが気になっている人は、選択肢としてMartenも覗いてみてください。今なら早期登録期間中で、簡単なアンケートに答えるだけでPremium機能が永年無料になります(特典期間は9月20日まで)。

Marten