199 lines
9.3 KiB
YAML
199 lines
9.3 KiB
YAML
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
|
||
- XTimeline
|
||
- 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/ に画像が保存されている場合は、各トピックの該当箇所に埋め込む:
|
||
``
|
||
画像があるのにテキストだけの記事にしないこと。
|
||
特にベンチマーク結果やモデル比較のグラフは、記事の説得力を大きく向上させる。
|
||
|
||
## 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 の session(morning/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
|