@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Per-task notes

自分のやり方Per-Bug Pagesslog とよく似ている。普遍的とは言わないが、だいたいこういう感じに落ち着くものなのかもしれない。

あらためて、現在のシステムはこうなっている:

設定

  • Obsidian を使う
  • Daily notes を使う。テンプレートは以下のとおり
    • Dataview を使っている理由は後述する
#dailynotes 
# TODO

== 持ち越しタスク by dataview
```dataview
task from #dailynotes where completed = false group by file.link
```
== END
# Note
  • Obisidian の設定で Daily notes の Date format を YYYY-MM-DD/YYYY-MM-DD にする
  • Open daily note on startup を有効化する

  • タスクごとのユニークなノートへの markdown リンクを生成するスクリプトを用意する

    • タスク名はスクリプトの入力として与えたり各自工夫すべし
    • 自分の場合は Zendesk のチケット番号と件名をスクレイピングしてタスク名とファイル名に含めたリンクを生成してクリップボードにペーストする Violentmonkey スクリプトを使っている
d = new Date();
today = d.toISOString().split('T')[0];
uuid = window.crypto.randomUUID();
fragment = uuid.split('-')[0];
str = `[Task_${fragment}](${today}/Task_${fragment}.md)`

console.log(str);

ワークフロー

  • 毎日 Obisidian を開くと今日の日付のファイル名で daily note が作られる
  • 特定のタスクと結びつかないメモとか、タスクとして切り出すまでもない作業は daily note に直に書く
  • 新しいタスクに着手する場合:
    • ↑のスクリプトで生成したリンクを daily note に貼る(todo item としてチェックボックスを作って貼り付けると良い)
    • リンクを開く
    • その日・そのタスク専用のノートになんでも書く
    • タスクが終わったら daily note でその todo item を done にする
  • 日付が変わったら前日の daily note から未完了のタスク(todo item)をカット & ペーストして今日の daily note に移動する
    • これは手作業でやっている。ダサいし面倒くさいが、毎日レビューする機会を作る意味であえて手作業のままにしている

利点は Per-Bug Pages や slog で述べられているとおり。一言でいうと、isolation のためのシステム。基本的に古いノートを見返すことはなくて、メモというよりもまさに作業ログ。

Dataview を使っているのは、todo item の移動作業を効率化するため。「持ち越しタスク」の下に未完了の todo item のリストと、それが載っている daily note の日付とリンクが表示されるので、移動し忘れて漏れるリスクをなくせる。

Todo item を手作業で移動するのは Work Log on Google Docs にヒントを得た。前日の残り作業をそのままコピーはしない。改めて選び直す。コピペすると無限に増えていくので。に反しており、実際増えがちだが、todo を減らさないと毎日のコピペ作業の面倒さが増すので、自分にプレッシャーをかける効果を期待している。

ツールを変えたりしつつ、こういうシステムで 3~4 年ほど運用しているけど、気が散らないのでおすすめです。