mcpField
S
storage-taskwarrior

storage-taskwarrior

github.com/zenobi-us生産性6854 回インストール今日更新
リポジトリ

storage-taskwarrior について

現在の Git リポジトリに紐づけて Taskwarrior のタスクを管理するスキルです。リモート URL からプロジェクト ID を導出し、環境変数で上書きできるほか、タスク操作とレポートに対応します。

主な機能

  1. 01Git リモートからプロジェクト ID を導出
  2. 02TASK_PROJECT_ID による ID 上書き
  3. 03プロジェクトタスクの一覧と絞り込み
  4. 04タスクの追加、更新、削除、完了
  5. 05統計とサマリーの表示
  6. 06JSON のインポートとエクスポート

活用シーン

  1. 01リポジトリごとにタスクを分離
  2. 02ステータス、タグ、優先度で検索
  3. 03プロジェクトのタスク統計を確認
  4. 04JSON 形式でタスクをバックアップまたは復元

インストール

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

$npx skills add https://github.com/zenobi-us/dotfiles --skill storage-taskwarrior

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

詳細

エージェントの目的: 現在のプロジェクトの Git リポジトリのリモート URL をプロジェクト ID として使用し、Taskwarrior のタスクを管理します。

プロジェクト ID の生成: Git のリモート URL から自動的にスラッグ化されます

  • 例:[email protected]:zenobi-us/dotfiles.git → zenobi-us-dotfiles
  • 簡単にフィルタリングできるよう、Taskwarrior の project 属性に保存されます

主な機能

1. プロジェクト ID の自動解決

エージェントは次の処理を自動的に行います。

  1. Git リポジトリのリモート URL を検出します:git config --get remote.origin.url
  2. オーナーとリポジトリを抽出します:github.com:{owner}/{repo}.git → {owner}-{repo}
  3. すべてのタスクコマンドで、これを project フィルターとして使用します
  4. 環境変数 TASK_PROJECT_ID による手動での上書きを許可します
2. タスクの一覧表示と検索

このプロジェクトのすべてのタスクを一覧表示:

task project:$PROJECT_ID list

タグでタスクを検索:

task project:$PROJECT_ID +tag list

ステータスでフィルタリング:

task project:$PROJECT_ID status:pending list
task project:$PROJECT_ID status:completed list

優先度でフィルタリング:

task project:$PROJECT_ID priority:H list
task project:$PROJECT_ID priority:L list

複雑なフィルタリング:

task project:$PROJECT_ID +bug priority:H status:pending list
3. タスクの CRUD 操作

新しいタスクを追加:

task project:$PROJECT_ID add "Task description" +tag priority:H

すべての属性を指定してタスクを作成:

task project:$PROJECT_ID add "Implementation task" project:$PROJECT_ID +feature +backend priority:M

既存のタスクを更新:

task project:$PROJECT_ID 5 modify priority:H +urgent
task project:$PROJECT_ID 5 modify "New description" -old-tag +new-tag

タスクを削除:

task project:$PROJECT_ID 5 delete

タスクを完了済みにする:

task project:$PROJECT_ID 5 done
4. タスクの分析とレポート

タスクの統計を表示:

task project:$PROJECT_ID stats

ステータス別にタスクの概要を表示:

task project:$PROJECT_ID summary

アクティブなタスクを一覧表示:

task project:$PROJECT_ID active list
5. エクスポートとインポート

タスクを JSON にエクスポート:

task project:$PROJECT_ID export > backup.json

JSON からタスクをインポート:

task import backup.json

実装ガイドライン

このエージェントを使用するコマンドを実装する場合:

  1. 必ず最初にプロジェクト ID を抽出します:

    • 実行:git config --get remote.origin.url | sed -E 's/.*[:/]([^/]+)\/([^/.]+)(\.git)?$/\1-\2/'
    • $PROJECT_ID 変数に保存します
    • 上書きを許可します:${TASK_PROJECT_ID:-$PROJECT_ID}
  2. すべてのタスク操作にプロジェクトフィルターを指定する必要があります:

    • 次を使用します:task project:$PROJECT_ID [filter] [command]
    • 自動化スクリプトでは、プロジェクトフィルターなしで task [command] を実行しないでください
  3. エッジケースに対応します:

    • タスクが見つからない場合:空のリストを適切に返します
    • プロジェクト ID が無効な場合:形式を検証します(英数字とハイフンのみ)
    • .task ディレクトリが存在しない場合:task config report.next.labels '' で初期化します
  4. 人が読みやすい出力を提供します:

    • プログラムで使用する場合は、JSON エクスポートを解析します
    • リスト出力は、明確な列と強調表示を用いて整形します
    • 概要にタスク数を表示します

コマンド例

複数のフィルターを使った検索
# Find urgent bugs with high priority
task project:zenobi-us-dotfiles +bug priority:H list

# Find pending tasks with high priority
task project:zenobi-us-dotfiles status:pending priority:H +important list
一括操作
# Mark all overdue tasks as waiting
task project:zenobi-us-dotfiles overdue modify +waiting

# Add same tag to multiple tasks
task project:zenobi-us-dotfiles 1,2,3 modify +reviewed
複雑なフィルタリング
# Find tasks matching pattern
task project:zenobi-us-dotfiles 'description~Bug' list

# Combine filters with AND/OR
task project:zenobi-us-dotfiles '(priority:H or status:pending)' list

連携先

このエージェントは次と連携します。

  • Taskwarrior:主要なタスク管理バックエンド
  • Git:リポジトリのメタデータからプロジェクト ID を自動取得
  • OpenCode Commands:/project:do:task ワークフローとの連携
  • Bash/Scripts:CI/CD 自動化のためのエクスポート/インポート

参考資料

  • Taskwarrior のドキュメント:https://taskwarrior.org
  • プロジェクトのフィルタリング:task help | grep project
  • フィルター構文の詳細:man taskfilter または task help usage

コメント