Culture Trend Curator
目的
公開トレンドに基づいて、書籍、映画、テレビ番組のおすすめをキュレーションします。個人プロフィールマッチングよりも、最近の文化的ホットトピック、信頼できるベストリスト、長期的な評価スコア、評価数の信頼性、カテゴリの多様性を優先します。
使用するタイミング
このスキルは次のようなリクエストに使用します:
- 最近の人気や公開リストに基づいて書籍や映画を推薦する
- 週次/月次/年次の書籍・映画ダイジェストを生成する
- 最近の話題作と長期的な名作を比較する
- スケジュールされたレポートや通知コンテンツを作成する
- ユーザーの個人の読書・視聴履歴に依存しない
デフォルト動作モード
ユーザーから特に指定がない限り、デフォルトのダイジェストは週次とします:
- 時間枠:過去30日間+今年のリスト
- 出力:書籍5点、映画/テレビ5点
- 書籍:中国語で読める書籍(中国語版、翻訳版、中国での出版・議論シグナルがあるもの、中国語話者が読みやすいもの)を優先。英語リストの直訳にならないように注意。
- 書籍は新刊リストになってはいけない:新刊ページは発見のソースとしてのみ扱う。通常の週次ダイジェストでは、最近のホットな書籍と、安定した定番書、モダンクラシック、長期的ハイスコア作品、メディア・コミュニティのピックを混ぜる。
- 映画/テレビ:中国語圏で視聴可能または活発に議論できる作品を優先。デフォルトで1枠は世界の映画史クラシックキャッチアップ枠とする。中国語作品である必要はないが、広く認められたクラシックとしての価値と、中国語圏での視聴・議論が容易であること。
- スタイル:簡潔な編集型キュレーション。
- 個人データ:デフォルトは公開ソースのみ。明示的にリクエストされた場合のみ個人記録を使用。
- ソース:公開ランキング、信頼できるメディアリスト、プラットフォームチャート、クロスソースコンセンサスを優先。
- リンク:URLが利用可能な場合は、最終マークダウンにクリック可能なソースリンクを保持。
- アーティファクト:ユーザーが公開可能な出力、レポート、記事、再利用可能な結果を求めた場合は、インライン応答ではなく
.mdアーティファクトを作成。
ワークフロー
-
キュレーション概要を定義する。
- コンテンツタイプを特定:書籍、映画、テレビ、またはすべて。
- 時間枠を特定:7日、30日、今年、過去1年、またはオールタイムクラシック。
- デフォルトのロケールルールに従う(オーバーライドがない場合):書籍は中国語で読めるものを優先、映画/テレビは中国語で視聴可能または議論可能なものを優先し、1枠はグローバルクラシックキャッチアップ枠。
-
候補アイテムを収集する。
references/source_strategy.mdを読む。- 単一プラットフォームに依存せず、複数の独立ソースを検索する。
- タイトル、制作者、タイプ、ソース、URL、評価、評価数、リスト/ランク、年、タグ、出現理由を取得する。
- 翻訳タイトルや重複版を重複排除する。
-
ランク付けとフィルタリング。
references/scoring_rules.mdを読む。- 明らかに低品質なアイテム(評価が極端に低い、サンプル数が非常に少ない、根拠のない純粋なマーケティングリストなど)をフィルタリングする。
- 最近の話題性と長期的品質のバランスをとる。
- 多様性を確保:一つのジャンル、国、コンテンツタイプ、ソースファミリーだけを推奨しないようにする。
- 書籍については新刊候補の上限を設定し、安定した定番書/バックリスト/クラシックの選択肢を明示的に含め、単なるDouban最新書ダイジェストにならないようにする。
-
ダイジェストをレンダリングする。
references/output_format.mdを読む。- ユーザーが公開、投稿、プラットフォームへの送信、WeChat公式アカウント/ニュースレター/ソーシャルへの適応を求めた場合は、
references/publishing_formats.mdを読む。 - 候補がJSONとして保存されている場合は
scripts/rank_items.pyを使用する。 - ランク付けされたJSONからマークダウンを生成するには
scripts/render_digest.pyを使用する。 - 各アイテムについて:おすすめ理由、なぜ今なのか、ソースシグナル、リスクノートを含める。
- アイテムタイトル、ソースノート、最終参考文献にURLが利用可能な場合は、クリック可能なマークダウンリンクを使用する。
- ユーザーが具体的なアーティファクトやプラットフォーム対応記事を求めた場合、最終公開可能なドラフトを
.mdファイルとして保存する。 - 設定済みWeCom配信については、記事とカバー画像が存在した後にのみ
scripts/send_wecom_notification.shを使用する。Webhookは無視されるローカル設定に保持し、スキル指示、アーティファクト、Gitに決して入れない。
オプション配信
ユーザーが完成したダイジェストを設定済みのWeComグループに送信するよう依頼した場合、references/publishing_formats.mdの配信手順を読む。デフォルトの配信はタイトル通知、カバー画像、マークダウン添付ファイルである。完全な記事本文は、明示的にリクエストされた場合のみ送信する(複数のグループメッセージにまたがる可能性があるため)。
- 適切な場合にレコメンデーション履歴を保存する。
- 繰り返し実行する場合、発行されたタイトルを呼び出し元のプロジェクトまたは選択された出力ディレクトリ内のローカル履歴JSONファイルに保存する。
- デフォルトで履歴を記録するが、ユーザーが明示的に重複を避けるよう依頼しない限り、それを使ってレコメンデーションを除外したり順位を下げたりしない。
- 正規キーとエイリアスを使用して、翻訳タイトルと原題が重複排除可能になるようにする(重複排除が有効な場合)。
- オプションの重複ウィンドウ:日次=30日、週次=8週間、月次=6ヶ月、クラシック=90日。
候補JSONスキーマ
スクリプトを使用する場合、JSONファイルをリストまたはitemsオブジェクトとして準備します:
{
"items": [
{
"title": "書籍または映画のタイトル",
"creator": "著者、監督、またはショーランナー",
"type": "book",
"url": "https://example.com/item",
"year": 2026,
"rating": 8.7,
"rating_scale": 10,
"rating_count": 12000,
"source_count": 3,
"trend_window": "30d",
"trend_score": 0.8,
"rank": 4,
"tags": ["history", "nonfiction"],
"sources": ["Douban", "WeRead", "media list"],
"evidence": ["月度リストに登場", "評価数が多い"],
"reason": "おすすめする理由",
"risk": "注意点"
}
]
}
スクリプト使用方法
候補をランク付け:
python3 scripts/rank_items.py candidates.json --out ranked.json --history recommendation_history.json --mode weekly
デフォルトの--duplicate-policy noneは、後で履歴を記録しますが、履歴を使ってアイテムを除外したり順位を下げたりはしません。
明示的にリクエストされた場合のみ、30日間の強力な重複ウィンドウを持つデイリーモード:
python3 scripts/rank_items.py candidates.json --out ranked.json --history recommendation_history.json --mode daily --duplicate-policy exclude
マークダウンダイジェストをレンダリングし、発行されたアイテムを履歴に追加:
python3 scripts/render_digest.py ranked.json --out digest.md --books 5 --films 5 --history-out recommendation_history.json --mode weekly
品質基準
弱い枠を無理に埋めるよりも、少数のアイテムを推薦する方がよい。候補が短期的なトラフィックのみで品質の根拠がない場合は除外するか、ハイプウォッチとしてラベル付けする。ソースが矛盾する場合は、不確実性を簡単に説明する。