sync: update from private repo (061c701c)
CI / build-and-test (push) Successful in 6m22s

This commit is contained in:
oss-sync
2026-07-09 03:01:06 +00:00
parent 96bffa9a15
commit 63d34d7cf6
36 changed files with 1180 additions and 92 deletions
+44 -13
View File
@@ -16,6 +16,12 @@ movements:
dig で立てた並列調査計画に従い、各テーマを delegate で1件ずつ直列に深掘りさせ、
最後に統合レポートにまとめる。重い調査は各サブに任せ、自分の文脈は軽く保つ。
成果物の上書き防止: システムプロンプトの「現在日時」の日付 (YYYY-MM-DD) を {DATE} とし、
成果物は {DATE} 入りのパスに書く。**過去の実行が残したファイルは編集も削除もしない**。
{DATE} 入りの成果物(output/report-{DATE}.md や output/research/{DATE}/ 等、途中で
中断した実行の残骸も含む)が既にあり、それが別タスクのものなら、{DATE}-2, {DATE}-3 ...
を全ファイル共通で使う。
手順:
1. dig で立てた調査テーマを思い出す(2〜5 個程度)。各テーマに上から 1 始まりの
連番を振る(1, 2, 3 ...)。
@@ -25,21 +31,21 @@ movements:
- 調べるテーマと目的・背景
- 「WebSearch / WebFetch / 一次情報で裏を取る。モデルの内部知識だけで書かない」指示
- 「概要・主要な特徴・数値や事例・まとめと考察 の構成で
output/research/theme-{連番}.md に Write せよ。関連する画像・グラフは
output/images/ に保存し Markdown で埋め込め」指示
output/research/{DATE}/theme-{連番}.md に Write せよ({DATE} は展開済みの実日付で渡す)。
関連する画像・グラフは output/images/{DATE}/ に保存し Markdown で埋め込め」指示
- 「完了したら 3〜5 行の要約だけを返せ。深掘り本文は返さずファイルに書け」
- 「あなたは末端の調査担当。delegate / SpawnSubTask は呼ぶな」
各サブの戻り値(短い要約)だけが手元に残る。本文はファイルにある。
3. Glob で output/research/*.md の件数を確認する。
4. 各サブの要約とファイルを基に統合レポートを output/report.md に Write する:
3. Glob で output/research/{DATE}/*.md の件数を確認する。
4. 各サブの要約とファイルを基に統合レポートを output/report-{DATE}.md に Write する:
- 各テーマの主要な知見を統合(矛盾・重複は整理)
- 比較・対照が必要なら表形式で整理
- 全体のまとめと考察を付ける
- 各テーマの詳細へ相対リンク [theme-{連番}](./research/theme-{連番}.md) で繋ぐ
5. output/report.md を書き終えたら verify へ遷移する
- 各テーマの詳細へ相対リンク [theme-{連番}](./research/{DATE}/theme-{連番}.md) で繋ぐ
5. output/report-{DATE}.md を書き終えたら verify へ遷移する
default_next: verify
rules:
- condition: output/report.md に統合レポートを作成した
- condition: output/report-{DATE}.md に統合レポートを作成した
next: verify
- name: dig
@@ -71,6 +77,15 @@ movements:
WebSearch、WebFetch、ファイル読み込み等で情報を集め、必ず Write で output/ にファイルとして書き出すこと。
テキストで回答するだけでは不十分。
上書き防止(実行キーの決定・以後の全 movement で共有):
システムプロンプトの「現在日時」の日付 (YYYY-MM-DD) を実行キーとする。ただし
同じ日付入りの成果物(output/report-{日付}.md や作業ファイル・画像等)が既にあり
別タスクのものなら、空いている {日付}-2, {日付}-3 ... を実行キーにする。
作業ファイルはファイル名に実行キーを含め、画像は output/images/{実行キー}/ に保存する。
キーを決めたら最初の作業ファイルをすぐ書き出してキーを確保する(並行する別タスクとの
衝突の余地を減らす)。analyze・verify もこの実行キーを引き継いで使う。
**過去の実行が残したファイルは編集も削除もしない**(読むのは可。内容は鵜呑みにしない)。
## 検索の原則(必須)
- モデルの内部知識だけで情報を書かないこと。主張・事実・数値は必ず WebSearch/WebFetch で裏付けを取る
@@ -88,7 +103,7 @@ movements:
## 画像・ビジュアル素材の収集(必須)
調査中は画像・グラフ・図表を積極的に収集し、output/images/ に保存すること。
調査中は画像・グラフ・図表を積極的に収集し、output/images/{実行キー}/ に保存すること。
テキストだけの調査で終わらせない。ビジュアル素材がレポートの品質を大きく左右する。
収集すべきもの:
@@ -97,7 +112,7 @@ movements:
- データの可視化(統計グラフ、トレンド図等)
- 関連する図解・インフォグラフィック
収集した画像はレポートの Markdown から相対パスで参照する: `![説明](./images/ファイル名.png)`
収集した画像はレポートの Markdown から相対パスで参照する: `![説明](./images/{実行キー}/ファイル名.png)`
## 終了 / 遷移方法
- **次の analyze へ**: `transition({next_step: "analyze"})`
@@ -122,6 +137,13 @@ movements:
必ず Write ツールで output/ にレポートファイルを書き出すこと。
前のステップから指摘事項がある場合は、それに対応すること。
成果物の上書き防止: レポートのファイル名には dig で決めた実行キーを入れる
(例: output/report-2026-07-08.md、同日再実行なら output/report-2026-07-08-2.md)。
dig を経ていない等でキーが不明な場合のみ、同じルール(「現在日時」の日付、
別タスクの同日成果物があれば空いている -2, -3 ...)で決め直す。
**過去の実行が残したレポートは編集も削除もしない**。
このタスク内での verify 差し戻しでは同じファイルを修正してよい。
## 検索の原則(必須)
- レポートに記載する事実・数値・主張は、dig で収集した検索結果に基づくこと
@@ -131,8 +153,9 @@ movements:
## 画像の活用(必須)
output/images/ に画像が保存されている場合は、必ずレポートの該当箇所に埋め込む:
`![説明](./images/ファイル名.png)`
output/images/{実行キー}/ にこのタスクで収集した画像がある場合は、
必ずレポートの該当箇所に実際の保存パスで埋め込む:
`![説明](./images/{実行キー}/ファイル名.png)`(例: `./images/2026-07-08/graph.png`
画像があるのにテキストだけのレポートにしないこと。
レポート作成中に追加で必要な図・グラフを見つけた場合も DownloadFile で収集して埋め込む。
@@ -147,6 +170,13 @@ movements:
persona: reviewer
instruction: |
output/ のレポートを確認する。
審査対象は**このタスクの実行で作られたレポート**。ここまでの会話で書き出したファイル
パスをそのまま使う。パスが会話から分からない場合のみ Glob output/report-*.md で列挙し、
GetFileProvenance で created_by_task_id がこのタスクのものを選ぶ。
それでも特定できなければ日付と連番を数値として解釈して最新を選ぶ
(-2 は無印より新しく -10 は -9 より新しい。拡張子込みの辞書順ソートは
無印が -2 より後に並ぶため使わない)。
過去の実行が残したレポートは審査対象外で、編集・削除もしない。
確認手順:
1. まず Glob で output/ 内のファイル一覧を確認する
@@ -169,8 +199,9 @@ movements:
- ユーザーの追加質問(前回タスクへの補足・深掘り)への回答が含まれる場合、その内容に WebSearch/WebFetch による検索の裏付けがあるか確認する。内部知識だけで回答している形跡がある場合は「追加質問への回答に検索根拠が不足」として analyze に差し戻す
追加チェック(画像):
- output/images/ に画像があるのにレポートに `![` が一つもない場合、
画像埋め込み漏れとして analyze に差し戻す
- このタスクの実行で収集した画像(output/images/{実行キー}/ 配下)があるのに
レポートに `![` が一つもない場合、画像埋め込み漏れとして analyze に差し戻す
(過去の実行が残した画像は対象外)
## 合格時のユーザーへの返答(complete ツール)
+18 -7
View File
@@ -21,12 +21,22 @@ movements:
1件ずつ独立したサブエージェント(delegate)にクリーンな文脈で深掘りさせ、最後に
統合レポートにまとめる。重い調査は各サブに任せ、あなた自身の文脈は軽く保つ。
### 0. 実行日 {DATE} を決める(成果物の上書き防止)
システムプロンプトの「現在日時」から今日の日付を YYYY-MM-DD 形式で取り、以下 {DATE} と呼ぶ。
成果物は必ず {DATE} 入りのパスに書き、**過去の実行が残したファイルは編集も削除もしない**。
同じ日に2回目以降を実行する場合は {DATE} の代わりに {DATE}-2, {DATE}-3 ... を
全ファイル共通で使う。判定は report だけでなく {DATE} 入りの成果物のいずれか
output/triage-{DATE}.md / output/deepdive/{DATE}/ / output/report-{DATE}.md、
途中で中断した実行の残骸も含む)が既に存在するかで行う。
{DATE} を決めたら、取得を待たずまず output/triage-{DATE}.md を作業メモとして
書き出してキーを確保する(並行する別タスクとの衝突の余地を減らす)。
### 1. 取得(手短に)
タスク本文の指定(対象アカウント・キーワード・期間・件数)に従って投稿を集める。
- ホームタイムライン → XTimeline
- キーワード → XSearch
- 特定アカウント → XUserPosts
取得が空・失敗ならその事実を output/triage.md に記録する(内部知識で投稿を捏造しない)。
取得が空・失敗ならその事実を output/triage-{DATE}.md に記録する(内部知識で投稿を捏造しない)。
続行できないほど取得できない場合は
complete({status: "needs_user_input", missing_info: "...", why_no_default: "..."}) を呼ぶ。
@@ -34,7 +44,7 @@ movements:
挨拶・広告・重複・無内容を除き、議論する価値のある投稿を選ぶ。
- タスクに件数指定(「上位20件」等)があればそれに従う。
- 指定がなければ 15 件を超えない。
選んだ投稿の一覧と選定理由を output/triage.md に短く書く。ここで長考しない。
選んだ投稿の一覧と選定理由を output/triage-{DATE}.md に短く書く。ここで長考しない。
### 3. 深掘り委譲(選んだ各投稿に delegate を1回ずつ・直列)
選んだ投稿それぞれについて、delegate を1回呼ぶ。1件ずつ順番に処理する。
@@ -44,17 +54,18 @@ movements:
- 対象投稿の本文・著者・URL(または id)
- 「スレッド展開(XPostDetail)・リンク先記事(WebFetch)・著者の関連投稿(XUserPosts)・
関連 Web 検索(WebSearch)で裏を取る」指示
- その連番と「事実 / 背景 / 論点 / 評価 / 出典 を output/deepdive/tweet-{連番}.md に Write せよ」指示
- その連番と「事実 / 背景 / 論点 / 評価 / 出典 を output/deepdive/{DATE}/tweet-{連番}.md に Write せよ」指示
({DATE} は展開済みの実日付で渡す。例: output/deepdive/2026-07-08/tweet-3.md
- 「完了したら 3〜5 行の要約だけを返せ。深掘り本文は返さずファイルに書け」
- 「あなたは末端の調査担当。delegate は呼ぶな」
各サブの戻り値(短い要約)だけが手元に残る。深掘り本文はファイルにある。
### 4. 統合 → 終了
- Glob で output/deepdive/*.md の件数を確認する。
- 各サブの要約を束ね、全体傾向・横断テーマ・注目点を output/report.md に Write する。
各投稿の詳細へは相対リンク [tweet-{連番}](./deepdive/tweet-{連番}.md) で繋ぐ。
- Glob で output/deepdive/{DATE}/*.md の件数を確認する。
- 各サブの要約を束ね、全体傾向・横断テーマ・注目点を output/report-{DATE}.md に Write する。
各投稿の詳細へは相対リンク [tweet-{連番}](./deepdive/{DATE}/tweet-{連番}.md) で繋ぐ。
- 仕上がったら complete({status: "success", result: ...}) を呼ぶ。
result は output/report.md の内容をベースに、ユーザー向けの最終回答として整形する。
result は output/report-{DATE}.md の内容をベースに、ユーザー向けの最終回答として整形する。
「✅ 完了」等のメタ説明は書かず、1行目から本題を書く。
### 原則
+37 -12
View File
@@ -12,6 +12,16 @@ movements:
- name: gather
persona: researcher
instruction: |
## 実行日 {DATE}(過去の成果物の上書き防止)
システムプロンプトの「現在日時」の日付 (YYYY-MM-DD) を {DATE} とする。
成果物は必ず {DATE} 入りのパスに書き、**過去の実行が残したファイルは編集も削除もしない**。
{DATE} 入りの成果物が1つでも既に存在し(output/raw/{DATE}/ だけでなく、他の調査 piece が
作った output/report-{DATE}.md 等も含めて確認する)、それが別タスクのものなら
{DATE}-2, {DATE}-3 ... を全ファイル共通で使う
(このタスク内で gather に戻ってきた場合は同じディレクトリに追記してよい)。
{DATE} を決めたら、最初の収集結果をすぐ output/raw/{DATE}/ に書き出してキーを確保する
(並行する別タスクとの衝突の余地を減らす)。
## 調査計画
着手前に調査計画を立てる:
@@ -19,7 +29,7 @@ movements:
2. 検索クエリ案を複数考える(日本語・英語の両方を検討)
3. verify からの差し戻しがある場合は、不足点を優先的に解消する
計画に従って SNS から情報を収集し、Write で output/raw/ にテキストファイルとして書き出す。
計画に従って SNS から情報を収集し、Write で output/raw/{DATE}/ にテキストファイルとして書き出す。
## SNS 別の収集方針
@@ -40,8 +50,8 @@ movements:
- 記事詳細: `https://hn.algolia.com/api/v1/items/{id}`
## ファイル命名規則
`output/raw/{platform}-{query-slug}.txt`
例: reddit-ollama-vs-vllm.txt, x-ollama-review.txt, hn-local-llm.txt
`output/raw/{DATE}/{platform}-{query-slug}.txt`
例: output/raw/2026-07-08/reddit-ollama-vs-vllm.txt, output/raw/2026-07-08/x-ollama-review.txt
## SNS 調査の原則
モデルの内部知識だけで情報を書かないこと。必ず実際の SNS データを収集する。
@@ -49,7 +59,7 @@ movements:
## 画像・スクリーンショットの収集
SNS 投稿には画像・グラフが含まれることが多い。重要なビジュアルは DownloadFile で
`output/images/{platform}-{slug}.png` に保存する。
`output/images/{DATE}/{platform}-{slug}.png` に保存する。
## 終了 / 遷移方法
- **次の analyze へ**: `transition({next_step: "analyze"})`
@@ -68,12 +78,20 @@ movements:
instruction: |
output/raw/ の収集データを読み込み、分析してレポートを作成する。
このタスクの gather が書き出した日付ディレクトリを {DATE} とする。
会話から分からない場合のみ、Glob output/raw/*/* でファイルを列挙し
(ディレクトリ末尾の output/raw/*/ はファイルにマッチせず常に空になるので使わない)、
GetFileProvenance で created_by_task_id がこのタスクのものを選ぶ。
それでも特定できなければ親ディレクトリ名の日付と連番を数値として解釈して
最新のキーを選ぶ(-2 は無印より新しく -10 は -9 より新しい)。
過去の実行のファイルは編集・削除しない。
手順:
1. Glob で output/raw/ 内のファイル一覧を確認
1. Glob で output/raw/{DATE}/ 内のファイル一覧を確認
2. 各ファイルを Read で読み込む
3. 重要な意見・トレンド・共通見解を抽出
4. ポジティブ/ネガティブな意見を分類
5. output/report.md にレポートを書き出す
5. output/report-{DATE}.md にレポートを書き出す
## レポートの構成
- トピック概要
@@ -82,15 +100,15 @@ movements:
- まとめ
## 画像の活用
output/images/ に画像がある場合は必ずレポートに埋め込む:
`![説明](./images/ファイル名.png)`
output/images/{DATE}/ に画像がある場合は必ずレポートに埋め込む:
`![説明](./images/{DATE}/ファイル名.png)`
情報が不足している場合は gather に戻る(追加の検索クエリを明示すること)。
verify からの差し戻しがある場合は、指摘された不足点・期待する修正を優先的に解消すること。
default_next: verify
rules:
- condition: output/report.md にレポートを書き出した
- condition: output/report-{DATE}.md にレポートを書き出した
next: verify
- condition: 情報が不十分で追加収集が必要
next: gather
@@ -99,10 +117,17 @@ movements:
persona: supervisor
instruction: |
output/ のレポートを確認する。
審査対象はこのタスクの analyze が書いたレポート(output/report-{DATE}.md)。ここまでの
会話で書き出したパスをそのまま使う。会話から分からない場合のみ Glob output/report-*.md で
列挙し、GetFileProvenance で created_by_task_id がこのタスクのものを選ぶ。
それでも特定できなければ日付と連番を数値として解釈して最新を選ぶ
(-2 は無印より新しく -10 は -9 より新しい。拡張子込みの辞書順ソートは
無印が -2 より後に並ぶため使わない)。
過去の実行のレポートは対象外で、編集・削除もしない。
確認手順:
1. Glob で output/ 内のファイル一覧を確認する
2. output/report.md がなければ「不足がある」と判断し analyze に差し戻す
2. output/report-{DATE}.md がなければ「不足がある」と判断し analyze に差し戻す
3. ファイルがあれば Read で内容を確認し、網羅性・正確性・分かりやすさをチェックする
4. 不足があれば、`transition({next_step: "analyze", summary: ...})` で差し戻す。summary は次の形式で書く:
[判定] needs_fix
@@ -117,7 +142,7 @@ movements:
5. summary は抽象論で終えず、具体的な不足点・期待する修正内容を必ず含める
追加チェック(画像):
- output/images/ に画像があるのにレポートに `![` が一つもない場合、
- output/images/{DATE}/ に画像があるのにレポートに `![` が一つもない場合、
画像埋め込み漏れとして analyze に差し戻す
## チェックシート確認
@@ -126,7 +151,7 @@ movements:
## 合格時のユーザーへの返答(complete ツール)
output/ の内容で合格と判断したら、`complete({status: "success", result: ...})` を呼ぶ。
result はそのままユーザーに表示される最終回答。output/report.md を Read で読み、その内容をベースに整形する。
result はそのままユーザーに表示される最終回答。output/report-{DATE}.md を Read で読み、その内容をベースに整形する。
- 「output/xxx.md を確認してください」のようなファイル参照ではなく、内容そのものを回答として返すこと
- 【厳守】「✅ 完了」「レポートを作成しました」「確認しました」等のステータス表示・メタ説明は一切書かない。1行目からいきなり本題の内容を書き始めること
- 調査結果・発見・結論を会話調で分かりやすく伝える