storage-taskwarrior について
現在の Git リポジトリに紐づけて Taskwarrior のタスクを管理するスキルです。リモート URL からプロジェクト ID を導出し、環境変数で上書きできるほか、タスク操作とレポートに対応します。
主な機能
- 01Git リモートからプロジェクト ID を導出
- 02TASK_PROJECT_ID による ID 上書き
- 03プロジェクトタスクの一覧と絞り込み
- 04タスクの追加、更新、削除、完了
- 05統計とサマリーの表示
- 06JSON のインポートとエクスポート
活用シーン
- 01リポジトリごとにタスクを分離
- 02ステータス、タグ、優先度で検索
- 03プロジェクトのタスク統計を確認
- 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 の自動解決
エージェントは次の処理を自動的に行います。
- Git リポジトリのリモート URL を検出します:
git config --get remote.origin.url - オーナーとリポジトリを抽出します:
github.com:{owner}/{repo}.git→{owner}-{repo} - すべてのタスクコマンドで、これを
projectフィルターとして使用します - 環境変数
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
実装ガイドライン
このエージェントを使用するコマンドを実装する場合:
-
必ず最初にプロジェクト ID を抽出します:
- 実行:
git config --get remote.origin.url | sed -E 's/.*[:/]([^/]+)\/([^/.]+)(\.git)?$/\1-\2/' $PROJECT_ID変数に保存します- 上書きを許可します:
${TASK_PROJECT_ID:-$PROJECT_ID}
- 実行:
-
すべてのタスク操作にプロジェクトフィルターを指定する必要があります:
- 次を使用します:
task project:$PROJECT_ID [filter] [command] - 自動化スクリプトでは、プロジェクトフィルターなしで
task [command]を実行しないでください
- 次を使用します:
-
エッジケースに対応します:
- タスクが見つからない場合:空のリストを適切に返します
- プロジェクト ID が無効な場合:形式を検証します(英数字とハイフンのみ)
- .task ディレクトリが存在しない場合:
task config report.next.labels ''で初期化します
-
人が読みやすい出力を提供します:
- プログラムで使用する場合は、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
コメント
Markdown 対応