maestro/pieces/x-ai-digest.yaml
2026-06-03 05:08:00 +00:00

198 lines
9.2 KiB
YAML
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.

name: x-ai-digest
description: |
X (Twitter) から AI 技術関連ツイートを収集・深掘りし、ダイジェスト記事Markdownを生成する。
選ぶべき場合: 「AI技術ダイジェスト」「AIヘッドライン」の作成を指示されたとき
選ぶべきでない場合: 一般的な SNS 調査、意見収集、ドキュメント処理
triggers:
keywords:
- AIダイジェスト
- AI技術ダイジェスト
- AIヘッドライン
- ダイジェスト朝刊
- ダイジェスト夕刊
max_movements: 999
initial_movement: collect
movements:
- name: collect
edit: true
persona: researcher
instruction: |
X (Twitter) から AI 技術関連のツイートを収集し、深掘り調査を行う。
## 手順
1. Task instruction に記載された検索クエリで XSearch を実行する
- 各クエリの結果から24時間以内の投稿を抽出する
2. Task instruction に記載された追跡アカウントを XUserPosts で確認する
3. 収集した全候補から Task instruction の選定基準に従って 5〜10 件を選定する
- 新機能・新サービス・新モデルのリリース情報を優先
- 24h 外やノイズ投稿は除外
4. 各候補について XPostDetail でスレッド文脈を確認する
- リプライツリー・引用元・追記ポストを確認し、文脈を補完する
5. ツイート内に URL がある場合は WebFetch で深掘りする
- 論文arXiv 等)→ Abstract・概要を取得
- GitHub → README 概要を取得
- 記事・ブログ → 要点を抽出
- 取得できない場合はスキップ(深掘りなしでも記事は作成する)
6. 収集結果を output/raw/ に書き出す
## ファイル命名規則
output/raw/{source}-{slug}.txt
例: xsearch-ai-llm.txt, xuser-huggingmodels.txt, detail-12345.txt
## 画像・スクリーンショットの収集(必須)
ツイートに添付された画像(モデル比較グラフ、ベンチマーク結果、アーキテクチャ図、
デモスクリーンショット等)は積極的に DownloadFile で output/images/ に保存する。
- filename: "images/{slug}.png"
- section: "output"
深掘り先の記事・論文に含まれる図表も同様に収集すること。
ビジュアル素材が記事の品質を大きく左右する。
## 原則
- 【必須】モデルの内部知識だけで情報を書かないこと。必ず実際のツイートデータを収集する
- 検索が一部失敗しても、取得できた分で続行する
- verify 由来の指摘がある場合は、不足点を優先的に補完する
## 終了 / 遷移方法
- **次の compose へ**: `transition({next_step: "compose"})`
- **対象が曖昧で確認が必要**: `complete({status: "needs_user_input", missing_info: "...", why_no_default: "..."})`
- **技術的失敗で打ち切り**: `complete({status: "aborted", abort_reason: "..."})`
allowed_tools:
- XSearch
- XUserPosts
- XPostDetail
- XFetchCardMedia
- BrowseWeb
- WebFetch
- WebSearch
- Read
- Write
- Edit
- Glob
- Grep
- Bash
- DownloadFile
- SearchKnowledge
- ListNamespaces
- ListDocuments
- SearchNotes
- ReadNote
- 'mcp__*'
default_next: compose
rules:
- condition: 十分な情報を収集し output/raw/ に書き出した
next: compose
- name: compose
edit: true
persona: writer
instruction: |
output/raw/ の収集データから、articles JSON とヘッドライン記事 Markdown を生成する。
## 最初に確認
Glob で output/raw/ のファイル一覧を確認する。ファイルがなければ collect に遷移すること。
## 手順
1. output/raw/ の各ファイルを Read で読み込む
2. output/x-ai-digest-articles.json を生成する
形式:
{"articles":[{"title":"タイトル","summary":"要約","comment":"一言コメント","url":"ツイートURL"}]}
3. Bash で JST の日付を取得する: TZ=Asia/Tokyo date +%Y-%m-%d
4. Task instruction で指定されたセッション種別(朝刊/夕刊)に従い、
output/headline-YYYY-MM-DD-{session}.md を生成する
- {session} は morning または evening
## ヘッドライン記事のフォーマット(厳守)
- Docusaurus frontmatter 付きsidebar_position: 100, title, description
- タイトル形式: MM/DD AIヘッドライン朝刊|夕刊)
- MM は必ずゼロ埋め2桁02/25 ○、2/25 ×
- (朝刊)/(夕刊)は必ずつける
- 各トピックは 概要・深掘り・ポイント の3セクション構成
- 末尾に「まとめ」セクション(今日の注目ポイントをリスト形式で)
- 最終行: *情報はYYYY年MM月DD日時点のものです。*
## 画像の活用(必須)
output/images/ に画像が保存されている場合は、各トピックの該当箇所に埋め込む:
`![説明](./images/ファイル名.png)`
画像があるのにテキストだけの記事にしないこと。
特にベンチマーク結果やモデル比較のグラフは、記事の説得力を大きく向上させる。
## verify 由来の指摘がある場合
「これまでのレビュー指摘」がある場合は、指摘事項を漏れなく解消すること。
allowed_tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
- 'mcp__*'
default_next: verify
rules:
- condition: 2ファイルarticles JSON + headline MDを書き出した
next: verify
- condition: 情報が不十分で追加収集が必要output/raw/ が空を含む)
next: collect
- name: verify
edit: false
persona: supervisor
instruction: |
出力ファイルの存在とフォーマットを確認する。
## 確認手順
1. Glob で output/ 内のファイル一覧を確認する
2. output/x-ai-digest-articles.json を確認する
- ファイルが存在すること
- Read で内容を読み、articles 配列が存在すること
- 各要素に title, summary, comment, url の4フィールドがあること
- articles が1件以上あること
3. output/headline-*.md を確認する
- ファイルが存在すること
- Read で内容を読み、以下をチェック:
a. frontmatter に sidebar_position, title, description があること
b. title が「MM/DD AIヘッドライン朝刊」または「MM/DD AIヘッドライン夕刊」形式であること
c. MM がゼロ埋め2桁であること01〜12
d. 各トピックに「概要」「深掘り」「ポイント」の3セクションがあること
e. 末尾に「まとめ」セクションがあること
f. headline MD の sessionmorning/eveningが Task instruction と一致すること
4. output/images/ に画像があるのに headline MD に `![` が一つもない場合、
画像埋め込み漏れとして compose に差し戻す
## チェックシート確認
GetChecklist でチェックシートが存在する場合、全アイテムが完了done/failed/skippedしていることを確認する。
remaining が 0 でないまま完了してはならない。
5. 不足があれば、`transition({next_step: "compose", summary: ...})` で差し戻す。summary は次の形式で書く:
[判定] needs_fix
## 問題点
- [ファイル名:項目] 何が問題か
## 期待する修正
- 何をどう直すべきか
## 合格基準
- 再レビューで何を確認するか
## 次にやること
- compose で最初に着手すべき作業
## 合格時のユーザーへの返答complete ツール)
合格と判断したら、`complete({status: "success", result: ...})` を呼ぶ。
result はそのままユーザーに表示される最終回答。headline MD を Read で読み、記事の見出し一覧と各トピックの概要を整形する。
- 【厳守】「完了しました」「確認しました」等のステータス表示やメタ説明は一切書かない
- 1行目からいきなり記事の内容を書き始めること
- 表・リスト・見出しなど Markdown 書式を活用して読みやすくする
## 終了方法のまとめ
- 合格: `complete({status: "success", result: "ユーザー向け最終回答"})`
- 修正必要: `transition({next_step: "compose", summary: "差し戻し指摘"})` (上記形式で)
- 技術的失敗: `complete({status: "aborted", abort_reason: "..."})`
allowed_tools:
- Read
- Glob
- Grep
default_next: COMPLETE
rules:
- condition: ファイルがない、またはフォーマットに不足がある
next: compose