mcpField
T
task-tracker

task-tracker

github.com/breverdbidder生産性47 回インストール
リポジトリ

task-tracker について

task-trackerは、ADHDの傾向を考慮したタスク管理スキルです。状態遷移で作業を追跡し、中断の可能性を検知して介入し、完了ストリークを記録します。

主な機能

  1. 01定義済みの状態によるタスク追跡
  2. 02話題の切り替えや停滞の検知
  3. 03小さな行動とタスク分割による介入
  4. 04完了ストリークとタスク傾向の記録

活用シーン

  1. 01依頼から完了までのタスク追跡
  2. 02話題の切り替え後に停滞した作業の発見
  3. 03外部依存関係でブロックされたタスクの管理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/breverdbidder/life-os --skill task-tracker

インストール後、Claude Code で/task-trackerを入力して読み込まれたか確認します。

詳細

タスクトラッカー - ADHD ステートマシン

概要

ADHD の傾向に合わせて設計された、体系的なタスク管理です。判断を交えずに説明責任を保ちながら、先回りした介入によってタスクの放棄を防ぎます。

ステートマシン

                    ┌──────────────────────────────────────────┐
                    │                                          │
                    ▼                                          │
┌──────────┐   ┌──────────────────┐   ┌─────────────┐         │
│ INITIATED│──▶│ SOLUTION_PROVIDED│──▶│ IN_PROGRESS │─────────┤
└──────────┘   └──────────────────┘   └─────────────┘         │
     │                  │                    │                 │
     │                  │                    ▼                 │
     │                  │              ┌───────────┐          │
     │                  │              │ COMPLETED │          │
     │                  │              └───────────┘          │
     │                  │                                      │
     │                  ├─────────────────┐                   │
     │                  │                 │                    │
     │                  ▼                 ▼                    │
     │           ┌───────────┐     ┌──────────┐               │
     └──────────▶│ ABANDONED │     │ BLOCKED  │               │
                 └───────────┘     └──────────┘               │
                        │                │                     │
                        ▼                ▼                     │
                 ┌───────────┐     ┌──────────┐               │
                 │  DEFERRED │◀────│ (Retry)  │───────────────┘
                 └───────────┘     └──────────┘

ステートの定義

ステートトリガー次のアクション
INITIATEDタスクの依頼を受信複雑さを評価し、解決策を提示
SOLUTION_PROVIDED解決策を提示実行の合図を待つ
IN_PROGRESSユーザーが作業中であることを確認完了を監視
COMPLETEDユーザーが完了を確認成功を記録し、連続達成記録を更新
ABANDONED応答がなく、コンテキストが切り替わるパターンを記録し、介入
BLOCKED外部依存関係障害要因を特定し、再試行を予定
DEFERRED意識的な先送りリマインダーを設定し、理由を記録

タスクのメタデータ

すべてのタスクで以下を記録します。

task = {
    "id": "task_20251219_001",
    "description": "Review Q4 insurance renewals",
    "state": "INITIATED",
    "domain": "BUSINESS",  # BUSINESS | MICHAEL | FAMILY | PERSONAL
    "complexity": 6,       # 1-10 scale
    "clarity": 8,          # 1-10 scale (how clear were instructions)
    "estimated_minutes": 45,
    "actual_minutes": None,
    "initiated_at": "2025-12-19T10:30:00Z",
    "solution_provided_at": None,
    "completed_at": None,
    "abandonment_count": 0,
    "intervention_level": 0
}

放棄の検出トリガー

次のパターンを監視します。

  1. コンテキストの切り替え - 現在のタスクを終えずに新しい話題へ移る
  2. セッション終了 - タスクが SOLUTION_PROVIDED または IN_PROGRESS の状態でチャットが終了する
  3. 時間経過 - 解決策を提示してから更新がないまま30分以上経過する
  4. 話題の逸脱 - タスクが保留中に、ユーザーが無関係な質問をする
検出アルゴリズム
def check_abandonment(task, current_message, elapsed_minutes):
    if task["state"] not in ["SOLUTION_PROVIDED", "IN_PROGRESS"]:
        return False
    
    # Time-based trigger
    if elapsed_minutes > 30:
        return True
    
    # Context switch detection
    if not is_related_to_task(current_message, task):
        return True
    
    return False

介入プロトコル

レベル1:穏やかな確認(0~30分)
📌 Quick check: [task description] - still on it?
レベル2:パターンの観察(30~60分)
🔄 I notice [task] from earlier. This is pattern #[N] this week.
Continue or consciously defer?
レベル3:直接的な説明責任の促進(60分超)
⚠️ ACCOUNTABILITY: [task] started [time] ago.
Current status? Be honest - no judgment, just facts.

