К основному содержанию
скилл CX Codex

auto-review-loop-llm — скилл для Claude Code: цикл ревью через LLM API

Гоняет вашу работу по кругу: внешний рецензент ставит оценку, вы правите слабые места, он смотрит снова. Полезно, когда нужно довести статью или эксперимент до готовности.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill auto-review-loop-llm -a claude-code
Открыть на GitHub

Что делает auto-review-loop-llm

Скилл ведёт цикл review → implement fixes → re-review, пока внешний рецензент не даст положительную оценку или не кончится MAX_ROUNDS. По умолчанию MAX_ROUNDS = 4. Остановка срабатывает, когда оценка не ниже 6 из 10 и вердикт из набора «ready» или «almost» — оба условия должны выполняться одновременно.

Рецензентом выступает любая модель с OpenAI-совместимым API. Основной путь — MCP-сервер llm-chat: его прописывают в ~/.claude/settings.json с ключом LLM_API_KEY, адресом LLM_BASE_URL и именем модели LLM_MODEL. Если MCP недоступен, скилл уходит на curl к тому же эндпоинту. Для сторонних совместимых сервисов в теле запроса идёт max_tokens, для прямого вызова OpenAI — max_completion_tokens; переопределить это можно переменной LLM_MAX_TOKENS_FIELD.

Состояние каждого раунда скилл пишет в review-stage/REVIEW_STATE.json, а накопленный лог — в review-stage/AUTO_REVIEW.md. Поэтому после сжатия контекста цикл можно продолжить с того же места. Не оборачивайте его в /loop, /schedule или CronCreate: он уже зациклен внутри, а внешний таймер сбрасывает накопленный контекст и тратит токены без нового сигнала. Планировать стоит ожидание перед запуском, а не сам вердикт.

Какие задачи решает

  • довести черновик статьи до состояния, когда рецензент говорит «ready»
  • получить список оставшихся слабых мест с оценкой по серьёзности
  • сформулировать минимальную правку под каждую претензию
  • продолжить цикл ревью после сжатия контекста по сохранённому состоянию
  • прогнать ревью через свою модель вместо встроенной

Примеры запросов агенту

  • auto review loop llm — прогони ревью по разделу с экспериментами
  • llm review: оцени мою статью и скажи, что мешает отправке
  • auto review loop llm [методы и результаты]

Как установить auto-review-loop-llm

1Через Skills CLI (Vercel)

npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill auto-review-loop-llm -a claude-code

2Вручную: положить файлы

~/.claude/skills/auto-review-loop-llm/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/auto-review-loop-llm/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о auto-review-loop-llm

Как установить auto-review-loop-llm в Claude?

Выполните npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill auto-review-loop-llm -a claude-code. После этого скилл лежит в ~/.claude/skills/auto-review-loop-llm/SKILL.md.

Что делает auto-review-loop-llm?

Крутит цикл из ревью, правок и повторного ревью, пока внешняя модель не поставит оценку не ниже 6 из 10 с вердиктом «ready» или «almost» либо не закончатся раунды.

Что нужно настроить перед первым запуском?

MCP-сервер llm-chat в ~/.claude/settings.json с LLM_API_KEY, LLM_BASE_URL и LLM_MODEL. Без MCP скилл обращается к тому же эндпоинту через curl.

Исходный текст

SKILL.md · MIT
---
name: auto-review-loop-llm
description: Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables. Trigger with "auto review loop llm" or "llm review".
argument-hint: "[topic-or-scope]"
allowed-tools: Bash(*), Read, Grep, Glob, Write, Edit, Skill
---

# Auto Review Loop (Generic LLM): Autonomous Research Improvement

> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** Like
> `/auto-review-loop`, it already loops internally (review → fix → re-review),
> feeding each round's prior-round summary into the next review prompt (the
> backend is a stateless per-round API/MCP call, not a shared thread). An
> external timer re-enters from the top each tick, dropping that accumulated
> context and firing the verdict on wall-clock time instead of on artifact
> change — zero new signal, full token cost. Schedule the *external wait that
> precedes it*, not the verdict. See
> [`shared-references/external-cadence.md`](../shared-references/external-cadence.md).

Autonomously iterate: review → implement fixes → re-review, until the external reviewer gives a positive assessment or MAX_ROUNDS is reached.

## Context: $ARGUMENTS

## Constants

- MAX_ROUNDS = 4
- POSITIVE_THRESHOLD: score >= 6/10 **AND** verdict ∈ {"ready", "almost"} — **both** must hold, matching the operative STOP check below. Verdict vocabulary is {"ready", "almost", "not ready"}. (Earlier wording used `or` and a stale verdict set; the `AND` form is authoritative.)
- REVIEW_DOC: `review-stage/AUTO_REVIEW.md` (cumulative log) *(fall back to `./AUTO_REVIEW.md` for legacy projects)*

## LLM Configuration

