Skip to main content
Glama

🐮 Moo Tasks

CI License: MIT Node: >=18.0.0 MCP Ready

AIエージェント向けタスクオーケストレーション&管理エンジン。AIコーディングエージェント(Claude Code、Cursor、Windsurf、Antigravity、Copilot)と人間参加型ペアプログラミングのために構築されました。

クイックスタート • エージェント設定 • エージェントプロトコル • アーキテクチャ • MCPツール


🌟 Moo Tasks が選ばれる理由

標準的なAIコーディングエージェントには、以下のような問題がよくあります。

  1. スコープ逸脱: 元のユーザーの意図から離れ、価値の低いリファクタリングを延々と繰り返す。

  2. 過剰な計画: 40個の浅いタスクを生成するだけで、どれも実行しない。

  3. ループ/スラッシング: 失敗した修正を止めずに何度も繰り返す。

  4. 検証不可能な作業: テストを実行したり証拠を出したりせずに、コードが完成したと主張する。

  5. 決定の再議論: コンテキストがリセットされるたびに、確定済みのアーキテクチャ上の選択を再び議論する。

Moo Tasks は、ローカルSQLiteエンジン(WALモード)、リッチなリアルタイムWeb UI、そして実行時に厳格なエンタープライズ不変条件を強制するModel Context Protocol(MCP)サーバーを提供することで、この問題を解決します。


Related MCP server: pith

✨ 主要機能と機能マトリックス

🎯 1. 目標とスコープの制御

  • 逐語的な人間のプロンプト: タスクの上位に位置し、元のユーザーリクエストを正確に保持します。

  • 目標カバレッジと未完了事項: タスク完了率と残存するオープンタスクのライブメトリクス。

  • スコープ逸脱検出: リンクされた目標のない孤立タスクを自動的に特定してフラグを立てます。

  • 目標オープン上限: 目標ごとの最大オープンタスク数のハードキャップ(デフォルト: 10)。エージェントの過剰な計画を防ぎます。

  • カスケード操作: 目標配下の全タスクを、必須の理由付きでアトミックにドロップ、キル、または再オープンします。

📋 2. タスクライフサイクルとDAG依存関係

  • サブタスクネスト制約: 親タスク配下のサブタスクは正確に1レベル。

  • 有限状態マシン: todo、doing、blocked-on-dependency、waiting-on-human、done、dropped。

  • DAG依存関係グラフ: 自動的な循環検出と、下流タスクの自動的なブロック解除。

  • 親クロージャーガード: サブタスクがオープンなまま親タスクを閉じることを防ぎます。

  • ステータス取り消しと履歴: 完全な遷移監査履歴を使用して、誤った状態遷移をロールバックします。

🛡️ 3. 完了、検証、作業の証明

  • 受け入れ基準: 作業開始前にMarkdownで必須の基準を記述します。

  • 証拠要件: タスクを閉じるには検証可能な証明(実行したコマンド、標準出力、テストの証明)が必要です。

  • 2段階検証: agent_completed と人間による verified_done を区別します。

  • 理由付き拒否: 人間またはピアエージェントは、フィードバック付きで完了した作業を拒否できます。タスクは todo に戻り、再オープンカウンターが増加します。

🙋 4. 人間とのコラボレーションとブロッキング

  • 人間待ちキュー: エージェントは、添付された質問(clarification、approval、credential、decision)とともにブロッカーを一時停止します。

  • リアクティブ再開: Web UIまたはMCPを介して質問に回答すると、エージェントを再起動することなく、タスクは自動的に準備完了キューに戻ります。

  • 専用の人間用インボックス: 人間の注意を必要とするすべてのものをリアルタイムでキュー表示します。

🔍 5. 発見された作業

  • タスク途中の作業キャプチャ: 現在のタスクのクレームを放棄せずに、途中で見つかった新しい作業をキャプチャします。

  • 必須修正と延期: must-fix-now(ブロッカーとして挿入)または deferred(バックログの山)としてマークします。

🤖 6. 所有権、並行性、リース

  • 排他的タスククレーム: エージェントが沈黙した場合に自動タイムアウト(デフォルト5分)付きのリース。

  • ハートビートメカニズム: 長時間実行タスク中にリースを延長します。

  • エージェント並行性制限: エージェントごとに同時に保持できるタスク数の上限(デフォルト: 1)。

  • ファイルタッチ競合警告: 宣言されたファイルが他のアクティブなクレームと重複していないかチェックされます。

🔄 7. ストールとスラッシュ検出

  • 試行カウンター: クレーム/試行のたびに増加します。

  • 自動エスカレーション: $N$ 回の試行(デフォルト: 3)後、無限ループの代わりにタスクを自動的に waiting-on-human に一時停止します。

  • 状態滞在時間の追跡: doing に費やした時間を監査し、繰り返される再オープンを検出します。

