maestro/docs/tools/searchworkspacetasks.md
oss-sync b1292e34b2
Some checks failed
CI / build-and-test (push) Has been cancelled
sync: update from private repo (edc775f2)
2026-07-06 01:04:12 +00:00

6.5 KiB
Raw Permalink Blame History

SearchWorkspaceTasks

同じワークスペース(スペース)内の他タスクの会話を横断検索する META ツール(全 piece で常時利用可能)。SearchTaskConversation が現在タスクの会話だけを検索するのに対し、こちらは「同じスペースの他タスクで前に何を頼まれたか/どう進めたか」を思い出すための対になるツール。全文は返さない — ヒットの一覧(抜粋)だけを返す。前後の全文が必要なら around_ref で辿る。

スコープ

  • 検索対象は同じスペースの他タスクのみ。タスクの状態(実行中/完了/中断など)は問わない
  • 呼び出し元がそのスペースの owner またはメンバーであることを前提に、DB クエリ自体がスペース境界で絞り込む。他スペースのタスクには物理的に到達できない
  • no-authサインインしていない owner に紐づかない)実行や subtask 実行では、このツール自体が利用できない文脈になる。その場合はエラーではなく「このコンテキストでは利用できません」という案内文を返す

索引される内容(検索でヒットするテキスト)

検索結果の抜粋は、コメント本文そのものではなく索引用に正規化・墨消しされたテキスト。索引されるのは次のみ:

  • ユーザーの依頼・割り込みrequest / interjection
  • エージェントの成果・確認result / ask、handoff
  • エージェントの思考progress の thinking
  • movement の要約progress の summary
  • ツール実行はツール名のみ(例: tool: WebFetch)。引数の値やツールの実行結果は一切索引されない
  • 添付ファイルはファイル名のみを本文末尾に追記して索引する(中身は索引しない)

上記に当てはまらない種別(通常の comment、interjection_ack、未知の progress type など)は索引されない=検索にヒットしない。

パラメータ

queryaround_ref はどちらか一方のみ指定する(排他・両方またはどちらも未指定はエラー)。

名前 必須 説明
query ○(around_ref と排他) 検索キーワード
around_ref ○(query と排他) "comment:<id>" 形式。指定した comment の前後を読む
context 各ヒットに付す前後コメント件数grep -C 相当)。既定 0、最大 5
limit 最大ヒット件数。既定 10、最大 30query モードのみ)
kind コメント種別で絞り込むrequest/comment/interjection/result/ask/progress/handoff
author 発言者で絞り込む
task_id 特定タスク ID に絞り込む

出力の ref は task:<id> / comment:<id> の形式。

検索マッチング

日本語も含めた部分一致検索を trigram tokenize の FTS5 インデックスで行う。3 文字未満の語は trigram で MATCH できないため、そのような語が含まれるクエリは自動的に LIKE部分一致にフォールバックする(挙動は同じだが遅い)。

複数語はスペース区切りの暗黙 ANDGoogle 的)ログイン 認証 と入力すると「ログイン」と「認証」を両方含むコメントにヒットする(語順・位置は問わない)。フレーズ一致ではないので、離れて出現していても両語があればヒットする。各語は内部で個別に引用してから AND で結合するため、AND/OR/NEAR/*/" などの記号が語に混ざっても FTS5 演算子としては解釈されない(=ユーザー側から任意の演算子検索や OR 検索を差し込むことはできない)。広く探したいときは 1 語で、絞りたいときは語を足す。

SQLite のビルドが FTS5 に対応していない環境では、検索機能自体が使えない旨のメッセージを返す(エラーにはしない)。

ドリルダウン(around_ref)と検索結果の違い

検索結果の抜粋は索引用に墨消しされた要約だが、around_ref(および context 指定時に付随する前後コメント)は対象コメントの生の本文をそのまま返す。 同じスペースのメンバーはもともと製品 UI 上でその兄弟タスクの全文を読めるため、同じ信頼境界の中で全文を返すことは越権にならない。つまり「検索は軽量で墨消しされた概観、ドリルダウンは同じ信頼境界内でのフル情報」という設計。

出力例

## Workspace Task Search Results (query: "認証", 2 hit(s))

- task:12 "ログイン画面の改修" / comment:88 user/request 2026-06-20T10:00:00Z
  …既存の認証フローは変更しないでください…

- task:12 "ログイン画面の改修" / comment:95 agent/result 2026-06-20T11:30:00Z
  …認証まわりは touch せず、UI だけ差し替えました…

前後の文脈をさらに確認するには around_ref: "comment:<id>" を指定してください。
## Workspace Task Search — task:12 "ログイン画面の改修" (comment:88 前後 2 件)

- comment:86 user/comment 2026-06-20T09:55:00Z
  質問なんですが、既存の認証部分は今回のスコープに入りますか?
- comment:88 user/request 2026-06-20T10:00:00Z ←
  既存の認証フローは変更しないでください。UI 差し替えのみでお願いします。
- comment:90 agent/progress 2026-06-20T10:02:00Z
  了解しました。認証ロジックには触れずに進めます。

使いどころ

  • 同じスペースの別タスクで、この件についてすでに依頼・決定が交わされていないか確認する
  • ユーザーに「前にどう言いましたっけ」と聞き直す前に、まず自分で探す
  • 過去タスクの成果物・進め方を参考にする(他タスクの ID や作業内容が分かれば task_id で絞り込める)

ヒットで判明した恒久的な事実(制約・判断)は MissionUpdateuser_constraints / decisions に pin しておくと、以降の movement でも見失わない。

関連ツール

  • SearchTaskConversation / ReadTaskConversation — 現在タスク自身の会話コメントtranscriptを検索・閲覧する。他タスクへは到達できない。こちらは同じスペースの他タスクを横断検索する対