mcpField
F
feishu-notify

feishu-notify

github.com/wanshuiyin生産性18.2k496 回インストール4 日前に更新
リポジトリ

feishu-notify について

feishu-notifyは、ARISのワークフロー向けFeishu/Lark通知スキルで、手動でも利用できます。プッシュ専用と双方向のやり取りに対応し、未設定時は通知を行わず、既存のワークフローを止めません。

主な機能

  1. 01イベント通知カードの送信
  2. 02Webhookプッシュモード
  3. 03双方向のやり取りと返信
  4. 04未設定時は通知を無効化
  5. 05対話タイムアウト後に自動続行
  6. 06配信失敗でワークフローを停止しない

活用シーン

  1. 01実験完了時の結果通知
  2. 02レビュー評価と弱点の通知
  3. 03チェックポイントでの選択依頼
  4. 04パイプライン完了やエラーの報告

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wanshuiyin/auto-claude-code-research-in-sleep --skill feishu-notify

インストール後、Claude Code で/feishu-notifyを入力して読み込まれたか確認します。

詳細

Feishu/Lark 通知

通知を送信します:$ARGUMENTS

概要

このスキルは、ARIS 向けの Feishu/Lark 統合機能を提供します。内部ユーティリティとして設計されており、他のスキルが重要なイベント(実験完了、レビューの採点、チェックポイントでの待機など)で呼び出します。手動で呼び出すこともできます。

影響ゼロの保証:feishu.json の設定が存在しない場合、このスキルは何もせず、通知なしで終了します。既存のワークフローには一切影響しません。

設定

このスキルは ~/.claude/feishu.json を読み込みます。このファイルが存在しない場合、Feishu の機能はすべて無効になり、スキルは従来どおりに動作します。

設定形式
{
  "mode": "push",
  "webhook_url": "https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_WEBHOOK_ID",
  "interactive": {
    "bridge_url": "http://localhost:5000",
    "timeout_seconds": 300
  }
}
モード
モード"mode" の値動作必要なもの
オフ"off" またはファイルなし何もしません。CLI のみで従来どおり動作しますなし
プッシュのみ"push"重要なイベントで Webhook 通知を送信します。モバイルへのプッシュ通知のみで、返信はできませんFeishu ボットの Webhook URL
対話型"interactive"双方向でやり取りできます。Feishu から承認/拒否し、チェックポイントに返信できます実行中の feishu-claude-code

ワークフロー

ステップ 1:設定の読み込み
cat ~/.claude/feishu.json 2>/dev/null
  • ファイルが見つからない → 通知なしで終了し、何もしません
  • "mode": "off" → 通知なしで終了し、何もしません
  • "mode": "push" → ステップ 2(プッシュ)に進みます
  • "mode": "interactive" → ステップ 3(対話型)に進みます
ステップ 2:プッシュ通知(Webhook)

Feishu Webhook にリッチカードを送信します:

curl -s -X POST "$WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "msg_type": "interactive",
    "card": {
      "header": {
        "title": {"tag": "plain_text", "content": "TITLE"},
        "template": "COLOR"
      },
      "elements": [
        {"tag": "markdown", "content": "BODY"}
      ]
    }
  }'

イベント種別ごとのカードテンプレート:

イベントタイトル色本文
experiment_done実験完了green結果テーブル、ベースラインとの差分
review_scoredレビュー第 N ラウンド:X/10blue(≥6)/orange(<6)スコア、判定、主な弱点の上位 3 件
checkpointチェックポイント:入力待ちyellow質問、選択肢、コンテキスト
errorエラー:[type]redエラーメッセージ、失敗した内容
pipeline_doneパイプライン完了purple最終概要、成果物
customカスタムblue$ARGUMENTS からの自由形式のメッセージ

curl の実行後、直ちに戻ります。プッシュモードでは応答を待つことはありません。

ステップ 3:対話型通知(双方向)

対話型モードでは、ブリッジとして feishu-claude-code を使用します。

  1. ブリッジにメッセージを送信します:

    curl -s -X POST "$BRIDGE_URL/send" \
      -H "Content-Type: application/json" \
      -d '{"type": "EVENT_TYPE", "title": "TITLE", "body": "BODY", "options": ["approve", "reject", "custom"]}'
    
  2. 返信を待ちます(タイムアウトあり):

    curl -s "$BRIDGE_URL/poll?timeout=$TIMEOUT_SECONDS"
    

    次のいずれかを返します:{"reply": "approve"}、{"reply": "reject"}、{"reply": "user typed message"}、{"timeout": true}

  3. タイムアウト時:AUTO_PROCEED の動作にフォールバックし、デフォルトのオプションで続行します。

  4. ユーザーの返信を呼び出し元のスキルに返し、その返信に基づいて処理できるようにします。

ステップ 4:配信の確認
  • プッシュモード:curl の終了コードを確認します。ゼロ以外の場合は警告を記録しますが、ワークフローをブロックしてはいけません。
  • 対話型モード:ブリッジに接続できない場合、Webhook が設定されていればプッシュモードにフォールバックし、設定されていなければ通知なしでスキップします。

ヘルパー関数(他のスキル向け)

他のスキルは、通知を送信する際に次のパターンを使用してください。

### Feishu Notification (if configured)

Check if `~/.claude/feishu.json` exists and mode is not "off":
- If **push** mode: send webhook notification with event summary
- If **interactive** mode: send notification and wait for user reply
- If **off** or file absent: skip entirely (no-op)

この確認は常にガードされています。 設定ファイルが存在しない場合、スキルは通知ブロック全体をスキップするため、オーバーヘッドも副作用もありません。

イベントカタログ

スキルは次のタイミングでこれらのイベントを送信します。

スキルイベントタイミング
/auto-review-loopreview_scored各ラウンドのレビュー採点後
/auto-review-looppipeline_doneループ完了時(肯定的な結果または最大ラウンド数到達時)
/auto-paper-improvement-loopreview_scored各ラウンドのレビュー採点後
/auto-paper-improvement-looppipeline_doneすべてのラウンド完了時
/run-experimentexperiment_doneスクリーンセッション終了時
/idea-discoverycheckpointフェーズ間(対話モードの場合)
/idea-discoverypipeline_done最終レポートの準備完了時
/monitor-experimentexperiment_done結果収集後
/research-pipelinecheckpointワークフローの各ステージ間
/research-pipelinepipeline_doneパイプライン全体の完了時

主なルール

  • Feishu に接続できない場合でも、ワークフローを絶対にブロックしないでください。 必ず処理を続行してください。
  • Feishu の設定を絶対に必須にしないでください — すべてのスキルは設定なしで動作する必要があります。
  • 設定ファイルがない場合は、モードをオフにします。 エラー、警告、ログは出力しません。
  • プッシュモードは送信したら完了です。 curl を実行し、終了コードを確認して、次に進んでください。
  • 対話のタイムアウト時は、自動的に続行します。 返信を待ち続けないでください。
  • AUTO_PROCEED を尊重してください:対話モードでタイムアウトまでにユーザーから返信がない場合は、呼び出し元のスキルと同じ自動続行ロジックを使用します。
  • 通知にシークレットを含めないでください。 Feishu のメッセージに API キー、トークン、パスワードを絶対に含めないでください。

コメント