🏛️ 8. 確定済みアーキテクチャ決定(ADR)

  • プロジェクトレベルの記録: タスクを超えて存続する選択と根拠を保持します。

  • 計画前の参照: エージェントは計画前に確定済みの決定を読みます。

  • 置き換えサポート: 必須の理由を付けて、置き換えられた決定をクリーンに更新してリンクします。


🚀 クイックスタートとインストール

オプションA: グローバルインストール(moo コマンドに推奨)

moo-tasks をグローバルにインストールすると、短い moo コマンドをどこでも使用できます。

npm install -g moo-tasks
# or: pnpm add -g moo-tasks | bun add -g moo-tasks

インストール後、moo を直接使用できます。

moo init       # Initialize .moo workspace in current project
moo start      # Launch real-time Web UI (http://127.0.0.1:4242)
moo ws         # List registered global workspaces
moo status     # Show Where-Did-I-Leave-Off context
moo search     # Full-text SQLite search

💡 moo と npx に関する注意:

  • 裸の moo <command> は、npm install -g moo-tasks でグローバルにインストールされている場合に機能します。

  • グローバルインストールなしで実行する場合は、npx moo-tasks <command> を使用します(npx moo は使用しないでください。npmレジストリの moo は無関係なパッケージです)。

  • グローバルインストール後に moo: command not found が表示される場合は、npmのグローバルbinディレクトリが $PATH に含まれていることを確認してください。

    export PATH="$(npm prefix -g)/bin:$PATH"

オプションB: npx moo-tasks によるオンデマンド実行

グローバルインストールなしで直接実行します。

1. ワークスペースとエージェントプロトコルの初期化

プロジェクトルートで実行します。

npx moo-tasks init

これにより:

  • .moo/tasks.db SQLiteデータベースがWALモードで初期化されます。

  • AGENTS.md、CLAUDE.md、.cursorrules、.windsurfrules が生成されます。

2. ローカルWeb UIの起動

npx moo-tasks start

ブラウザで http://127.0.0.1:4242 を開きます。

ローカルネットワーク(LAN)上の別のデバイスやタブレットからWeb UIにアクセスするには:

npx moo-tasks start --lan
# Automatically logs: http://192.168.x.x:4242/

🔌 エージェントとMCPの設定

ワンコマンドマルチエージェントインストーラー

# Configure all detected agent IDEs at once:
npx moo-tasks install all

# Or configure specific clients:
npx moo-tasks install claude       # Updates ~/.claude.json
npx moo-tasks install cursor       # Generates .cursor/mcp.json
npx moo-tasks install windsurf     # Updates ~/.codeium/windsurf/mcp_config.json
npx moo-tasks install antigravity  # Generates .gemini/settings.json

手動設定

{
  "mcpServers": {
    "moo-tasks": {
      "command": "npx",
      "args": ["moo-tasks", "mcp"]
    }
  }
}

🤖 必須エージェントプロトコル

すべてのAIコーディングエージェントは、この6ステップのライフサイクルに従うように指示されています。

1. SESSION RESUME  → Call moo_session_resume() & moo_list_decisions()
2. ANCHOR GOAL     → Call moo_create_goal(title, verbatimPrompt)
3. PLAN & CRITERIA → Call moo_create_task() with markdown criteria BEFORE code
4. EXCLUSIVE CLAIM → Call moo_claim_task(taskId, agentId, sessionId)
5. IMPLEMENTATION  → If blocked, call moo_ask_human() or link blockers
6. VERIFIED PROOF  → Call moo_complete_task() with test proof & output snippet
7. ADR RECORD      → Call moo_record_decision() for architectural choices

🛠️ MCPツールリファレンス

ツール名

目的

moo_create_goal

人間の逐語的なプロンプトを記録し、未完了タスクの上限を設定する

moo_list_goals

プロジェクトの目標とステータスを一覧表示する

moo_get_goal_status

目標の達成状況、未完了数と上限、未処理事項を表示する

moo_kill_goal

目標を破棄し、理由付きで子タスクをすべて連鎖的に破棄する

moo_reopen_goal

目標とそのタスクを再開する

moo_create_task

目標の下に、受け入れ基準と宣言ファイル付きでタスクを作成する

moo_create_tasks_batch

複数のタスクを原子的に一括作成する

moo_quick_start

⚡ 1回の呼び出しで完了する高速ツール: リースと宣言ファイル付きでタスクを原子的に作成し、クレームする

moo_checkpoint

⚡ 高速な進捗チェックポイント: 試行メモを追記し、ハートビートを延長する

moo_get_compact_context

🧠 プロンプト注入用の超高密度トークン最適化コンテキストブロック(400トークン未満)

moo_update_task

タイトル、基準、優先度、宣言ファイル、または目標を更新する

moo_link_dependencies