ADHD への介入戦略

放棄を検出したら、次の手法を適用します。

小さな約束

可能な限り小さな行動に分割します。

Just step 1? [tiny specific action] That's it.
Nothing else required right now.
ボディダブリング

仮想的な共同作業環境を作ります。

Let's do this together. You: [specific action]
Me: ⏱️ Waiting... (I'll check back in 5 minutes)
チャンク化

集中できる範囲を絞ります。

Step 1 only. Confirm when done.
Don't think about step 2 yet.
エネルギーに合わせる

日々のパターンに合わせます。

It's [time] - your [peak/dip] period.
[Suggest appropriate task complexity]

ワークフロー:タスクの作成

トリガー: 作業が必要であることを示す依頼

  1. メッセージからタスクの説明を抽出する
  2. 次の項目に基づいて複雑さ(1~10)を評価する:
    • ステップ数
    • 外部依存関係
    • 意思決定の必要性
    • 所要時間の見積もり
  3. 次の項目に基づいて明確さ(1~10)を評価する:
    • 依頼の具体性
    • 既知の要素と未知の要素
    • 曖昧さの度合い
  4. ドメインを割り当てる(BUSINESS/MICHAEL/FAMILY/PERSONAL)
  5. ステートを INITIATED に設定する
  6. 解決策を提示し、ステートを SOLUTION_PROVIDED にする

ワークフロー:ステートの遷移

INITIATED → SOLUTION_PROVIDED
# After providing solution
task["state"] = "SOLUTION_PROVIDED"
task["solution_provided_at"] = now()
SOLUTION_PROVIDED → IN_PROGRESS

トリガー: ユーザーが「取り組んでいます」「今から始めます」「これをやっています」と言う

task["state"] = "IN_PROGRESS"
IN_PROGRESS → COMPLETED

トリガー: ユーザーが「終わりました」「完了しました」「完了です」と言う

task["state"] = "COMPLETED"
task["completed_at"] = now()
task["actual_minutes"] = elapsed_time()
update_streak()
任意のステート → ABANDONED

トリガー: 放棄を検出し、介入への応答がない

task["state"] = "ABANDONED"
task["abandonment_count"] += 1
log_pattern()
任意のステート → BLOCKED

トリガー: ユーザーが外部依存関係を特定する

task["state"] = "BLOCKED"
task["blocker"] = identified_dependency
schedule_retry()
任意のステート → DEFERRED

トリガー: 理由を伴う意識的な先送り

task["state"] = "DEFERRED"
task["defer_reason"] = reason
task["defer_until"] = scheduled_time

連続達成記録

モチベーションを保つため、連続達成記録を維持します。

streak = {
    "current": 5,  # Days with at least 1 completion
    "longest": 12,
    "total_completions": 47,
    "abandonment_rate": 0.23  # 23% tasks abandoned
}

# On completion
"✅ Done. Streak: 5 days. Total: 47 tasks."

# On first task of day
"Day 6 starts now. Keep the streak alive."

ドメイン固有の動作

BUSINESS(Everest Capital)
  • 緊急度を高く設定
  • 期限を考慮
  • 収益への影響を評価
MICHAEL(D1 Swimming)
  • 水泳のスケジュールと関連付ける
  • 栄養・トレーニングとの整合性を考慮
  • 勧誘の期限を考慮
FAMILY(Orthodox Observance)
  • 安息日・祝日を考慮
  • 夕方は仕事のプレッシャーをかけない
  • 家族の予定を優先
PERSONAL(Health/Learning)
  • エネルギーレベルを考慮
  • 学習内容の記録と連携
  • 健康指標との相関を考慮

LangGraph との統合

ステートスキーマ
class TaskState(TypedDict):
    task_id: str
    description: str
    state: str
    domain: str
    complexity: int
    clarity: int
    elapsed_minutes: int
    intervention_level: int
    streak_current: int
ノード
  • create_task - ユーザーメッセージから初期化
  • provide_solution - 応答を生成し、ステートを更新
  • check_abandonment - 定期的に放棄を確認
  • intervene - 介入戦略を適用
  • complete_task - 完了を記録し、連続達成記録を更新

スクリプト

  • scripts/task_state_machine.py - ステート遷移ロジック
  • scripts/abandonment_detector.py - パターン検出
  • scripts/streak_calculator.py - 連続達成記録の管理

参考資料

  • references/intervention_templates.md - 介入スクリプト全文
  • references/adhd_patterns.md - よくあるパターンと対応

コメント