This skill uses **any OpenAI-compatible API** for external review via the `llm-chat` MCP server.

### Configuration via MCP Server (Recommended)

Add to `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "llm-chat": {
      "command": "/usr/bin/python3",
      "args": ["/Users/yourname/.claude/mcp-servers/llm-chat/server.py"],
      "env": {
        "LLM_API_KEY": "your-api-key",
        "LLM_BASE_URL": "https://api.deepseek.com/v1",
        "LLM_MODEL": "deepseek-chat"
      }
    }
  }
}
```

### Supported Providers

| Provider | LLM_BASE_URL | LLM_MODEL |
|----------|--------------|-----------|
| **OpenAI** | `https://api.openai.com/v1` | `gpt-6.1-sol`, `gpt-6-astra` |
| **DeepSeek** | `https://api.deepseek.com/v1` | `deepseek-chat`, `deepseek-reasoner` |
| **MiniMax** | `https://api.minimax.io/v1` | `MiniMax-M3` |
| **Kimi (Moonshot)** | `https://api.moonshot.cn/v1` | `moonshot-v1-8k`, `moonshot-v1-32k` |
| **ZhiPu (GLM)** | `https://open.bigmodel.cn/api/paas/v4` | `glm-4`, `glm-4-plus` |
| **SiliconFlow** | `https://api.siliconflow.cn/v1` | `Qwen/Qwen2.5-72B-Instruct` |
| **阿里云百炼** | `https://dashscope.aliyuncs.com/compatible-mode/v1` | `qwen-max` |
| **零一万物** | `https://api.lingyiwanwu.com/v1` | `yi-large` |

The `llm-chat` server defaults to `gpt-6.1-sol`. When `LLM_FALLBACK_MODEL` is
unset, the 504-timeout fallback inherits `LLM_MODEL` (so it is not a fixed,
different model). Calls to `api.openai.com` automatically use
`max_completion_tokens`; third-party OpenAI-compatible endpoints use
`max_tokens`. Set `LLM_MAX_TOKENS_FIELD=max_tokens` or
`LLM_MAX_TOKENS_FIELD=max_completion_tokens` to override that automatic choice.

## API Call Method

**Primary: MCP Tool**

```
mcp__llm-chat__chat:
  prompt: |
    [Review prompt content]
  model: "deepseek-chat"
  system: "You are a senior ML reviewer..."
```

**Fallback: curl**

For third-party OpenAI-compatible endpoints, use `max_tokens`:

```bash
curl -s "${LLM_BASE_URL}/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${LLM_API_KEY}" \
  -d '{
    "model": "${LLM_MODEL}",
    "messages": [
      {"role": "system", "content": "You are a senior ML reviewer..."},
      {"role": "user", "content": "[review prompt]"}
    ],
    "max_tokens": 4096
  }'
```

For a direct OpenAI call, use `max_completion_tokens` instead:

```bash
curl -s "https://api.openai.com/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${LLM_API_KEY}" \
  -d '{
    "model": "gpt-6.1-sol",
    "messages": [
      {"role": "system", "content": "You are a senior ML reviewer..."},
      {"role": "user", "content": "[review prompt]"}
    ],
    "max_completion_tokens": 4096
  }'
```

## State Persistence (Compact Recovery)

Persist state to `review-stage/REVIEW_STATE.json` after each round:

```json
{
  "round": 2,
  "status": "in_progress",
  "last_score": 5.0,
  "last_verdict": "not ready",
  "pending_experiments": [],
  "timestamp": "2026-03-15T10:00:00"
}
```

**Write this file at the end of every Phase E** (after documenting the round).

**On completion**, set `"status": "completed"`.

## Workflow

### Initialization

1. **Check `review-stage/REVIEW_STATE.json`** for recovery *(fall back to `./REVIEW_STATE.json` if not found — legacy path)*
2. Read project context and prior reviews
3. Initialize round counter

### Loop (up to MAX_ROUNDS)

#### Phase A: Review

**If MCP available:**
```
mcp__llm-chat__chat:
  system: "You are a senior ML reviewer (NeurIPS/ICML level)."
  prompt: |
    [Round N/MAX_ROUNDS of autonomous review loop]

    [Full research context: claims, methods, results, known weaknesses]
    [Changes since last round, if any]

    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.
```

**If MCP NOT available:** For third-party OpenAI-compatible endpoints use
`max_tokens`; for direct OpenAI calls use `max_completion_tokens` instead.
```bash
curl -s "${LLM_BASE_URL}/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${LLM_API_KEY}" \
  -d '{
    "model": "${LLM_MODEL}",
    "messages": [
      {"role": "system", "content": "You are a senior ML reviewer (NeurIPS/ICML level)."},
      {"role": "user", "content": "[Full review prompt]"}
    ],
    "max_tokens": 4096
  }'
```

#### Phase B: Parse Assessment

