mcpField
A
auto-review-loop-minimax

auto-review-loop-minimax

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

auto-review-loop-minimax について

MiniMax-M3を使い、外部レビュー、修正の実装、再レビューを繰り返して研究を改善するスキルです。肯定的な評価、または最大4ラウンドで終了し、中断した処理を再開できます。

主な機能

  1. 01レビューと修正の反復
  2. 02MiniMax-M3による外部評価
  3. 03スコアと判定による終了
  4. 04ラウンド記録と状態復元
  5. 05実験と結果の追跡

活用シーン

  1. 01投稿前の研究内容の改善
  2. 02査読指摘に基づく修正の実装
  3. 03中断したレビューサイクルの再開

MCP 対応

利用可能な場合は MiniMax MCP ツールで外部レビューを実行し、curl による MiniMax API 呼び出しにも切り替えられます。

インストール

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

$npx skills add https://github.com/wanshuiyin/auto-claude-code-research-in-sleep --skill auto-review-loop-minimax

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

詳細

自動レビュー・ループ(MiniMax 版):自律的な研究改善

🔒 このスキルを /loop、/schedule、または CronCreate でラップしないでください。
/auto-review-loop と同様に、すでに内部でループ(レビュー → 修正 → 再レビュー)し、各ラウンドの前ラウンドの要約を次のレビュー用プロンプトに渡しています(バックエンドはスレッドを共有せず、ラウンドごとに状態を保持しない API 呼び出しです)。外部タイマーを使うと、実行のたびに最初からやり直し、蓄積したコンテキストが失われ、成果物の変更ではなく実時間を基準に判定が実行されます。新しいシグナルはゼロなのに、トークンコストは全額かかります。判定ではなく、判定に先立つ外部の待機をスケジュールしてください。詳しくは shared-references/external-cadence.md を参照してください。

外部レビュアーが肯定的な評価を出すか、MAX_ROUNDS に達するまで、自律的に反復します:レビュー → 修正を実装 → 再レビュー。

コンテキスト:$ARGUMENTS

定数

  • MAX_ROUNDS = 4
  • POSITIVE_THRESHOLD:スコア >= 6/10 かつ verdict ∈ {"ready", "almost"} — 以下の実際の STOP CONDITION と一致するよう、両方を満たす必要があります。verdict の語彙は {"ready", "almost", "not ready"} です。(以前の記述では or が使われ、古い verdict の一覧が記載されていましたが、AND 形式が正です。)
  • REVIEW_DOC:review-stage/AUTO_REVIEW.md(累積ログ)(旧プロジェクトでは ./AUTO_REVIEW.md にフォールバックします)
  • REVIEWER_MODEL = MiniMax-M3 — MiniMax API 経由で使用するモデル

API の設定

このスキルでは、外部レビューに MiniMax API を使用します。次の 2 つの方法がサポートされています。

方法 1:MCP ツール(優先)

mcp__minimax-chat__minimax_chat が利用可能な場合は、これを使用します:

mcp__minimax-chat__minimax_chat:
  prompt: |
    [Review prompt content]
  model: "MiniMax-M3"
  system: "You are a senior machine learning researcher..."
方法 2:curl(フォールバック)

MCP が利用できない場合は、curl を直接使用します:

curl -s "https://api.minimax.io/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $MINIMAX_API_KEY" \
  -d '{
    "model": "MiniMax-M3",
    "messages": [
      {"role": "system", "content": "You are a senior ML researcher..."},
      {"role": "user", "content": "[Review prompt]"}
    ],
    "max_tokens": 4096
  }'

API キー:~/.claude/settings.json の env.MINIMAX_API_KEY、または環境変数から読み取ります。

Codex MCP ではなく MiniMax を使う理由:Codex CLI は OpenAI の Responses API(/v1/responses)を使用しており、サードパーティープロバイダーには対応していません。参照先:https://github.com/openai/codex/discussions/7782

状態の永続化(コンパクト化からの復旧)

長時間実行するループでは、コンテキストウィンドウの上限に達し、自動的にコンパクト化されることがあります。この場合に備えて、各ラウンドの後に状態を review-stage/REVIEW_STATE.json に保存します:

{
  "round": 2,
  "status": "in_progress",
  "last_score": 5.0,
  "last_verdict": "not ready",
  "pending_experiments": ["screen_name_1"],
  "timestamp": "2026-03-13T21:00:00"
}

各 Phase E の終了時(ラウンドの記録後)にこのファイルを書き込みます。毎回上書きしてください。必要なのは最新の状態だけです。

完了時(肯定的な評価を得た場合、または最大ラウンド数に達した場合)は、今後の呼び出しで完了済みのループを誤って再開しないよう、"status": "completed" を設定します。

ワークフロー