サイクル検証付きで前提ブロッカーをリンクする

moo_unlink_dependencies

前提ブロッカーのリンクを解除する

moo_get_next_task

次にブロックされていない最優先タスクを自動的に表示する

moo_get_task

タスクの詳細、サブタスク、メモ、依存関係を取得する

moo_list_tasks

目標、ステータス、優先度、エージェント、延期状況でタスクをフィルタリングする

moo_claim_task

タスクを排他的にクレームする(リースと競合チェックを強制)

moo_heartbeat_task

長時間実行タスク中にアクティブなリースを延長する

moo_release_task

クレームを自発的にTODOに戻す

moo_handoff_task

進行中のタスクをメモ付きで別のエージェントに引き継ぐ

moo_complete_task

必須のコマンド/証拠付きでタスクを完了とマークする

moo_verify_task

タスクの完了を検証する(人間または検証エージェント)

moo_reject_task

必須の理由付きで完了タスクを却下する

moo_ask_human

質問を人間にエスカレーションし、タスクを一時停止する

moo_get_human_inbox

人間の指示を待っているすべてのタスクを一覧表示する

moo_answer_human

質問に回答し、タスクを自動再開する

moo_capture_discovered_work

発見された作業を追加する(必須修正または延期)

moo_add_task_note

タイムスタンプ付きで帰属情報を含むコンテキスト/試行メモを追記する

moo_list_task_notes

コンテキスト履歴と試行ログを一覧表示する

moo_drop_task

必須の理由付きでタスクを破棄する

moo_reopen_task

監査履歴を失わずにタスクを再開する

moo_undo_status_change

最後のステータス遷移を元に戻す

moo_bulk_drop_tasks

単一の操作で複数のタスクを破棄する

moo_bulk_reopen_tasks

単一の操作で複数のタスクを再開する

moo_record_decision

プロジェクトレベルのアーキテクチャ上の決定を記録する

moo_list_decisions

計画前に確定した決定を一覧表示する

moo_supersede_decision

新しい根拠で決定を置き換える

moo_merge_tasks

重複タスクをマージする

moo_session_resume

「どこまで進めた?」セッションサマリー

moo_export_project

プロジェクトをMarkdown、JSON、またはプレーンテキストにエクスポートする

moo_archive_completed

完了/破棄されたタスクをアクティブリストからアーカイブする


🏛️ アーキテクチャとクリーンコード

src/
├── domain/                    # Pure Enterprise Domain Rules & Invariants
│   ├── types.ts              # Domain interfaces & value types
│   ├── errors.ts             # Domain-specific typed error classes
│   ├── dependency.ts         # DAG cycle detector & unblocked evaluator
│   ├── conflict.ts           # File touch overlap conflict detector
│   └── similarity.ts         # Duplicate task similarity detector
│
├── infrastructure/            # Persistence & External Integrations
│   ├── db/database.ts        # SQLite manager (WAL mode, busy timeout)
│   ├── db/migrations.ts      # Schema DDL and versioning
│   ├── git/git-context.ts    # Git branch, commit, dirty status extractor
│   └── repositories/         # SQLite Repository Implementations
│
├── services/                  # Application Services (Use Cases)
│   ├── goal-service.ts        # Goal lifecycle & cap enforcement
│   ├── task-lifecycle-service.ts # State machine, ready queue, undo
│   ├── claim-service.ts       # Exclusive claims, leases, dead-agent timeout
│   ├── verification-service.ts# Proof of work & two-phase verification
│   ├── human-collab-service.ts# Human Q&A queue & reactive resume
│   ├── discovered-work-service.ts # Mid-flight discovered work
│   ├── decision-service.ts    # ADR logs & supersede linking
│   ├── duplicate-merge-service.ts # Idempotency & task merging
│   ├── session-service.ts     # Where-did-I-leave-off session resume
│   ├── housekeeping-service.ts# Archiving & multi-format export
│   └── index.ts               # Dependency Injection Container
│
├── mcp/                       # Model Context Protocol Stdio Server
├── server/                    # Fastify HTTP + Server-Sent Events (SSE) Engine
├── cli/                       # CLI Commands (start, init, install, mcp)
└── ui/                        # Vanilla JS + Tailwind + Lucide Icons Web UI

🤝 コントリビューション

コントリビューションを歓迎します!開発環境のセットアップ、テスト、PRガイドラインについてはCONTRIBUTING.mdをご確認ください。


📄 ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Server-enforced workflow discipline for AI agents. An MCP server providing persistent work items, dependency graphs, quality gates, and actor attribution. Schemas define what agents must produce — the server blocks the call if they don't. Works with any MCP-compatible client.
    207
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for task management that enables AI agents to read, create, update tasks, and track work sessions, allowing agents and humans to collaborate on the same task board.
    4 npm
    9
    MIT