[Taskwarrior](https://taskwarrior.org/) 最近、何でも CLI でするのが楽しい。 [[Claude Code]] の流行で GUI → CLI に戻っていくってのも妙だ。 CUI を使っていくと、仕組みについて学べるのもいい。 ## シンプルな設計がいい 例えばこのタスクデータは SQLite で管理されていて、tasks テーブルの `uuid`, `data (JSONテキスト)` の2カラムで構成されていた。確かにこの管理方法なら、data の構成を操作側から柔軟に変更できる。 また、よくあるTODOアプリは `title` と `description` でタスクを管理してるけど、これには `description` しかないシンプルな設計になってる。シンプルはいい。 ## 日付の指定方法 文字による日付の指定方法とかも参考になった。 [Taskwarrior - Named Dates - Taskwarrior](https://taskwarrior.org/docs/named_dates/) * `so`: `s`tart `o`f ... * `eo`: `e`nd `o`f ... を `prefix` にして、 * `p`: `p`revious * `n`: `n`ext をオプションで挟みつつ、 * `y`: `y`ear * `m`: `m`onth * `w`: `w`eek * `ww`: `w`ork `w`eek * `d`: `d`ay とかを組み合わせていくといい感じに表せる。 * `sow`: `s`tart `o`f the current `w`eek. * `sopy`: `s`tart `o`f the `p`revious `y`ear. * `eonww`: `e`nd `o`f the `n`ext `w`ork `w`eek. また、[[ISO 8601]] の継続時間の表記とかも、調べるきっかけになった。 ## 設定 結構面白かったので `alias` をたくさん貼った。 report は `next` と `list` の2つに、見積もり時間 (Duration) をテキスト形式で追加して、Project を Description の左に移動して使っている。 ref. [⚙️ \[taskwarrior\] Taskwarrior設定セットアップとエイリアス追加 · usagizmo/dotfiles@1a3fb84 · GitHub](https://github.com/usagizmo/dotfiles/commit/1a3fb84c69e1f435f701925c6f295dac9db21e7f)