初期化
  1. review-stage/REVIEW_STATE.json の有無を確認します(見つからない場合は旧パスの ./REVIEW_STATE.json にフォールバックします)。
    • どちらのパスにも存在しない場合:新規開始(通常のケース)
    • 存在し、status が "completed" の場合:新規開始(前回のループは正常に終了しています)
    • 存在し、status が "in_progress" で、timestamp が 24 時間より前の場合:新規開始(中断または放棄された実行の古い状態です。ファイルを削除して最初から開始します)
    • 存在し、status が "in_progress" で、timestamp が 24 時間以内の場合:再開
      • 状態ファイルを読み取り、round、last_score、pending_experiments を復元します
      • review-stage/AUTO_REVIEW.md を読み取り、前のラウンドの完全なコンテキストを復元します(./AUTO_REVIEW.md にフォールバックします)
      • pending_experiments が空でない場合は、完了しているか確認します(例:画面セッションを確認します)
      • 次のラウンドから再開します(round = 保存された round + 1)
      • 次のように記録します:"コンテキストのコンパクト化から復旧しました。Round N から再開します。"
  2. プロジェクトの説明文書、メモリファイル、過去のレビュー文書を読みます
  3. 最近の実験結果を読みます(出力ディレクトリやログを確認します)
  4. 過去のレビューから、現在の弱点と未完了の TODO を特定します
  5. ラウンドカウンターを 1 に初期化します(状態ファイルから復旧した場合を除きます)
  6. ヘッダーとタイムスタンプを含めて review-stage/AUTO_REVIEW.md を作成または更新します
ループ(MAX_ROUNDS まで繰り返す)
フェーズ A:レビュー

外部レビュアーに包括的なコンテキストを送信します。

まず MCP が利用可能か確認してください。次に適切な方法を使用します。

MCP が利用可能な場合(優先):

Use mcp__minimax-chat__minimax_chat tool with:
- system: "You are a senior machine learning researcher serving as a reviewer for top-tier conferences like NeurIPS, ICML, and ICLR. Provide rigorous, constructive feedback."
- prompt: [Full review prompt with context]
- model: "MiniMax-M3"

MCP が利用できない場合(フォールバック):

curl -s "https://api.minimax.io/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $MINIMAX_API_KEY" \
  -d '{
    "model": "MiniMax-M3",
    "messages": [
      {
        "role": "system",
        "content": "You are a senior machine learning researcher serving as a reviewer for top-tier conferences like NeurIPS, ICML, and ICLR. Provide rigorous, constructive feedback."
      },
      {
        "role": "user",
        "content": "[Round N/MAX_ROUNDS of autonomous review loop]\n\n[Full research context: claims, methods, results, known weaknesses]\n[Changes since last round, if any]\n[For round 2+: Summary of previous review feedback and what was addressed]\n\nPlease act as a senior ML reviewer (NeurIPS/ICML level).\n\n1. Score this work 1-10 for a top venue\n2. List remaining critical weaknesses (ranked by severity)\n3. For each weakness, specify the MINIMUM fix (experiment, analysis, or reframing)\n4. State clearly: is this READY for submission? Yes/No/Almost\n\nBe brutally honest. If the work is ready, say so clearly."
      }
    ],
    "max_tokens": 4096
  }'

注意:各ラウンドは独立した API 呼び出しです。ラウンド 2 以降では、過去のレビューと変更の要約をプロンプト自体に含めてください。

フェーズ B:評価の解析

重要: 外部レビュアーからの完全な生の応答をそのまま保存してください(フェーズ E で使うため、変数に格納します)。破棄したり要約したりしないでください。生のテキストが一次記録です。

次に、構造化フィールドを抽出します。

  • スコア(数値、1〜10)
  • 判定(「ready」/「almost」/「not ready」)
  • 対応項目(修正内容の優先順位付きリスト)

停止条件:スコアが 6 以上、かつ判定が {"ready", "almost"} に含まれる場合(一致するのは完全一致のみ。「not ready」は対象外です)、ループを停止し、最終状態を記録します。

フェーズ C:修正の実施(停止しない場合)

各対応項目について(優先度の高い順に):

  1. コードの変更:実験スクリプト、モデルコード、解析スクリプトを作成・変更します
  2. 実験の実行:SSH と screen/tmux を使用して GPU サーバーにデプロイします
  3. 解析:評価を実行し、結果を収集して、図表を更新します
  4. ドキュメント:プロジェクトのメモとレビュー文書を更新します

優先順位のルール:

  • 過剰な計算リソースを必要とする修正はスキップし、手動でのフォローアップ事項として記録します
  • 利用できない外部データやモデルを必要とする修正はスキップします
  • どちらでも懸念に対応できる場合は、新しい実験よりも再解釈や解析を優先します
  • 指標の追加は必ず実施します(低コストで効果が大きいため)
フェーズ D:結果を待つ

実験を開始した場合:

  • リモートセッションを監視し、完了を確認します
  • 出力ファイルとログから結果を収集します
フェーズ E:ラウンドの記録

review-stage/AUTO_REVIEW.md に追記します。

## Round N (timestamp)

### Assessment (Summary)
- Score: X/10
- Verdict: [ready/almost/not ready]
- Key criticisms: [bullet list]

