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

88 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 など)は索引されない=検索にヒットしない。
## パラメータ
`query``around_ref` はどちらか一方のみ指定する(排他・両方またはどちらも未指定はエラー)。
| 名前 | 必須 | 説明 |
|------|------|------|
| `query` | ○(`around_ref` と排他) | 検索キーワード |
| `around_ref` | ○(`query` と排他) | `"comment:<id>"` 形式。指定した comment の前後を読む |
| `context` | | 各ヒットに付す前後コメント件数grep -C 相当)。既定 0、最大 5 |
| `limit` | | 最大ヒット件数。既定 10、最大 30`query` モードのみ) |
| `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 上でその兄弟タスクの全文を読めるため、同じ信頼境界の中で全文を返すことは越権にならない。つまり「検索は軽量で墨消しされた概観、ドリルダウンは同じ信頼境界内でのフル情報」という設計。
## 出力例
```md
## 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>" を指定してください。
```
```md
## 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` で絞り込める)
ヒットで判明した恒久的な事実(制約・判断)は `MissionUpdate``user_constraints` / `decisions` に pin しておくと、以降の movement でも見失わない。
## 関連ツール
- `SearchTaskConversation` / `ReadTaskConversation` — 現在タスク自身の会話コメントtranscriptを検索・閲覧する。他タスクへは到達できない。こちらは同じスペースの他タスクを横断検索する対