この記事はHacobu Advent Calendar 2024の12日目の記事です。
こんにちは。株式会社Hacobuでエンジニアリングマネージャー(EM)を担当しているうちだです。
今回は、日頃行っている工夫の1つであるタスク管理について書いてみようと思います。
タスク管理の課題
私は2024年6月からEMに就任し、現在6ヶ月くらい経過しました。
EMに就任後、例に漏れず打ち合わせが増えたことは就任前の想定通りだったのですが、タスクの依頼があちこちから五月雨に飛んでくるようになったことで、依頼が来るたびにタスク管理してるツールを開いて登録することができなくなりました。
弊社ではNotionを活用しており、私のタスク管理もNotionのデータベースを使って管理していました。
そんな中、タスク管理ツールにタスクを追記しようにも、私がファシリテーションをする打ち合わせが連続していたりすると追記漏れが発生してだんだんと管理できないタスク量に忙殺されるようになってしまいました。(忘れっぽい自分乙・・・)
そんなとき、「なるべく手数少なく簡単にタスクに登録できるようになるいい方法はないだろうか」と、世の中の賢人たちが編み出した仕組みがないかなーと調べているとランチャーアプリを使ったタスク管理をされている方を発見。Alfredを活用した方法でした。
これいいな!と思ったのですが、実現するにはPowerpackという有償ライセンスが必要で、「タスク管理するためだけにこれに課金するにはtoo muchだな」と感じました。
そこで代替手段を探しているとRaycastというツールに出会いました。
Alfred同様のランチャーアプリで、自分のやりたいことも実現できそうだったので試してみることにしました。
Raycastを使ったタスク登録連携のセットアップ
まずはRaycastをインストールします。
brew install --cask raycast
好みに応じてHotkeyなど変更してもらえればと思います。
私は ⌘ + Space
で起動できるように設定しています。
ここからがタスク管理との連携です。
RaycastにはScript Commandsという機能があり、自分で独自のコマンドとそれに反応するスクリプトを実装することが出来ます。この機能を活用し、 todo
コマンドを実装してタスク管理と連携しています。
セットアップの部分は下記リポジトリのREADMEに説明を譲りますが、特にここでは躓くことなくセットアップできると思います。
セットアップが終わったらコマンドに反応するスクリプトを実装します。
Raycastを起動して、 create script
などと入力します。すると下記のように候補が出て来るので Create Script Command
を選択します。
今回はコマンドを todo
にするので、タイトルに todo
と入力して ⌘ + Enter
を押します。
するとシェルスクリプトが保存できるので、保存します。
あとはスクリプトを実装すればOK。今回必要なのは、NotionのAPIをcurlコマンドで叩くだけのシンプルなものです。参考までに実際に私が使っているスクリプトを以下に置いておきます。
#!/bin/bash
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title todo
# @raycast.mode compact
# Optional parameters:
# @raycast.icon 🤖
# @raycast.argument1 { "type": "text", "placeholder": "新しいTODOをここに入力してください" }
# Documentation:
# @raycast.author Takayoshi Uchida
NOTION_API_KEY=XXXXX
DATABASE_ID=XXXXX
curl -X POST https://api.notion.com/v1/pages \
-H 'Authorization: Bearer '"$NOTION_API_KEY"'' \
-H "Content-Type: application/json" \
-H "Notion-Version: 2022-06-28" \
--data '{
"parent": { "type": "database_id", "database_id": "'$DATABASE_ID'" },
"properties": {
"Name": {
"type": "title",
"title": [{ "type": "text", "text": { "content": "'$1'" } }]
},
"Status": {
"type": "status",
"status": { "name": "Todo" }
}
}
}'
ここまで来れば、Raycastを起動して todo
と入力すると下記の状態になります。
ここで、Tabを押してタスクの内容を入力したらEnterで上記のスクリプトが実行されてタスクが登録されます。
登録されたらあとはちゃんと消化するだけ!
おわりに
この仕組みを作ってからは、会話しながらでも咄嗟にタスクを追加することが出来るようになり、タスクの存在を忘れることが減った気がします。(なくなったわけではないですが)
タスク管理いいのないかなーという人の参考になれば幸いです!
cf. スクリプト内で使用している Notion API key や Database Id をどこから持ってくればいいかについては下記の動画などが参考になると思います。