### Reviewer Raw Response

<details>
<summary>Click to expand full reviewer response</summary>

[Paste the COMPLETE raw response from the external reviewer here — verbatim, unedited.
This is the authoritative record. Do NOT truncate or paraphrase.]

</details>

### Actions Taken
- [what was implemented/changed]

### Results
- [experiment outcomes, if any]

### Status
- [continuing to round N+1 / stopping]

現在のラウンド、スコア、判定、保留中の実験を記載した review-stage/REVIEW_STATE.json を書き込みます。

ラウンドカウンターを増やし、フェーズ A に戻ります。

終了条件

ループが終了したら(肯定的な評価を得た場合、または最大ラウンド数に達した場合):

  1. review-stage/REVIEW_STATE.json の "status": "completed" を更新します
  2. 最終要約を review-stage/AUTO_REVIEW.md に書き込みます
  3. 結論をプロジェクトのメモに反映します
  4. 肯定的な評価を得ないまま最大ラウンド数で停止した場合:
    • 残っている阻害要因を列挙します
    • それぞれに必要な作業量を見積もります
    • 手動で続行するか、方針を転換するかを提案します

重要なルール

  • 大きなファイルの取り扱い:ファイルサイズが原因で Write ツールが失敗した場合は、直ちに Bash(cat << 'EOF' > file)を使ってチャンク単位で書き込む方法を再試行します。ユーザーに許可を求めず、そのまま実行してください。

  • 幻覚を防ぐための引用ルール:参考文献を追加する場合、BibTeX を決して捏造しないでください。DBLP → CrossRef → [VERIFY] の順で確認してください。記憶に基づいて BibTeX を生成しないでください。

  • 正直に記録し、否定的な結果や失敗した実験も含めます

  • 肯定的なスコアを得るために、弱点を隠さないでください

  • 再レビューの前に修正を実施します(修正を約束するだけにしないでください)

  • 実験に 30 分以上かかる場合は開始し、待っている間にほかの修正を進めます

  • すべてを記録します。レビューのログだけで内容が完結するようにします

  • 最後だけでなく、各ラウンドの後にプロジェクトのメモを更新します

  • ラウンド 2 以降では、必ず過去のレビューのコンテキストをプロンプトに含めます

  • 利用可能な場合は、curl より MCP ツールを優先します(より信頼性が高いため)

ラウンド 2 以降のプロンプトテンプレート

MCP の方法(優先):

mcp__minimax-chat__minimax_chat:
  model: "MiniMax-M3"
  system: "You are a senior machine learning researcher serving as a reviewer for top-tier conferences like NeurIPS, ICML, and ICLR. Provide rigorous, constructive feedback."
  prompt: |
    [Round N/MAX_ROUNDS of autonomous review loop]

    ## Previous Review Summary (Round N-1)
    - Previous Score: X/10
    - Previous Verdict: [ready/almost/not ready]
    - Previous Key Weaknesses: [list]

    ## Changes Since Last Review
    1. [Action 1]: [result]
    2. [Action 2]: [result]
    3. [Action 3]: [result]

    ## Updated Results
    [paste updated metrics/tables]

    ## Current Research Context
    [brief summary of claims, methods, current state]

    Please re-score and re-assess:
    1. Score this work 1-10 for a top venue
    2. List remaining critical weaknesses (ranked by severity)
    3. For each weakness, specify the MINIMUM fix
    4. State clearly: is this READY for submission? Yes/No/Almost

    Be brutally honest. If the work is ready, say so clearly.

curl のフォールバック:

curl -s "https://api.minimax.io/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $MINIMAX_API_KEY" \
  -d '{
    "model": "MiniMax-M3",
    "messages": [
      {
        "role": "system",
        "content": "You are a senior machine learning researcher serving as a reviewer for top-tier conferences like NeurIPS, ICML, and ICLR. Provide rigorous, constructive feedback."
      },
      {
        "role": "user",
        "content": "[Round N/MAX_ROUNDS of autonomous review loop]\n\n## Previous Review Summary (Round N-1)\n- Previous Score: X/10\n- Previous Verdict: [ready/almost/not ready]\n- Previous Key Weaknesses: [list]\n\n## Changes Since Last Review\n1. [Action 1]: [result]\n2. [Action 2]: [result]\n3. [Action 3]: [result]\n\n## Updated Results\n[paste updated metrics/tables]\n\n## Current Research Context\n[brief summary of claims, methods, current state]\n\nPlease re-score and re-assess:\n1. Score this work 1-10 for a top venue\n2. List remaining critical weaknesses (ranked by severity)\n3. For each weakness, specify the MINIMUM fix\n4. State clearly: is this READY for submission? Yes/No/Almost\n\nBe brutally honest. If the work is ready, say so clearly."
      }
    ],
    "max_tokens": 4096
  }'

出力プロトコル

すべての出力ファイルに、以下の共通プロトコルを適用してください。

コメント