**CRITICAL: Save the FULL raw response** verbatim. Then extract:
- **Score** (numeric 1-10)
- **Verdict** ("ready" / "almost" / "not ready")
- **Action items** (ranked list of fixes)

**STOP**: If score >= 6 AND verdict ∈ {"ready", "almost"} (exact — "not ready" does NOT qualify)

#### Phase C: Implement Fixes

Priority: metric additions > reframing > new experiments

#### Phase D: Wait for Results

Monitor remote experiments

#### Phase E: Document Round

Append to `review-stage/AUTO_REVIEW.md`:

```markdown
## 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 here — verbatim, unedited.]

</details>

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

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

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

**Write `review-stage/REVIEW_STATE.json`** with current state.

### Termination

1. Set `review-stage/REVIEW_STATE.json` status to "completed"
2. Write final summary

## Key Rules

- **Large file handling**: If the Write tool fails due to file size, immediately retry using Bash (`cat << 'EOF' > file`) to write in chunks. Do NOT ask the user for permission — just do it silently.

- **Anti-hallucination citations**: When adding references, NEVER fabricate BibTeX. Use DBLP → CrossRef → `[VERIFY]` chain. Do NOT generate BibTeX from memory.
- Be honest about weaknesses
- Implement fixes BEFORE re-reviewing
- Document everything
- Include previous context in round 2+ prompts
- Prefer MCP tool over curl when available

## Prompt Template for Round 2+

```
mcp__llm-chat__chat:
  system: "You are a senior ML reviewer (NeurIPS/ICML level)."
  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]

    ## Updated Results
    [paste updated metrics/tables]

    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.
```

## Output Protocols

> Follow these shared protocols for all output files:
> - **[Output Versioning Protocol](../shared-references/output-versioning.md)** — write timestamped file first, then copy to fixed name
> - **[Output Manifest Protocol](../shared-references/output-manifest.md)** — log every output to MANIFEST.md
> - **[Output Language Protocol](../shared-references/output-language.md)** — respect the project's language setting

© wanshuiyin · MIT · wanshuiyin/Auto-claude-code-research-in-sleep

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
om-auto-review-pr open-mercato Ревью пул-реквеста по номеру в отдельном worktree, с вердиктом approve или request-changes и метками пайплайна. CX Codex +1 3 600установок open-code-review alibaba Скилл запускает ocr CLI для ИИ-ревью Git-изменений. Генерирует построчные комментарии и умеет применять исправления. CX Codex +1 6 900установок om-review-prs open-mercato Разбирает все открытые пул-реквесты без ревью, от новых к старым, и запускает по каждому полный разбор. Удобно в начале дня. CX Codex +1 2 600установок webflow-mcp:review-comments webflow Скилл проходит по открытым тредам комментариев на сайте Webflow и раскладывает их по категориям: шум, устаревшие, требующие решения. По желанию отвечает ботом. CX Codex +1 684установок review-and-ship cursor Скилл автоматизирует проверку изменений перед отправкой: смотрит на баги, тесты и соответствие намерению, затем коммитит и открывает PR. Подойдёт, если хочешь убедиться, что код готов, прежде чем его залить. CX Codex +1 2 500установок code-review agno-team Автоматическая проверка кода на стиль, ошибки и нарушения best practices. Скилл запускает линтер, ищет баги и уязвимости, даёт структурированный feedback с уровнями критичности. CX Codex +1 472установок

Из того же набора78

idea-discovery-robot Скилл ведёт от широкого направления в робототехнике к проверяемым идеям: обзор литературы, генерация, проверка новизны и критический разбор. CX Codex +1 501установок experiment-bridge Читает план экспериментов, пишет код, проверяет его другой моделью и разворачивает прогоны на GPU. Нужен, когда план готов, а руки до реализации не доходят. CX Codex +1 497установок paper-poster Устаревший скилл перенаправляет запросы к /paper-poster-html. Он нужен для сохранения старого вызова, но не для создания новых постеров. CX Codex +1 499установок rebuttal Скилл готовит ответ на внешние рецензии к научной статье: разбирает замечания, следит за покрытием и не даёт обещать лишнего. Пригодится, когда дедлайн по rebuttal уже близко. CX Codex +1 499установок auto-review-loop-minimax Запускает автономный цикл рецензирования исследований через API MiniMax с автоматическим исправлением правок. Пригодится, когда вместо Codex MCP нужен внешний ревьюер на базе MiniMax-M3. CX Codex +1 491установок dse-loop Гоняет программу по кругу: запуск, разбор результата, подбор новых параметров. Останавливается, когда цель достигнута или вышло время. CX Codex +1 491установок feishu-notify Скилл шлёт уведомления в Feishu или Lark, когда другой скилл завершил эксперимент, выставил оценку ревью или ждёт вашего ответа. CX Codex +1 489установок patent-review Скилл просит внешнего рецензента проверить патентную заявку, формулировки claims и prior art. Пригодится для поиска оснований для отклонения до подачи. CX Codex +1 488установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой