🐈‍⬛

各タスクツールを統合したtodo一覧をnotionのtodoリストとして作成・日報形式用出力も行い自動化

に公開

概要

想定読者:

  • 日報出さないといけないけれど、自分には自分のタスク管理方法がある or 面倒くさい方
  • めっちゃかかるわけではないけれど複数のタスクツールを利用している状態である、それらを整理して全量を把握するのがちりつもでめんどくさい方
  • 結論:https://zenn.dev/activecore/articles/190a7b4172fce9#試してみて

経緯

  • 自分は普段、以下のようにnotionのtable viewを利用して細々としたタスクから大きいissueまで分解してどのタスクも15~60分で完了できる粒度に分解した個人管理タスクリストで達成度を確認している。


そもそも

当社の構成はこちら
そもそも日報を記載するルールをやめれば?という内容もくるかもだが、
諸事情で最終的に各チーム同一の形式で記載することに。

  • linear:タスク管理ツール
  • notion:ドキュメント管理ツール・個人的todoリスト管理ツール
  • google calender:カレンダー管理ツール
  • 別途日報を記載する必要あり

とりまやってみる

以下の点に目をつけて実施
google calenderを利用していることもあり細々したタスクするのにちょうど良い https://developers.google.com/apps-script?hl=ja

  • 日次で勝手にやってくれる

  • 週次で週開始時点の内容も入れる別処理も欲しい

  • linearにapi経由で接続できること

  • notionにapi経由で接続・テーブルビューに挿入できること

  • calenderの予定を取得できること

  • 以下のようにタスクを同一粒度に分解するために、状態を定義している(これも別の記事で深掘りしたい)→週初めのタスクの分解も自動化できそうと思った

  • まずは以下のようにな記載からスタート

# Google Apps Script プロジェクト作成プロンプト

以下の3つのGoogle Apps Scriptファイルを作成してください:

** ゴールイメージ **
- {YYYYmmdd}終わらせたこと
    - 成果物タスク
    - etc…
[未完了]
    - 未完了タスク一覧
[mtg]
- 10:00~10:30-デイリースクラム
...
- {YYYYmmdd}終わらせること
    - {Who顧客:xx}の{why:yyのため}に{what:zzを実施}する。
    - etc…
[mtg]
- 10:00~10:30-デイリースクラム
...

** ファイル構成 **
- main.gs:実行関数を管理するメインファイル
    - daily_report_generator.gs:日次レポートを生成するスクリプト
    - weekly_task_generator.gs:週次タスクを生成するスクリプト

**主要機能:**
- 対象表示機能
    - Notion APIからタスクデータを取得
    - 前日の達成事項と未完了タスクを表示
    - 今日の予定タスクを表示
    - Google Calendarから予定を取得
        - 時間形式で「10:00~10:30-デイリースクラム」のように表示
- 土日は早期リターン
- 月曜日は前週金曜日の達成事項と今週月曜日の予定を表示
- ログをgoogle driveファイルに保存

- 対象週タスク洗い出し・notionテーブルビュー挿入機能
    - Linear APIからチームデータとissueを取得
    - estimate=0の管理用issueを除外
    - 各issueの状態に応じて仮想的なタスクを生成(Todo→In Progress→In Review→Done)
    - 優先度順にソート
    - 月曜日から金曜日にタスクを割り当て(各曜日最大14個)
    - 仮想的なタスクのそれぞれに対して、以下のマッピングを適用させて{issue名がxxxxな状態である}と命名してnotion table viewの{URL}に挿入してください

途中で手直し


### linearタスク一覧取得に対する追加プロンプト

- 100件単位でpagingを行なって{team名}の{John}のタスクのうち、実行日と対応するcycleのissueのみを取得してきて
    - ←linear apiはpagingしないと一部issueしか取れなかった

### カレンダー取得に対する追加プロンプト

- カレンダー一覧取得に関して、yyyカレンダーはtech関連のみ、xxxxカレンダーはオフィス・自宅以外としてほしい
    - ←デフォでやると時間帯の入っていない不在タスクだったり、他の方の予定とか取ってきてしまってた

### notionタスク取得・挿入に対する追加プロンプト

- 取得機能の完了・未完了判定はチェックボックスをもとに判定・挿入機能はチェックボックス未記入をデフォルトとして挿入して
    - ←完了率を判別しやすいのと、未完了も自動で判別して出力したかった
- 挿入時のリクエスト構造は画像を参考に適したプロパティの元リクエストを行なって
    - ←notionの挿入の際のプロパティがちょっとでも形がちがうかったら挿入できないので何回か画像と共に修正し直した

  • 最終的に週次で一覧&挿入が実行され自分のチェックリストに自動挿入
  • 日次実行で特定のリンクに昨日終わらせたこと、今日終わらせること一覧が自動で出力され日々のやること整理が統合されスッキリ

試してみて

  • MCPとかで繋いでとかでもできるのだろうが、現状だとタスク管理ツール等をまとめてtodoリスト一元管理とかならgasが最もコスパ良いと感じた
  • 特にcursorでgasを自然言語で書かせて雑務を改善させまくるはエンジニア関係なく、現場レベルで全ての方々が使いやすい手法ではないか
  • あとbacklogとかもapiで結構色々できるのでbacklogのタスクを取得対象に加えるとかも容易に可能
  • 社全体のルールはありつつ、自分の中で管理しやすいマイルール等がある際の落とし所として、gasでの整形は良き
  • 下記の参考文献・サイトの量が示している通り、これくらいならcursorがほとんどやってくれるので調べる負荷もなし

参考文献・サイト

株式会社アクティブコア

Discussion