Community研究&データ分析github.com

Tracker — 進捗する作業を追跡する

Mercury/pi アシスタント向けの再利用可能なエージェントスキル。スキーマ駆動のレジストリ(存在するもの)とトラッカー(動く作業)を提供する、ゼロ依存のPythonエンジン。

Tracker — 進捗する作業を追跡する とは?

このスキルは、ステータスが変化し、担当者や期限を持つアイテム(タスク、バグ、請求書など)を追跡するための「トラッカー」機能を提供します。SQLiteをバックエンドとしたPythonエンジン(`engine/tracker.py`)は外部依存が一切なく、階層構造(group → subgroup → item)と変更履歴(item_history)を自動で記録します。ユーザーは自然言語で進捗を報告でき、エージェントが自動的にコマンドに変換します。レジストリとは異なり、ステータスの変更や担当者、期限が伴う作業に最適です。プリセットとして「tasks(タスク)」「bugs(バグ)」「invoices(請求書)」「features(機能パイプライン)」が用意されており、ワークスペースローカルなカスタムプリセットも作成可能です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add Avishai-Tsabari/mercury-skills

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Tracker — 進捗する作業を追跡する は何をしますか?

このスキルが適切な場面

判断のきっかけとなる質問: 「…のステータスは?」 または 「これは誰が担当している?」

トラッカーとは、ステータスが変化し、担当者と期限を持ち、履歴を保存する価値のあるアイテムを扱うものです。

ルーティング判定テスト

トラッカーを導入するには、以下のうち 少なくとも2つ が必要です:

  • 時間とともに変化するステータス(属性ではなく 「動き」)
  • 人間の担当者
  • 期限日
  • 階層構造:グループ → サブグループ → アイテム

2つ未満の場合は → registry を使用します。⚠️ デフォルトは常にレジストリです。

構築方法

1つのエンジン、多数のスキーマ。

<tracker-dir>/
  schema.json    ステータス、優先度、階層ラベル、追加フィールド
  tracker.db     SQLite: アイテム + グループ + item_history

エンジン: engine/tracker.py (このSKILL.mdと同じ階層) · Python 3.9+ · 依存関係なし (標準のsqlite3を使用)。

階層: group → subgroup → item。ラベルはドメインごとに変わります。タスクなら project → module → task、バグなら product → component → bug、請求書なら client → subscription → invoice です。

ユーザーとの連携方法

  1. ルーティング判定テストを実行する。 フラットなリスト → registry。
  2. スキーマを提案する: どのステータス、何を「完了」とするか、どの優先度、階層は何か、どの追加フィールドが必要か。提案し、承認を得る。
  3. presets/ にプリセットがないか確認する。
  4. init で作成し、グループを追加し、ワークスペースレベルの registries.json インデックスにトラッカーを 登録 する。
  5. 更新は自然言語で報告できることを説明する — エージェントがそれをコマンドに変換する。

コマンド

パスはワークスペースルートからの相対パスです。SKILL_DIR はこのスキルがインストールされている場所に適宜変更してください(例: .pi/skills/tracker)。

T=<SKILL_DIR>/engine/tracker.py
D=trackers/bugs

python3 $T --dir $D init --preset bugs
python3 $T --dir $D group add webapp --name "Web App"
python3 $T --dir $D group add checkout --name "Checkout" --parent webapp
python3 $T --dir $D add "カレンダーの重複予約" --group webapp --subgroup checkout \
        --assignee dana --priority sev2 --client acme --due 2026-08-05
python3 $T --dir $D update 3 --status in-progress --notes "再現確認済み"
python3 $T --dir $D list --assignee dana --group-by status
python3 $T --dir $D list --status blocked
python3 $T --dir $D show 3
python3 $T --dir $D history 3
python3 $T --dir $D report          # サマリー: ステータス別、担当者別、期限超過、ブロック中
python3 $T --dir $D delete 3 --yes  # ⚠️ 完全削除

list はフィルタなしで閉じたアイテムを自動的に非表示にします。--all ですべて表示します。

利用可能なプリセット

tasks タスク · bugs バグとクライアント課題 · invoices 請求書と回収 · features 機能パイプライン

プリセット解決順序

init --preset <name> は <name>.json を以下の順序で解決します — 最初に見つかったものが優先されます:

  1. <workspace>/trackers/presets/<name>.json — ワークスペースローカルのプリセット。エンジンが実行されるワーキングディレクトリからの相対パス。
  2. <SKILL_DIR>/presets/<name>.json — 上記の組み込みプリセット

組み込みと同じ名前のワークスペースローカルプリセットは組み込みを上書きします。存在しないプリセットを指定すると、両方の場所にあるすべてのプリセット名が [space] / [built-in] のタグ付きで一覧表示されます。

ワークスペースローカルプリセットの作成方法: スキーマJSON(schema.json と同じ形式。組み込みプリセットを参照)を trackers/presets/ に配置します。このディレクトリは明示的に --preset <name> が指定された場合のみ読み込まれ、その他のファイルは無視されます。

鉄則

  • 📊 トラッカーが唯一の真実源である — エージェントのメモリにステータスを保持しない。常にクエリすること。
  • ⛔ blocked ステータスには理由が必要 — メモに記載されていないブロックは無価値。
  • 🗑️ 削除には --yes と明示的なユーザー確認が必要。 デフォルトで「キャンセル済み」ステータスは存在しない — 必要な場合は、削除する代わりにスキーマに追加すること。
  • 📜 すべての変更は item_history に記録される — データベースを手動で編集しないこと。
  • 🔁 ステータスが3つ以下で、担当者も期限もない場合 = レジストリにすべきだった。

関連スキル