DASHタスク管理システム:雑に投げたタスクを自動振り分け

DASHタスク管理システム:雑に投げたタスクを自動振り分け

コンセプト

「これやらな」「あれ忘れてた」

タスク管理って、入力が面倒ですよね。アプリを開いて、タイトル入力して、期限設定して、カテゴリ選んで…そんな手間をかけてると、結局メモ帳に書いて終わり。

そこで、雑に投げたタスクを自動で振り分けるシステム「DASH(Daily Action System by Hero)」を作りました。

主な機能

1. 自然言語でタスク登録

「明日までにA社の資料作成」→ 自動で:
– タイトル: A社の資料作成
– 期限: 明日
– アカウント: クロスリンク(キーワードから判定)
– Googleカレンダーにも自動登録

2. アカウント自動判定

キーワードから自動で振り分け:

  • 「A社」「SEO」「ブログ」 → クロスリンク
  • 「体験会」「シフト」「名古屋」 → プログラミングスクール

3. モーニングブリーフィング

毎朝7:30に今日のタスクを自動配信:

☀️ おはよう!今日のブリーフィング

📅 今日の予定(2件)
  09:30 - 新ラーニング朝会
  14:00 - A社打ち合わせ

📝 今日のタスク(5件)
  - A社の資料作成(60分 / クロスリンク)
  - シフト調整(30分 / スクール)
  ...

合計推定時間: 3時間

4. ナイトブリーフィング

毎晩22:00に今日の振り返り:

🌙 お疲れ様!今日の振り返り

✅ 完了したタスク(3件)
  - A社の資料作成
  - シフト調整
  - ブログ記事投稿

🔮 明日の予定(2件)
  - 朝会
  - 座席表作成

技術スタック

  • Python 3.11 – バックエンド
  • OpenClaw – AIアシスタント統合
  • Google Calendar API – カレンダー連携
  • Chatwork API – 通知
  • JSON – タスクDB

実装のポイント

タスクDB

シンプルなJSON形式:

{
  "version": "1.0.0",
  "tasks": [
    {
      "id": "task-20260320-001",
      "title": "A社の資料作成",
      "account": "crosslink",
      "priority": "high",
      "status": "todo",
      "due_date": "2026-03-21",
      "estimated_minutes": 60,
      "subtasks": [
        {"title": "データ収集", "done": false},
        {"title": "資料作成", "done": false}
      ],
      "created_at": "2026-03-20T10:00:00+09:00"
    }
  ]
}

自動振り分けロジック

def determine_account_from_task(text: str) -> str:
    crosslink_kw = ['a社', 'seo', 'ブログ', 'ラーニング']
    school_kw = ['体験会', 'シフト', '座席表', 'ココグラム']

    if any(kw in text.lower() for kw in crosslink_kw):
        return 'crosslink'
    elif any(kw in text.lower() for kw in school_kw):
        return 'programming_school'
    else:
        return 'crosslink'  # デフォルト

成果

タスク入力が超楽に
→ 雑に投げるだけ

見逃しゼロ
→ 朝晩のブリーフィングで確認

複数アカウント統合
→ 切り替え不要


開発期間: 1週間
コード行数: 約1,000行