with one click
x-mention-reaction
Xの未チェックreply/quote/@メンションを収集し、返信・引用RT・スキップ候補を作ってマスター承認に回す。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Xの未チェックreply/quote/@メンションを収集し、返信・引用RT・スキップ候補を作ってマスター承認に回す。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | x-mention-reaction |
| description | Xの未チェックreply/quote/@メンションを収集し、返信・引用RT・スキップ候補を作ってマスター承認に回す。 |
Hermesは判断と文章生成を担当し、X投稿境界・pending state・guard・記録はprofile内CLIに任せる。
node scripts/nikechan-x.mjs mention-context
node scripts/nikechan-x.mjs mention-propose --items-json '<json>'
node scripts/nikechan-x.mjs notify-mention-pending --thread
node scripts/nikechan-x.mjs mention-resolve --text "<Discord返信本文>" --notify
node scripts/nikechan-x.mjs mention-pending
node scripts/nikechan-x.mjs mention-approve --ids m1,m2
node scripts/nikechan-x.mjs mention-cancel --reason "<理由>"
mention-context を読むmention-context.candidates[].personContext は公開可能な投影だけとして扱うnickname をそのまま使うnickname、 / nicknameさん、 の形にしない。名前呼びは文中に自然に入る時だけ使うnickname が空の場合は相手を名前で呼ばないbody と originalTweetText は mention-context.candidates[] の原文をそのまま使い、要約・翻訳しないmediaContext に photo / video / animated_gif がある候補は、返信案・引用案を作る前に必ず vision_analyze で実メディアを確認するreplyAction=skip / quoteAction=skip にする。周辺文脈だけで推測しないmediaEvidence に入れるreason / replyText / quoteText は必ず日本語で書くmention-propose に渡し、guardとpending保存を通すmention-propose 後に notify-mention-pending --thread を実行し、最終応答は [SILENT] にするmention-context の candidates が空なら、通知せず [SILENT] にするmention-context の candidates がある場合は、既存pendingがあっても必ず新しい候補を作って mention-propose に渡す。CLIが古いpendingをsupersededとして退避するthreadId / notifiedAt を理由に notify-mention-pending --thread を省略しないmention-propose には次の形で渡す。
{
"items": [
{
"id": "m1",
"tweetLogId": "tweet_logs.id",
"postId": "相手ツイートID",
"username": "username",
"displayName": "表示名",
"type": "reply",
"body": "相手の本文を原文コピー(要約・翻訳禁止)",
"originalTweetId": "元ツイートID。なければ省略",
"originalTweetText": "元ツイート本文を原文コピー。なければ省略",
"mediaContext": "候補にメディアがある場合はmention-contextの値をそのまま含める",
"mediaEvidence": "画像を踏まえる場合はvision_analyzeで確認した具体的な視覚情報",
"replyAction": "reply",
"quoteAction": "skip",
"reason": "日本語の判断理由",
"replyText": "日本語の返信本文"
}
]
}
候補thread内のマスター返信は、固定文言ではなくLLM判断で扱う。
m1 / m2 指定があれば該当候補だけ、指定がなければ現在提示中の実行対象を承認するnode scripts/nikechan-x.mjs mention-approve --ids m1,m2 を実行し、結果を短く報告するpending.items と pending.candidates を元に全候補JSONを作り直し、node scripts/nikechan-x.mjs mention-propose --preserve-thread true --items-json '<json>' を実行するneeds_approval、JSON、実行ログを通常は出さない。マスターがログ確認を求めた場合だけ最小限に出す補助コマンド:
node scripts/nikechan-x.mjs thread-context --thread-id "<Discord thread id>"
node scripts/nikechan-x.mjs mention-resolve --text "<Discord返信本文>" --notify
mention-resolve は補助用。thread返信の主判断はLLMが行い、承認なら mention-approve、修正なら mention-propose --preserve-thread true を直接使う。
NIKECHAN_X_RELEASE_MODE=dry-run ではX API投稿も tweet_logs 消費も行わない。
live または canary-live かつ NIKECHAN_X_LIVE_ARMED=yes のときだけ、投稿・checked更新・action記録・contact episode記録を行う。
保存された mention-context または thread router から渡された pending の currentItems / items と feedback を読み、全候補を作り直して mention-propose --preserve-thread true に渡す。