Technical Documentation: wanshuiyin/Auto-claude-code-research-in-sleep
ℹ️ Provenance: Multi-Tier Ingestion · CodeWiki Reference
Overview (`README.md`)
Auto-claude-code-research-in-sleep (ARIS ⚔️🌙)
· · · · · · · · 💬 Join Community ·
🌱 ARIS is a methodology, not a platform. What matters is the research workflow — take it wherever you go.
💡 *Use ARIS as a skill-based workflow in Claude Code / Codex CLI / Cursor / Trae / Antigravity / GitHub Copilot CLI / OpenClaw / DeepSeek Harness — enjoy any way you like!*The executor drives, an independent model (Codex MCP by default) reviews. Alternative model combinations, including ModelScope-hosted models, need no Claude or OpenAI API.
📦 Those are the skills installed directly. Want it in one command? ARIS also ships as a standalone CLI and as plugins: · · ·
❗ codex-cli 0.154.0 removed codex mcp-server — the entry point every ARIS reviewer call used. No impact on ARIS: the codex MCP server is now ARIS's own bridge over codex exec (mcp-servers/codex-exec/), same tools, same results, all 82 skills unchanged, ultra and per-thread resume intact. One re-registration is all it takes — already installed? → Quick Start step 2b · new install → step 2 · what changed.
🧩 The ARIS family — same method, other jobs. One line each; the details live in their own repos.
— EasyAIOffer: 34 bilingual ML / LLM interview cheat sheets on one page — derivations, from-scratch PyTorch, 25 questions each. 希望大家秋招轻松一点 🌱
· — two sides of one disease. HERO: a ~550-token block for CLAUDE.md / AGENTS.md against the four shapes agents over-defend in (Hashing, Edge cases, Rubrics, Overbuild), bounding what the agent proposes, never what it looks for. Anti-Autoresearch: 61 integrity signals into a deterministic, reviewer-ready report — fabrication forensics, not an AI-text detector.
— ARIS goes multimodal: a rough story in, a movie told in still frames out, every scene checked by another model; the same loop draws clean method diagrams (/method-figure).
— a tiny always-on-top macOS widget that lights up 🔴 when a session waits for your approval; cd aris-monitor && ./run.sh. Many windows? Claude Fleet by @tianyilt is the full dashboard.
🔥 ARIS-Code CLI — 独立安装版 · English | ⬇️ Download · — v0.4.28: ARIS_REASONING_EFFORT works on the Anthropic channel, tool calls through {}-placeholder relays fixed, OS proxy honoured. v0.4.27: launching and quitting the REPL leaves no empty session file. v0.4.26: the fable alias and /model now point at Fable 5.1 (default stays Opus 5). v0.4.25: the Codex reviewer works again on codex-cli ≥ 0.154 (built-in codex exec bridge, nothing to register), /since takes you back to your last input, /resume lists sessions by index, Windows multi-line paste fixed (pending confirmation), 83 bundled skills on GPT-6-Astra.
ARIS-Code — screenshot, what's in v0.4.28, per-release details, older versions
📰 ARIS-Code v0.4.28 (2026-09) — latest: ARIS_REASONING_EFFORT works on the Anthropic channel (#446), tool calls through relays that send a {} placeholder no longer fail (#444), and the OS proxy on Windows / macOS is used without exporting HTTPS_PROXY (#401). v0.4.27: launching and quitting the REPL no longer leaves an empty session file, and /resume lists only sessions with messages (#439 follow-up). v0.4.26 made Fable 5.1 the fable alias and the first /model entry (the default executor stays Opus 5). v0.4.25 is the reviewer-bridge release: codex-cli 0.154 removed codex mcp-server, so every Codex review from ARIS-Code died on an updated codex. The reviewer now runs over a built-in codex exec bridge — no mcpServers.codex entry, old entries migrate in memory, thread records interoperate with ARIS's Python bridge. Also: /since replays everything after your last input (folded like the live display, /since full for complete output), /resume lists sessions with indices and shows where you stopped (#439), Windows multi-line paste no longer submits line by line (#430, pending confirmation), the Windows shim message carries the native installer (#428), and the bundle moves to 83 skills on GPT-6-Astra. Recent headliners: v0.4.24 — Claude 5 model refresh (Opus 5 default, Fable 5 tier, availability chain) and v0.4.23 — output folding. Caps a 24-release run (v0.4.5 → v0.4.28); per-release detail below. Credits: @GetIT-Sunday, @Anduin9527, @GO-player-hhy, @Jxy-yxJ, @screw-44, @StevenUST, @opposj, @ShijunLei-cn, @algojogacor, @YukinoshitaLove, @jinliye-2026, @SajimJC, @JasmineLCY.
Per-release details (v0.4.5 → v0.4.28)
v0.4.28 (2026-09-28) —
ARIS_REASONING_EFFORTnow works on the Anthropic channel (#446):low/medium/high/xhigh/maxfor the main session and subagents; unset, requests are unchanged.ARIS_MAX_TOKENSraises the output cap when a high effort runs into it.autoCompactEnabled: falsein settings turns automatic compaction off. 🐛 #444 tool calls through relays that send a{}placeholder no longer fail withinvalid tool input JSON. 🌐 System proxy on Windows / macOS is used without exportingHTTPS_PROXY(#401, by @JasmineLCY);NO_PROXY=*connects directly as before. Upgrading: if you already exportARIS_REASONING_EFFORT, have an OS proxy, or haveautoCompactEnabled: falsein settings, read the upgrade notes.v0.4.27 (2026-09-19) — launching and quitting the REPL no longer leaves an empty session file;
/resumelists only sessions with messages (#439 follow-up).v0.4.26 (2026-09-16) — Fable 5.1: the
fablealias now resolves toclaude-fable-5-1,/modellists Fable 5.1 first (Fable 5 stays selectable) and the system-prompt identity names it; the default executor remainsclaude-opus-5(the Mythos tier is $10/$50 vs Opus 5's $5/$25, so the default does not move). Savedexecutor_modelvalues are ids, not aliases, and are untouched. Pricing already matched onfable; a test pins 5.1. Tests unchanged (aris-cli 225 + 4 e2e / runtime 252 / tools 71 / commands 6). Codex MCP (gpt-6-astra xhigh) gate: GO.v0.4.25 (2026-09-16) — the reviewer-bridge release. codex-cli 0.154 removed
codex mcp-server, the entry point ARIS-Code'saris setuphad written into settings.json for every Codex review; on an updated codex every review call died. Built-incodex execbridge:mcp__codex__codex/codex-replyrun ascodex exec --jsonwith nothing to register — no settings entry, a legacycodex mcp-serverentry is migrated in memory (env,-cdefaults,requestTimeoutSecs, trust kept), an explicit Python-bridge entry is used as configured, thread records share~/.codex/state/codex-exec/threads/with the Python bridge, 1800 s budget forultraaudits,ARIS_CODEX_BRIDGE=0restores the old path;aris doctorprints the effective backend. Found on the way: the model never received a Codex result'sthreadId(it lives only instructuredContent), socodex-replycould not continue a thread — results now start with athreadId:line./since [full]replays the user's last input and everything after it with the live formatters (display only; after/resumeand in--resumebatch mode too); a dim hint after turns with ≥ 8 tool calls (ARIS_TURN_SUMMARY=0). #430 Windows consoles deliver no paste event, so each pasted line became its own Enter — lines are now merged into the input and never auto-submitted, Ctrl+C discards the rest (ARIS_PASTE_BURST=0; inferred from crossterm's source, pending confirmation on a Windows machine). #439/resumelists sessions with[n]indices and ages and accepts an index, a unique id prefix or a path; the last turn is replayed after loading. #428 the.cmd-shim message carries the official native installer one-liner. Bundle 81→83 (pin 3e49e63 → 4734364):/proof-orchestrator,/research-implement-feature, 32 helpers (+review_gate.py,copilot_native_evidence.py,idea_discovery_gate.py), repo-roottemplates/bundled; reviewer doctrine and system prompt on gpt-6-astra (fallback gpt-5.6-sol → gpt-5.5), explicit— reviewer:directives win,LlmReviewresults carryreviewer_model:so HTTP rounds report toreview_gate.pytruthfully; gpt-6-astra pricing tier $10/$50 (cache write $12.50, read $1). Tests: api 35+6 / aris-cli 225 + 4 e2e / runtime 252 / tools 71 / commands 6, all green; livecodex execfresh + resume roundtrip on codex-cli 0.154.0. Codex MCP (gpt-6-astra): ultra design gate (2 rounds), xhigh implementation gate per step (5/2/2/2 rounds), final whole-diff gate (2 rounds) → GO.v0.4.24 (2026-08-09) — the Claude 5 model refresh (#392, requested by @YukinoshitaLove). Explicit
--model claude-opus-5/claude-fable-5already passed through on every platform — this release makes them first-class. Default →claude-opus-5(main session, subagents,aris setup; same $5/$25 tier as Opus 4.8); the v0.4.18 availability fallback becomes an ordered chain walk (Opus 5 → Opus 4.8 → Opus 4.7, one step per precise404 not_found_error, explicit choices never silently change) — the naive constant swap would have stranded 4.7-only accounts and configs saved by v0.4.23's setup, a regression the cross-model review caught and an end-to-end mock-404 chain test now locks./modelpicker adds Fable 5 / Opus 5 / Sonnet 5; newfablealias. New Mythos-class pricing tier (fable/mythos= $10/$50, cache write $12.50 / read $1, verified 2026-08 — previously fell to the conservative $15/$75 unknown-model tier, a 1.5× over-estimate); Opus 5 / Sonnet 5 pinned on their existing branches. Tests: api 41 / aris-cli 213 + 4 e2e / runtime 226 / tools 70 / commands 5, all green; live smoke on claude-opus-5, claude-fable-5 and the fable alias. Codex MCP (gpt-6-astra xhigh) implementation gate: NO-GO → NO-GO → GO.v0.4.23 (2026-08-02) — the output-folding release (top real-user complaint: "aris dumps thinking and the full content of documents it reads onto the screen"). 🧹 Tool-output folding, display layer ONLY: the disk-verified culprits were format_read_result appending the ENTIRE read payload, bash pushing full stdout/stderr, grep dumping its full content blob, and the edit preview capping line counts but not line LENGTH. Now Read/Grep show the first 6 lines, Bash shows first 4 + last 4 per stream (stderr keeps its red), each kept line capped at 240 chars (the minified-single-line case), then one dim "… (+N more lines — set ARIS_TOOL_OUTPUT_LINES=0 for full output)" hint. ONE env knob: unset = defaults, a positive integer overrides every tool, 0 = the exact old display; the session, model context,
--output-format jsonand/exportare untouched and always complete. Thinking was verified to never print (Anthropic deltas only accumulate; Kimi reasoning_content only feeds the replay cache — the "thinking dump" perception came from the document dumps); two end-to-end sentinel tests (real binary vs mock SSE server) lock that thinking/reasoning never reaches the terminal. Interactive expand/collapse was deliberately rejected as over-engineering. 🐛 Bash timeout now kills the command: a timed-out call reportedinterrupted: truewhile the dropped tokio future left the child RUNNING — side effects landed after the report; now kill_on_drop (escape hatchARIS_BASH_KILL_ON_TIMEOUT=0; background tasks untouched; locked by a real behavioral test — a timed-out "sleep 1 && touch marker" must not create the marker). 📦 Bundle 79→81 (pin 7182624 → 3e49e63):/integrity-forensics— the Anti-Autoresearch SHA-pinned thin launcher (span-anchored evidence ledger → GPT auditors propose → deterministic rules-only adjudicator decides → typed BLOCK/WARN gate + obligations ledger) — and/web-debug-search, +tools/forensics_gate.py (29 helpers, 104 embedded resources). 🎁 Also: grep's content mode no longer shows a false "0 matches" above real results (the gate caught that"numMatches": nullserializes with the key present, defeating a naive presence check); all four crates' local-mock-server tests are now proxy-immune (a shell with http(s)_proxy set used to turn 15 tests red on a released tag — 127.0.0.1 was routed through the proxy). The rest of the runtime-state package (compaction re-arm, failed-turn cleanup, /cost dollars, SSE tail) ships as v0.4.24 — the cached-token cost fix is deliberately held back because it changes what the compaction trigger measures. Tests: api 41 / aris-cli 212 + 3 e2e / runtime 225 / tools 69 / commands 5 (+13), all green under a live proxy; new-code clippy delta zero. Codex MCP (gpt-6-astra): ultra scope+design adjudication, then a 3-round implementation gate (round 1 caught the null-serialization defeat and a non-hermetic behavioral test; round 3 GO).v0.4.22 (2026-07-12) — the skills-resync + GPT-6-Astra release. 📦 Bundle resync (pin 7e3ab67 → 7182624, 93 commits): 79 bundled skills (+
meta-apply, +paper-poster-html;paper-posterretired to a redirect stub), 28 tools helpers (8 new: capture_filter, evidence_check, iteration_log, provenance, run_state, threat_scan, meta_opt/trigger_eval + sample evals), 11 new shared-references docs (fan-out-pattern, acceptance-gate, external-cadence, skill-governance, compute-env-contract, resumable-runs, evidence-precheck, injection-hygiene, capture-antipatterns, output-composition, taste-calibration); sync hardening —ARIS_SYNC_EXPECT_SHAguard (aborts before touching assets if main moved; it caught a real move on first use) + exact-inventory drift tests + the vendored posterly MIT license text now ships. 🎛 GPT-6-Astra two-tier reviewer alignment: the CLI's system-prompt nudge now passes the skills' explicitmodel: gpt-6-astra+ per-call effort pins through (the v0.4.17 blanket "never pass a model" rule would have silently stripped deep audits from ultra to xhigh), carries the canonical capability-only fallback chain (effort-unsupported → same model xhigh, deep tier only; model-unknown → explicit gpt-5.5+xhigh; never degrade on transport-class errors; an explicit call-level override disables the chain), pinsapproval-policy: "never"+ explicitsandboxon every fresh codex call, and makes the HTTP fallback pre-dispatch-only with parameter stripping; the HTTP LlmReview default deliberately stays gpt-5.5 pending a real smoke; gpt-5.6 family pricing (sol $5/$30, terra $2.50/$15, luna $1/$6) verified against the official page; banner/Reviewer display//reviewerare honest about primary-vs-fallback (pure-Codex setups get status + guidance instead of a fake picker). 🐛 8 verified fixes: explicit--modelwas silently overridden by the saved executor model (model provenance now tracked end-to-end; the 4.8→4.7 availability fallback respects explicit choices;/modeland/setupre-arm it); saved models no longer leak across provider transports (blank saved models count as absent; OpenAI transport with no model source fails fast; the first-run wizard's config now actually feeds startup model resolution);--output-format jsonnever prompts (locked by a real end-to-end binary test against a mock SSE server); Windowsaris loginfixed (PKCE randomness read /dev/urandom → getrandom); Windows command probing fixed (the PowerShell tool probed itself throughsh; now where.exe); codex.cmdshims classified honestly (three-state probe; setup requires explicit confirmation before writing a config the MCP client can't spawn); nested config.json warns instead of silently parsing to all-defaults; NotebookEdit mints collision-free cell ids. 🖥 New windows-latest CI job (workspace compile gate + three targeted test groups, each guarded against silent 0-test green). Tests: api 41 / aris-cli 204 + 1 e2e / runtime 223 / tools 69 / commands 5 (+54), all green; new-code clippy delta zero. Codex MCP (gpt-6-astra): ultra design gate — 5 rounds, NO-GO ×4 → GO — then a 3-round implementation gate whose round 2 caught a first-run config-wiring blocker before it shipped; 4 implementation subagents, every report disk-verified.v0.4.21 (2026-06-28) — bug-fix patch: 5 new user-facing bugs from a Codex adversarial hunt (all disk-verified, distinct from v0.4.20), each cross-model reviewed at a design gate and an implementation gate (gpt-5.5 xhigh; both started NO-GO — the reviewer caught an off-by-one in the grep line-mapping and a missing stream-level test before GO). 🐛 Headline: OpenAI-compatible streaming corrupted multi-byte UTF-8 (CJK / emoji) split across network chunks into
�— each HTTP body chunk wasfrom_utf8_lossy'd independently, so a 3-byte Chinese character or 4-byte emoji straddling a chunk boundary broke on both sides (a frequent hit for Chinese users on domestic OpenAI-compatible providers — Kimi/GLM/MiniMax/DeepSeek/Qwen/Doubao — streaming Chinese text); the stream buffer is now raw bytes, decoding only complete SSE lines. A saved OpenAI/custom executor config no longer overrides a shell-setEXECUTOR_PROVIDER— the startup "shell-provided vars win" path had one ungated write that re-pointedEXECUTOR_PROVIDER=anthropic … aris …to OpenAI (wrong executor / model-not-found). An Anthropic stream truncated after content but before a terminal signal now hard-errors (premature_eof) instead of saving a half-finished answer to history as a complete turn (symmetric to the OpenAI#249guard; thestop_reason-only compat path is preserved, andARIS_ALLOW_EOF_WITHOUT_STOP=1opts a terminal-signal-less proxy back into the old behavior).grep_searchwithmultiline: truenow matches across lines in content mode (was silently empty —countmode already worked). MCP tool results carried only instructuredContent(emptycontent) are no longer dropped — the model gets the JSON structured payload. Tests (CI mode): api 32→35 / runtime 205→212 / tools 67 / aris-cli 172→181 / commands 5 (+21, incl. 2 stream-level integration tests), all green. Codex MCP (gpt-5.5 xhigh): design gate (NO-GO → GO after fixing the off-by-one) → implementation gate (NO-GO → GO after adding the stream-level integration tests); the Anthropic streaming spec (every stream ends withmessage_stop) was WebFetch-verified. Two latent-only candidates (Anthropic block-indexrouting, OpenAI multi-line SSE) remain deferred.v0.4.20 (2026-06-19) — bug-fix patch: 7 user-facing bugs surfaced by a Codex adversarial hunt, each reviewed across 3 rounds (the reviewer caught a redraw gap, a trailing-blank, a spinner tail, and a blank-line edge before GO). 🐛 Headline (#299): short REPL replies showed only "✔ Done" — the spinner draws "⠋ Thinking…" with Save/RestorePosition so streamed output overwrites it on the same line, but
finishthen cleared that whole line, erasing a short single-line reply. The REPL now finishes without clearing when the turn printed visible text (Clear(UntilNewLine)wipes only the spinner tail after the reply). Streamed multi-paragraph replies rendered glued ("para1para2") — each chunk's paragraph separator was trimmed at the stream boundary; the markdown streamer now preserves separators via a held-separator so streamed output equals a single full render (no dangling blank line). Markdown tables with CJK/fullwidth content misaligned — width now counts display cells (CJK = 2), not chars.aris "prompt"/aris setup(REPL-only before) — a configured OpenAI/custom executor got the Anthropic default sent to its endpoint; the one-shot and REPL paths now share one resolver. Esc now actually closes the completion dropdown (it was recomputed right back).glob_searchreports the total matched count when truncated (not the capped 100, which made the model think a 1000-match glob had 100 files)./model's custom menu reads the effective env the executor uses, not stale on-disk config. Tests (CI mode): api 32 / runtime 205 / tools 67 / aris-cli 172 / commands 5, all green; +7 new; real-machine verified (short reply renders + "✔ Done"; paragraphs keep their blank lines). Codex MCP (gpt-5.5 xhigh): hunt → 3 review rounds (NO-GO → NO-GO → GO). Two latent-only candidates (Anthropic block-indexrouting, OpenAI multi-line SSE) deferred to a hardening pass.v0.4.19 (2026-06-14) — honesty / guardrails patch (theme from a Codex fresh-eyes audit; no behavior change for healthy setups). 🔴 MCP protocol-version negotiation guard — the stdio handshake requested
2025-03-26but never read the version the server negotiated back (a parsed-but-dead field), so a server agreeing on a version ARIS can't speak was silently accepted and latertools/list/tools/callran on an incompatible protocol with opaque failures. ARIS now validates the negotiated version against a supported set (2025-11-25/2025-06-18/2025-03-26/2024-11-05— stdio framing is identical across these) and, on an unsupported one, terminates the child + clears the slot + surfaces a clear per-server error (aris doctorshows it) — the "terminate when versions can't be agreed" behavior the MCP lifecycle spec requires. The request stays2025-03-26(proven againstcodex mcp-server), so healthy servers are unaffected — verified end-to-end: the real Codex MCP server still spawns + initializes + advertises its tools under the guard. 🧹 Papercuts: the OpenAI-family subagent fail-loud message dropped its stale "lands in v0.4.18" marker (now version-agnostic + actionable, still credential-free); OpenAI upstream error bodies are now truncated (500 chars) + credential-redacted (sk-…keys andBearer …tokens, via a substring scanner that catches the compact-JSON shape{"api_key":"sk-…"}a misconfigured proxy can reflect back) instead of splatted verbatim; the system-prompt hook-events summary now counts only the hooks the runtime actually executes (acommandhook with acommandstring), matching the parser. Tests (CI mode): api 32 / runtime 204 / tools 67 / aris-cli 167 / commands 5, all green; live smoke confirms the real Codex MCP server still initializes under the guard. Reviewed by Codex MCP (gpt-5.5 xhigh): design GO → impl NO-GO (compact-secret miss + command-string strictness) → GO after fixes.v0.4.18 (2026-06-14) — default model → Claude Opus 4.8, with corrected pricing and a safety net. The bump moves
DEFAULT_MODEL, theopusalias, the model picker,aris setup, and the subagent default toclaude-opus-4-8— with an availability fallback: if the account lacks 4.8 (the API returns404 not_found_error), ARIS auto-falls-back toclaude-opus-4-7for the session, rebuilds the system-prompt model identity so it stays coherent (the model is never told it's 4.8 while served 4.7), warns once, and retries — for the main session (text + JSON) and subagents. It fires only on that precise 404 (never 400/rate-limit/auth), latches against loops, and the text path rebuilds from a pre-turn snapshot so a retry never double-appends the user message; accounts with 4.8 are byte-identical to a plain bump. 💰 Pricing corrected (verified against Anthropic's published schedule; had been a 3–5× over-estimate): current Opus 4.5–4.8 =$5/$25(deprecated Opus 4/4.1 keep$15/$75, split by word-boundary so a futureopus-4-10isn't mis-tiered); Sonnet 4.x =$3/$15(decoupled from the generic unknown-model fallback, which stays$15/$75); Haiku was already correct. 🧹 Backlog:aris setupoption 10 pins the Codex MCP reviewer tomodel_reasoning_effort="xhigh"(deterministic for new setups, independent of~/.codex/config.toml; idempotent merge never clobbers an existing entry); a startup +aris doctormisconfig hint (#259) for a silently-ignored/misplaced config (malformed JSON, or a stray~/.aris/config.yaml— stderr-only soSessionStart/SessionEnd/… — deferred to a separate issue). Tests (CI mode): api 32 / runtime 202 / tools 67 / aris-cli 166 / commands 5, all green; a live one-shot smoke returnsmodel=claude-opus-4-8end-to-end. Reviewed by Codex MCP (gpt-5.5 xhigh) across the design + both implementation batches (design REWORK→GO, impl NO-GO→GO, batch-2 GO).v0.4.17 (2026-06-13) — the MCP release. Before v0.4.17,
mcpServersinsettings.jsonparsed, showed inaris doctor, and did nothing; now ARIS spawns each configured stdio server, runs the MCP handshake, discovers tools, and advertises them asmcp__<server>__<tool>on both provider paths (Anthropic + OpenAI-family), with end-to-end dispatch, soft per-server degradation, and an approval gate for untrusted MCP tools (external processes the sandbox can't cover;--allowedToolsnow acceptsmcp__names). 🆕 zero-API-key cross-model reviewer:aris setup→ option 10 (Codex MCP, ChatGPT subscription, no API key) writes an idempotentmcpServers.codexentry into the settings file the runtime actually reads (atomic write + backup, explicit consent beforetrust: true), with an optional API reviewer as fallback (ARIS_REVIEWER_PROVIDER=codex-mcp+ARIS_REVIEWER_FALLBACK_PROVIDER);/setupin-REPL rebuilds the system prompt + runtime so reviewer changes take effect without quitting. 🔴 Protocol fix the fakes couldn't catch: real-machine e2e againstcodex mcp-serverexposed that our stdio transport spoke LSP-styleContent-Length:framing while the MCP spec (and codex) use newline-delimited JSON-RPC — every fake-server test passed because the fakes spoke the same wrong dialect; writes are now NDJSON, reads auto-detect both, and the spec-mandatednotifications/initializedis sent afterinitialize(a select-based round-trip also closes the #286 large-request deadlock). Hooks: object-style Claude Code hooks preservematcher/timeout/async(anchored-regex matcher filtering; per-hook timeout, default 30 s kill = warning not deny). Long tail:ARIS_DISABLE_KEYCHAINgate, Anthropicstop_reasonclean-EOF symmetry (CL2), OpenAI tool-callindex-missing merge-by-id (OE6), slash commands enter history. Real-machine push-gate hardening (the zero-key reviewer's first run): codexcodex/eventnotification spam silenced by default (gated behindARIS_MCP_STDERR=inherit), the system prompt now tells the model not to pass amodelparameter to Codex (account default = gpt-5.5 + xhigh; arbitrary names are rejected by a ChatGPT account), and a Codex-MCP-primary-with-no-fallbackLlmReviewcall returns a clear "usemcp__codex__codex" message instead of a misleadingOPENAI_API_KEY/gpt-5.5error. Built with the v0.4.16 zero-regression methodology (24 new characterization tests; every deliberate flip annotated in-place). Tests (CI mode): runtime 199 / aris-cli 165 / tools 67 / api 30 / commands 5, all green. Reviewed phase-by-phase by Codex MCP (gpt-5.5 xhigh) across 17 rounds (7 NO-GOs all resolved). Subagent MCP routing (P8) + MCPprotocolVersionbump + hookasyncexecution deferred to v0.4.18.v0.4.16 (2026-05-30) — REPL UX + provider hardening, shipped under a zero-regression discipline: 64 characterization ("golden") tests locked the current provider-routing / pricing / reviewer / subagent / REPL behavior first, then stayed green through every change. Closes #274: command history now persists to
~/.config/aris/history(0600) and reloads on startup, with anARIS_NO_HISTORYkill-switch and a disk-only secret-skip (credential-looking lines stay in in-session history but never touch disk); bash-style Ctrl+R reverse incremental search (CJK display-width-aware single-line render; no existing key binding changed; no new dependency). Security: an OpenAI-family main session (Kimi / GLM / MiniMax / …) spawning a subagent previously silently billed the user's Anthropic OAuth/Keychain credential — it now fails loud with a clear, credential-free error; full OpenAI-family subagent routing is a cross-crate change deferred to v0.4.17. Groundwork (no behavior change): the 3 byte-identical word-boundary matchers consolidate into one canonicalruntime::word_match; new pureProviderFamilyclassifier (unwired). Tests (CI mode): runtime 164 / aris-cli 128 / tools 49 / commands 5, all green. Codex MCP (gpt-5.5 xhigh) reviewed each phase + a final integration pass.v0.4.15 (2026-05-29) — OpenAI-compatible streaming robustness hotfix. Closes #249: MiniMax (and other OpenAI-compatible providers / proxies) were effectively unusable because the clean-EOF completion check treated the
data: [DONE]SSE sentinel as the only authoritative signal. A non-emptychoices[].finish_reasonis the Chat Completions spec's terminal-chunk marker;[DONE]is a transport convention some compatible providers never emit (MiniMax sendsfinish_reason: "stop"then closes without[DONE]). The clean-EOF decision is now a pure, unit-testedstream_eof_action(...)that completes on EITHER[DONE]OR a non-emptyfinish_reason; reads are NOT stopped early at finish_reason (a trailinginclude_usageusage-only chunk is still consumed), genuine truncation still hard-errors, and a pre-output proxy abort still restarts. Coupled fixes: OE7 reads finish_reason before thedeltaguard (delta-less terminal choice); OE2 flushes pending tool calls on any non-empty finish_reason; OE4 surfaces a mid-stream error envelope as a hard error instead of silently dropping it; OE3 toleratesdata:{...}without the space after the colon. +5 unit tests (77→82) extract the previously-untested SSE completion logic into pure helpers. Anthropic SSE path untouched. Codex MCP (gpt-5.5 xhigh) 3 rounds (GO-WITH-NITS → GO-WITH-NITS → GO).v0.4.14 (2026-05-25) — Security-hygiene release closing the top items from the v0.4.13 codex audit (gpt-5.5 xhigh, 6/10 NEEDS-REWORK verdict). 🔴 S9 (P0) system-prompt config redaction — before v0.4.14,
render_config_section()dumped the mergedsettings.jsonverbatim into the system prompt sent to the LLM provider, leakingenv,mcpServers.<name>.headers.AuthorizationBearer tokens, hook command env, signed-URL query params, andapiKeyfields. New renderer whitelists top-level fields (model/permissionMode/theme/outputStyle/permissions/sandboxwith recursive redaction inside), redacts sensitive keys (apikey/token/secret/password/authorization/headers/env/_KEY/_SECRET/_TOKEN), replaces MCPcommandwith<configured>placeholder, reduces MCPurlto strict<scheme://host[:port]>origin (scheme allow-listhttp/https/ws/wss, ASCII host, digit-only port, IPv6 brackets), and drops hook command strings entirely. Regression test exercises 9 distinct leak surfaces; URL parser has its own targeted test for 7 smuggling attempts including port-position secret injection (codex round-3 catch). 🟡 P9 (P1): DeepSeekaris --helpnow points ataris setupoption 7 instead of an env-var path the resolver never honored. 🟡 M1/M2 (P1) doc:aris doctor+ README/README_CN gain experimental warning whenevermcpServers.len() > 0(full MCP tool dispatch lands v0.4.16). 🟢 C11 (P2) stream idle timeout — both AnthropicMessageStreamand the OpenAI SSE loop wrapresponse.chunk().awaitintokio::time::timeout(envARIS_STREAM_IDLE_TIMEOUT_SECS, default 120, clamp[10, 1800], 0/negative disables); closes the "aris hangs forever with no output" symptom when an upstream HTTPS proxy holds a connection without keepalives. Bundle: 77 skills (+1/wiki-enrichvia late same-day sync to main7e3ab67which also picks up upstreamcheck_ready.shawk + grep-c null-match fix), 54 helpers. Codex MCP 6 rounds (NO-GO + 4 → GO-WITH-NITS + 3 → NO-GO + port smuggling → GO → release metadata GO → sync GO).v0.4.13 (2026-05-25) — Residue-cleanup release closing every codex audit P1 carried since v0.4.10–v0.4.12, plus the long-tail regression tests. 🟡 v0.4.10 P1.D per-server MCP timeout —
mcpServers.<name>.requestTimeoutSecsoverride >MCP_REQUEST_TIMEOUT_SECSenv > 300s default (clamped 1..=1800), so one Codex MCP agent can run 5 min while filesystem MCP errors in 5 s. 🟡 v0.4.10 known limitation closed —McpStdioProcess::request()skips JSON-RPC notifications (id absent/null) and keeps reading until the correlated response. 🟢 meta_opt hook deploy viaaris init—tools/meta_opt/{log_event,check_ready}.shbundle into the binary;aris initwrites ARIS-namespacedaris-meta-opt-log-event.sh/aris-meta-opt-check-ready.shto~/.claude/hooks/(codex round-1 #1: never clobbers user hooks); settings.json merge idempotent, backups hard-fail, final rewrite atomic via tempfile + rename. 🧪 9 v0.4.12 targeted regression tests for sandbox.strictMode (3) + parse strictMode + provider_match pricing + has_word o-series + stream_options 400 + meaningful-content classification + premature-EOF retry truth table (codex round-1 #3 —should_retry_on_premature_eof()extracted to pure fn, 7-row test). Bundle: 76 skills, 54 helpers (+2 meta_opt scripts vs v0.4.12). Codex 3 rounds (NO-GO + 3 → NO-GO + metadata → GO).v0.4.12 (2026-05-22) — Bug-fix + small-feature release. #238
sandbox.strictModeopt-in config key; when set,SandboxConfig::resolve_request()ignores all five LLM-supplied overrides (dangerouslyDisableSandbox,namespaceRestrictions,isolateNetwork,filesystemMode,allowedMounts) — closes the gap where a tool call could silently bypass user sandbox policy.aris doctoradds a "Sandbox:" row; bash tool schema documents the strictMode semantics. #232auto-review-loop-llmupdated from legacydeepseek-chat/deepseek-reasoner(deprecate 2026-07-24; reasoner rejectstool_choice) todeepseek-v4-flash/deepseek-v4-pro. v0.4.10 audit P1 follow-ups: P1.A Anthropic stream retry gates onhas_emitted_meaningful_content(a stream that only sentMessageStartbefore EOF is retry-eligible); P1.Bsupports_reasoning_effort+ reviewer mirror use word-boundary match soopenai/o3-mini/proxy:o4route correctly; P1.Cstream_options.include_usage:trueproxy fallback retries once without on real 400 unknown-field errors; P2 pricing match precision viaprovider_match()soqwen3.6-plus/kimi-k2.5route correctly whilemy-kimi-clonedoes not. Skills sync (76 skills, 52 helpers):/interview-cheatsheet+/render-htmlnewly bundled;build.rsALLOWED_EXTSgainshtmlfor render-html templates;EXCLUDED_SKILL_PREFIXES→starts_with("skills-codex"). CI fetch-depth: 0 + origin/main fetch so drift-test ancestor check runs. Cross-reviewed by Codex MCP (gpt-5.5 xhigh) over 4 rounds.v0.4.11 (2026-05-18) — Skills bundle refresh + sync infrastructure. The embedded skills set in the v0.4.10 binary had fallen behind main (~6 of 56 main
skills/commits had been cherry-picked); v0.4.11 syncs the full set and ships sync infrastructure so the gap can't silently reopen. Bundle: 65→74 user-facing skills, 34→49 helper resources. 10 new skills bundled:/citation-audit(fourth-layer bibliography audit),/experiment-queue(SSH multi-seed job queue with OOM retry),/kill-argument(two-thread adversarial review for theory papers),/resubmit-pipeline(W5: text-only port to a new venue),/paper-talk(end-to-end conference talk pipeline),/slides-polish(per-page Codex layout review),/overleaf-sync(two-way Overleaf Git-bridge),/gemini-search+/openalex(broader literature sources),/qzcli(Qizhi GPU jobs). 46 existing SKILL.md refreshed — most critically the canonical resolver chain rollout (closes real user incident where/research-wikiwas empty for a week from hardcodedtools/research_wiki.py), submission assurance gate + external verifier (/paper-writingPhase 6 now functions). tools/ goes 9→18: 9 baseline helpers refreshed (research_wiki.py315→767 lines with canonicalingest_paperAPI), 9 new helpers (extract_paper_style.py,figure_renderer.py,paper_illustration_image2.py,overleaf_{setup,audit}.sh,verify_wiki_coverage.sh,watchdog.py,experiment_queue/{build_manifest,queue_manager}.py). Newtools/sync_main_skills.shautomates main → bundle rsync with symlink pre-flight + codex-mirror prune +SKILLS_SOURCE_COMMITpinning. 3 new CI drift tests incrates/runtime/src/cache.rscover all 4 resolver layer patterns. Gemini MCP calls in/research-litand/gemini-searchnow passmodel: 'auto-gemini-3'(avoids silent downgrade to 2.5-pro on OAuth-personal capacity exhaustion). CLI runtime unchanged — codex-audit P1 follow-ups remain on v0.4.12 backlog. Cross-reviewed by Codex MCP (gpt-5.5 xhigh) across 5 rounds (REQUEST CHANGES → APPROVE WITH NITS → NO-GO → GO → final GO).v0.4.10 (2026-05-17) — Stream + MCP reliability + multi-provider pricing. C6 whole-stream restart in Anthropic
MessageStream+ OpenAI SSE loop on chunk decode failure / premature EOF (ARIS_STREAM_RETRY, default 2, clamp 0..=5, fires only when nothing emitted yet — closes #228-style "error decoding response body" loop). M3 MCP stdio gains 300s defaulttokio::time::timeoutover send+read (overrideMCP_REQUEST_TIMEOUT_SECS, clamp 1..=1800);response.id ↔ request.idcorrelation;ensure_server_ready()try_wait()dead-process respawn;kill().awaiton all failure paths so the next call starts clean (closes #151 / #172 "Calling codex..." stalls). C8/P4 OpenAI streaming requests now sendstream_options.include_usage:true+ parsecached_tokens; Anthropic streaming mergesMessageStart.usage(input/cache) withMessageDelta.usage(output). C9 multi-provider pricing registry (15+ models, OpenAI cache_read = input × 0.1 corrects 5× generic overstatement, DeepSeek cache_hit/cache_miss tiers,has_word()boundary matcher forprovider/<model>slugs). 9 dead-code warnings cleared;aris setuphelp text synced with actual behaviour.v0.4.9 (2026-05-17) — Closes Codex v0.4.7 audit residuals (L1 TLS double-stack, L3 reasoning_cache compaction misalign, L4 reasoning replay unbounded). 2 new skills bundled (
/figure-spec+/paper-illustration-image2withscripts/subdirs, new Layer 0b =$ARIS_CACHE_DIR/skills/<name>/scripts/);research_wiki.pypromoted to sharedtools/(9+ callers); 5 more SKILL.md migrated to fallback chain.v0.4.8 (2026-05-17) — Skill helper subsystem rewrite. Bundled helpers extract to
~/.config/aris/cache/<version>/at startup; every Skill invocation surfaceshelperReportJSON + 4-layer resolver preamble;/skills exportcopies helpers; newintegration-contract.mdwith 6 failure policies; 8 shared helpers (arxiv/deepxiv/exa/S2/openalex/save_trace/verify_papers/verify_paper_audits) bundled;/research-lit+/deepxivmigrated. Plus 4 bug fixes: gpt-5.5+tools 400 on OpenAI; Custom reviewer reset; missingsignaturefield (#228);--versionBuild date hardcoded.v0.4.7 (2026-05-16) — DashScope Coding Plan 405 fixed (#159) via
native-tlsswitch (#225);reasoning_contentreplay for all reasoning models (OpenAI o1/o3/o4 / DeepSeek-R1 etc.), not just Kimi (#226); 600+ lines dead code cleanup +rustylinedep removed + "Claw Code" → "ARIS-Code" rebrand.v0.4.6 (2026-05-14) — 🚨 Two long-standing silent bugs fixed:
PermissionMode::Promptsilently allowed every tool (derived-Ordbug); system prompt hardcodedcurrent_date = "2026-03-31"made models reject post-cutoff data as future/prompt-injection. Plus Custom OpenAI-compatible provider (/setupoption 11) with dynamic/modelsdiscovery (@Anduin9527 #221 + #222).v0.4.5 (2026-05-13) — First-class reasoning-model support: thinking content blocks end-to-end (fixes #161) +
reasoning_effort='xhigh'for GPT-5.5 / o1 / o3 / o4 / DeepSeek-thinking. DeepSeek V4 Pro + Xiaomi MiMo + Qwen 3.6 + Doubao in/setup(options 7-10). Object-style hooks parser. Default model bumped to Claude Opus 4.7 + GPT-5.5. REPL input hardening (multi-line wrap / Cmd+V paste / CJK boundary). GitHub Actions CI. Credits: @GO-player-hhy (#186), @Jxy-yxJ (#171), @GetIT-Sunday (#216 partial).Older versions
v0.4.4 (2026-04-20) — Setup UX + reviewer routing fixes (resolves #158, #162) |
/setupno longer forces Bearer for Anthropic + custom URL | Provider-aware proxy URL hints | Stale state no longer leaks across provider switches | LlmReview smart fallbackv0.4.3 (2026-04-17) — Third-party Anthropic-compat proxy support (Bedrock etc.) | Skip beta flags that proxies reject | Propagate custom base URL for
anthropicprovider | Credit @screw-44v0.4.2 (2026-04-17) — Auto-compaction corruption fix | Compaction summary preserved on OpenAI-compat executors | Shell-provided API keys no longer erased on launch
v0.4.1 (2026-04-15) — Plan mode (
/plan) | Cooperative Ctrl+C interrupt | Auto-retry (429/5xx/network) | Research Wiki 📚 (persistent knowledge base) | Self-Evolution 🧬 (/meta-optimize) | Local models (LM Studio/Ollama) | 62 skills syncedv0.3.11 (2026-04-13) — Reviewer Anthropic-compatible mode (Claude via proxy)
v0.3.9 (2026-04-11) — Proxy/custom base URL (CCSwitch) | Local models (LM Studio/Ollama) | Windows (experimental)
v0.3.5 (2026-04-08) — Research Wiki (persistent papers/ideas/experiments/claims + relationship graph) | Meta-Optimize self-evolution (analyze logs → propose SKILL.md patches)
v0.3.0 (2026-04-03) — Multi-file memory index | Rich task system (TodoWrite) |
/plan| Security hardeningv0.2.2 (2026-04-03) —
/planstep-by-step planning |/taskspersistent trackingv0.2.1 (2026-04-03) — Persistent Memory | Kimi K2.5 multi-turn fix | CJK cursor fix
v0.2.0 (2026-04-02) — Open source | Kimi + MiniMax + GLM support | Smart LlmReview routing | CI/CD
v0.1.0 (2026-04-02) — Initial release | Multi-executor & reviewer | 42 bundled skills
中文版 README | English
🌙 Let Claude Code do research while you sleep. Wake up to find your paper scored, weaknesses identified, experiments run, and narrative rewritten — autonomously.
🪶 Radically lightweight — no infrastructure, zero lock-in. The entire skill layer is plain Markdown files. No framework to learn, no database to maintain, no Docker to configure, no daemon to babysit. Every skill is a single
SKILL.mdreadable by any LLM — swap Claude Code for Codex CLI, OpenClaw, Cursor, Trae, Antigravity, Copilot CLI, Windsurf, or your own agent and the workflows still work. Fork it, rewrite it, adapt it to your stack.
💭 Why not self-play with a single model? Using Claude Code subagents or agent teams for both execution and review is technically possible, but tends to fall into local minima — the same model reviewing its own patterns creates blind spots.
Think of it like adversarial vs. stochastic bandits: a single model self-reviewing is the stochastic case (predictable reward noise), while cross-model review is adversarial (the reviewer actively probes weaknesses the executor didn't anticipate) — and adversarial bandits are fundamentally harder to game.
💭 Why two models, not more? Two is the minimum needed to break self-play blind spots, and 2-player games converge to Nash equilibrium far more efficiently than n-player ones. Adding more reviewers increases API cost and coordination overhead with diminishing returns — the biggest gain is going from 1→2, not 2→4.
Claude Code's strength is fast, fluid execution; Codex (GPT-6-Astra xhigh) is slower but more deliberate and rigorous in critique. These complementary styles — speed × rigor — produce better outcomes than either model talking to itself.
🧿 Want the strongest possible reviewer? Add
— reviewer: oracle-proto any skill to route reviews through GPT-5.5 Pro via Oracle MCP. Pro-level reasoning for proof verification, experiment auditing, and final stress tests. Works with API key or free browser mode. Setup →
Contents
- More Than Just a Prompt
- What's New · changelog
- Quick Start · install + first run
- Features
- Score Progression (Real Run)
- Community Showcase — Papers Built with ARIS
- Awesome Community Skills & Extensions
- Workflows · 13 named pipelines (W1 / W1.5 / W2 / W3 / W4 / W5 / W6 / Wiki / WM + Effort / Assurance / Oracle)
- Setup · prerequisites / install / update / usage / GPU server config
- Customization · per-skill config knobs
- Alternative Model Combinations · GLM / MiniMax / Kimi / etc.
- Community
- Citation
- Star History
- Acknowledgements
- License
1. 🎯 More Than Just a Prompt
These are full pipelines — you can also use each workflow independently. Already have an idea? Skip to Workflow 1.5. Have results? Jump to Workflow 3. Got reviews? Jump to Workflow 4. Want persistent memory? Enable Research Wiki. See Quick Start for all commands and Workflows for the full breakdown.
Basic mode — give ARIS a research direction, it handles everything:
/research-pipeline "factorized gap in discrete diffusion LMs"🔥 Targeted mode — got a paper you want to improve? Give ARIS the paper + the code:
/research-pipeline "improve method X" — ref paper: https://arxiv.org/abs/2406.04329, base repo: https://github.com/org/projectARIS reads the paper → finds its weaknesses → clones the codebase → generates ideas that specifically fix those weaknesses with that code → runs experiments → writes your paper. Like telling a research assistant: "read this paper, use this repo, find what's missing, and fix it."
Mix and match:
ref paperonly = "what can be improved?",base repoonly = "what can I build with this code?", both = "improve this paper using this code."
🛠️ Build a feature — already know what to build?
/research-implement-feature "add KV-cache reuse to the decoder" — base repo: https://github.com/org/projectSpine first, then one feature at a time, each with a runnable check. Every choice the request left open is written to an assumption ledger before the code that depends on it, and a different model family then reads the raw diff for the ones that went undeclared. It reports "the checks passed", never "the method works". Contributed by @heroarmor.
🔥 Rebuttal mode — reviews just dropped? Don't panic. ARIS reads every concern, builds a strategy, and drafts a rebuttal that's grounded, structured, and under the character limit:
/rebuttal "paper/ + reviews" — venue: ICML, character limit: 5000Three safety gates — rebuttal will NOT finalize if any fails:
- 🔒 No fabrication — every claim maps to paper/review/user-confirmed result
- 🔒 No overpromise — every promise is user-approved
- 🔒 Full coverage — every reviewer concern is tracked
Two outputs: PASTE_READY.txt (exact char count, paste to venue) + REBUTTAL_DRAFT_rich.md (extended version for manual editing).
Show rebuttal parameters — venue, character limit (required), quick mode, auto experiment, stress test rounds, followup rounds
| Parameter | Default | What it does |
|---|---|---|
venue |
ICML |
Target venue (ICML/NeurIPS/ICLR/CVPR/ACL/AAAI/ACM) |
character limit |
— | Required. Hard character limit for rebuttal text |
quick mode |
false |
Stop after parsing + strategy (Phase 0-3). See what reviewers want before drafting |
auto experiment |
false |
Auto-run supplementary experiments via /experiment-bridge when reviewers ask for new evidence |
max stress test rounds |
1 |
How many times GPT-6-Astra xhigh stress-tests the draft |
max followup rounds |
3 |
Per-reviewer follow-up round limit |
After acceptance — your paper is in, now prepare the presentation:
/paper-slides "paper/" # → Beamer PDF + PPTX + speaker notes + Q&A prep
/paper-poster-html "paper/" # → measurement-gated HTML/CSS poster → print-ready PDF💡 From idea to paper to podium — one toolchain. 🌱
2. 📢 What's New
⚠️ Any entry that touches skills:
bash tools/smart_update.sh --applypulls it.
- 2026-10-19 — 🔀 Choose reviewers inside the complete Claude Code and Codex skill packs — use
— reviewer:or project configuration to select Codex, Gemini/Antigravity, Grok, or Claude Code through your configured reviewer tools. See the routing guide and Codex guide. The Claude Code MCP bridge now respects the requested working directory and records the CLI-reported model, including configured providers such as DeepSeek. Same-family reviews remain provisional. (#473, #472) - 2026-10-19 — 📚 Catch bibliography field errors with
/citation-crosscheck— compare local.bibentries with records freshly fetched from paper sources, then export a side-by-side spreadsheet of author, year, venue, DOI, and arXiv ID discrepancies. Available for Claude Code and Codex, alongside the existing citation audit. (#371; thanks @dty0606) - 2026-10-19 — 🔬 Bounded parallel work for research workflows — idea generation, literature extraction, and proof checking now share fan-out rules: capped worker batches, coverage records, and sequential fallback when parallel execution is unavailable. Workers collect candidates and evidence; designated reviewers retain final judgments. (#372; thanks @Dennis-Huangm)
- 2026-10-07 — 🧮 From a mathematical statement to a checked Lean proof — new
/lean-formalizefor Claude Code and Codex. Develop proof routes, connect intermediate lemmas to the original theorem, and deliver reproducible Lean sources with statement and axiom checks. Cross-family reviews target the statement, key arguments, and final assembly. Integrated into five proof/research skills; use it when requested or a concrete proof obligation benefits from formal verification. (#461) - 2026-10-05 — 🔌 New Grok and Gemini / Antigravity MCP bridges — use your existing CLI login to read files and resume conversations from Claude Code or Codex. (#454)
Earlier updates (2026-03-12 — 2026-09-28, 98 entries)
2026-09-28 — 📚 Real papers stop being reported as hallucinated citations (#445, #447, #450; thanks @ilya-pershin and @AfonsoZhang). arXiv sometimes refuses Python's HTTP client with a 406 for minutes while
curlgets through;verify_papers.pyread that refusal as "paper not found" and one user saw a 47% hallucination rate on 38 real papers. A 406 now goes throughcurl, and a refusal (406 / 401 / 403) isverify_pending, neverunverified. SetSEMANTIC_SCHOLAR_API_KEYand title checks use it. Seen a suspicious hallucination rate recently? Re-run with--no-cacheonce. Also in this round: five skills can now actually invoke the sub-skills their text tells them to (#440, @Jeremy-xuan); concurrent watchdog registrations no longer overwrite each other (#443, @hiro-nikaitou);xhighis described as the regular reviewer tier it is (#442, @dreamworld2023).2026-09-16 — 🧩 ARIS is a Claude Code plugin now (#437, thanks @white-drizzle).
claude plugin marketplace add wanshuiyin/Auto-claude-code-research-in-sleep→claude plugin install aris@aris→/aris:setuponce → restart. Setup registers the Codex reviewer bridge that ships inside the plugin, so the reviewer works on codex-cli 0.154+ out of the box. Plugin skills are typed with the prefix (/aris:idea-discovery); they call each other by short name internally. Codex CLI reads the same repo as a plugin too (codex plugin marketplace add …→codex plugin add aris@aris) and gets the Codex-native mirror. Cursor, Trae and DeepSeek Harness keep their own routes.2026-09-10 — 🔌 codex-cli 0.154 removed
codex mcp-server— re-register thecodexMCP server. Every ARIS reviewer call went through that entry point; on 0.154+ it now opens the interactive TUI and the MCP handshake fails. ARIS ships its own stand-in,mcp-servers/codex-exec/server.py, same tool names and result shape, drivingcodex execunderneath — skills unchanged. Run once:git pullin your ARIS clone (older clones do not have the file), thenclaude mcp remove codex -s user && claude mcp add codex -s user -- python3 "$HOME/aris_repo/mcp-servers/codex-exec/server.py"(absolute path of your clone), then restart Claude Code. Step-by-step for new and existing installs in Quick Start. Works on 0.153 too, so do it before you update. OpenAI's own replacement, the Claude Code plugin, has noultraeffort and no per-thread resume, which the deep-audit skills need. Cursor / Trae / Antigravity / Copilot CLI configs: same key,python3+ that path — see the adaptation docs.2026-09-07 — 🧠 Default reviewer is now
gpt-6-astra. Every reviewer call that pinnedgpt-5.6-solnow pinsgpt-6-astra; the two effort tiers (ultra for the seven deep audits, xhigh everywhere else) are unchanged, and so is the executor — whatever agent you run ARIS in. No access to the model yet? The capability fallback triesgpt-5.6-sol, thengpt-5.5, both at xhigh — nothing to configure.2026-09-06 — 🧹 The installer stops dropping Copilot profiles into every project (#431, thanks @oblivion-1521). Since 2026-08 every run symlinked two Copilot reviewer profiles into your
.github/agents/whether or not anything used them — dead files for Claude Code and Codex users, broken links if you committed them. Now they are deployed only whileauto-review-loopis installed;--no-agent-profilesswitches them off for good (undo with--agent-profiles). Your next re-run removes the links the installer created earlier; files you wrote yourself are never touched.2026-09-03 — 📣 Papers are launches, not progress reports (rules adopted from anti-defensive-writing-Skill by @Adkid-Zephyr — 🌟 it). The writing contract gains four rules: organize the narrative around the strongest genuine advantage; pick the contest the paper wins; unfavorable numbers stay in the tables, explained as a tradeoff where the evidence supports that and stated neutrally where it does not — never narrated as a defeat; every experiment carries an argumentative duty or leaves the main line; abstract and introduction open with problem → gap → idea → strongest result, and the conclusion never ends on new self-negation.
/auto-paper-improvement-loopflags the same defects. Indexed under Awesome Community Skills.2026-08-26 — 🧯 Two over-defense leftovers (#425).
/research-review— the one reviewer prompt that never got the scope-limits block — now carries it, and its brief ends with "if the work holds up, say so clearly" instead of bare brutality; the adversarial stance itself is untouched./research-pipelineno longer dies overnight on a missingVENUE: ideas, experiments, analysis and the narrative report are venue-independent and run to completion — only paper formatting defers, stamped clearly for a later resume. It had also been declaringVENUE = ICLRwhile forbidding silent defaults; the default is gone.2026-08-26 — ✍️ Papers stop reading like confession letters (#423, #424; several rules adopted from humanize-paper). Claims are stated at the strength the evidence earns; generic caveats ("further research is needed") live in Limitations only; "don't mention X" means X is absent — never "we do not address X" in print; results are ordered by argument, not by the order experiments ran.
2026-08-26 — 💡 The idea pipeline stops killing ideas for having neighbors (#419–#422; community reports). ABANDON now has to name the published paper that already contains your result, and concurrent work is a race — your call, not a veto. Brainstorming runs two generator models (gpt-5.6-sol + gpt-5.5) and unions their ideas, aiming for creative direct attacks instead of corner-case stacks. Search digs as hard as ever.
2026-08-21 — 🔌 Optional HTTP reviewer fallback for when Codex MCP is unreachable (#413; by @TheFlashForge). Off by default; fires only when Codex provably never got the request — a timeout doesn't count, that could pay twice for two conflicting verdicts. The fallback reads your actual files and gets less trust than Codex, never more.
2026-08-21 — 🧹 Four community fixes in one day (#406–#410; by @ZLZLGe and @JasmineLCY).
AUTO_PROCEED=truenow actually continues on its own; the idea-discovery gate demands a real reviewer receipt, not a checkbox; cached wiki context is scanned right before/idea-creatorreads it; Codex users with Claude as reviewer get their three paper skills back.2026-08-09 — 🦆 Copilot CLI defaults
/auto-review-loopto its native rubber-duck reviewer (#360, closes #258). Active only inside Copilot CLI sessions; review evidence is revalidated from host events, and same/unknown-family fails closed. The standard Claude Code + Codex setup is untouched.2026-08-09 — 🚧
/idea-discoverycan no longer silently skip a stage (#383, closes #285; by @3mom3). Each of the five stages needs recorded evidence, or the report saysBLOCKEDinstead of looking complete.2026-08-05 — 🈶 The research wiki handles non-ASCII (#386, #387; reported by @LIMMIL7). cp936-written wikis were unreadable on other machines, and Chinese-only titles collapsed to
<year>_untitledand got deduped away. Existing UTF-8 wikis unaffected.2026-08-04 — 🖼️ Upstream spotlight: posterly — the engine behind
/paper-poster-html— shipped a major design upgrade (MIT, by @Chenruishuo; ~50 posters at this year's ICML). GitHub · Blog.2026-08-03 — 🧭
/proof-orchestrator— Workflow 7: proof campaigns with a memory (#381; by @shenmuxing, from their EtaSkill). Stateful local-first proof runs that continue across sessions, with a ready-to-paste GPT Pro handoff when a proof stalls./proof-checkerremains the submission gate.2026-07-15 — 🔗 Double-blind citation field audit (#371). New
/citation-crosscheck: two agents work blind — one reads each cited entry from the local.bib, one re-fetches it from the web — and a deterministic gate diffs them field by field (author set+order, year, venue, arXiv-id/DOI), emitting a side-by-side.xlsxwithMATCH/MINOR/MISMATCH. Complements/citation-audit(context-fit); this owns field accuracy.2026-07-14 — 🐞
/web-debug-search(Issue #211). Adds a focused debugging/discovery workflow for GitHub Issues and Discussions: exact and normalized error-string matching, version compatibility tracking, and explicit failure handling. Results are labeled for debugging only and are not paper-citation evidence.2026-07-14 — 🧩 Selective install + global helper pointer (#366). The 81 skills are no longer all-or-nothing — all four installers support group/skill-level picks (
--list-groups,--groups X,Y,--skills X,--exclude Y, or a bare-TTY checkbox picker), with hard pipeline deps auto-included. Updates now confirm each NEW upstream skill individually (--add-new/--skip-newfor scripting; declines are remembered and never re-asked). Also fixes copy installs (~/.claude/skills) losing helper-script resolution, via a new~/.aris/repopointer file. ⚠️ Backward compatible —--quietfresh installs still install everything; run any installer/updater once to pick up the pointer file. Selective install →2026-07-12 — 🛡️ Your paper now gets the reviewer-side forensics treatment before you submit (#357). New
/integrity-forensicsskill: a SHA-pinned thin launcher runs Anti-Autoresearch's hostile-reviewer sweep (evidence ledger, nine auditor dimensions, numeric core, rules-only adjudicator) on your paper first. The verdict feeds a typed gate — flags can block a submission, a clean sweep is recorded as "no new blocker" (never an acquittal) — and findings close only with typed, hashed evidence or a recorded human waiver (rewording the flagged sentence doesn't count; the ledger notices)./paper-writingruns it by default at submission assurance (— self_forensics: falseopts out; the Codex mirror is opt-in and limited to upstream's deterministic slice, which can flag but never say CLEAN). ⚠️ First run clones and validates the pinned upstream (needs network); runbash tools/smart_update.sh --apply.2026-07-10 — 🧠 Reviewer default is now GPT-5.6-Sol; deep audits think at the new
ultralevel (#354). codex-cli 0.144.1 addedmax/ultrareasoning abovexhigh; ARIS reviews now default togpt-5.6-sol, with the seven heavyweight verdicts (/proof-checker,/kill-argument,/research-review,/experiment-audit,/paper-claim-audit,/result-to-claim,/meta-apply) atultraand everything else atxhigh. Older codex-cli or no model access steps down automatically (5.6-sol → 5.5, bothxhigh) — never belowxhigh, never on a mere timeout. Also fixed:/result-to-claimnow stops honestly instead of judging its own results when the reviewer is unreachable. ⚠️ Upgrade codex-cli to ≥ 0.144.1, restart the session (MCP reloads only then), and runbash tools/smart_update.sh --apply.2026-07-03 — 🧬 Three small updates adapted from Anthropic's Claude Science skills (#339, #340, #341; Apache-2.0). ARIS now has one shared way to describe GPU environments, so the same setup can be reused across SSH machines, Modal, and clusters, then checked by a fresh agent following the setup notes. We also added a small tool that tests whether a skill description actually makes the right skill get picked. Finally, figure and writing checks now separate facts from style: truth checks must pass, style advice stays optional. ⚠️ Run
bash tools/smart_update.sh --applyto pull.2026-07-02 — 🔁 Ideas from Karpathy's LOOPS.md, brought into ARIS (#333–#337). Reviewers now start by looking for what may be wrong, not by giving a polite score. If a review result looks strange, ARIS points you to the saved reviewer transcript before you ask the model again. A failed build can be restarted from the plan instead of endlessly patched, while plans, logs, and results are kept. Scoring can now use real good and bad examples,
/meta-optimizeasks what can be removed, and/paper-writingagrees on a clear "done" checklist before drafting starts. ⚠️ Runbash tools/smart_update.sh --applyto pull.2026-06-20 — 📚 Research wiki: all four node layers now have deterministic writers — fixes "re-generated ideas not recorded" (#305, #306, #307, #308). A user hit a real bug — ideas recorded on the first
/idea-creatorrun vanished on re-generation — because wiki pages were written freehand, a prose step the model skips on a re-prompt. Each layer now has a dedicatedresearch_wiki.pywriter joiningingest_paper:add_claim(claims born at/proof-checker),upsert_idea(/idea-creator),add_experiment(/result-to-claim) — each guarded by a drift-check so it can't silently regress to dead code. A claim'sstatusis now a strict proof axis (verified/refuted/unproven/…) while experiment support is carried bysupports/invalidatesedges (closing a latent contradiction the shared validator rejected), and the Codex-CLI skill mirror is synced to match. Zero behavior change when noresearch-wiki/is present.2026-06-19 — 🛰 Overnight loops can now notice when they die or get stuck (#300, #301, #302; adapted from operational patterns in Deli Chen's AutoResearch). A new watchdog checks whether an unattended loop is still updating its state file and writes an alert when it goes quiet; it only reports the problem, never restarts a verdict-bearing run. A separate iteration log watches for rounds that stop finding anything new: two empty rounds force a change of direction, four call in a human, and the cross-model jury still decides whether the result is actually good enough.
2026-06-07 — 🖼️
/paper-poster-htmlis now the default poster pipeline; the old LaTeX/paper-posteris retired. It builds the poster as one HTML/CSS file at the venue's real print size, then runs measured layout and asset checks before a content reviewer sees it, so review time goes to the science instead of crooked columns. It also ships templates, reusable poster components, and venue token packs; the core gate machinery was adapted from posterly (MIT, by @Chenruishuo). ⚠️/paper-posternow redirects to/paper-poster-html; the LaTeX pipeline lives only in git history.2026-05-31 — 🤝 Two community tools worth a look. Claude Fleet (@tianyilt) is a local read-only dashboard for keeping track of many Claude Code / Codex windows at once. posterly (@Chenruishuo) builds conference posters as a single HTML/CSS file and exports a print-ready PDF through headless Chromium, no LaTeX needed. Both are listed under Awesome Community. 🌟 if they help you.
2026-05-31 — 🛰 Fourth reviewer backend: Gemini via Antigravity CLI (#267 by @ZGJY95).
— reviewer: agyroutes review through the Antigravity CLI for users without Codex MCP / Oracle — fail-closed on the cross-model invariant (recovers + verifies the real Gemini-family model, refuses non-Gemini, binds the recovered transcript to the call via a user-event nonce). Wired intoreviewer-routing.md.2026-05-29 — ⚙️ ultracode-native convention layer — fan out for breadth on any runtime tier, keep the cross-model jury sacred. Three new
shared-referencesdocs decouple breadth from verdict:fan-out-pattern.md(skills generate candidates across same-family Claude subagents — Tier-1 Workflow / Tier-2 Agent / Tier-3 sequential — all ending in the identical cross-model jury),acceptance-gate.md("a loop can DRIVE, it cannot ACQUIT" — self-judge execution-completeness, never quality/correctness), andexternal-cadence.md(/loop&CronCreateare fire-control, never a jury). Wired into/idea-creator,/research-lit,/proof-checker,/kill-argument(fan-out) plus 16 skills (cadence fence/affordance). Also stripped 48 vestigialAgentgrants (least-privilege + a drift-check guard), fixed/idea-creator's same-family idea pre-filter, and reconciled an/auto-review-loopOR→ANDstop-condition inconsistency. Non-ultracode users benefit immediately — fan-out degrades to sequential with the same final jury.2026-05-28 — 📝 First blog shipped: A Survey on Continuous DLM (2026 H1, 6 papers) — long-form bilingual technical survey by Ruofeng Yang (SJTU), written end-to-end through the ARIS-in-AI-Offer workflow (Claude Opus 4.7 + Codex GPT-5.5 xhigh + Gemini auto-gemini-3 cross-model discussion). Compares ELF, ByteDance Cola-DLM, and Flow-Matching family across discrete-DLM problems, the "known-unknown" continuous space idea, training pipeline, architecture / params / shapes, inference grids + Tab 6/7 numerical results, denoising trajectories, and a Field Landscape against Cola-DLM. A 1.7 MB self-contained HTML (no build) — demonstrates the kind of long-form analysis the
/render-htmltoolchain can produce.2026-05-26 — 🌐 HTML auto-emission activated at 8 workflow checkpoints.
/idea-discovery,/auto-review-loop,/research-pipeline,/kill-argument,/proof-checker,/paper-claim-audit,/citation-audit,/rebuttalnow auto-render their primary MD artifact to a single-file HTML view via/render-html. Cost-tiered: interim views use--no-review, audit-class / reviewer-facing deliverables keep the full Codex render-fidelity gate. Default on (RENDER_HTML = true); per-skill opt-out. Failures non-blocking — source MD stays canonical.2026-05-26 — 🤝 Community PR wave — 5 merges this week.
/wiki-enrich(#247 by @hungchun0201) fills paper TODOsingest_paperleaves as scaffolds — Karpathy LLM-wiki principle, fetch chain alphaxiv→deepxiv→arXiv. Mirror drift checker + CI (#241 by @VeraPyuyi) keeps main↔mirror in sync./research-pipelineStage 2/3 unified into/experiment-bridgedelegation (#243 by @ZBigFish) — old inline was a strict subset of the bridge. Windows PowerShell installer parity with reparse-chain inside-repo guard +-FromOldlegacy migration + Windows CI matrix (#242 by @VeraPyuyi). Plusmanual-reviewMCP (#246 by @ZBigFish) — third reviewer backend— reviewer: manualfor zero-cost cross-model review (paste prompt to any non-Claude model: DeepSeek / Kimi / ChatGPT / Gemini / local llama); cross-model invariant guarded by bilingual UI banner + per-session token auth + fail-closed when MCP unavailable.2026-05-17 — 🐙 GitHub Copilot CLI adaptation — native
SKILL.md+ MCP support, no skill mirror needed. Installer (install_aris_copilot.sh) + smart-updater + 13-test suite. Community contribution by @EarendelH (#229, closes #214 / #227 / #203).2026-05-17 — 🛠 Tools-stability roadmap (Phase 1+2+3) complete (closes #176 / #177 / #178). Community reported that helper scripts weren't propagating into user projects after
install_aris.sh. Phase 1 — every SKILL.md caller of the 10 canonical helpers now resolves via the strict-safe 3-layer chain.aris/tools/→tools/→$ARIS_REPO/tools/documented inintegration-contract.md§2 (which also defines 5 failure policies A/B/C/D1/D2/E). Phase 2 — new advisory CI lint catches hardcodedpython3 tools/foo.pypatterns in PR-modified SKILL.md (advisory only, never fails CI). Phase 3 — three single-owner helpers (figure-spec,paper-illustration-image2,experiment-queue) moved into their SKILL'sscripts/subdirectory; owner SKILLs use Layer 0${CLAUDE_SKILL_DIR}/scripts/ahead of the canonical chain; legacytools/paths retained asos.execvPython forwarding shims. ⚠️ Existing users: no action needed — legacytools/entries are now shims. If you haven't runinstall_aris.shsince 2026-04-30, one idempotent rerun catches everything up.2026-05-14 — 🩹
/paper-plan+/paper-writelearnGAP_REPORT.md+ `` discipline (#217). When— style-ref:is set and the user's project has structural assets (figures/,results/,NARRATIVE_REPORT.md, etc.),/paper-planemits a Gap Report mapping the exemplar's section topology + density (fromstyle_profile.md) against your actual assets — surfacing slots you have no evidence to fill (e.g., "exemplar has 3×4 ablation table, you have no ablation data"). Then/paper-writewrites `` HTML comments instead of fabricating content at missing slots — invisible in the compiled PDF,grep-friendly for human triage //experiment-bridgefollow-up. Narrow carve-out from the "no placeholders" rule, scoped to GAP_REPORT-listed slots only. Original idea by @zhangpelf.2026-05-14 — ⚙️ Default reviewer model:
gpt-5.4→gpt-5.5across ~30 SKILL.mdREVIEWER_MODELdefaults. Codex MCP has routedgpt-5.5as the default since 2026-04-24; this catches the docs up to runtime. ⚠️ Behavior changes: (a).aris/traces/*JSONs from prior runs are not reproducible — re-runs on 5.5 may emit differentWARN/FAILverdicts on borderline cases (reviewer-quality lift, not regression). (b) ChatGPT Plus/Pro monthly quotas drain faster under heavy use. Fallback: pass— reviewer-model: gpt-5.4per invocation, or pinREVIEWER_MODEL = gpt-5.4per skill. Oracle Pro tier (routed via— reviewer: oracle-pro) is a separate path and unaffected.2026-05-13 — 🔍
tools/verify_papers.py+ Pre-Search Verification Protocol — anti-hallucination filter for literature-facing skills. New helper does 3-layer fallback verification (arXiv batch API up to 40 IDs/request → CrossRef DOI lookup → Semantic Scholar fuzzy title match, default 0.6 word-overlap) and emits 4-state per-paper status (verified/unverified/verify_pending/error) plus a top-level verdict aligning withassurance-contract.md(PASS/WARN/BLOCKED/ERROR). Transient failures (5xx, timeouts, 429) are taggedverify_pendingand excluded from the hallucination rate so network blips don't get conflated with fabricated references. Per-project cache at/.aris/cache/verify_papers.jsonwith 30-day TTL; canonical key priorityarxiv:{id_without_version}→doi:{lowercase}→title:{sha1[:16]}. NewPre-Search Verification Protocolsubsection inshared-references/citation-discipline.mdmakes the split explicit: this protocol is the fast filter between SEARCH (Step 1) and full VERIFY (Step 2);/citation-auditand/paper-claim-auditremain the submission-time audit gates and are not replaced./research-litgets a mandatoryStep 1.5: Verify Candidate Paperscalling the helper;/idea-creatorand/novelty-checkadd a Key Rule reference for cited Closest Prior Work / landscape entries. Unverified papers are retained in output tagged[UNVERIFIED](retention-over-silent-removal) so search-quality issues stay visible. SetARIS_VERIFY_EMAILin your shell to lift CrossRef to the polite-pool rate. Original signal from @YiwenZhu77 in #120 — landed via clean reimplementation rather than direct merge (PR was 5 weeks old + scope creep into figure-style).2026-05-06 — 🎤
/paper-talkworkflow +/slides-polishskill — end-to-end conference talk pipeline./paper-talkorchestrates paper → slide outline → Beamer + PPTX → per-page polish → assurance audits → final report (sister to/paper-writing,/paper-poster); composes/paper-slides,/slides-polish, plus/paper-claim-audit+/citation-auditwhenassurance: conference-ready./slides-polishis the post-generation visual pass: per-page Codex review against a reference PDF + a fix-pattern catalog (PPTX font scaling 1.5-1.8× for projector-readable size, text-frame resize after font bump, banner-as-tcolorbox, italic style leak guard, em-dash spacing, Chinese EA font hint via PingFang SC, anonymity placeholder discipline). Assurance ladderdraft / polished (default) / conference-readyis independent from the effort axis;effort: lite, assurance: conference-readyis legal and means "fast pipeline, every audit must emit verdict before final". Phase 4 staging adapter materializes slide text + speaker notes + talk script as a synthetic paper directory (.aris/paper-talk/audit-input/sections/*.tex+ symlinked.bib/results//figures/) so the existing audits run with their paper-shaped contracts and emit 6-state JSON verdicts pershared-references/assurance-contract.md.2026-05-05 — 🔁
/resubmit-pipeline— Workflow 5: text-only resubmit across venues (#208). Port a polished paper from one venue to another under hard constraints (no new experiments, no bib edits, no framework changes, never overwrite prior submissions). 5 phases: physical isolation → 5-layer anonymity check → audits (proof / claim / citation--soft-only) → microedits via/auto-paper-improvement-loop --edit-whitelistwith per-round diff gate → adversarial gate via/kill-argument→ final compile + Overleaf push via/overleaf-sync. Two prerequisite SKILL upgrades shipped in the same PR:/auto-paper-improvement-loop --edit-whitelist(YAML schema with allowed/forbidden paths +forbidden_operationslikenew_cite/new_theorem_env/numerical_claim,forbidden_deletions,requires_user_approval_for,max_edits_per_round) and/citation-audit --soft-only(translates KEEP/FIX/REPLACE/REMOVE verdicts to text-rewrite proposals when bib is frozen; hallucinated citations getdrop_cite_in_body_onlyaction). MasterRESUBMIT_REPORT.jsonledger pershared-references/assurance-contract.md; 7-verdict failure mode table includingUSER_DECISIONruntime state.2026-05-05 — 🗡
/kill-argument— adversarial Attack-Adjudication review for theory papers (#206). Two fresh codex 5.5 + xhigh threads: Thread 1 writes the strongest 200-word rejection memo a senior area chair would produce; Thread 2 (independent adjudicator, NOT defender) reads the current paper and classifies each rejection point asanswered_by_current_text/partially_answered/still_unresolvedwith file:line evidence. Output:KILL_ARGUMENT.{md,json}, detect-only. Integrated as Phase 5.6 of/paper-writing(between claim-audit and citation-audit) and as the canonical implementation called from/auto-paper-improvement-loopStep 5.5 — replaces inline prompt in both places. Mandatory atassurance: submissionfor theory-heavy / scope-heavy papers; emitsNOT_APPLICABLEfor empirical papers without scope claims. Audit JSON isverify_paper_audits.sh-compatible (full schema pershared-references/assurance-contract.md, 6-state verdict). Catches the failure mode score-based reviews miss: when every local component is correct (numbers match, cites resolve, theorems prove) but the paper still oversells what it actually establishes.2026-05-04 — 🪲
/research-wikiand 8 caller skills now resolve helper via fallback chain (#204). Bug: afterbash tools/install_aris.shthe helper lives at.aris/tools/research_wiki.py(symlink), but skills hard-codedtools/research_wiki.pyand silently failed when invoked —research-wiki/stayed empty across full W1 runs. Fix: 3-layer chain (.aris/tools/→tools/→$ARIS_REPO/tools/) codified inshared-references/wiki-helper-resolution.md. The manual-copy workaround at/tools/research_wiki.pyis layer 2, so users whocp-installed the helper as a temporary fix continue to work. ⚠️ Existing users: rerunbash tools/install_aris.shonce — also picks up a separate Python 3.9ImportErrorfix in the helper.2026-05-03 — 🎨 Opt-in
— style-ref:for writer-side skills (#202)./paper-{plan,write,writing,illustration,poster,slides},/grant-proposal, and/auto-paper-improvement-loopaccept an optional— style-ref:argument that mimics a reference paper's structural style (section ordering, theorem/figure density, sentence cadence, citation style) without copying its prose, claims, or terminology. Sources: local.texdir/file, local PDF, arXiv id (2501.12345orarxiv:2501.12345), HTTP/HTTPS URL. Overleaf URLs/IDs are rejected — clone via/overleaf-sync setupfirst. Default OFF; existing behavior unchanged when the flag is absent. Reviewer / auditor sub-skills (/proof-checker,/paper-claim-audit,/citation-audit, the improvement-loop reviewer) never see the style ref — cross-model review independence preserved. ⚠️ Existing ARIS users: the helper ships attools/extract_paper_style.py, distributed via the.aris/toolssymlink (install_aris.shPhase 0, added in #192). Re-runbash tools/install_aris.shonce to refresh the symlink and pick up the helper. Manual fallback:cp <ARIS-repo>/tools/extract_paper_style.py <your-project>/tools/. Without either, the writer skill aborts with a clear error pointing here.2026-05-02 — 🪨 Community spotlight: rosetta by @SyntaxSmith. Programmatic access to ChatGPT Pro /
gpt-5.5-pro/ DeepResearch from Node, via Chrome CDP Fetch interception + WebSocket second-leg streaming; ships an MCP server for Claude Code / Codex / Cline. Alternative implementation path to Oracle MCP for ARIS users invoking— reviewer: oracle-pro— same target capability (Pro-tier reviewer), different mechanics. Indexed under Awesome Community Skills & Extensions. 🌟 if you're using it!2026-05-02 — 💎🧿 Model & MCP routing updates. (a)
/gemini-searchdefault bumped togemini-3-pro-preview(strongest Gemini, out-of-box). ⚠️ Action required: requiresgemini-cliv0.40+ (rungemini --version; upgrade withnpm i @google/gemini-cliif older). Legacy override:/gemini-search "topic" — model: gemini-2.5-pro. Other overrides:gemini-3-flash-preview(faster),auto-gemini-3(load-routed). (b)/idea-discoveryPhase 1 now includes Gemini in its literature survey by default (#199) — auto-injects— sources: all, geminiinto/research-litunless the user passed an explicit— sources:; graceful skip ifgemini-clinot installed. (c) Oracle MCP upstream PR queue (steipete/oracle/pulls) is the first triage stop when invoking— reviewer: oracle-pro(especiallyo3-deep-research/gpt-5.5-pro) — ARIS does not vendor Oracle MCP; check upstream first if behavior surprises you (reviewer-routing.md)2026-05-02 — 🛠️🔗 Tools-infrastructure migration started. (a)
install_aris.shcreates optional.aris/toolssymlink (#192, closes #174) — Phase 0 of the 4-step tools-stability plan (#174 → #176 → #177 → #178); idempotent, zero impact until rerun. (b)/experiment-queueorchestration paths repaired (#193) — first real user of the symlink; 7 cascading bugs fixed via 3 rounds of Codex MCPgpt-5.5xhigh audit. Pure prose + docstring;queue_manager.pylogic untouched. Windowsinstall_aris.ps1parallel update tracked as follow-up2026-05-02 — 🔬 Three new opt-in audit flags via fast-path delegated-agent workflow (#187, #188, #189).
/citation-audit --uncitedsurfaces bib entries with no\cite{}reference (detect-only)./proof-checker --deep-fixadds a repair-grade plan to the Phase 1 reviewer prompt (corrected statement / patch plan / closure tests + Schur/quadratic-form algebra sanity)./proof-checker --restatement-checkadds Phase 3.6 cross-location theorem drift detection (6 drift signatures). Zero behavior change when flags unset. Plus doc PRs #190 (thread-policy) + #191 (auto-loop xref). Delegated-agent + maintainer-fixup pattern; Codex MCPgpt-5.5xhigh review caught 6+ blockers2026-05-01 — 🔍 Gemini + OpenAlex literature sources for
/research-lit(#175, community contribution by @stdAri). Two opt-in sources:/gemini-search(AI-driven discovery viajamubc/gemini-mcp-toolMCP) and/openalex(250M+ work open citation graph, no API key). Triggered via— sources: geminior— sources: openalex; zero behavior change when defaultall(both excluded). Maintainer fixups: corrected@google/gemini-clinpm name; addedtry/except ImportError+ bash preflight for graceful OpenAlex skip whenrequestsmissing2026-04-30 — 📝
/rebuttalper-reviewer thread mode + transferable patterns (SKILL.md). AddsVENUE_MODE(single_document|per_reviewer_thread) for OpenReview-style venues,reviewer_priority: pivotalrouting,structural_distinctionresponse mode, 5 reviewer-defensive heuristics, 2 Phase 5 lints, and severity-scaled stress rounds. DefaultVENUE_MODE = single_documentkeeps ICML-style behavior — zero change for existing users. Three rounds of cross-model review before/after merge2026-04-30 — 🪞 Codex skill mirror rebuilt + dedicated install/update chain (#179, community contribution by @No-518).
skills/skills-codex/now mirrors all 67 mainline skills; replacesmcp__codex__codexreviewer path with Codex-nativespawn_agent+send_input. Newtools/install_aris_codex.sh+tools/smart_update_codex.shhandle project-local symlinks with manifest tracking. Anti-drift:tests/test_codex_skill_mirror.py+tests/test_codex_install_update.py(26 failure paths). Open discussion in #1842026-04-24 — 🎨
/paper-illustration-image2— Codex-native image generation as Phase 2b illustration backend (#166, community contribution by @kbr19-thu 清华). Uses ChatGPT Plus/Pro quota via local Codex app-server MCP bridge — noGEMINI_API_KEYrequired. Triggered by/paper-writing — illustration: codex-image2; default staysfigurespec(zero behavior change). Async-only API, sandboxed writes tofigures/ai_generated/, integration-contract-compliant helper. Marked experimental (Codex debug app-server is unstable upstream)2026-04-21 — 📚 Research Wiki ingest actually works now (
research_wiki.py,/research-wiki). Fixes user-reported bug where/research-wiki initleftpapers/empty forever (ingestsubcommand had no implementation; paper-reading skills had no wiki hook). New canonicalpython3 tools/research_wiki.py ingest_paperhelper owns slugging / metadata fetch / dedup / page render; all 6 paper-reading skills wired to it. Manual backfill viasync --arxiv-idsorsync --from-file. Ships withintegration-contract.mdformalizing the six-component pattern every cross-skill integration must follow2026-04-21 — 🛡️ Assurance Gate:
— effort: beast | maxnow really runs mandatory audits (assurance-contract.md,tools/verify_paper_audits.sh). Fixes silent-skip of/proof-checker//paper-claim-audit//citation-auditat high effort. Newassuranceaxis (draft|submission) independent fromeffort:lite/balanced→draft(zero behavior change),max/beast→submission. At submission the 3 audits emit a JSON artifact with 6-state verdict;paper-writingPhase 6 runs the external verifier as source of truth (non-zero exit blocks Final Report). SHA256 input hashing catches stale audits. Escape hatch:— effort: beast, assurance: draft2026-04-20 — 🩹 Project install: flat layout + manifest tracking — fixes a real bug where the previous nested install (
.claude/skills/aris/) hid skills from Claude Code's slash-command discovery (CC only scans one directory level). Anyone who raninstall_aris.shbefore this date was silently affected. Newinstall_aris.shcreates one symlink per skill at.claude/skills/<name>, writes a versioned manifest to.aris/installed-skills.txt, and is re-runnable to reconcile new/removed upstream skills. Defense-in-depth: 13 safety rules (no-symlinked-parents, exact-target revalidation, slug regex, atomic same-dir manifest rename, no-overwrite-real-files, mkdir-based portable lock, ADOPT for crash recovery, …). Granular--adopt-existing/--replace-linkflags replace the all-or-nothing--force. Migration paths:--from-oldfor legacy nested symlink,--migrate-copy keep-user|prefer-upstreamfor legacy nested copy.smart_update.sh --target-subdir .claude/skills/arisis now deprecated with a redirect toinstall_aris.sh. Stale-file bug incp -roverlay also fixed (nowrm -rf && cp -rfor safe-update path)2026-04-19 — 🔗
/overleaf-sync— two-way bridge between local ARIS paper directory and an Overleaf project via the official Overleaf Git bridge (Premium). Lets collaborators keep editing in the Overleaf web UI while ARIS audit/edit pipelines (/paper-claim-audit,/citation-audit,/auto-paper-improvement-loop) keep running locally. Sub-commands:setup(one-time, user-driven so the agent never sees the token) /pull(with diff-protocol — flags half-sentences, typos, claim/cite changes that should re-trigger audits) /push(with confirmation gate before writing to shared Overleaf state) /status(3-way divergence check). Token never touches the agent or any file — primed once into macOS Keychain via the user's terminal, then auth-free for all subsequent agent operations2026-04-19 — 📚
/citation-audit— fourth and final layer of the evidence-and-claim assurance stack (experiment-audit→result-to-claim→paper-claim-audit→citation-audit). Fresh cross-family reviewer (gpt-5.4 via Codex MCP) with web/DBLP/arXiv lookup verifies every\cite{...}along three independent axes: existence (paper resolves at claimed arXiv ID/DOI/venue), metadata correctness (authors/year/venue/title match canonical sources), and context appropriateness (the cited paper actually establishes the claim it supports — the most diagnostic check). Per-entry verdicts: KEEP / FIX / REPLACE / REMOVE. Auto-integrated into Workflow 3 Phase 5.8 as the pre-submission bibliography gate. Empirical motivation: in a real submission run, several real papers were cited in contexts they did not actually support, and at least one entry shipped withauthor = "Anonymous"— none caught by metadata-only checks2026-04-17 — 🔀
/experiment-queueintegrated into Workflow 1.5 + research-pipeline —experiment-bridgePhase 4 Deploy now auto-routes by milestone job count: ≤5 jobs →/run-experiment, ≥10 jobs or phase dependencies →/experiment-queue(with OOM retry, stale-screen cleanup, wave-transition gating, crash-safe state). New--- batch: queueoverride for global force-queue mode. Large multi-seed sweeps fromEXPERIMENT_PLAN.md(e.g., 36-cellN × seed × n_traingrids) now get proper orchestration without manual queue invocation2026-04-17 — 🔗 Project-local symlink install (resolves #118) — new recommended default install.
bash tools/install_aris.shauto-detects platform (Claude Code / Codex CLI), creates.claude/skills/arisor.agents/skills/arissymlink to the ARIS repo, adds a managed `` block toCLAUDE.md/AGENTS.mdtelling the agent to use only project-local skills, and records install metadata in.aris/skill-source.txt. Solves the skill collision problem when ARIS is mixed with Superpowers / OpenHands / other community packs in the same global skill directory. PowerShell version (install_aris.ps1) ships with junction support for Windows.smart_update.sh --target-subdirflag added for.agents/skills/aris(Codex) project-copy installs; symlinked installs now correctly refusesmart_updateand direct users togit pull. Global install remains supported for power users2026-04-16 — 🎨
/figure-spec— deterministic JSON→SVG renderer packaged as a first-class skill. Preferred default for architecture/workflow/pipeline/audit-cascade figures in papers. Shape-aware edge clipping (rect/circle/ellipse/diamond), self-loops, curved edges, multi-line labels with CJK width estimation. Editable vector output, reproducible (same spec → same SVG), no external API. Phase 2b in Workflow 3 restored:illustration: figurespec(new default) /gemini/mermaid/false— 4-way illustration selector with complementary strengths2026-04-16 — ⚙️
/experiment-queue— SSH job queue for multi-seed/multi-config ML experiments. Designed from real 36-cell NeurIPS sweep pain points: OOM-aware retry with backoff, stale-screen cleanup, wave-transition race prevention, teacher→student phase dependencies, crash-safe scheduler that resumes from JSON state. Declarative grid specs expand automatically (e.g.,N × seed × n_train → 36 jobs). Configurableconda_hook+gpu_free_threshold_mibfor non-standard environments. Use for ≥10 jobs;/run-experimentstays for ad-hoc2026-04-15 — 🛡️ Paper Writing Pipeline Hardening — 10 empirically-motivated patches from a real NeurIPS run.
REVIEWER_BIAS_GUARD=true: every review round uses a fresh thread (codex-reply inflated 3→8/10). Reviewer Independence Protocol: no fix summaries to reviewer. Step 4.5 Restatement Regression Test: catches theorem drift across fix rounds. Step 5.5 Kill Argument Exercise: final-round adversarial attack/defense for theory papers. Location-aware overfull blocking. Theory Paper Consistency Pass in/paper-write. Enforced Bib Hygiene with DBLP/CrossRef validation. Phase 5.5 Mandatory Final Claim Audit as submission gate. Review Tracing Protocol: full prompt/response pairs saved to.aris/traces/for reviewer-independence audit (review-tracing.md,save_trace.sh). Inspired by community contribution from @李傲龍2026-04-15 — 🎨 FigureSpec Renderer v2 — deterministic JSON→SVG figure generation for academic papers. Shape-aware edge clipping (rect/circle/ellipse/diamond), self-loops, curved edges, multi-line labels with CJK width estimation, comprehensive validation (type checks, structure, palette). Went through 5 rounds of Codex review (3/10→7/10). All architecture and workflow diagrams in the ARIS tech report were generated with this pipeline. New
--- mode: vectorfor/paper-illustrationskill2026-04-14 — 📋
/paper-claim-audit— zero-context paper-to-evidence verification. Fresh reviewer with NO prior context compares every number in the paper against raw result files. Catches rounding inflation, best-seed cherry-pick, config mismatch, delta errors, scope overclaim. Auto-integrated into Workflow 3 (Phase 4.7). Completes the 3-layer audit chain:/experiment-audit(code) →/result-to-claim(science) →/paper-claim-audit(reporting). 👁️ Visual PDF review also added to improvement loop — reviewer now sees compiled PDF, not just LaTeX source. Inspired by Hermes Agent2026-04-13 — 🧿 GPT-5.4 Pro via Oracle —
— reviewer: oracle-proon any skill for the strongest available reviewer. API mode (fast) or browser mode (free). Supported on:/research-review,/auto-review-loop,/experiment-audit,/proof-checker,/rebuttal,/idea-creator,/research-lit. Default stays Codex xhigh. Not installed = zero impact. Setup →2026-04-13 — 🔬
/proof-checker— rigorous mathematical proof verification via cross-model review. 20-category issue taxonomy, two-axis severity, side-condition checklists (DCT/MCT/Fubini/IFT/...), counterexample red team, proof-obligation ledger. Auto-integrated into Workflow 3: detects\begin{theorem}and runs before improvement loop. Complements/proof-writer2026-04-10 — ⚡ Effort Levels —
— effort: lite | balanced | max | beast. Controls work intensity across all skills: papers found, ideas generated, review rounds, writing depth. Codex reasoning staysxhighalways.beast= every knob to maximum for top-venue sprints. Defaultbalanced= zero change for existing users. Details →2026-04-10 — 🔎 DeepXiv integration — progressive paper retrieval via DeepXiv CLI. Opt-in:
— sources: deepxivor— sources: all, deepxiv. Staged reading: search → brief → head → section.pip install deepxiv-sdkto enable. Community contribution by @DreamEnding2026-04-10 — 🛡️
/experiment-audit— cross-model experiment integrity verification. GPT-5.4 reads your eval scripts and results directly, checks for fake ground truth, self-normalized scores, phantom results, and scope inflation (#131, #57). Advisory — warns loudly, never blocks./result-to-claimauto-reads audit if present. New experiment-integrity.md shared reference. The executor must never judge its own integrity.2026-04-10 — 🧠
tools/smart_update.sh— intelligent skill updater. Compares local vs upstream, detects personal customizations (server paths, API keys), only updates safe skills.bash tools/smart_update.sh --apply2026-04-10 — 🏆 Community paper: UAV-CC — first community paper with full PDF archived. UAV change captioning benchmark for IEEE TGRS by @wxx827. Stack: Claude Opus 4.6 + Codex 5.4 xhigh + Cursor. Papers now archived in
community_papers/2026-04-08 — 📚
/research-wiki— persistent research knowledge base inspired by Karpathy's LLM Wiki. Accumulates papers, ideas, experiments, and claims across the entire research lifecycle with typed relationships. Wiki-aware hooks in/research-lit(ingest papers),/idea-creator(read wiki + write ideas back), and/result-to-claim(update claim status + trigger re-ideation). Failed ideas become anti-repetition memory. ARIS now learns from its mistakes.2026-04-05 — 🧬
/meta-optimize— outer-loop harness optimization for ARIS. Passively logs skill invocations, tool calls, failures, and parameter overrides via Claude Code hooks. Run/meta-optimizeto analyze accumulated usage data and propose SKILL.md improvements — reviewer-gated, user-approved. Inspired by Meta-Harness (Lee et al., 2026). ARIS now optimizes itself.2026-04-04 — 🔧 Codex Plugin deep integration —
/codex:rescuenow auto-invoked when experiments fail (Workflow 1.5) or LaTeX won't compile (Workflow 3). GPT independently diagnoses the bug before Claude retries — two AI debuggers are better than one. Optional:codex execpowers nightmare review,/codex:rescuepowers auto-debug. Setup →2026-04-03 — ☁️ Modal serverless GPU — no GPU?
gpu: modalin CLAUDE.md, one command (modal run launcher.py), no SSH, no Docker, auto scale-to-zero. $30/month free tier — enough to try ARIS experiments without any hardware.pip install modal && modal setupand go. Community contribution by @zeyuzhangzyz2026-04-03 — 🎮 Reviewer Difficulty Levels —
medium(default, unchanged),hard(reviewer memory + debate protocol),nightmare(GPT reads repo directly viacodex exec— Claude can't hide anything).— difficulty: nightmarefor maximum stress test before submission2026-03-30 — 🔥 Auto-debug & exhaust-before-surrender — experiment-bridge auto-diagnoses failures (OOM, import, CUDA, NaN) and retries up to 3×. Inspired by PUA
2026-03-30 — ☁️ Vast.ai GPU rental —
gpu: vastauto-rents cheapest GPU. By @YIHONG-JIN. 🔧 MiniMax M2.7 upgrade by @octo-patch2026-03-27 — 📄 IEEE venue support (9 families). 🔎 Semantic Scholar. By @ypd666
2026-03-26 — 📄 Document-based input —
RESEARCH_BRIEF.mdauto-detect2026-03-24 — 📝 Workflow 4:
/rebuttal— 7-phase pipeline, 3 safety gates2026-03-23 — 🔧
/training-check,/result-to-claim,/ablation-plannerintegrated. 📦compactmode. By @JingxuanKang & @couragec2026-03-22 — 📋 Templates — input templates for every workflow. 📄 7 venue templates — CVPR, ACL, AAAI, ACM MM added. 🛡️ Anti-hallucination fix — Workflow 2 enforces DBLP → CrossRef → [VERIFY]. 🔗
base repo— clone a GitHub repo as base codebase (— base repo: https://github.com/org/project)2026-03-22 — 🔍 Codex + Gemini review guide — Codex executes, Gemini reviews via local
gemini-reviewMCP bridge. CN2026-03-20 — 🚀 Antigravity adaptation guide — use ARIS skills in Google Antigravity (agent-first IDE). Community contribution by @PeppaPigw
2026-03-20 — 🖥️ Trae adaptation guide — use ARIS skills in Trae (ByteDance AI IDE). Community contribution by @Prometheus-cotigo. 🔢
formula-derivation— Community contribution by @Falling-Flower2026-03-19 — 🖼️
paper-poster— Conference poster. Community contribution by @dengzhe-hou2026-03-19 — 🔗 Workflow 1.5 upgraded —
/experiment-bridgeGPT-5.4 code review. 📊 W&B fix2026-03-18 — 🎤
paper-slides+ 🔁 Codex+Claude bridge + 🖱️ Cursor guide + 🤖 Codex CLI skills + 📝grant-proposal+ 🎨paper-illustration(Gemini) + 📊 CitationClaw2026-03-17 — 🔧 Git code sync + 🆓 ModelScope guide + parameter pass-through
2026-03-16 — 🔬
research-refine+experiment-plan— turn vague ideas into problem-anchored proposals with claim-driven experiment roadmaps. Now integrated into Workflow 1 (/idea-discovery). Community contribution by @zjYao362026-03-16 — 🇨🇳 Alibaba Coding Plan guide — one API key, 4 models (Kimi-K2.5 + Qwen3.5+ + GLM-5 + MiniMax-M2.7), dual-endpoint setup. Community contribution by @tianhao909
2026-03-15 — 🔀 Bring your own model! Any OpenAI-compatible API now works as reviewer via
llm-chatMCP server. GLM, MiniMax, Kimi, LongCat, DeepSeek all tested — zero Claude or OpenAI API needed2026-03-15 — 🐾 OpenClaw adaptation guide — use ARIS research workflows in OpenClaw without Claude Code slash skills
2026-03-15 — 📐
proof-writer— community skill for rigorous theorem proof drafting. 📚 Anti-hallucination citations —/paper-writenow fetches real BibTeX from DBLP/CrossRef instead of LLM-generated entries — on by default, zero install2026-03-14 — 📱 Feishu/Lark integration: three modes (off/push/interactive), mobile notifications for experiments, reviews, and checkpoints
2026-03-13 — 🛑 Human-in-the-loop: configurable
AUTO_PROCEEDcheckpoints across all workflows. Full autopilot or step-by-step approval2026-03-12 — 🔗 Zotero + Obsidian + local PDFs + arXiv/Scholar: multi-source literature search with cross-model novelty verification
2026-03-12 — 🚀 Three end-to-end workflows complete: one prompt → top-venue-style paper.
/research-pipelinechains idea discovery → auto review → paper writing autonomously2026-03-12 — 📝
/paper-writingworkflow: narrative report → structured outline → figures → LaTeX → compiled PDF → 2-round auto-improvement (4/10 → 8.5/10)
3. 🚀 Quick Start
/* Detailed source-code truncated for AI context efficiency. */Don't need all 85 skills? See Selective install below for group/skill-level picks.
Optional Grok CLI bridge:
grok-execexposesgrok/grok-replyusing your existing Grok CLI login, withgrok-4.7+xhighdefaults, persistent sessions, progress and cancellation. It is a separate MCP service; installing it does not change the reviewer routing of existing skills.
Selectable CLI reviewers:
antigravity-execandgrok-execsupport the complete packs through— reviewer: antigravity/grok; see the backend contract. The legacy— reviewer: agystill usesgemini-review.
📚 Research Wiki (optional) — one-line init for persistent memory across sessions; see full Research Wiki section
Give ARIS persistent memory across sessions. Papers, ideas, failed experiments — nothing is forgotten:
# In Claude Code:
> /research-wiki init # creates research-wiki/ in your project
# That's it. From now on, /research-lit auto-ingests papers, /idea-creator reads
# the wiki before brainstorming (and writes ideas back), /result-to-claim updates
# claim status. Failed ideas become anti-repetition memory for future ideation.🧬 Meta-Optimization (optional) — passive usage logging + /meta-optimize for data-driven SKILL.md improvements; see full Workflow M section
Run these in your normal terminal (not inside Claude Code) to enable passive usage logging:
# One-time setup in your project directory
mkdir -p .claude .aris/meta tools/meta_opt
cp Auto-claude-code-research-in-sleep/templates/claude-hooks/meta_logging.json .claude/settings.json
cp Auto-claude-code-research-in-sleep/tools/meta_opt/*.sh tools/meta_opt/
chmod +x tools/meta_opt/*.sh
# Then start Claude Code — hooks are active immediately
claudeEvents are logged to both project-level (.aris/meta/events.jsonl) and global (~/.aris/meta/events.jsonl) logs. After 5+ workflow runs, run /meta-optimize to see data-driven improvement proposals. Use /meta-optimize --global to analyze trends across all your projects.
📝 Templates + 🔎 DeepXiv + 🔎 Exa + 🗑️ Uninstall — input templates, two extra literature sources, and the uninstall command
📝 Templates available! See templates/ for ready-to-use input templates for every workflow — research brief (Workflow 1), experiment plan (Workflow 1.5), narrative report (Workflow 3), paper plan (Workflow 3).
🔎 Optional: DeepXiv progressive retrieval
pip install deepxiv-sdkThen use /deepxiv directly or opt into it from /research-lit with — sources: deepxiv or — sources: all, deepxiv.
🔎 Optional: Exa AI-powered web search
pip install exa-py
export EXA_API_KEY=your-key-hereThen use /exa-search directly or opt into it from /research-lit with — sources: exa or — sources: all, exa. Covers blogs, docs, news, and research papers with built-in content extraction.
🗑️ Uninstall: To remove ARIS skills without affecting your own personal skills:
cd Auto-claude-code-research-in-sleep && ls skills/ | xargs -I{} rm -rf ~/.claude/skills/{}Show all 16 inline parameters and 14 override examples — AUTO_PROCEED / sources / arxiv download / DBLP_BIBTEX / code review / wandb / illustration / venue / base repo / gpu / compact / ref paper / effort / reviewer / difficulty (full per-skill defaults live in § Customization)
All pipeline behaviors are configurable via inline overrides — append — key: value to any command:
| Parameter | Default | What it does |
|---|---|---|
AUTO_PROCEED |
true |
At selection checkpoints, report the top idea and continue in the same turn. Set false to ask for explicit approval before committing GPU time |
human checkpoint |
false |
Pause after each review round so you can read the score, give custom modification instructions, skip specific fixes, or stop early |
sources |
all |
Which literature sources to search: zotero, obsidian, local, web, semantic-scholar, deepxiv, exa, gemini, openalex, or all. Note: semantic-scholar, deepxiv, exa, gemini, and openalex must be explicitly listed — not included in all |
arxiv download |
false |
Download top relevant arXiv PDFs during literature survey. When false, only fetches metadata (title, abstract, authors) |
DBLP_BIBTEX |
true |
Fetch real BibTeX from DBLP/CrossRef instead of LLM-generated entries. Eliminates hallucinated citations. Zero install |
code review |
true |
GPT-6-Astra xhigh reviews experiment code before GPU deployment. Set false to skip |
wandb |
false |
Auto-add W&B logging to experiment scripts. Set true + configure wandb_project in CLAUDE.md. /monitor-experiment pulls training curves from W&B |
illustration |
gemini |
AI illustration in Workflow 3: gemini (default, needs GEMINI_API_KEY), mermaid (free), or false (skip) |
venue |
ICLR |
Target venue: ICLR, NeurIPS, ICML, CVPR, ACL, AAAI, ACM. Determines LaTeX style file and page limit |
base repo |
false |
GitHub repo URL to clone as base codebase (e.g., — base repo: https://github.com/org/project). No code? Build on top of an open-source project |
gpu |
local |
GPU target: local (default), remote (SSH server), or vast (rent on-demand from Vast.ai — auto-provision, auto-destroy) |
compact |
false |
Generate compact summary files (IDEA_CANDIDATES.md, findings.md, EXPERIMENT_LOG.md) for short-context models and session recovery |
ref paper |
false |
Reference paper to build on (PDF path or arXiv URL). Summarized first, then ideas extend/improve it. Combine with base repo for paper+code workflows |
effort |
balanced |
Work intensity: lite (0.4x tokens), balanced (default), max (2.5x), beast (5-8x). Controls breadth/depth/iterations. Codex reasoning never drops below the tier floor (regular xhigh / deep audits ultra). See Effort Levels |
reviewer |
auto | Reviewer backend: in Copilot CLI, /auto-review-loop auto-binds the native complementary rubber-duck; other hosts/skills default to codex (GPT-6-Astra, tiered xhigh/ultra). Explicit codex, manual, or oracle-pro overrides remain available. |
difficulty |
medium |
Reviewer adversarial level: medium (default), hard (+ memory + debate), nightmare (+ GPT reads repo via codex exec) |
/* Detailed source-code truncated for AI context efficiency. */Sandbox behavior and strict mode — control whether tool-call overrides may change the configured sandbox policy
The runtime's sandbox settings provide a configured baseline, while a tool request may also carry sandbox-related overrides. In the legacy compatibility mode, the effective request can therefore differ from the values written in settings.json.
To make the configured policy authoritative, enable strictMode:
{
"sandbox": {
"enabled": true,
"strictMode": true
}
}With strictMode: true, the runtime ignores these LLM-supplied overrides: dangerouslyDisableSandbox, namespaceRestrictions, isolateNetwork, filesystemMode, and allowedMounts. The configured sandbox policy remains in effect even when a tool call requests a different value. This is opt-in so existing configurations keep their legacy behavior by default.
Run aris doctor to inspect the currently reported sandbox state. strictMode controls whether tool requests can override the runtime configuration; it does not replace the host operating system's permissions, filesystem protections, or network policy.
Codex MCP config + alternative reviewer routing — pin the model in ~/.codex/config.toml; pointers to Codex+Claude-review, Codex+Gemini-review, and the Codex mirror install chain
Important: ARIS skills pin the reviewer explicitly (model: gpt-6-astra + a per-tier reasoning effort) in every fresh call — your ~/.codex/config.toml no longer silently decides the reviewer. Still set model = "gpt-6-astra" there (recommended): it covers codex-native/mirror sessions and anything that doesn't pin. ultra/max effort needs codex-cli ≥ 0.144.1 + a session restart.
Choose a reviewer in Codex: install the full skills/skills-codex/ pack and select — reviewer: claude-code, antigravity, or grok. See the backend contract for bridge setup and session rules.
The old Claude/Gemini partial overlays are frozen for existing installations; migrate safely to the full pack. The historical Claude and Gemini guides describe those legacy installations.
Want the Codex mirror install chain? Use tools/install_aris_codex.sh for managed project installs and tools/smart_update_codex.sh for copied Codex installs. The Claude scripts remain the mainline entry points for Claude projects.
The base Codex mirror defaults to a fresh Codex reviewer: same-family reviews remain provisional. Other routes require actual model identities and a completed, in-scope review before cross-family acceptance; a backend selection alone is insufficient. Submission and deterministic verification gates still apply.
See full setup guide for details and alternative model combinations if you don't have Claude/OpenAI API.
4. ✨ Features
ARIS chains 85 composable skills across the whole research lifecycle — literature & novelty → idea discovery → GPU experiments → autonomous review loop → paper writing → peer review — with cross-model adversarial review (Claude executes · GPT-6-Astra xhigh reviews · optional GPT-5.5 Pro via Oracle), anti-hallucination DBLP/CrossRef citations, a persistent Research Wiki, flexible model backends, human-in-the-loop checkpoints, and optional Feishu / Zotero / Obsidian / GPU integrations.
🔥 And it scales to any agent's ultracode-style deep mode — the breadth/firepower pass adapts to the runtime (Claude Code ultracode + workflows on Opus 4.8, Codex spawn_agent, or plain sequential), feeding three roles: breadth · cross-model review → accuracy · research wiki → memory. However a loop is driven, it reports to the same cross-model jury + research wiki — it can drive, never acquit.
Full feature list
📊 85 composable skills — mix and match, or chain into full pipelines (
/idea-discovery,/auto-review-loop,/paper-writing,/research-pipeline). See full catalog →🔍 Literature & novelty — multi-source paper search (Zotero + Obsidian + local PDFs + arXiv/Scholar) + cross-model novelty verification
💡 Idea discovery — literature survey → brainstorm 8-12 ideas → novelty check → GPU pilot experiments → ranked report
🔄 Auto review loop — 4-round autonomous review, 5/10 → 7.5/10 overnight with 20+ GPU experiments
📝 Paper writing — narrative → outline → figures → LaTeX → PDF → auto-review (4/10 → 8.5/10), one command. Anti-hallucination citations via DBLP/CrossRef
🤖 Cross-model collaboration — Claude Code executes and GPT-6-Astra reviews; in Copilot CLI,
/auto-review-loopuses the native complementary rubber-duck model and verifies the actual cross-family pair from host events. Optional:— reviewer: oracle-pro→ GPT-5.5 Pro via Oracle📝 Peer review — review others' papers as a conference reviewer, with structured scoring and meta-review
🖥️ Review-driven experiments — when GPT-6-Astra says "run an ablation", Claude auto-writes the script, rsyncs to GPU, runs in
screen, collects results, folds back into the paper. Configure server inCLAUDE.md(setup), or rent from Vast.ai withgpu: vast🔀 Flexible models — default Claude × GPT-6-Astra, also supports GLM, MiniMax, Kimi, LongCat, DeepSeek, etc. — no Claude or OpenAI API required
🛑 Human-in-the-loop — configurable selection checkpoints.
AUTO_PROCEED=truereports the choice and continues in the same turn;falseasks for approval. Explicit Feishu interactive gates remain user-controlled📱 Feishu/Lark notifications — three modes: off (default, recommended), push-only (webhook → mobile), interactive (approve/reject in Feishu). Zero impact when off
Preview: Push cards (group) & Interactive chat (private)
Push Only — group chat cards (experiment done, checkpoint, error, pipeline complete):
Interactive — private chat with Claude Code (approve/reject, custom instructions):
📚 Research Wiki — persistent knowledge base across papers/ideas/experiments/claims. Failed ideas become anti-repetition memory — ARIS gets smarter every run. Inspired by Karpathy's LLM Wiki
🧩 Extensible — domain-specific skills welcome! Add a
SKILL.mdand open a PR. See community skills likedse-loop(architecture/EDA)
ARIS ships 85+ skills across literature, ideation, experiments, audit, writing, talks, patents, and meta-utilities — the full catalog (role / category / requirements per skill) lives in docs/SKILLS_CATALOG.md to keep this README scannable.
Start here — common entry points (use case → skill)
| Use case | Start here |
|---|---|
| End-to-end research (idea → paper) | /research-pipeline |
| Idea discovery + method refinement | /idea-discovery |
| Run experiments from a plan | /experiment-bridge |
| Auto review → fix → re-review | /auto-review-loop |
| Narrative → polished PDF | /paper-writing |
| Reply to peer reviews | /rebuttal |
| Port a paper to a new venue | /resubmit-pipeline |
| Paper → conference talk | /paper-talk |
| Persistent research memory | /research-wiki |
| Patent drafting (CN / US / EP) | /patent-pipeline |
| ARIS optimizes itself | /meta-optimize |
→ Browse all 85 skills by category in the full catalog →
5. 📈 Score Progression (Real Run)
A real overnight 4-round run on an ML research project — the AI reviewer's score climbed 5.0/10 (borderline reject) → 7.5/10 (review-ready) as the loop autonomously ran 20+ GPU experiments, rewrote the narrative framing, and killed claims that didn't hold up, all without human intervention.
Round-by-round breakdown
| Round | Score | What Happened |
|---|---|---|
| Initial | 5.0/10 | Borderline reject |
| Round 1 | 6.5/10 | Added standard metrics, discovered metric decoupling |
| Round 2 | 6.8/10 | Key claim failed to reproduce, pivoted narrative |
| Round 3 | 7.0/10 | Large seed study killed main improvement claim |
| Round 4 | 7.5/10 ✅ | Diagnostic evidence solidified, submission ready |
6. 🏆 Community Showcase — Papers Built with ARIS
Real projects that used the full ARIS pipeline end-to-end. The scores listed are AI-review signals (CSPaper / Stanford Agentic Reviewer), not venue acceptances — and since ARIS optimizes through AI-review loops, high AI scores are an expected byproduct, not proof of acceptance (human reviewers still bring literature / venue / community judgment an AI reviewer misses). Used ARIS for a paper? Open an issue / PR to be featured!
Papers + their AI-review signals (3)
| Paper | AI-review signal | Submission status | Built by | Notes |
|---|---|---|---|---|
| CS Paper Submission | CSPaper 8/10 — AI reviewer recommendation: "Top 50% of accepted papers, clear accept" | Submitted to a CS conference; awaiting official feedback | @DefanXue & @Monglitay | Full ARIS pipeline: idea → experiments → auto-review → paper writing. The quote is from CSPaper's simulated review, not an official venue review. |
| AAAI 2026 Paper Submission | Stanford Agentic Reviewer 7/10 — AI reviewer recommendation: "Good paper, accept" | Submitted to AAAI 2026 Main Technical; awaiting official decision | @xinbo820-web | Pure Codex CLI (ARIS-Codex skills). The 7/10 signal comes from an AAAI-style Stanford Agentic Reviewer run, not an official AAAI acceptance result. |
| UAV-CC | Under review | Submitted to IEEE TGRS | @wxx827 | UAV change captioning benchmark. Claude Opus 4.6 (executor) + Codex GPT-5.5 xhigh (reviewer) + Cursor Opus 4.6 (assist). PDF → |
Reviewer screenshots
7. 🧩 Awesome Community Skills & Extensions
Domain-specific skills and external projects contributed by the community. PRs welcome — just add a skills/your-skill/SKILL.md and open a PR!
💡 How to use: Community skills are not auto-wired into core workflows. To use one, ask your executor (Claude Code / OpenClaw / etc.) to read the skill's
SKILL.md, then plug it into the appropriate workflow stage based on the description below.
🎉 Community Skills (15): research-refine · experiment-plan · research-refine-pipeline · grant-proposal · paper-poster (deprecated → paper-poster-html) · paper-slides · mermaid-diagram · proof-writer · comm-lit-review · dse-loop · idea-discovery-robot · formula-derivation · paper-illustration · writing-systems-papers · skills-codex
🌐 External Projects & Docs (16): rosetta · open-source-hardening-skills · CitationClaw · auto-hparam-tuning · paper-to-course · deep-research-skills · Antigravity Adaptation Guide · OpenClaw Adaptation Guide · Cursor Adaptation Guide · Codex+Claude Review Bridge · Trae Adaptation Guide · MiniMax-AI/cli · posterly · Claude Fleet · anti-defensive-writing-Skill · OrcaReplay
🙌 Thanks to every contributor! We fold the tables below to keep the README readable — but every skill and project here is equally valued. PRs always welcome!
🎉 Community Skills (15) — click to expand
| Name | Domain | Description | Codex MCP? |
|---|---|---|---|
🔬 research-refine |
General | Turn a vague idea into a problem-anchored, implementation-oriented method proposal. Best inserted between /idea-discovery and /auto-review-loop |
Yes |
🧪 experiment-plan |
General | Turn a refined proposal into a claim-driven experiment roadmap with ablations, budgets, and run order | No |
🧭 research-refine-pipeline |
General | One-shot chain: /research-refine → /experiment-plan for method refinement plus experiment planning |
Yes |
📝 grant-proposal |
General | Grant proposal drafting (KAKENHI/NSF/NSFC/ERC/DFG/SNSF/ARC/NWO). Chains /research-lit → /novelty-check → /research-review → /paper-illustration |
Yes |
🎤 paper-slides |
General | Conference talk slides (beamer → PDF + PPTX) with speaker notes, full talk script + Q&A prep. Auto slide count from talk type | Yes |
🖼️ paper-poster |
General | DEPRECATED — redirect stub to the core /paper-poster-html (measurement-gated HTML/CSS pipeline); the legacy LaTeX implementation lives in git history |
— |
📐 proof-writer |
ML Theory | Rigorous theorem/lemma proof drafting — feasibility triage, dependency maps, honest blockage reports | No |
📡 comm-lit-review |
Communications / Wireless | Domain-specific literature review — IEEE/ACM/ScienceDirect priority, venue tiering, PHY/MAC/transport/NTN taxonomy | No |
🏗️ dse-loop |
Architecture / EDA | Autonomous design space exploration — iteratively run, analyze, and tune parameters (gem5, Yosys, etc.) | No |
🤖 idea-discovery-robot |
Robotics / Embodied AI | Workflow 1 adaptation — grounds idea discovery in embodiment, benchmark, sim2real path, and real-robot safety constraints | Yes |
📐 mermaid-diagram |
General | Mermaid diagrams (20+ types) — free alternative to paper-illustration, no API key needed |
No |
🔢 formula-derivation |
General | Research formula development — derivation, verification, and LaTeX formatting | No |
🖥️ writing-systems-papers |
Systems | Paragraph-level blueprint for 10-12 page systems papers (OSDI/SOSP/ASPLOS/NSDI/EuroSys) — page allocation, writing patterns, self-check | Yes |
🎨 paper-illustration |
General | AI-generated architecture diagrams via Gemini, built on PaperBanana. Integrated into Workflow 3 | No |
🤖 skills-codex |
General | Codex CLI sync pack mirroring the main research skills (incl. result-to-claim, rebuttal, ablation-planner) + the shared-references/ support dir |
— |
🌐 External Projects & Docs (16) — click to expand
| Name | Domain | Description |
|---|---|---|
| 🪨 rosetta | Pro-tier ChatGPT MCP | Programmatic access to ChatGPT Pro / gpt-5.5-pro / DeepResearch from Node, via Chrome CDP Fetch interception + WebSocket second-leg streaming. Ships an MCP server for Claude Code / Codex / Cline — alternative implementation path to Oracle MCP for — reviewer: oracle-pro style high-tier review. Supports multi-turn, parallel concurrency, live token deltas, 15-min idle-timeout watchdog (long Pro thinks survive). MIT, by @SyntaxSmith |
| 📣 anti-defensive-writing-Skill | Press-release writing principle | "A paper is a launch, not a progress report": twelve rules against defensive writing — organize around the strongest advantage, pick the contest you win, every experiment has an argumentative duty, no self-weakening language. Skill (CN/EN) + copy-paste prompt. Four of its rules are folded into ARIS's writing contract. MIT, by @Adkid-Zephyr |
| 🛡️ open-source-hardening-skills | DevOps / OSS | 10-skill pipeline to harden research code into production-ready open-source projects — audit, refactor, test, CI, docs, review |
| 📊 CitationClaw | General | Citation impact analysis — input paper title → citation crawling, scholar identification, tiered analysis, HTML dashboard |
| 🚀 Antigravity Adaptation Guide | General | Use ARIS skills in Google Antigravity — native SKILL.md support, dual model (Claude Opus 4.6 / Gemini 3.1 Pro), MCP setup, EN + CN guides |
| 🐾 OpenClaw Adaptation Guide | General | Use ARIS workflow methodology in OpenClaw — skill-to-stage mapping, file-based orchestration, no Claude Code CLI needed |
| 🖱️ Cursor Adaptation Guide | General | Use ARIS skills in Cursor — @-reference skills, MCP setup, workflow mapping, state file recovery across sessions |
| 🖥️ Trae Adaptation Guide | General | Use ARIS skills in Trae (ByteDance AI IDE) — EN + CN guides |
| 🎛️ auto-hparam-tuning | General | Automatic hyperparameter tuning — AI agent reads project, plans strategy, runs experiments, analyzes TensorBoard, learns from results. Hydra-based |
| 🔁 OrcaReplay | Reproducibility | Records an agent run (Claude Code, Codex, OpenClaw, goose) and replays it offline, or forks it from any step onto a different model — so an overnight loop that went wrong can be re-examined without re-running it. Note: the trace stores the full request/response bytes, prompts and keys included — keep it where your unpublished work belongs. Apache-2.0. |
| 🔁 Codex+Claude Review Bridge | General | Codex executes + Claude reviews via local claude-review MCP bridge with async polling |
| 📚 paper-to-course | Education | Convert research papers (PDF/LaTeX) into interactive six-module HTML courses with formula breakdowns, literature timelines, quizzes, and glossary tooltips — single bundled file, no server needed |
| 🤖 MiniMax-AI/cli | General | Official MiniMax CLI — text, image, video, speech, and music generation + web search. skill/SKILL.md follows the agentskills.io standard. Drop-in companion for the Alt B (MiniMax reviewer) setup |
| 🔎 deep-research-skills | General / Web Search | Modular web-search strategy bundle — per-source playbooks for Stack Overflow, GitHub Issues / error-string debugging, Chinese tech communities (CSDN / 掘金 / 知乎 / V2EX / Tencent + Aliyun cloud forums), and general web (Reddit / HN / Dev.to / Medium). Complements ARIS's academic-paper-focused /research-lit stack with non-academic sources useful for debugging, version-compat tracking, and Chinese-language tech search. By @Weizhena |
| 🖼️ posterly | General / Posters | Academic conference posters as a single HTML/CSS file → print-ready PDF via headless Chromium (no LaTeX). A Claude Code skill — its gate machinery now powers ARIS’s default /paper-poster-html. By @Chenruishuo |
| 🛰️ Claude Fleet | Dashboard / DevEx | Local read-only dashboard for many concurrent Claude Code / Codex windows — triage (working / waiting-on-you / done), one-click Focus, ~50ms full-text search across transcripts, skill/memory analytics. By @tianyilt |
8. 🔄 Workflows
These skills compose into a full research lifecycle. Each workflow can be used independently or chained together:
- Exploring a new area (e.g., writing a survey)? Start with Workflow 1 →
/idea-discovery - Have a plan, need to implement and run? Workflow 1.5 →
/experiment-bridge - Already have results, need iterative improvement? Workflow 2 →
/auto-review-loop - Ready to write the paper? Workflow 3 →
/paper-writing(or step by step:/paper-plan→/paper-figure→/paper-write→/paper-compile→/auto-paper-improvement-loop) - Got reviews back? Need to rebuttal? Workflow 4 →
/rebuttal— parse reviews, draft safe rebuttal, follow-up rounds - Full pipeline? Workflow 1 → 1.5 → 2 → 3 → submit → 4 →
/research-pipeline+/rebuttal— from idea through submission and rebuttal - Need a multi-session proof campaign? Workflow 7 →
/proof-orchestrator— run-directory proof runs, GPT Pro handoff packages, cross-run continuation - Want ARIS to remember and learn? 📚
/research-wiki init— persistent memory across sessions. Papers, ideas, failed experiments compound over time - Want ARIS to improve itself? Workflow M →
/meta-optimize— analyze usage logs, propose skill improvements, reviewer-gated
⚠️ Important: These tools accelerate research, but they don't replace your own critical thinking. Always review generated ideas with your domain expertise, question the assumptions, and make the final call yourself. The best research comes from human insight + AI execution, not full autopilot.
Full Pipeline 🚀
/research-lit → /idea-creator → /novelty-check → /research-refine → /experiment-bridge → /auto-review-loop → /paper-writing → submit → /rebuttal → accept! 🎉
(survey) (brainstorm) (verify novel) (refine method) (implement+deploy) (review & fix) (write paper) (send) (reply to reviewers)
├────────────── Workflow 1: Idea Discovery ──────────────┤ ├ Workflow 1.5 ─┤ ├── Workflow 2 ──┤ ├── Workflow 3 ──┤ ├── Workflow 4 ──┤
📚 research-wiki (persistent memory — papers, ideas, experiments, claims)
↕ reads before ideation, writes after every stage, failed ideas = anti-repetition memory
/meta-optimize (Workflow M — runs independently, improves ARIS itself)
↑ reads .aris/meta/events.jsonl (accumulated from all runs above)Workflow 1: Idea Discovery & Method Refinement 🔍
"What's the state of the art? Where are the gaps? How do we solve it?"
Don't have a concrete idea yet? Just give a research direction — /idea-discovery handles the rest:
- 📚 Survey the landscape (recent papers, open problems, recurring limitations)
- 🧠 Brainstorm 8-12 concrete ideas via GPT-6-Astra xhigh
- 🔍 Filter by feasibility, compute cost, and quick novelty search
- 🛡️ Validate top ideas with deep novelty check + devil's advocate review
- 🧪 Pilot top 2-3 ideas in parallel on different GPUs (30 min - 2 hr each)
- 🏆 Rank by empirical signal — ideas with positive pilot results rise to the top
- 🔬 Refine the top idea into a problem-anchored proposal via iterative GPT-6-Astra review
- 🧪 Plan claim-driven experiments with ablations, budgets, and run order
The output is a ranked IDEA_REPORT.md plus a refined proposal (refine-logs/FINAL_PROPOSAL.md) and experiment plan (refine-logs/EXPERIMENT_PLAN.md) for the top idea. Dead-end ideas are documented too, saving future exploration.
Show W1 flow diagram and example command sequence — research-lit → idea-creator → novelty-check → research-refine → experiment-plan
/* Detailed source-code truncated for AI context efficiency. */Skills involved: research-lit + idea-creator + novelty-check + research-review + research-refine-pipeline
💡 One-command shortcut:
/idea-discovery "your research direction"runs this entire workflow automatically.
🔄 Human-in-the-loop: At each
AUTO_PROCEED-controlled selection checkpoint,truereports results and continues in the same turn;falseasks for your feedback before continuing. If you request changes, tell it what's missing — it refines the prompt and regenerates. Explicit gates such as Feishu interactive approval remain user-controlled.
⚙️ Pilot experiment budgets (max hours, timeout, GPU budget) are configurable — see Customization.
📝 Blog post: Claude Code 两月 NeurIPS 指北
Workflow 1.5: Experiment Bridge 🔗
"I have a plan. Now implement it, deploy it, and get me initial results."
Already have an experiment plan (from Workflow 1 or your own)? /experiment-bridge turns it into running code:
- 📋 Parse the experiment plan (
refine-logs/EXPERIMENT_PLAN.md) - 💻 Implement experiment scripts (reuse existing code, add proper argparse/logging/seeds)
- 🔍 GPT-6-Astra code review — cross-model review catches logic bugs before wasting GPU hours (
code review: trueby default) - ✅ Sanity check — run the smallest experiment first to catch runtime bugs
- 🚀 Deploy full experiment suite to GPU via
/run-experiment - 📊 Collect initial results and update the experiment tracker
Show W1.5 flow diagram — experiment plan → Claude implements → GPT-6-Astra code review → sanity check → GPU deploy → monitor → results
/* Detailed source-code truncated for AI context efficiency. */Skills involved: experiment-bridge + run-experiment + monitor-experiment
💡 One-command shortcut:
/experiment-bridgereadsrefine-logs/EXPERIMENT_PLAN.mdautomatically. Or point it to any plan:/experiment-bridge "my_plan.md".
⚙️
CODE_REVIEW,AUTO_DEPLOY,SANITY_FIRST,MAX_PARALLEL_RUNSare configurable — see Customization.
Workflow 2: Auto Research Loop 🔁 (sleep & wake up to results)
"Review my paper, fix what's wrong, repeat until it's good."
GPT-6-Astra reviews → identifies weaknesses → suggests experiments → Claude Code writes scripts, deploys to GPU, monitors results, rewrites the paper — all while you sleep. Just add your GPU server config to
CLAUDE.md.
- 🔍 Deep review — GPT-6-Astra xhigh reviews the current paper / claims / experiments and identifies weaknesses
- 🩹 Fix — Claude implements the fixes (rewrites sections, adds baselines, or runs new experiments via
/run-experiment); skips any experiment estimated > 4 GPU-hours and flags it for manual follow-up - 📊 Re-evaluate — collect results via
/monitor-experiment, update paper, feed back to the reviewer - 🔁 Repeat — until score ≥
POSITIVE_THRESHOLD(default 6/10) orMAX_ROUNDS(default 4) is hit; if context window fills mid-loop, the workflow auto-resumes fromREVIEW_STATE.json
Show W2 loop diagram — external review → implement fixes / run experiments → monitor results → repeat until threshold
┌─────────────────────────────────────────────────────────────┐
│ Auto Review Loop │
│ │
│ /research-review /auto-review-loop │
│ (single deep review) (autonomous loop) │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ External │──▶│ Implement│──▶│ Monitor │──▶ repeat │
│ │ LLM │ │ fixes │ │ results │ until │
│ │ reviews │ │ & run │ │ │ score ≥ 6 │
│ └──────────┘ │ experiments│ └──────────┘ │
│ └──────────┘ │
│ │
│ When reviewer suggests a new method direction: │
│ /novelty-check — verify idea isn't already published │
│ │
│ Supporting skills: │
│ /run-experiment — deploy to local/remote/vast.ai GPU │
│ /analyze-results — interpret experiment outputs │
│ /monitor-experiment — check progress, collect results │
└─────────────────────────────────────────────────────────────┘Skills involved: auto-review-loop + research-review + novelty-check + run-experiment + analyze-results + monitor-experiment
💡 One-command shortcut:
/auto-review-loop "your paper topic"runs this entire workflow automatically.
Show W2 usage examples, reviewer difficulty levels, and full safety guarantees — topic/scope arguments, medium/hard/nightmare, 6 safety rules
What to pass as argument? A short topic or scope is enough — the skill automatically reads your project's narrative docs (NARRATIVE_REPORT.md), memory files, experiment results, and prior reviews to build the full context for GPT-6-Astra. Examples:
/auto-review-loop "factorized gap in discrete diffusion LMs"— broad topic, skill finds everything/auto-review-loop "focus on Section 3-5, our CRF results are weak"— targeted scope with hints/auto-review-loop— also works: skill reads project files and infers the topic
🎮 Reviewer Difficulty — control how adversarial the reviewer is:
| Level | What changes | Use when |
|---|---|---|
medium (default) |
Standard MCP review — same as before | Normal workflow |
hard |
+ Reviewer Memory (GPT tracks suspicions across rounds) + Debate Protocol (Claude rebuts, GPT rules) | Want tougher feedback |
nightmare |
+ GPT reads repo directly via codex exec (Claude can't filter what it sees) + adversarial verification |
Preparing for top venue, want maximum stress test |
/auto-review-loop "topic" — difficulty: nightmare # GPT reads your code and verifies claims itself🛡️ Key safety features:
- 🔒 MAX_ROUNDS = 4 — prevents infinite loops; stops early if score threshold is met
- ⏱️ > 4 GPU-hour experiments skipped — won't launch massive jobs; flags them for manual follow-up
- 🧠 Prefer reframing over new experiments — when both can address a weakness, chooses the cheaper path
- 🪞 No hiding weaknesses — explicit rule: "Do NOT hide weaknesses to game a positive score"
- 🔧 Fix before re-review — must actually implement fixes before resubmitting; no empty promises
- 💾 Compact recovery — persists state (
REVIEW_STATE.json) after each round. If the context window fills up and auto-compacts mid-loop, the workflow reads the state file and resumes from where it left off — no human intervention needed
⚙️ MAX_ROUNDS, score threshold, and GPU limits are configurable — see Customization.
📝 Blog post: 开源 | 睡觉 Claude 自动跑实验改文
Workflow 3: Paper Writing Pipeline 📝
"Turn my research narrative into a submission-ready PDF." Requires a local LaTeX environment — see Prerequisites.
- 📝 Narrate — write
NARRATIVE_REPORT.md(claims, experiments, results, figure descriptions); seetemplates/NARRATIVE_REPORT_TEMPLATE.md - 🧭 Plan —
/paper-planbuilds the claims-evidence matrix + section plan - 📊 Figures —
/paper-figuregenerates data-driven plots and comparison tables from JSON/CSV - ✍️ Write —
/paper-writeproduces section-by-section LaTeX - 🔧 Compile —
/paper-compilebuilds the PDF, fixes errors, runs the page-limit check - ✨ Improve —
/auto-paper-improvement-loopruns 2 rounds of GPT-6-Astra content review + final format check
Show W3 architecture diagram and exact writing flow — NARRATIVE_REPORT → /paper-plan → /paper-figure → /paper-write → /paper-compile → improvement loop
/* Detailed source-code truncated for AI context efficiency. */Skills involved: paper-plan + paper-figure + paper-write + paper-compile + auto-paper-improvement-loop + (post-acceptance) paper-poster-html + paper-slides
One-command shortcut:
/paper-writing "NARRATIVE_REPORT.md"runs this entire workflow automatically.
Input: A NARRATIVE_REPORT.md describing the research: claims, experiments, results, figures. The more detailed the narrative (especially figure descriptions and quantitative results), the better the output.
Output: A paper/ directory with LaTeX source, clean .bib (only cited entries), and compiled PDF. The PDF is labelled submission-ready only when run at — effort: max | beast (or explicit — assurance: submission) and tools/verify_paper_audits.sh reports green on the three mandatory audits (proof-checker, paper-claim-audit, citation-audit); see Assurance Gate below. At the default balanced level, the output is a reviewed draft.
Show W3 feature details — Claims-Evidence Matrix, figure modes, clean bib, Gemini API setup, ICLR end-to-end test
Key features:
- 📐 Claims-Evidence Matrix — every claim maps to evidence, every experiment supports a claim
- 📊 Auto figure generation — line plots, bar charts, comparison tables from JSON data
- 🧹 Clean bib — automated filtering removes uncited entries (948→215 lines in testing). Real BibTeX from DBLP/CrossRef instead of LLM-generated entries
- 📄 Flexible sections — 5-8 sections depending on paper type (theory papers often need 7)
- 🔍 GPT-6-Astra review — each step optionally reviewed by external LLM
- ✂️ De-AI polish — removes AI writing patterns (delve, pivotal, landscape...)
- 🎯 Page verification —
pdftotext-based precise check that main body fits page limit
⚠️ Figure generation scope:
/paper-figureauto-generates data-driven plots (training curves, bar charts, heatmaps) and comparison tables from JSON/CSV. For architecture diagrams and method figures:illustration: gemini(default) uses Claude→Gemini→Nano Banana Pro for publication-quality diagrams;illustration: mermaidgenerates Mermaid diagrams for free;illustration: falseskips AI figures entirely.Gemini API setup (for
illustration: gemini): Get your API key at Google AI Studio, then set it as an environment variable:export GEMINI_API_KEY="your-key". Or add to your shell profile (~/.zshrc/~/.bashrc). No other dependencies needed.
Tested end-to-end: Generated a 9-page ICLR 2026 theory paper (7 sections, 29 citations, 4 figures, 2 comparison tables) from a single NARRATIVE_REPORT.md — zero compilation errors, zero undefined references.
Auto Paper Improvement Loop ✨
After Workflow 3 generates the paper, /auto-paper-improvement-loop runs 2 rounds of GPT-6-Astra xhigh content review → fix → recompile, plus a final format compliance check, autonomously polishing the paper from rough draft to a reviewer-scored draft. Whether the result is tagged submission-ready is decided separately by the Phase 6 assurance gate (see Assurance Gate).
Show auto-paper-improvement benchmark — Score Progression on a real ICLR 2026 theory paper (4/10 → 8.5/10), plus Round 1/2/3 fix details
Score Progression (Real Test — ICLR 2026 theory paper):
| Round | Score | Key Changes |
|---|---|---|
| Round 0 | 4/10 (content) | Baseline |
| Round 1 | 6/10 (content) | Fixed assumptions, softened claims, renamed notation |
| Round 2 | 7/10 (content) | Added synthetic validation, stronger limitations |
| Round 3 | 5→8.5/10 (format) | Removed hero fig, appendix, compressed conclusion, float spacing |
Final: 8 pages main body (ICLR limit: 9), 0 overfull hbox, ICLR-compliant. +4.5 points across 3 rounds.
Round 1 fixes (6 items)
- CRITICAL — Assumption-model mismatch: A boundedness assumption contradicted the model's distributional family. Replaced with a tail-compatible assumption and added formal truncation bridge.
- CRITICAL — Theory-practice gap: Theory assumes idealized encoders, experiments use learned nonlinear encoders. Softened "validate" → "demonstrate practical relevance" and added explicit disclaimer.
- MAJOR — Missing quantitative metrics: Added parameter count table (latent vs total) with honest accounting of system cost.
- MAJOR — Theorem not self-contained: Added "Interpretation" paragraph listing all dependencies explicitly.
- MAJOR — Overclaim in novelty statement: Scoped a broad "first convergence guarantee" to precise conditions under which it holds.
- MAJOR — Notation confusion: Renamed a symbol that clashed with another key variable. Added Notation paragraph.
Round 2 fixes (4 items)
- MAJOR — Missing theory-aligned experiments: Added a synthetic validation subsection directly testing the two main theoretical predictions under controlled conditions.
- MAJOR — Overclaim softening: Replaced strong equivalence claims with appropriately hedged language across all files.
- MAJOR — Informal theoretical argument: Formalized an informal justification into a proper proposition with explicit error bounds.
- MINOR — Weak limitations: Expanded to explicitly list all assumptions and acknowledge missing standard evaluations.
Round 3 format fixes (8 items)
- Removed hero figure block (saved ~0.7 pages)
- Compressed conclusion from 15→9 lines
- Moved synthetic validation to Appendix A
- Moved comparison tables to Appendix B
- Fixed overfull hbox (85pt) with
\resizebox - Added compact float spacing (
\captionsetup,\textfloatsep) - Inlined centered question block in introduction
- Tightened
itemizeenvironments
Workflow 4: Rebuttal 📝 (reply to reviewers safely)
"Reviews are in. Help me draft a safe, grounded rebuttal."
Got reviews back? /rebuttal parses them, builds a strategy, and drafts a venue-compliant response:
- 📋 Parse — normalize reviews, validate venue rules (character limit, text-only, etc.)
- 🔍 Atomize — split each review into issue cards (type, severity, reviewer stance)
- 🗺️ Strategize — global themes, per-reviewer priorities, character budget, blocked claims
- 🧪 Evidence sprint — if
auto experiment: true, auto-run supplementary experiments via/experiment-bridge - ✍️ Draft — global opener + numbered per-reviewer responses + closing for meta-reviewer
- 🛡️ Safety check — 6 lints: coverage, provenance, commitment, tone, consistency, limit
- 🔬 GPT-6-Astra stress test — internal skeptical review of the draft
- 📄 Finalize — two outputs:
PASTE_READY.txt(exact character count) +REBUTTAL_DRAFT_rich.md(extended version for manual editing) - 🔄 Follow-up rounds — delta replies for reviewer discussions, technically escalating
Show W4 rebuttal flow diagram — parse reviews → strategy → optional evidence sprint → draft → GPT-6-Astra stress test → finalize 2 versions → follow-up rounds
/* Detailed source-code truncated for AI context efficiency. */Skills involved: rebuttal
💡 Quick mode:
/rebuttal — quick mode: truestops after parsing + strategy (Phase 0-3). See what reviewers want before committing to a full draft.
⚙️
VENUE,AUTO_EXPERIMENT,QUICK_MODE,MAX_STRESS_TEST_ROUNDSare configurable — see Customization.
Three safety gates — rebuttal will NOT finalize if any fails:
- 🔒 Provenance — every claim maps to paper/review/user-confirmed result. No fabrication.
- 🔒 Commitment — every promise is user-approved. No overpromising.
- 🔒 Coverage — every reviewer concern is tracked. Nothing disappears.
Workflow 5: Resubmit Pipeline 🔁 (port a paper to a new venue, text-only)
Port a polished paper from venue A → B under hard, non-overridable guardrails — no new experiments · no bib edits · no framework changes · never overwrites prior submissions — via physical isolation, a 5-layer anonymity check, soft-only audits, whitelist microedits, and a /kill-argument adversarial gate. Full flow + constraints → docs/RESUBMIT_AND_TALK.md
Workflow 6: Conference Talk Pipeline 🎤 (paper → slides → polish → audits)
/paper-talk turns an accepted paper into a talk: outline → /paper-slides (Beamer + PPTX + speaker notes + Q&A) → /slides-polish (per-page Codex visual pass) → optional conference-ready audit gate. Sister to /paper-writing / /paper-poster-html. Full flow → docs/RESUBMIT_AND_TALK.md
Workflow 7: Proof Orchestrator 🧭 (standalone theory track — attack a theorem across days, not turns)
"This proof will take a week and three tools. Keep every attempt, audit, and escalation on the record."
Hard theorems are campaigns, not chat turns. /proof-orchestrator runs proof work as a stateful, local-first pipeline — each run gets its own directory, completed runs become append-only evidence, and every new run records which prior claims were proved, conjectural, or rejected:
- 🎯 Freeze the target — exact theorem, assumptions, quantifiers, allowed sources; new run or continuation
- 🧱 Maintain local evidence — run directory with
task.md/materials.md/ stable source snapshots - 🧠 Attempt locally — full proof, disproof, counterexample, or diagnosis; a stall isolates the smallest hard obligation
- 🔍 Audit correctness — every lemma, bound, and quantifier checked against assumptions; claims labeled proved / imported / conjectural / repaired / unsupported
- ✒️ Edit for exposition — two gates: the 7-line notation scorecard (100% core-object retention, zero undefined symbols, zero collisions) and the top-down derivation-structure gate (acyclic dependency graph, no subgoal silently assuming the target — a bug-catcher in disguise: a proof that resists a clean target-first rewrite is usually hiding a gap, and circular reasoning surfaces the moment you try)
- 📦 GPT Pro handoff — a stalled proof becomes a package:
browser-prompt.md(copy-paste ready),source-manifest.md(source roles),handoff.md(upload order + return instructions) - 🧾 Re-audit the returned proof — format repair only, then the full correctness audit and exposition edit produce
final.md
Show W7 flow diagram — freeze target → local attempt → audit → notation/structure gates → GPT Pro handoff (when stalled) → re-audit → final.md, plus the optional DeepSeek branch
/* Detailed source-code truncated for AI context efficiency. */Skills involved: proof-orchestrator (+ llm-chat MCP for the optional DeepSeek branch)
⚖️ Optional DeepSeek second opinion: request it at the audit stage for a verified cross-family adversarial pass — findings are validated locally and recorded as run-local provisional evidence. An installed
call-gpt-proskill can likewise automate the GPT Pro dispatch when you ask for it on a run.
🧭 Standalone by design. Workflow 7 is theory work's own track — no Workflow 1–6 stage calls it, and
/proof-checkerkeeps the submission gate in Workflow 3. Reach for it when a theorem outgrows single-shot/proof-writerdrafting: multi-day campaigns, cross-run continuation, or when the strongest available prover lives in a browser tab.
💡 Continuation: point it at a prior run (
next.md/redo.md) — it readsfinal.md/audit.md, reuses only audited claims, and opens a fresh run directory with full provenance.
📚 Research Wiki — Persistent Research Memory
"Stop re-deriving. Start compounding." — inspired by Karpathy's LLM Wiki
Without the wiki, ARIS is stateless — every /idea-discovery starts from scratch. With the wiki, ARIS accumulates knowledge across the entire research lifecycle: papers read, ideas tested, experiments run, claims verified or invalidated.
The key insight: failed ideas are the most valuable memory. A researcher who knows what doesn't work generates better ideas than one starting from zero.
Setup:
> /research-wiki init # one-time, creates research-wiki/ in your projectThat's it. Once initialized, the wiki works automatically.
Show the automatic wiki hooks — what fires at /research-lit, /idea-creator, /result-to-claim, plus the re-ideation nudge
| When | What happens | Wiki action |
|---|---|---|
/research-lit finds papers |
Papers auto-ingested | papers/<slug>.md created, edges added, query_pack rebuilt |
/idea-creator runs |
Reads wiki first | Failed ideas = banlist, gaps = search seeds, papers = known prior work |
/idea-creator finishes |
ALL ideas written back | Both recommended AND eliminated ideas → ideas/.md |
/result-to-claim judges |
Results written back | Experiment page created, claim status updated (supported/invalidated) |
| 3+ ideas fail | Re-ideation suggested | "💡 Consider re-running /idea-creator — the wiki now knows what doesn't work" |
Show Research Wiki data model — Paper / Idea / Experiment / Claim entities and the typed graph edges that connect them
Four entity types:
| Entity | What it stores | Example |
|---|---|---|
| 📄 Paper | Structured summary: thesis, method, limitations, reusable ingredients | paper:chen2025_factorized_gap |
| 💡 Idea | Hypothesis, status (proposed/failed/succeeded), failure notes, lessons | idea:001 |
| 🧪 Experiment | Metrics, verdict, hardware, duration | exp:001 |
| 📋 Claim | Testable statement + evidence status (reported/supported/invalidated) | claim:C1 |
Typed relationships (stored in graph/edges.jsonl):
paper --extends--> paper idea --inspired_by--> paper
paper --contradicts--> paper idea --tested_by--> experiment
paper --addresses_gap--> gap experiment --supports--> claim
paper --supersedes--> paper experiment --invalidates--> claimShow Research Wiki spiral-learning example and manual subcommands — failed ideas → better ideas across 3 rounds; ingest / query / update / lint / stats
Spiral learning in action:
Round 1: read 15 papers → wiki remembers → idea A → experiment → FAIL
wiki records: "A fails because OOM at batch>32, loss diverges"
Round 2: /idea-creator reads wiki → sees A failed → generates idea D (avoids A's trap)
→ experiment → PARTIAL SUCCESS
wiki records: "D works on small models, fails on large"
Round 3: /idea-creator reads wiki → knows A failed + D partial → generates idea F
(combines D's success with new approach) → experiment → SUCCESS 🎉Subcommands:
/research-wiki init # initialize wiki
/research-wiki ingest "paper title" — arxiv: xxx # manually add a paper
/research-wiki query "topic" # rebuild query_pack.md
/research-wiki update idea:001 — outcome: negative # update entity
/research-wiki lint # health check (orphans, contradictions, stale claims)
/research-wiki stats # overview (paper/idea/experiment/claim counts)🔒 Safe by design: All workflow hooks are guarded by
if research-wiki/ exists. No wiki = no impact. Zero dependencies (pure Python stdlib). You choose when to enable it.
Workflow M: Meta-Optimize 🧬 (ARIS optimizes itself)
"Analyze my usage patterns and improve your own skills."
Unlike Workflows 1–4 which optimize research artifacts (papers, code, experiments), Workflow M optimizes the harness itself — the SKILL.md instructions, default parameters, and convergence rules that govern how ARIS operates. Inspired by Meta-Harness (Lee et al., 2026).
Show Workflow M one-time setup and usage commands — Claude Code hook install, /meta-optimize variants (project / per-skill / --global / apply)
Setup (one-time, in normal terminal):
mkdir -p .claude .aris/meta tools/meta_opt
cp Auto-claude-code-research-in-sleep/templates/claude-hooks/meta_logging.json .claude/settings.json
cp Auto-claude-code-research-in-sleep/tools/meta_opt/*.sh tools/meta_opt/
chmod +x tools/meta_opt/*.sh
claude # hooks active immediatelyUsage (after 5+ workflow runs):
> /meta-optimize # analyze current project
> /meta-optimize "auto-review-loop" # focus on one skill
> /meta-optimize --global # analyze trends across ALL projects
> /meta-optimize apply 1 # apply recommended change #1How it works:
- 📊 Passive logging — Claude Code hooks silently record every skill invocation, tool call, failure, parameter override, and user prompt. Events are written to both project-level (
.aris/meta/events.jsonl) and global (~/.aris/meta/events.jsonl, with a"project"tag) logs. Zero user effort. - 🔍 Pattern analysis —
/meta-optimizereads the log and identifies:- Parameters users override most often (bad defaults)
- Tools that fail repeatedly in specific skills (missing error handling)
- Review score plateaus (convergence rules too loose/tight)
- Manual corrections users make (skill gaps)
- 🩹 Patch proposal — generates minimal diffs to target SKILL.md files with data-backed justifications
- 🔬 Reviewer gate — GPT-6-Astra xhigh reviews each patch: does the evidence support it? could it hurt other users?
- ✅ User approval — only applied with explicit user consent. All changes are logged and reversible.
Show Workflow M diagram and "what gets optimized" component table — event logs → SKILL.md patches → GPT-6-Astra review → user approval; prompts / defaults / convergence / error handling
┌─────────────────────────────────────────────────────────────────┐
│ Workflow M: Meta-Optimize │
│ │
│ Normal ARIS usage (W1-W4) │
│ │ (hooks log events passively) │
│ ▼ │
│ .aris/meta/events.jsonl │
│ │ │
│ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Analyze │────▶│ Propose │────▶│ GPT-6-Astra │ │
│ │ patterns │ │ SKILL.md │ │ reviews │ │
│ │ │ │ patches │ │ patch │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │
│ ▼ │
│ User approves? │
│ Yes → Apply │
│ No → Skip │
└─────────────────────────────────────────────────────────────────┘What gets optimized (harness components):
| Component | Example |
|---|---|
| Skill prompts | Reviewer instructions, quality gates, step descriptions |
| Default parameters | difficulty, MAX_ROUNDS, threshold |
| Convergence rules | When to stop the review loop, retry counts |
| Error handling | Auto-debug patterns, failure recovery steps |
What does NOT get optimized: research artifacts (papers, code, experiments) — that's what W1–W4 do.
Skills involved: meta-optimize
💡 This is a maintenance workflow, not part of the W1→W1.5→W2→W3→W4 research pipeline. Run it periodically, like
git gcfor your research harness.
⚡ Effort Levels
Every skill takes — effort: lite | balanced | max | beast — scaling breadth/depth (papers · ideas · pilots · rounds · seeds · audit depth) from ~0.4× to ~5–8×; balanced is the default (zero change for existing users). What never changes at any level: Codex reasoning stays at its tier floor (regular xhigh; deep audits ultra), DBLP/CrossRef citations on, reviewer independence on, experiment integrity on. 📖 Full spec + per-skill counts → effort-contract.md
Assurance Gate (effort: max | beast)
A second axis, orthogonal to effort: assurance decides whether mandatory audits are load-bearing. lite/balanced ⇒ draft (audits non-blocking — current behavior, zero change); max/beast ⇒ submission (paper-writing Phase 6 force-runs /proof-checker + /paper-claim-audit + /citation-audit in fresh threads and refuses the Final Report if tools/verify_paper_audits.sh exits non-zero). Escape hatch: — effort: beast, assurance: draft. 📖 Full spec → assurance-contract.md
🧿 Optional: GPT-5.5 Pro via Oracle
Add — reviewer: oracle-pro to any reviewer-aware skill (/proof-checker, /research-review, /experiment-audit, /rebuttal, …) to route review through GPT-5.5 Pro — strongest reasoning for deep proof / code / experiment-design critique. Default stays Codex xhigh; Oracle not installed ⇒ graceful fallback + warning (zero impact). 📖 Setup + per-skill examples → reviewer-routing.md
9. ⚙️ Setup
📖 New to ARIS?
SETUP_GUIDE.md(中文) gives a prescriptive 6-step walkthrough for macOS local + remote Linux GPU server with Claude Code + Codex MCP — the recommended path. The section below is a quick reference; deeper GPU / customization / model-combo setup lives in the linked docs.
10.1 Prerequisites
- Claude Code installed
- (For review skills) Codex CLI installed and configured as MCP server:The path isbash
npm install @openai/codex claude mcp add codex -s user -- python3 "$HOME/aris_repo/mcp-servers/codex-exec/server.py"mcp-servers/codex-exec/server.pyinside your ARIS clone — codex-cli 0.154 removedcodex mcp-server, this bridge stands in for it. - (For Workflow 3: paper writing) LaTeX environment with
latexmkandpdfinfo:bash# macOS brew install --cask mactex # or: brew install basictex brew install poppler # provides pdfinfo # Ubuntu/Debian sudo apt install texlive-full latexmk poppler-utils # Verify latexmk --version && pdfinfo -vWindows (PowerShell): Install a TeX distribution using the MiKTeX Basic Installer or TeX Live for Windows. Install Poppler for Windows separately, add the directory containing
pdfinfo.exetoPATH, and open a new PowerShell window. Then verify:powershelllatexmk --version pdfinfo -vIf either command is not found, refresh the TeX distribution's package/path settings and check that the Poppler directory containing
pdfinfo.exeis onPATH.
If you only need Workflow 1 & 2 (idea discovery + auto review), LaTeX is not required.
10.2 Install Skills
💡 Recommended: project-local flat symlink install (since 2026-04-20). Each ARIS skill is symlinked individually into
.claude/skills/<skill-name>, so Claude Code's slash-command discovery picks them up. A manifest at.aris/installed-skills.txttracks what ARIS installed — uninstall and reconcile only ever touch managed entries, never your own skills.🤖 Codex mirror route: keep Claude on
install_aris.sh/smart_update.sh. For Codex-native project installs, useinstall_aris_codex.sh; for copied Codex installs, usesmart_update_codex.sh.
🧩 Plugin route (Claude Code only):
claude plugin marketplace add wanshuiyin/Auto-claude-code-research-in-sleep, thenclaude plugin install aris@aris, then/aris:setuponce — it registers the Codex reviewer bridge that ships inside the plugin and points helper resolution at it; restart Claude Code afterwards. All skills arrive at once (no clone, no symlinks, no group selection) and are typed with the prefix:/aris:idea-discovery,/aris:paper-writing. Updates:claude plugin update aris@aris. Codex CLI reads the same repo as a plugin and gets the Codex-native mirror instead:codex plugin marketplace add wanshuiyin/Auto-claude-code-research-in-sleep, thencodex plugin add aris@aris, then point helper resolution at it once —printf '%s\n' ~/.codex/plugins/cache/aris/aris/local > ~/.aris/repo(the pathcodex plugin listshows). Use the installers above for selective groups or the.aris/installed-skills.txtmanifest.
/* Detailed source-code truncated for AI context efficiency. */Why "git pull" alone isn't enough for new/removed skills: the flat layout uses one symlink per skill, so upstream additions/deletions don't propagate until the installer is re-run. The trade-off bought us Claude Code's automatic slash-command discovery (which only scans one directory level deep).
Migrating from the old nested install (pre-2026-04-20)
If you previously installed via install_aris.sh (which created .claude/skills/aris/ as a single nested symlink) or via smart_update.sh --target-subdir .claude/skills/aris, your slash commands probably weren't being auto-discovered by Claude Code. Migrate to the flat layout:
# Symlink-style legacy install:
bash ~/aris_repo/tools/install_aris.sh ~/your-project --from-old
# Copy-style legacy install (with possible local edits — chose strategy explicitly):
bash ~/aris_repo/tools/install_aris.sh ~/your-project --from-old --migrate-copy keep-user
# → keeps your nested .claude/skills/aris/ copy intact alongside the new flat install
bash ~/aris_repo/tools/install_aris.sh ~/your-project --from-old --migrate-copy prefer-upstream
# → archives nested copy to .aris/legacy-copy-backup-<timestamp>/, then flattensAlternative installs (advanced)
Project-local copy (no symlinks, useful for per-project skill edits):
mkdir -p ~/your-project/.claude/skills
bash ~/aris_repo/tools/smart_update.sh --project ~/your-project --apply
# Default --target-subdir is .claude/skills (flat), which is what Claude Code expects.
# (The old --target-subdir .claude/skills/aris is now deprecated — see migration block above.)Global install (one copy in your home dir, available to every project):
mkdir -p ~/.claude/skills
cp -r ~/aris_repo/skills/* ~/.claude/skills/
# Update with: bash tools/smart_update.sh --applyGlobal install increases the risk of skill name collisions with other globally-installed packs. Use only if you don't mix ARIS with Superpowers / OpenHands / etc. — otherwise prefer the project-local install above.
💡 New Claude Code versions may not auto-create
~/.claude/skills/. If using global install, create it first:mkdir -p ~/.claude/skills/. The symlink installer handles directory creation automatically.
Optional: Codex Plugin for Code Review
codex-plugin-cc provides additional Codex capabilities that ARIS auto-detects when installed:
# In Claude Code:
/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins
/codex:setupWhere ARIS uses the plugin:
| Skill | Workflow | What it does |
|---|---|---|
/codex:review |
Workflow 1.5 | Review experiment code before GPU deployment |
/codex:adversarial-review |
Workflow 1.5 | Adversarial code review (find edge cases, bugs) |
/codex:rescue |
Workflow 1.5 + 3 | Auto-debug rescue — when experiment or LaTeX compilation fails after 2 attempts, Codex independently diagnoses the root cause before the next retry |
All plugin features are optional — if not installed, ARIS falls back to Claude's own diagnosis. The plugin just adds a second pair of eyes.
Note: ARIS's core cross-model review (paper scoring, idea evaluation, rebuttal stress test) still uses Codex MCP, which allows custom prompts. The plugin cannot replace this.
10.3 Update Skills
cd Auto-claude-code-research-in-sleep
git pull
# 🧠 Smart update (recommended) — analyzes what's safe to update
bash tools/smart_update.sh # dry-run: shows what would change
bash tools/smart_update.sh --apply # apply: updates safe ones; NEW upstream skills prompt
# one-by-one on a TTY, or use --add-new / --skip-new
# Manual options (if you prefer):
# cp -r skills/* ~/.claude/skills/ # Option A: overwrite all
# cp -rn skills/* ~/.claude/skills/ # Option B: only add new, keep yours
# cp -r skills/experiment-bridge ~/.claude/skills/ # Option C: specific skill💡 Smart update compares your local skills with upstream, detects personal customizations (server paths, API keys, etc.), and only updates skills that are safe to replace. Skills with your personal info are flagged for manual review.
10.4 Usage
# Workflow 1: Idea Discovery
> /idea-discovery "your research direction" # full pipeline
> /research-lit "topic" # just literature survey (all sources)
> /research-lit "topic" — sources: zotero, web # mix and match sources
> /research-lit "topic" — sources: deepxiv # DeepXiv-only progressive retrieval
> /research-lit "topic" — sources: exa # Exa AI-powered web search with content extraction
> /research-lit "topic" — arxiv download: true # also download top arXiv PDFs
> /arxiv "discrete diffusion" — download # standalone arXiv search + download
> /idea-creator "topic" # just brainstorm
# Workflow 2: Auto Research Loop
> /auto-review-loop "your paper topic" # review → fix → repeat
> /research-review "your paper" # single deep review
# Workflow 3: Paper Writing
> /paper-writing "NARRATIVE_REPORT.md" # full pipeline
> /paper-plan "NARRATIVE_REPORT.md" # just outline
> /paper-compile "paper/" # just compile
# Full Pipeline
> /research-pipeline "your research direction" # Workflow 1 → 2 → 3 end-to-end
# Supporting Skills
> /run-experiment train.py --lr 1e-4 --epochs 100
> /analyze-results figures/*.json
> /monitor-experiment server510.5 🌙 Auto-Allow for Overnight Runs (Optional)
Skip permission prompts on overnight runs — add a snippet to .claude/settings.local.json
To run the auto-review loop without clicking permission prompts, add to .claude/settings.local.json:
{
"permissions": {
"allow": [
"mcp__codex__codex",
"mcp__codex__codex-reply",
"Write",
"Edit",
"Skill(auto-review-loop)"
]
}
}🖥️ GPU for Auto-Experiments (Optional)
When the reviewer says "run an ablation", Claude Code writes the script and runs it on your GPU — you just declare your server in CLAUDE.md. Three modes (Remote SSH · Local GPU · Vast.ai on-demand): config snippets + setup → docs/GPU_SETUP.md (Vast.ai deep-dive → Vast.ai guide). No GPU? Review/rewrite skills still work; experiment fixes are flagged for manual follow-up.
🔌 Integrations (Optional)
Plug your library / vault / notifications into ARIS — each auto-skips silently if unconfigured:
- Zotero — collections + annotations + BibTeX in
/research-lit(before web search). - Obsidian + arXiv — search your vault notes; arXiv is built-in, no setup.
- Feishu / Lark — mobile push + interactive approve/reject for overnight runs.
10. 🎛️ Customization
Skills are plain Markdown — fork and tune them. Per-skill environment variables (GPU target, code review, reviewer routing, human checkpoints, paper-writing knobs) and parameter pass-through live in docs/CUSTOMIZATION.md.
Reviewer quota tight? The defaults are chosen for quality and stay as they are: skills start from natural language, and every review goes to the cross-model reviewer at its full tier. If a casual sentence starting a skill costs you quota, these are yours to opt into:
| Option | Saves | Costs |
|---|---|---|
Paste the paragraph below into your project's CLAUDE.md |
Skills starting from a sentence that merely resembles a trigger | You name the skill to start it. It is guidance to the model, not a guarantee |
— reviewer: manual |
Every reviewer call | You paste the review in yourself, so no unattended overnight run |
— effort: lite |
Papers read, ideas generated, rounds run | Nothing on the reviewer: its tier is never lowered |
Start ARIS skills or external reviewers only when I name an ARIS skill or explicitly
request an ARIS workflow. That request includes its child skills and reviewers;
continue under AUTO_PROCEED without asking for confirmation.11. 🔀 Alternative Model Combinations
No Claude / OpenAI API? Swap in other providers — same cross-model architecture. ARIS ships 10 alternative routes (Z.ai GLM, Alibaba Kimi/Qwen/MiniMax, free DeepSeek-V3.1 via ModelScope, OpenRouter as a pin-one-of-many reviewer backend, Codex-as-executor with Claude/Gemini reviewers, Google Antigravity). Full routing table + per-route setup in docs/MODEL_COMBINATIONS.md.
12. 💬 Community
Domain-specific skills welcome! The core skills cover general research workflows, but every field has its own tools and patterns. We welcome PRs that add new skills for your domain — EDA, bioinformatics, robotics, HPC, or anything else. Just add a skills/your-skill/SKILL.md and open a PR. See dse-loop for an example.
Join the WeChat group for discussion on Claude Code + AI-driven research workflows:
13. 📖 Citation
If you use ARIS in your research, please cite:
@article{yang2026aris,
title={ARIS: Autonomous Research via Adversarial Multi-Agent Collaboration},
author={Yang, Ruofeng and Li, Yongcan and Li, Shuai},
journal={arXiv preprint arXiv:2605.03042},
year={2026}
}14. ⭐ Star History
15. 🙏 Acknowledgements
Inspired by — 🧪 AI Scientist (Sakana) · 📖 AutoResearch (Karpathy) · 🔭 FARS (Analemma) · 🎨 PaperBanana (PKU).
Core infra — Claude Code (execution backbone) · Codex CLI (cross-model review via MCP).
Integrations — Zotero (guide): zotero-mcp, Zotero. Obsidian (guide): mcpvault, obsidian-skills (by Obsidian CEO Steph Ango). Feishu/Lark (guide): feishu-claude-code, clawdbot-feishu, cc-connect, lark-openapi-mcp.
Paper-writing inspiration — claude-scholar · Research-Paper-Writing-Skills · baoyu-skills. Community — awesome-agent-skills (featured).
Platform adaptation — 🤖 @Falling-Flower (Codex CLI adaptation via spawn_agent) · 🔧 @No-518 (Codex skill maintenance) · 🖱️ @YecanLee (Cursor guide + local GPU docs) · 🏆 @DefanXue & @Monglitay (first ARIS community paper, CS conference 8/10).
Architecture & vision — 💡 @JingxuanKang: beyond code (training-check, result-to-claim, ablation-planner, watchdog, templates, session recovery), deeply shaped ARIS through discussions on compact mode, workflow state management, and the vision of autonomous research — many of today's core features (structured project files, context-aware session recovery) grew out of these conversations.
16. License
MIT
Overview (`aris-monitor/README.md`)
ARIS-Monitor
A tiny, native, always-on-top floating macOS widget that shows, at a glance,
which of your running Claude Code sessions need you — primarily
"needs approval / pending permission", plus a simple working / done status.
No browser. No Chrome extension. No Electron. Pure Python stdlib Tkinter —
zero pip install.
🔒 READ-ONLY monitoring + ONE opt-in focus action
ARIS-Monitor builds its display by only reading files under
~/.claude—
monitoring is strictly read-only (liveness is inferred from file freshness; it
does not even callos.kill(pid, 0)). The one non-read action is
Focus: clicking a session row raises that session's terminal window. That
path — and only that path — runsps(to read the pid's tty) and the
raise-onlyfocus-tty.sh(osascriptactivate/select). Focus is always
user-initiated and never kills, signals, writes, or modifies any session or
process — it can only bring a window to the front. No network calls, ever.
Run
./run.sh # start the floating widget (top-right, draggable)
# or directly:
python3 widget.pyA small borderless panel appears top-right, floating above your windows. Drag
it by the dark header. Quit with the ×, or press q / Esc.
Click any session row to jump to (focus) its terminal tab/window — the
triage loop is: panel goes red → click the row → you're at that terminal to
approve. Focus is raise-only (Terminal.app / iTerm2 / tmux); it never touches the
session itself.
Other modes:
./run.sh --check # read-only smoke test (prints the classified list, no GUI)
./run.sh --ticker # headless terminal ticker (same scanner, same 2s loop)
python3 scanner.py # same as --checkWhat it watches (READ-ONLY)
The authoritative needs-approval signal is the live session registry, not a
transcript guess:
~/.claude/sessions/<pid>.json -> status == "waiting" (the core signal)
~/.claude/projects/<slug>/<id>.jsonl (read-only tail, only to refine working/done)The Claude Code app itself sets status == "waiting" (with an optionalwaitingFor string like Bash(npm test) needs approval) while a permission
prompt is on screen, and clears it the instant you answer. So:
- needs-approval is detected with no transcript parsing — straight from the
live JSON, which is why it is authoritative; and - it is inherently transient — the widget polls every ~2 s to catch it.
On a quiescent machine you will only ever see working / done, never
waiting. That is expected, not a bug.
| dot | bucket | meaning |
|---|---|---|
| 🔴 ● | NEEDS YOU | status == "waiting" — a permission prompt is blocking this session on you |
| 🟡 ◐ | working | actively running (busy & fresh, or a background task in flight) |
| 🟡 ◐ | stalled | stopped mid-tool while not waiting — may need a nudge (not red) |
| 🟢 ○ | done | last turn completed (end_turn) — finished, awaiting your review |
| · | stale (dim) | updatedAt older than 30 min — rendered dim and sorted to the bottom |
Sort order: NEEDS YOU → stalled → done → working → stale.
The panel shows the top 5 rows by that order; everything beyond folds behind
a clickable ▸ N more (click to show). needs-approval rows are never folded —
the cut stretches to include every red session. (Tune the cap with MAX_VISIBLE.)
Why not the "unmatched trailing tool call" heuristic?
Because a transcript that stops at a tool_use block while the session is
not status=="waiting" only means the run stalled, not that it is
waiting on your approval. Keying needs-approval off that would false-positive on
every mid-tool pause. The live status=="waiting" flag is the only
authoritative pending-permission signal, so that is what the red bucket uses.
Codex is out of scope (for needs-approval)
Codex has no on-disk live-status file equivalent to ~/.claude/sessions,
and its approval prompts are not written to the rollout JSONL. So ARIS-Monitor
does not scan Codex at all and will never claim Codex needs approval. The
pending-permission feature is Claude-Code-only by design.
Empty / all-clear state
With zero active sessions the panel stays visible and shows a calmARIS-Monitor — all clear ○ 0 header (green, never red) with a dimno active Claude sessions line. Zero sessions = "nothing needs you", which is
visually distinct from "needs approval".
Files
widget.py— the Tkinter floating panel (UI; importsscanner.scan()for the
read-only display andfocus.focus()for the click-to-raise action).scanner.py— the strictly read-only classifier. Public:scan(),summary().python3 scanner.pyis a GUI-less smoke test.focus.py— the ONE non-read action: raise a session's terminal (psfor
the tty +focus-tty.sh). Strictly raise-only; never kills/writes/signals.focus-tty.sh— bundled raise-only shim (Terminal.app / iTerm2 / tmux pane).
Always the bundled script (no~/.claude/focus-tty.shoverride is executed),
so the focus action's command surface stays provably bounded to this reviewed
shim — osascriptactivate/select+ read-onlytmux list-*discovery, neverkill/send-keys/session mutation.ticker.py— headless terminal fallback (same scanner, same 2 s loop), used
automatically when Tkinter is unavailable.run.sh— launcher: verifies Tk, starts the widget, falls back to the
ticker. Supports--checkand--ticker.
Dependencies
Python 3 standard library only: tkinter, json, os, time, glob,dataclasses. No pip. No venv. No brew (common case). No browser.
Tkinter ships with macOS's Xcode Command Line Tools /usr/bin/python3 and with
most conda / Homebrew pythons (Tk 8.6 verified present here). Ifpython3 -c "import tkinter" fails on a minimal interpreter, install Tk for it
(e.g. brew install python-tk) — or just use ./run.sh --ticker, which needs
no Tk.
Note on
run.shand venvs: ARIS-Monitor has no third-party
dependencies, so there is nothing to install andrun.shdeliberately does
not create a venv — a fresh venv often lacks the compiled_tkinter
module the base interpreter has, which would break the GUI. The launcher
simply verifies Tk against your existingpython3and runs.
Tunables
Top-of-file constants in scanner.py / widget.py:
REFRESH_MS(widget) /REFRESH_S(ticker) — poll cadence (default 2 s).MAX_VISIBLE(widget) — rows shown before the rest fold behind▸ N more(default 5; needs-approval rows are never folded).LIVE_WINDOW— seconds before a session is styled dim/stale and sorted to the bottom (1800 = 30 min).IDLE_THRESHOLD— busy-but-fresh cutoff for "working" (300).TRANSCRIPT_TAIL_BYTES— read-only tail size (256 KiB).
macOS caveats (the documented price of zero-install)
overrideredirect floating windows are absent from Mission Control, are not
Cmd-Tab-able, and can sit below a true-fullscreen app's Space; the look is
utilitarian (no native rounded corners / vibrancy). Acceptable for an MVP
triage glance. The same scanner.py can later back a PyObjC NSPanel for 10/10
floating polish with zero detection-code changes — at the cost of onepip install pyobjc-framework-Cocoa.
Overview (`templates/README.md`)
Templates
Ready-to-use templates for each ARIS workflow. Copy, fill in your content, and run the corresponding skill.
Workflow Input Templates
| Template | For Workflow | What to do |
|---|---|---|
| RESEARCH_BRIEF_TEMPLATE.md | Workflow 1 | Detailed research direction as document input |
| RESEARCH_CONTRACT_TEMPLATE.md | Workflow 1 | Define problem boundaries, non-goals, timeline before starting |
| EXPERIMENT_PLAN_TEMPLATE.md | Workflow 1.5 | Claim-driven experiment roadmap with run order and budgets |
| NARRATIVE_REPORT_TEMPLATE.md | Workflow 3 | Research narrative with claims, experiments, results |
| PAPER_PLAN_TEMPLATE.md | Workflow 3 | Pre-made outline to skip planning phase |
| CLAUDE_MD_TEMPLATE.md | All Workflows | Project dashboard with Pipeline Status — create once per project |
| MANIFEST_TEMPLATE.md | All Workflows | Output tracking manifest — auto-maintained by skills |
Chinese Templates (中文模板)
| Template | For Workflow | What to do |
|---|---|---|
| RESEARCH_BRIEF_TEMPLATE_CN.md | Workflow 1 | 研究简报中文模板 |
| IDEA_CANDIDATES_TEMPLATE_CN.md | Workflow 1 | Idea 候选池中文模板 |
| EXPERIMENT_PLAN_TEMPLATE_CN.md | Workflow 1.5 | 实验计划中文模板 |
Patent Templates (`/patent-pipeline`)
| Template | For Workflow | What to do |
|---|---|---|
| INVENTION_BRIEF_TEMPLATE.md | Patent Pipeline | Invention disclosure with technical problem, solution, advantages, figures |
| PATENT_CLAIMS_TEMPLATE.md | /claims-drafting |
Claims hierarchy worksheet with examples for CN/US/EP |
| PATENT_SPECIFICATION_TEMPLATE.md | /specification-writing |
Skeleton specification with all required sections |
Compact Mode Templates (`— compact: true`)
| Template | Written by | Purpose |
|---|---|---|
| IDEA_CANDIDATES_TEMPLATE.md | /idea-discovery |
Top 3-5 surviving ideas (lean, not full 12-idea report) |
| EXPERIMENT_LOG_TEMPLATE.md | /experiment-bridge |
Structured experiment record (results + reproduction commands) |
| FINDINGS_TEMPLATE.md | /auto-review-loop |
One-line-per-finding discovery log (anomalies, decisions) |
Usage
Research Pipeline
cp templates/EXPERIMENT_PLAN_TEMPLATE.md refine-logs/EXPERIMENT_PLAN.md
# Edit with your content, then:
/experiment-bridgePatent Pipeline
cp templates/INVENTION_BRIEF_TEMPLATE.md patent/INVENTION_BRIEF.md
# Edit with your invention details, then:
/patent-pipeline "patent/INVENTION_BRIEF.md -- CN"Overview (`docs/tutorials/README.md`)
ARIS Tutorials
Long-form interview-prep cheat sheets, written in Markdown and rendered to single-file HTML via the /render-html skill (academic-newspaper template, sticky TOC, MathJax + highlight.js, cross-model codex review gate).
📖 Curated collection: github.com/wanshuiyin/ARIS-in-AI-Offer — interview-prep cheat sheets organized into 6 categories with bilingual README.
🧠 General / Foundations
| Tutorial | MD | HTML | Topics |
|---|---|---|---|
| Attention 面试 Cheat Sheet | md | html | Scaled-dot-product, MHA / MQA / GQA, RoPE / ALiBi, FlashAttention, KV cache, attention in diffusion, NaN-mask trap |
| KL Divergence in RLHF | md | html | k1/k2/k3 estimators · forward vs reverse KL · KL in PPO/GRPO/DPO · placement gradient bias · "Rethinking KL" + "Comedy of Estimators" |
🎯 Post-Training & Reasoning
| Tutorial | MD | HTML | Topics |
|---|---|---|---|
| RLHF / DPO / GRPO / PPO | md | html | PPO clip + GAE · RLHF pipeline · DPO closed-form from BT · GRPO group-relative · KTO/IPO/SimPO/ORPO · PRM vs ORM · Constitutional AI |
| Reasoning Models (o1 / R1 / Test-Time Compute / PRM) | md | html | o1/o3/R1 three-way comparison · GRPO derivation · PRM vs ORM · s1 budget forcing · MCTS+PUCT · R1-Distill |
| LLM On-Policy Distillation (OPD) | md | html | Route A (full-vocab) vs Route B (REINFORCE/IS, Tinker default) · vOPD control variate · OPD+GRPO · MiniLLM / GKD / Qwen3 / Thinking Machines |
🏛️ LLM Architecture & Systems
| Tutorial | MD | HTML | Topics |
|---|---|---|---|
| MoE (Mixture-of-Experts) | md | html | DeepSeek-V3 fine-grained + shared · Mixtral · Llama 4 · auxiliary-loss-free balancing · EP all-to-all · DualPipe · capacity factor |
| Long Context (RoPE / YaRN / NTK / MLA / StreamingLLM) | md | html | RoPE rotation, PI/NTK/YaRN/LongRoPE scaling, MLA decoupled RoPE, SWA + StreamingLLM, Ring Attention |
| KV Cache + Speculative Decoding | md | html | PagedAttention, MQA/GQA/MLA, speculative decoding acceptance prob, Medusa / EAGLE-1/2/3, Lookahead |
| Quantization | md | html | GPTQ Hessian-based · AWQ activation-aware · SmoothQuant · LLM.int8 · QuaRot/SpinQuant · FP8 E4M3/E5M2 · MX formats · NVFP4 |
| Distributed Training | md | html | DDP / FSDP2 / ZeRO 1/2/3 + ZeRO++ / TP (Megatron) / PP (GPipe, 1F1B, interleaved) / SP / CP / EP / DualPipe / Llama 3 |
🌊 Generative Models — Theory & Tokenizers
| Tutorial | MD | HTML | Topics |
|---|---|---|---|
| Flow Matching Quick Reference | md | html | Conditional FM, Rectified Flow / VP / VE paths, training + sampling code, ODE solvers, SD3 / FLUX latent FM |
| Diffusion Foundations (DDPM / Score / DDIM / EDM / CFG) | md | html | DDPM ELBO + L_simple, score matching + Tweedie, Score SDE + PF-ODE, DDIM, EDM preconditioning + Heun, CFG, Consistency Models + LCM + Turbo |
| VAE / VQ-VAE / VQ-GAN / FSQ | md | html | VAE ELBO + reparam · β-VAE · IWAE · posterior collapse · VQ-VAE STE + EMA codebook · VQ-GAN + PatchGAN · FSQ even/odd levels · LFQ |
🎨 Generation Systems
| Tutorial | MD | HTML | Topics |
|---|---|---|---|
| Image Generation Systems | md | html | LDM · SD/SDXL/SD3/FLUX · DiT · AdaLN-Zero · ControlNet · IP-Adapter · LoRA · DreamBooth · ADD/LADD distillation |
| Video Generation | md | html | 3D Causal VAE · Spacetime Patches · Spatiotemporal Attention · MM-DiT · I2V · VBench · Sora / Hunyuan-Video / Wan |
| 3D Generation | md | html | NeRF volumetric rendering · Instant-NGP hash · 3DGS rasterization · SDS / VSD · Trellis / Hunyuan3D |
| Diffusion Post-Training | md | html | DDPO · DPOK · DRaFT-K · AlignProp · Diffusion-DPO · D3PO · SPO · Diffusion-KTO · MaPO · Flow-GRPO |
| Diffusion / Flow Distillation | md | html | CM · iCT · sCM · CTM · LCM/TCD · rCM · DMD/DMD2 · ADD/LADD/Lightning · Rectified Flow/InstaFlow · Progressive distillation |
👁️ Multimodal
| Tutorial | MD | HTML | Topics |
|---|---|---|---|
| VLM (CLIP / LLaVA / Qwen-VL / DeepSeek-VL) | md | html | CLIP InfoNCE derivation, SigLIP, ViT, BLIP-2 Q-Former, Flamingo Perceiver, LLaVA, Qwen2-VL M-RoPE |
✅ 23 tutorials across 6 categories; each also available in English alongside the Chinese version (e.g.
attention_tutorial_en.md/_en.html). Full curated collection: ARIS-in-AI-Offer.
How they were produced
The two pilots were drafted by hand and rendered via /render-html. Subsequent tutorials use the dedicated workflow skill:
/interview-cheatsheet "<TOPIC>" # default: 600-line balanced effort
/interview-cheatsheet "<TOPIC>" — effort: max # ~1000 lines + deeper proofs/interview-cheatsheet (skills/interview-cheatsheet/SKILL.md) is an ARIS skill that:
- Plans a 12-14 section structure (TL;DR · intuition · formula+derivation · from-scratch PyTorch · variants · 25 高频面试题 L1/L2/L3)
- Drafts the MD following the canonical style of the two pilot tutorials (heading conventions, table-pipe escapes, callout-list separation rules — all bugs caught during the pilot reviews are now encoded into the style guide)
- Cross-model
codex gpt-5.5 xhighreview on math / code / interview-answer / citation correctness + personal-info redaction (fresh thread, nevercodex-reply) - Fix-and-loop — trajectory-based (no hard cap; stop if same issue recurs or ~6 rounds without convergence)
- Renders via
/render-html(which itself runs a 13-check codex review on the rendered output) - Writes a combined audit trail to
*.review.json - Stops — never auto-commits. The user reviews and pushes manually.
See
skills/interview-cheatsheet/SKILL.mdfor the full skill protocol andskills/render-html/SKILL.mdfor the renderer.
Overview (`mcp-servers/antigravity-exec/README.md`)
Antigravity CLI → MCP
使用已有 agy 登录,把 Gemini 3.8 Flash 接为独立 MCP。沿用同仓库 codex-exec / grok-exec 的 NDJSON、进度、取消和会话保存设计,Python 3.9+,无需第三方库。
默认模型 gemini-3.8-flash-high,effort high。提供 antigravity 和 antigravity-reply,作为独立工具使用,不修改 ARIS skills 的 reviewer 路由。
现有 gemini-review 已有 API、Gemini CLI 和 agy 后端,提供 review* 工具供正式评审流程使用。本桥接提供显式 model/effort 与 CLI 原生 conversation 续接;工具名和会话契约不同。— reviewer: agy 和 Codex 的 Gemini overlay 仍走现有 gemini-review,不会因安装本桥接而切换。
安装
- 安装 Antigravity CLI,运行
agy登录;agy models应包含目标模型。 - 把同目录
aris-antigravity-review.md复制到~/.gemini/config/agents/。这是专供 MCP 选择的审阅 agent,不改变交互会话的默认 agent。 - 注册 MCP,绝对路径替换为自己的安装位置:
codex mcp add antigravity --env AGY_BIN=/absolute/path/to/agy -- python3 /absolute/path/to/aris/mcp-servers/antigravity-exec/server.py在 Codex config.toml 的 [mcp_servers.antigravity] 中设置 tool_timeout_sec = 3660。若本机网络需要代理,在该服务的 env 中显式配置实际可达的 http_proxy / https_proxy;不要依赖 GUI 启动时继承终端环境。
Claude Code 可另行注册:
claude mcp add antigravity -s user -- python3 /absolute/path/to/aris/mcp-servers/antigravity-exec/server.py重启对应客户端后使用新工具。常驻 MCP 与 shell 内启动的独立探测具有不同的宿主权限;受限 shell 不能写 CLI 状态目录或连接代理,不代表常驻服务也失败,应使用宿主的正常审批流程处理。
调用
首轮:
{"prompt":"请读取指定文件,回答这个问题。","cwd":"/absolute/path/to/project","model":"gemini-3.8-flash-high","effort":"high"}续接 antigravity-reply:
{"threadId":"首轮返回的 UUID","prompt":"请接着解释第二点。"}续接只接受这两个字段,沿用首轮 model、effort、cwd 和审阅 agent。桥接重启后仍可恢复自己创建的会话;不用 --continue,避免串到其他交互会话。threadId 同时放在文本和 structuredContent 中。
返回的 model 来自 CLI 的 init 事件,selectedModelLabel 来自本轮 CLI 解析模型的日志;effort 从该实际选择的变体标签解析,注明 effortSource=cli_selected_model_variant。缺少记录时返回 null,不把请求值冒充实测值;这也不是独立的服务端型号证明。不支持的模型或 effort 交由 CLI 明确报错,不自动降级。
权限与执行
- 选择专用审阅 agent,其提示和工具声明限定文件读取与搜索;保留 CLI 原生权限检查,启用
--sandbox,不传跳过权限参数。CLI 1.2.17 的 init 仍列出完整工具目录,因此这里不宣称已验证所有写入被硬隔离。使用者应按现有 CLI 权限管理敏感工作区。 - 用一条 NDJSON stdin 传提示,避免长提示进入命令行;关闭 stdin 后 CLI 完成本轮并退出。临时输入与本轮日志留在私有目录,调用结束清除;CLI 自己的会话仍按原生方式保存。
- 接受完整
SUCCESS、非空回答和进程退出码0;ERROR、WAITING、取消、非零退出或缺失终态都返回isError。 - 等待模型时响应 ping、进度与取消;超时或宿主断开会回收本次 CLI 进程组。桥接不自动重试模型调用。
- 每个服务进程顺序执行。CLI 的
num_turns是累计用户回合,不是 Grok/Claude 的工具轮次上限;本桥接没有编造同名限制参数。
| 环境变量 | 默认值 |
|---|---|
AGY_BIN |
agy |
AGY_EXEC_MODEL |
gemini-3.8-flash-high |
AGY_EXEC_EFFORT |
high |
AGY_EXEC_TIMEOUT_SEC |
3600 |
AGY_EXEC_PROGRESS_INTERVAL_SEC |
15 |
AGY_EXEC_STATE_DIR |
~/.codex/state/antigravity-exec |
AGY_EXEC_DEBUG_LOG |
不启用 |
探测用短超时,例如 AGY_EXEC_TIMEOUT_SEC=90;正常审阅保留较长超时。
验证
2026-10-05,macOS、Antigravity CLI 1.2.17:直接 headless 首轮与续接成功;真实 MCP 用 view_file 读取测试文件,重启桥接后用同一会话正确复述随机字符串,两轮约40秒,CLI 两轮均选择 Gemini 3.8 Flash (High)。该验证覆盖调用与续接,不代表复杂审阅质量或并发额度测试。
离线协议测试:
python3 -m unittest discover -s tests -p 'test_antigravity_exec_bridge.py' -v8项用例覆盖协议、长输入、跨进程续接、错误终态、元数据缺失、取消和超时。Ruff、格式与 ty 检查通过。
接口依据:Google headless 文档、自定义 agent、Codex MCP 配置。
Overview (`mcp-servers/claude-review/README.md`)
Claude Review MCP
Bridge Codex-first ARIS workflows to the local Claude Code CLI.
What it does
- Keeps Codex as the executor
- Uses Claude Code CLI as the external reviewer
- Exposes synchronous MCP tools:
reviewreview_reply
- Exposes asynchronous MCP tools for long reviewer prompts:
review_startreview_reply_startreview_status
The synchronous tools return a JSON string containing threadId and response.
The asynchronous start tools return a JSON string containing jobId and status, and review_status later returns the final threadId and response.
Claude Code is the CLI transport. The reviewer uses its configured provider,
which may be Anthropic or an API-compatible provider such as DeepSeek. Do not
classify the reviewer's model family from the bridge name alone.
Install into Codex
mkdir -p ~/.codex/mcp-servers/claude-review
cp mcp-servers/claude-review/server.py ~/.codex/mcp-servers/claude-review/server.py
codex mcp add claude-review -- python3 ~/.codex/mcp-servers/claude-review/server.pyAlternatively, register the absolute path to server.py in an existing ARIS
checkout so repository updates also update the bridge. If Codex cannot findclaude on PATH, pass --env CLAUDE_BIN=/absolute/path/to/claude before --.
The bridge uses Claude Code's existing provider settings and authentication;
there is no need to copy credentials into the MCP configuration. LeavingCLAUDE_REVIEW_MODEL unset follows the CLI's configured model.
Reopen the Codex session after registering a new server and check its MCP tool
list. An existing interactive Claude Code window can remain open: this bridge
starts a separate non-interactive session and resumes only the suppliedthreadId, never the most recent interactive conversation.
If your Claude Code login depends on a shell function such as claude-aws, use the wrapper instead:
mkdir -p ~/.codex/mcp-servers/claude-review
cp mcp-servers/claude-review/server.py ~/.codex/mcp-servers/claude-review/server.py
cp mcp-servers/claude-review/run_with_claude_aws.sh ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
chmod +x ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
codex mcp add claude-review -- ~/.codex/mcp-servers/claude-review/run_with_claude_aws.shEnvironment Variables
CLAUDE_BIN: Claude CLI path, defaults toclaudeCLAUDE_REVIEW_MODEL: optional reviewer model overrideCLAUDE_REVIEW_SYSTEM: optional default system promptCLAUDE_REVIEW_TOOLS: Claude tools override, defaults to empty stringCLAUDE_REVIEW_TIMEOUT_SEC: subprocess timeout, defaults to600CLAUDE_REVIEW_STATE_DIR: async job storage, defaults to~/.codex/state/claude-reviewCLAUDE_REVIEW_DEBUG_LOG: local protocol/debug log path; logs include prompts and responses
Notes
- The bridge runs Claude in non-interactive
-pmode. - It passes
--strict-mcp-configwith an empty MCP configuration, so the
reviewer does not inherit MCP servers such as Codex and delegate back to the
executor. Provider settings remain available. CLI tools and plan permissions
are not an operating-system sandbox. - By default the reviewer gets no tools. This matches the original ARIS pattern where the external reviewer only sees the prompt context prepared by the executor.
- A prompt that hands the reviewer artifact paths instead of pasted context must therefore opt in per call, e.g.
"tools": "Read,Grep,Glob". Without it the reviewer is asked to read files it has no tool to open, and it answers from your framing alone — exactly what artifact-grounded review is meant to avoid. Theskills-codex-claude-reviewoverlay passes this on its artifact-grounded review blocks; the server default stays tool-free, so prompt-only reviews are unchanged. - The opt-in is per call, not per thread: every call re-sends
--tools, so areview_reply/review_reply_startcontinuing an artifact-grounded thread has to repeat it. - All four review tools accept
cwd. Set it to the project directory when
passing artifact paths, and repeat the same value on replies. Without it,
the CLI inherits the MCP server's directory;threadIddoes not select a
working directory. Async jobs save the resolved absolute directory before
launching their worker. - Keep the opt-in read-only. The bridge already runs Claude with
--permission-mode plan, and a reviewer has no reason to holdBash,Edit, orWrite. threadIdis the native Claude session id and can be passed directly toreview_reply.jobIdis a bridge-local background task id stored on disk under~/.codex/state/claude-review/jobs/by default, so status can be resumed across MCP server restarts.
Example file review:
{
"name": "review",
"arguments": {
"prompt": "Read draft.md and identify unsupported claims.",
"cwd": "/absolute/path/to/project",
"tools": "Read,Grep,Glob"
}
}Results include requestedModel (explicit argument or bridge default, otherwisenull) separately from model. The latter comes from the CLI result's model
field or a single modelUsage entry, with modelSource identifying the source.reportedModels lists the usage entries when present. If the CLI does not
identify one model unambiguously, model is null; the requested alias is never
substituted as evidence. These are CLI reports, not independent server identity
verification. No context-window size or reasoning effort is inferred from the
model name.
Empty reviews, nonterminal output, CLI errors and explicit unfinished stop
reasons are returned as errors, with no automatic retry. Existing synchronous
calls block the protocol reader until the CLI returns or times out; MCP
cancellation is not a process-tree cancellation guarantee. Use async jobs for
long reviews and poll their status after reconnecting.
When to use sync vs async
- Use
review/review_replyfor short prompts that comfortably finish within the host MCP tool timeout. - Use
review_start/review_reply_start+review_statusfor long paper or project reviews. This avoids the observedCodex -> tools/calltimeout around 120 seconds.
Async flow
Start a long review:
{
"name": "review_start",
"arguments": {
"prompt": "Review this paper draft..."
}
}Example response:
{
"jobId": "5d8d0a9c5a2f4f42ae44f6f0c2d73f6f",
"status": "queued",
"done": false
}Poll later:
{
"name": "review_status",
"arguments": {
"jobId": "5d8d0a9c5a2f4f42ae44f6f0c2d73f6f",
"waitSeconds": 20
}
}When complete, review_status returns the same reviewer payload fields as the synchronous tools, including threadId, response, model, and stop_reason.
Overview (`mcp-servers/codex-exec/README.md`)
codex-exec — the `codex` MCP server, over `codex exec`
codex-cli 0.154.0 removed the codex mcp-server entry point that ARIS
registered as the codex MCP server. This bridge speaks the same contract —
tools codex and codex-reply, results {threadId, content} — and runs each
call as a codex exec subprocess. Nothing in the skills changes.
Register
cd ~/aris_repo && git pull # existing install: older clones do not have this directory
claude mcp remove codex -s user # only if the old `codex mcp-server` registration exists
claude mcp add codex -s user -- python3 "$(pwd)/mcp-servers/codex-exec/server.py"Use the absolute path of your ARIS clone ($(pwd) from inside it). Restart
Claude Code; claude mcp list should show codex … ✓ Connected. Verified on
codex-cli 0.153.4 and 0.154.0; needs a version with codex exec resume, so there
is no reason to keep the old registration on 0.153 either. Skills need no change.
Installed by copying skills/ without keeping a clone? Clone the repo anywhere
and point at its server.py; the file is self-contained.
Other MCP hosts (Cursor, Trae, Antigravity, Copilot CLI) use the same key with"command": "python3", "args": ["/absolute/path/to/aris_repo/mcp-servers/codex-exec/server.py"].
Requirements: codex on PATH and logged in; Python 3.9+ (macOS system python is fine); no packages.
What a call becomes
| MCP argument | codex exec |
|---|---|
prompt |
stdin (no argv limit) |
model |
-m MODEL |
config {"model_reasoning_effort": "ultra"} |
-c model_reasoning_effort="ultra" (nested objects become dotted keys) |
sandbox |
--sandbox MODE |
cwd |
--cd DIR |
codex-reply threadId |
codex exec resume THREAD plus the model, config, sandbox and cwd the thread was created with — resume alone would fall back to config.toml defaults, and ARIS's routing contract relies on a continued thread keeping its reviewer model and effort |
Per-thread settings live in ~/.codex/state/codex-exec/threads/.json, one file each.
A failed turn (unknown model, auth, API error) comes back as isError: true
with codex's own error text, so the capability fallback inskills/shared-references/reviewer-routing.md keys on the same wording as before.
While a review runs the bridge streams codex/event notifications and, when the
host passes a progressToken, a notifications/progress heartbeat every 15 s
(CODEX_EXEC_PROGRESS_INTERVAL_SEC), answers ping, and honoursnotifications/cancelled. Notifications cannot override a host's hard tool
timeout — deep-audit reviews at ultra can run 30+ minutes.
Not offered, because codex exec cannot honour them: approval-policy,base-instructions, developer-instructions, compact-prompt. No ARIS skill
passed them.
Debugging: CODEX_EXEC_DEBUG_LOG=/path/to/log records every request and the
exact codex exec command line; CODEX_BIN points at a specific codex binary.
Overview (`mcp-servers/codex-image2/README.md`)
codex-image2 MCP Bridge
Experimental bridge that lets Claude Code ask the local Codex desktop app
to generate an image through Codex's native app-server image-generation path.
This bridge is intentionally narrow:
- it accepts text prompts
- it waits for a native
imageGenerationevent from Codex - it rejects runs that fall back to shell/Python-based image creation
- it copies the generated image only into
cwd/figures/ai_generated/
Requirements
- Codex desktop app installed and signed in
codexCLI available onPATHcodex debug app-server send-message-v2 "ping"works on your machine
Install for Claude Code
mkdir -p ~/.claude/mcp-servers/codex-image2
cp mcp-servers/codex-image2/server.py ~/.claude/mcp-servers/codex-image2/server.py
chmod +x ~/.claude/mcp-servers/codex-image2/server.py
claude mcp add codex-image2 -s user -- python3 ~/.claude/mcp-servers/codex-image2/server.pyExposed Tools
generate_startgenerate_status
The bridge is intentionally async-first. Call generate_start, then pollgenerate_status.
Smoke Test
After registering the server in Claude Code, ask Claude to call:
mcp__codex-image2__generate_startwith a prompt like:
Generate a clean blue circle on white background.Then poll mcp__codex-image2__generate_status until done=true.
outputPath must stay under figures/ai_generated/ inside the provided cwd.
The server rejects writes outside that workspace root.
Current Limitations
- The bridge uses the current Codex app-server path and is experimental
- It is optimized for one-shot generation rather than conversational thread replay
- Reference images are passed as path hints in the prompt; if Codex exposes local image viewing in that session, it may inspect them
Logging
- Debug logging is opt-in via
CODEX_IMAGE2_DEBUG_LOG=/path/to/debug.log - Raw Codex stdout/stderr run logs are off by default; enable only when needed with
CODEX_IMAGE2_SAVE_RUN_LOGS=1
Overview (`mcp-servers/gemini-review/README.md`)
Gemini Review MCP
Bridge Codex-first ARIS workflows to Gemini, using the direct Gemini API by default.
What it does
- Keeps Codex as the executor
- Uses Gemini as the external reviewer
- Exposes synchronous MCP tools:
reviewreview_reply
- Exposes asynchronous MCP tools for long reviewer prompts:
review_startreview_reply_startreview_status
The synchronous tools return a JSON string containing threadId and response.
The asynchronous start tools return a JSON string containing jobId and status, and review_status later returns the final threadId and response.
When using the direct API backend, the tools also accept optional imagePaths / image_paths so Gemini can review local PNG/JPG/WebP files, which is used by the poster visual-review overlay.
Install into Codex
mkdir -p ~/.codex/mcp-servers/gemini-review
cp mcp-servers/gemini-review/server.py ~/.codex/mcp-servers/gemini-review/server.py
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=api -- python3 ~/.codex/mcp-servers/gemini-review/server.pyPrerequisites
Prepare the direct Gemini API path before use:
- Gemini API: set
GEMINI_API_KEYorGOOGLE_API_KEY
Optional fallback only:
- Gemini CLI: install
geminiand complete CLI login/auth if you explicitly wantGEMINI_REVIEW_BACKEND=cli - Antigravity CLI: install/authenticate
agyif you explicitly wantGEMINI_REVIEW_BACKEND=agy
The server also auto-loads ~/.gemini/.env if it exists, so a local file such as:
export GEMINI_API_KEY=...is enough for API mode without exporting the variable in every shell.
Environment Variables
GEMINI_BIN: Gemini CLI path, defaults togeminiAGY_BIN: Antigravity CLI path, defaults toagyGEMINI_REVIEW_MODEL: optional reviewer model override used by API/Gemini CLI backends;agymodel selection is controlled by Antigravity settings, so the bridge reports the actual model recovered from the current log/transcript and records any requested model as provenance onlyGEMINI_REVIEW_API_MODEL: API-only default whenGEMINI_REVIEW_MODELis unset, defaults togemini-2.5-flashGEMINI_REVIEW_SYSTEM: optional default system promptGEMINI_REVIEW_BACKEND: reviewer backend override, one ofapi,auto,cli, oragy; defaults toapiGEMINI_REVIEW_TIMEOUT_SEC: HTTP / subprocess timeout, defaults to600GEMINI_REVIEW_MAX_STATUS_WAIT_SECONDS: maximum blocking wait forreview_status, defaults to30GEMINI_REVIEW_AGY_PRINT_TIMEOUT: Antigravity--print-timeoutvalue, defaults to${GEMINI_REVIEW_TIMEOUT_SEC}sGEMINI_REVIEW_AGY_APP_DATA_DIR: Antigravity CLI app data directory, defaults to~/.gemini/antigravity-cliGEMINI_REVIEW_AGY_ARTIFACT_MAX_CHARS: max characters read from an AGY-generated text artifact, defaults to200000GEMINI_REVIEW_WORKSPACE_ROOT: workspace root for localimagePaths, defaults to the server process current working directoryGEMINI_REVIEW_STATE_DIR: bridge state directory, defaults to~/.codex/state/gemini-reviewGEMINI_REVIEW_DEBUG_LOG: debug log path, defaults to~/.codex/state/gemini-review/debug.log; custom paths must resolve underGEMINI_REVIEW_STATE_DIRGEMINI_API_KEY: Gemini API keyGOOGLE_API_KEY: alternate Gemini API key env var
Notes
- The bridge defaults to the direct Gemini API path. This is the intended reviewer backend for the ARIS skill overlay.
- The server auto-loads only
GEMINI_API_KEYandGOOGLE_API_KEYfrom~/.gemini/.env; the file is ignored if it is a symlink, not owned by the current user, not a regular file, or group/world-writable. GEMINI_REVIEW_BACKEND=autois still supported if you want API-first auto-selection; it uses the API when a Gemini API key is configured and otherwise falls back to the Gemini CLI. Antigravity is never selected byauto; useGEMINI_REVIEW_BACKEND=agyexplicitly.GEMINI_REVIEW_BACKEND=agyroutes review prompts throughagy --print, which is useful when you want Codex to keep the MCP contract but use Antigravity CLI authentication/model routing. Becauseagy --printcan exit successfully after writing a conversation transcript or generated artifact without printing the final text to stdout, the bridge passes a per-call--log-fileand can recover from the Antigravity transcript for that same invocation only.- The
agybackend is fail-closed for ARIS's cross-model invariant: the bridge cannot choose the Antigravity model per call, so it treats Antigravity's selected model as external configuration. After each call it must recover an actual Gemini-family model id from the current invocation's log/transcript and returns that id asmodel. If a caller passes amodelvalue, the response also includesrequested_modeland awarningbecause the currentagyCLI does not expose per-call model selection. If Antigravity routes the request to a non-Gemini model, or the log/transcript does not expose a model id, the call fails instead of returning an unauditable"agy-cli"placeholder. - Antigravity transcript recovery validates conversation ids with
^[0-9A-Za-z_-]+$, caps ids at 128 characters, requires the per-call invocation nonce, and accepts the nonce only from user/bridge-written transcript events before considering later transcript lines. Generated text artifacts are read only from the final planner response, only as a fallback when that response has no substantive inline text, only if their resolvedfile://path stays underGEMINI_REVIEW_AGY_APP_DATA_DIR/brain/<conversation>/, and only if the artifact was updated during the current invocation window. - If the default API model is temporarily rate-limited on your current free-tier window, keep the same bridge and set
GEMINI_REVIEW_MODEL=gemini-flash-latestas a model override. - The
toolsargument is accepted for compatibility with existing skills, but is ignored. This matches the original pattern where the external reviewer only sees the prompt context prepared by Codex. imagePaths/image_pathsare supported only by the direct Gemini API backend in this bridge. Paths must resolve underGEMINI_REVIEW_WORKSPACE_ROOTand are opened with no-symlink safeguards; platforms where the opened fd cannot be re-verified fail closed. CLI andagyfallback paths remain text-only.threadIdis a bridge-local conversation id persisted under~/.codex/state/gemini-review/threads/by default and can be passed toreview_reply.jobIdis a bridge-local background task id stored under~/.codex/state/gemini-review/jobs/by default, so status can be resumed across MCP server restarts.- State files contain review prompts/responses so async jobs and threads can resume. The bridge creates state, thread, job, debug-log, and per-call
agylog directories with owner-only permissions where possible;agyper-call log directories are temporary and are removed after the call. DeleteGEMINI_REVIEW_STATE_DIRwhen you no longer need resumability. If you overrideGEMINI_REVIEW_STATE_DIR, choose a private directory rather than a shared/tmppath. - This is intentionally a narrow, repo-local adapter. We did not directly vendor a generic Gemini MCP server, because the ARIS reviewer-aware skills expect the specific
review/review_reply/review_start/review_reply_start/review_statusinterface and resumable review-thread semantics.
Validation
This bridge was validated against the ARIS reviewer workflow in a privacy-safe way:
- direct bridge smoke tests passed for:
reviewreview_start->review_statusreview_reply_start->review_status- local-image multimodal review through
imagePaths
- the overlayed reviewer-aware Codex skills were checked to ensure all
15predefined overrides point at this bridge contract - representative Codex-side executions on a private, non-public research repository confirmed that real skill runs can enter the
gemini-reviewpath from research-review, idea-generation, and paper-planning style workflows
Important nuance from testing:
- Gemini free tier was sufficient for development-style validation, but bursty back-to-back runs could still trigger temporary
429responses - on the same setup, a later retry completed sync review, async
review_start->review_status, and threadedreview_reply_start->review_statussuccessfully withGEMINI_REVIEW_MODEL=gemini-flash-latest - long synchronous reviewer calls can still hit host-side MCP tool timeouts before Gemini responds
- because of that, the async path is not just an implementation detail; it is the recommended operational path for long reviews
When to use sync vs async
- Use
review/review_replyfor short prompts that comfortably finish within the host MCP tool timeout. - Use
review_start/review_reply_start+review_statusfor long paper or project reviews. This avoids the observedCodex -> tools/calltimeout around 120 seconds.
Async flow
Start a long review:
{
"name": "review_start",
"arguments": {
"prompt": "Review this paper draft..."
}
}Multimodal example:
{
"name": "review_start",
"arguments": {
"prompt": "Review this poster PNG for readability and clipping.",
"imagePaths": ["poster/poster_v1.png"]
}
}Example response:
{
"jobId": "5d8d0a9c5a2f4f42ae44f6f0c2d73f6f",
"status": "queued",
"done": false
}Poll later:
{
"name": "review_status",
"arguments": {
"jobId": "5d8d0a9c5a2f4f42ae44f6f0c2d73f6f",
"waitSeconds": 20
}
}When complete, review_status returns the same reviewer payload fields as the synchronous tools, including threadId, response, model, backend, and stop_reason. For agy calls, the payload also includes model_provenance; if a model was requested, it also includes requested_model and warning.
Provenance and References
- Upstream interaction pattern: ARIS
claude-reviewbridge andskills-codex-claude-reviewinAuto-claude-code-research-in-sleep - Gemini backends used by this bridge:
- Official Gemini API docs: https://ai.google.dev/api
- Official Gemini CLI: https://github.com/google-gemini/gemini-cli
- Gemini API access and pricing:
- API key / AI Studio entry: https://aistudio.google.com/apikey
- Gemini API pricing: https://ai.google.dev/gemini-api/docs/pricing
- MCP protocol reference:
- Related generic Gemini MCP server example:
eLyiN/gemini-bridge: https://github.com/eLyiN/gemini-bridge- We inspected this class of generic Gemini MCP servers, but kept a thin compatibility adapter here because their tool schema and session model do not match the ARIS review-only bridge directly.
Overview (`mcp-servers/grok-exec/README.md`)
Grok CLI → MCP 桥接
这个桥接沿用相邻 codex-exec/server.py 的 stdio、进度通知、取消和会话记录设计,改用 Grok CLI 的 headless 模式。提供 grok 和 grok-reply,返回结构保留 threadId / content。Python 3.9+,无需第三方 Python 依赖。
默认模型为 grok-4.7、推理强度为 xhigh。在 Grok CLI 1.0.46 上实测,服务返回的模型名是 grok-4.7-build,首次调用和续接的会话摘要均记录 reasoning_effort: xhigh。CLI 显示名、请求名和服务返回名可能不同,因此返回值分别记录请求值与实际值。
注册
先安装 Grok CLI 并完成 grok login。桥接使用 CLI 已有的登录状态,不复制认证 token,也不需要另外填 API key。
Claude Code(将路径换成自己的 ARIS 仓库绝对路径):
claude mcp add grok -s user -- python3 /absolute/path/to/aris/mcp-servers/grok-exec/server.pyCodex:
codex mcp add grok --env GROK_BIN=/absolute/path/to/grok -- python3 /absolute/path/to/aris/mcp-servers/grok-exec/server.py在 Codex 的 ~/.codex/config.toml 中给已有的 [mcp_servers.grok] 表补上 tool_timeout_sec = 3660。桥接自身默认 3600 秒超时,宿主需要留出取消与清理时间;进度通知不保证延长宿主期限。Codex MCP 配置说明。其他客户端也应设置相应的工具调用超时。
重新启动 MCP 客户端后检查工具列表。这个独立服务不自动修改 ARIS skills 的 reviewer 路由;需要使用 Grok 时显式调用它。一次连通性测试不等于一次研究评审通过。
调用
首次调用:
{
"name": "grok",
"arguments": {
"prompt": "请读取指定文件并审阅,指出有证据支持的问题。",
"cwd": "/absolute/path/to/project",
"model": "grok-4.7",
"effort": "xhigh"
}
}续接同一会话:
{
"name": "grok-reply",
"arguments": {
"threadId": "首次调用返回的 UUID",
"prompt": "我修改了这些文件,请继续检查。"
}
}grok-reply 使用 Grok 的原生 --resume,并显式重传首次调用的模型、effort、cwd、sandbox、工具集合和轮次上限。桥接重启后仍从保存的会话设置恢复;续接调用不能改这些参数。未知会话 ID 会报错,需要新建会话。
| 参数 | 默认值 | 含义 |
|---|---|---|
model |
grok-4.7 |
Grok CLI 接受的模型名 |
effort |
xhigh |
low / medium / high / xhigh |
cwd |
MCP 服务启动目录 | 建议明确指定实际项目目录 |
sandbox |
read-only |
Grok 原生 read-only / workspace / strict / off |
tools |
read_file,grep,list_dir |
Grok 原生工具 ID;空字符串禁用内置工具 |
max_turns |
50 |
单次调用允许的最大轮数 |
默认是文件审阅用途:内置工具只开读取、搜索、列目录;关闭子代理、网页搜索和计划模式,禁止 MCP meta-tools。权限模式为 dontAsk,无需等待交互确认。sandbox 由 Grok CLI 实施,其操作系统支持和网络限制以 CLI 文档为准;不能把这个参数视为所有平台都具备同等强度的隔离保证。
成功结果的 structuredContent 包含:
{
"threadId": "...",
"content": "最终回复",
"model": "grok-4.7-build",
"effort": "xhigh",
"stopReason": "end_turn",
"requestedModel": "grok-4.7",
"requestedEffort": "xhigh"
}effort 从该 Grok 会话的 summary.json 读取;摘要不可用时返回 null,不会拿请求值冒充实际值。实际 effort 与请求不一致时,调用标为错误。model 取 CLI 返回的模型信息。
执行与失败处理
- 长提示词通过权限为
0600的临时文件传入,调用结束后删除;不经过 shell 插值。 - 转发原生事件为
grok/event。客户端提供 progress token 时,默认每 15 秒发送心跳;等待模型期间仍可响应 ping 和取消。 - CLI 失败、结果截断、轮次用完、缺失最终结果或非零退出码均返回
isError: true,不把半截回答当成正常审阅。 - 超时、客户端取消或 stdin 关闭时,回收子进程;POSIX 上清理进程组。取消后仍不退出的子进程会被强制终止。
- 桥接不自动重新发起工具调用。底层 Grok CLI 可能进行内部网络重试(已观察到最多15次);连通性探测建议用
GROK_EXEC_TIMEOUT_SEC=75限制时长。会话设置记录与 Grok 原生会话共同用于续接。 - 每个服务进程顺序执行调用。此版本只验证了单会话首轮、续接及故障处理,未做高并发或长时间配额测试。
环境变量:
| 变量 | 默认值 |
|---|---|
GROK_BIN |
PATH 中的 grok |
GROK_EXEC_MODEL |
grok-4.7 |
GROK_EXEC_EFFORT |
xhigh |
GROK_EXEC_TIMEOUT_SEC |
3600 |
GROK_EXEC_PROGRESS_INTERVAL_SEC |
15 |
GROK_EXEC_STATE_DIR |
~/.codex/state/grok-exec |
GROK_EXEC_DEBUG_LOG |
不启用 |
桥接沿用 CLI 的 GROK_HOME 来定位会话摘要;未设置时是 ~/.grok。调试日志记录 RPC 方法与命令参数,不记录提示词正文;原生 Grok 会话仍按 CLI 自己的策略落盘。
验证
无需网络或 Grok 账号的协议回归测试:
python3 -m unittest discover -s tests -p 'test_grok_exec_bridge.py' -v2026-10-05 在 macOS、Grok CLI 1.0.46 上完成真实验证:直接 headless 调用成功;通过 MCP 读取合成文件,再用 grok-reply 回忆其中随机 token 成功,两个回合实际均为 grok-4.7-build / xhigh,两轮合计约 21 秒。没有据此宣称 headless 已启用 500k 上下文,或已验证复杂研究审阅质量。
排查模型列表获取失败
2026-10-05 另一次调用出现 unknown model id,当时只列出 grok-4.6 / grok-4.5。本机 CLI 日志同时记录 had_real_catalog=false、model_count=2 和 model catalog refresh failed;之后模型目录刷新成功,恢复4项(包含4.7),同一桥接再次返回真实的 grok-4.7-build / xhigh 回复。
因此,这种报错需要先核对 grok models、~/.grok/models_cache.json 的更新时间、~/.grok/logs/unified.jsonl 中的目录刷新结果,以及 CLI 路径、GROK_HOME 和宿主网络权限。后续同机对照确认,旧 MCP 子进程没有继承代理变量,直接连接报 No route to host,经本机已有代理可到达服务;这解释了该机器上的主要连接失败。遵循宿主审批流程取得所需访问,不关闭权限保护;不静默改用其他模型,不自动重试推理请求。日志与配置排查时不输出认证 token。
MCP 启动环境与代理
从应用启动的 MCP 服务不一定继承终端登录 shell 的代理。2026-10-05 的故障通过给本机 Codex 注册项显式补入 http_proxy / https_proxy 修复;清除 shell 继承代理、只使用注册 env 的首轮与续接均返回 grok-4.7-build / xhigh。如果你的网络依赖代理,在 [mcp_servers.grok.env] 使用你实际可达的代理地址,并重启 MCP 服务;不要把本机地址硬编码到共享桥接源码。
另一个受限会话连本地代理也被阻断,且宿主拒绝提权/停止进程。配置代理不能解除宿主沙箱限制,应按宿主权限流程处理;不能通过关闭隔离或换模型绕过。探测设置短超时;清理时核对准确的 session ID 与独立进程组,不误杀用户的 Grok 交互窗口。
Overview (`mcp-servers/manual-review/README.md`)
Manual Review MCP Server
What it does
A human-in-the-loop MCP server for ARIS cross-model review. Instead of calling Codex/GPT API automatically, it opens a browser page where you copy the review prompt to a different model family and paste the response back.
Zero API cost. Works with any text model ARIS can classify by family (OpenAI, Anthropic, Google, DeepSeek, Moonshot/Kimi, Qwen) — a name outside those cannot be shown to differ from the executor's, so it cannot acquit.
When to use
- You don't have a Codex/GPT Plus subscription
- You want to use free models (ChatGPT free tier, DeepSeek, Kimi, Gemini, etc.)
- You prefer to choose which model reviews each time
- You're on a budget but still want cross-model review quality
Installation
# Register with Claude Code
claude mcp add manual-review -s user -- python3 /path/to/mcp-servers/manual-review/server.py
# Then use in any skill:
/auto-review-loop "topic" — reviewer: manual
/research-review "paper/" — reviewer: manualModes
Browser mode (default)
Opens a local web page. Works on Windows, macOS, and Linux with a desktop environment.
File mode (headless Linux)
For SSH/headless environments without a browser:
export MANUAL_REVIEW_MODE=fileThe server writes the prompt to a per-thread directory with a cross-model warning at the top of prompt.md. Read .aris/pending_review/pending_review.json — the prompt_file field tells you where to read the prompt, the response_file field tells you where to write the model's response. The file must be non-empty and stable (unchanged across two reads) before it's accepted.
Environment Variables
| Variable | Default | Description |
|---|---|---|
MANUAL_REVIEW_SERVER_NAME |
manual-review |
MCP server name |
MANUAL_REVIEW_TIMEOUT_SEC |
86400 (24h) |
Max wait time for response |
MANUAL_REVIEW_MODE |
browser |
browser or file |
MANUAL_REVIEW_AUTO_OPEN |
true |
Auto-open browser on review |
MANUAL_REVIEW_PORT |
17900 |
Fixed HTTP port (increments if occupied) |
MANUAL_REVIEW_PENDING_DIR |
.aris/pending_review |
Directory for state/prompt/response files |
MANUAL_REVIEW_DEBUG_LOG |
(empty) | Debug log file path |
Recovery
If you accidentally close the browser tab, open .aris/pending_review/pending_review.json and reopen the exact url value. It includes a one-session token — copy it in full (e.g., http://127.0.0.1:17900?token=abc123). Do not type the bare http://127.0.0.1:17900 as it will return 403.
Future Work
- Image generation support (manual alternative to
codex-image2) - Image review loop for paper illustrations
功能说明
ARIS 跨模型评审的人工中转 MCP 服务器。不自动调用 Codex/GPT API,而是打开浏览器页面,让你将评审提示词复制到不同模型家族,再将回复粘贴回来。
零 API 成本。支持任何文本模型。
适用场景
- 没有 Codex/GPT Plus 订阅
- 想使用免费模型(ChatGPT 免费版、DeepSeek、Kimi、Gemini 等)
- 希望每次自行选择评审模型
- 预算有限但仍想获得跨模型评审质量
安装
# 注册到 Claude Code
claude mcp add manual-review -s user -- python3 /path/to/mcp-servers/manual-review/server.py
# 在任意技能中使用:
/auto-review-loop "topic" — reviewer: manual
/research-review "paper/" — reviewer: manual模式
浏览器模式(默认)
打开本地网页。适用于 Windows、macOS 和有桌面环境的 Linux。
文件模式(无桌面 Linux)
适用于 SSH/无桌面环境:
export MANUAL_REVIEW_MODE=file服务器将提示词写入按线程隔离的子目录,prompt.md 顶部包含跨模型警告。读取 .aris/pending_review/pending_review.json — prompt_file 字段指向提示词文件,response_file 字段指向你应写入回复的位置。文件必须非空且稳定(两次读取内容不变)才会被接受。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
MANUAL_REVIEW_SERVER_NAME |
manual-review |
MCP 服务器名称 |
MANUAL_REVIEW_TIMEOUT_SEC |
86400(24h) |
最大等待时间 |
MANUAL_REVIEW_MODE |
browser |
browser 或 file |
MANUAL_REVIEW_AUTO_OPEN |
true |
是否自动打开浏览器 |
MANUAL_REVIEW_PORT |
17900 |
固定 HTTP 端口(被占用时递增) |
MANUAL_REVIEW_PENDING_DIR |
.aris/pending_review |
状态/提示词/回复文件目录 |
MANUAL_REVIEW_DEBUG_LOG |
(空) | 调试日志文件路径 |
恢复
如果不小心关闭了浏览器标签,打开 .aris/pending_review/pending_review.json,复制完整的 url 值(包含一次性 token,如 http://127.0.0.1:17900?token=abc123)重新打开。不要手动输入裸地址 http://127.0.0.1:17900,会返回 403。
后续计划
- 图片生成支持(
codex-image2的手动替代方案) - 论文插图的图片评审循环
Overview (`skills/skills-codex-claude-review/README.md`)
skills-codex-claude-review
Frozen legacy partial overlay. Kept for existing installations and links; no new workflow features or regeneration from the base pack. Use the full
skills-codexpack with reviewer selection for new installs and migration: safe migration. The historical installation and protocol notes below remain for existing users; transport names and old assurance statements do not establish actual model identity, review completion, or acceptance.
This package is a thin override layer for users who want:
- Codex as the main executor
- Claude Code as the reviewer
- the local
claude-reviewMCP bridge instead of a second Codex reviewer
It is designed to sit on top of the upstream Codex-native package at skills/skills-codex/.
Because the executor is Codex and the reviewer is Claude, overlay traces and
audit artifacts record review_independence: cross-family andacceptance_status: accepted. The verifier still decides whether all required
audits reached accepted assurance.
What this package contains
- Only the review-heavy skill overrides that need a different reviewer backend
- No duplicate templates or resource directories
- No replacement for the base
skills/skills-codex/installation
Current overrides:
research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loop
Install
- Install the base Codex-native mirror first:
bash ~/aris_repo/tools/install_aris_codex.sh ~/your-project- Re-run with the Claude overlay enabled:
bash ~/aris_repo/tools/install_aris_codex.sh ~/your-project --reconcile --with-claude-review-overlay- Register the local reviewer bridge:
mkdir -p ~/.codex/mcp-servers/claude-review
cp mcp-servers/claude-review/server.py ~/.codex/mcp-servers/claude-review/server.py
codex mcp add claude-review -- python3 ~/.codex/mcp-servers/claude-review/server.pyIf your Claude setup depends on a shell helper such as claude-aws, use the wrapper instead:
cp mcp-servers/claude-review/run_with_claude_aws.sh ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
chmod +x ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
codex mcp add claude-review -- ~/.codex/mcp-servers/claude-review/run_with_claude_aws.shWhy this exists
The upstream skills/skills-codex/ path already supports Codex-native execution with a second Codex reviewer via spawn_agent.
This package adds a different split:
- executor: Codex
- reviewer: Claude Code CLI
- transport:
claude-reviewMCP
For long paper and review prompts, the reviewer path uses:
review_startreview_reply_startreview_status
This avoids the observed Codex-hosted timeout issue when Claude is invoked synchronously through a local bridge.
Overview (`skills/skills-codex-gemini-review/README.md`)
skills-codex-gemini-review
Frozen legacy partial overlay. Kept for existing installations and links; no new workflow features or regeneration from the base pack. Use the full
skills-codexpack with reviewer selection for new installs and migration: safe migration. The historical installation and protocol notes below remain for existing users; transport names and old assurance statements do not establish actual model identity, review completion, or acceptance.
This package is a thin override layer for users who want:
- Codex as the main executor
- Gemini as the reviewer
- the local
gemini-reviewMCP bridge instead of a second Codex reviewer
It is designed to sit on top of the upstream Codex-native package at skills/skills-codex/.
Because the executor is Codex and the reviewer is Gemini, overlay traces and
audit artifacts record review_independence: cross-family andacceptance_status: accepted. The verifier still decides whether all required
audits reached accepted assurance.
What this package contains
- Only the reviewer-aware skill overrides that need a different reviewer backend
- No duplicate templates or resource directories
- No replacement for the base
skills/skills-codex/installation
Current overrides:
idea-creatoridea-discoveryidea-discovery-robotresearch-reviewnovelty-checkresearch-refineauto-review-loopgrant-proposalpaper-planpaper-figurepaper-poster-htmlpaper-slidespaper-writepaper-writingauto-paper-improvement-loop
Core 8 vs Full 15
To avoid confusion, there are two useful ways to describe this overlay:
- Core 8: the direct reviewer-heavy overlay set that maps one-to-one to the earlier Claude-review route
- Full 15: the current reviewer-aware Codex skill surface routed to Gemini in this repository
The core 8 are:
research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loop
The additional 7 routed reviewer-aware entry points are:
idea-creatoridea-discoveryidea-discovery-robotgrant-proposalpaper-writingpaper-slidespaper-poster-html
So when comparing against the Claude overlay, the cleanest statement is:
The Gemini route preserves the same core 8-skill reviewer overlay shape, but expands the practical reviewer-facing surface to 15 skills in the current repo.
Direct Consumers vs Wrappers
- 12 direct consumers call
mcp__gemini-review__review_start/review_reply_start/review_statusthemselves:research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loopidea-creatorgrant-proposalpaper-slidespaper-poster-html
- 3 wrappers mostly orchestrate downstream reviewer-aware skills and pass
REVIEWER_MODEL=gemini-reviewthrough:idea-discoveryidea-discovery-robotpaper-writing
Install
Before registering the bridge, prepare the direct Gemini API path:
- Gemini API: set
GEMINI_API_KEYorGOOGLE_API_KEY(for example in~/.gemini/.env)
Optional fallback only:
- Gemini CLI: install
geminiand complete login/auth if you explicitly wantGEMINI_REVIEW_BACKEND=cli
- Install the base Codex-native mirror first:
bash ~/aris_repo/tools/install_aris_codex.sh ~/your-project- Re-run with the Gemini overlay enabled:
bash ~/aris_repo/tools/install_aris_codex.sh ~/your-project --reconcile --with-gemini-review-overlay- Register the local reviewer bridge:
mkdir -p ~/.codex/mcp-servers/gemini-review
cp mcp-servers/gemini-review/server.py ~/.codex/mcp-servers/gemini-review/server.py
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=api -- python3 ~/.codex/mcp-servers/gemini-review/server.pyThe bridge defaults to the direct Gemini API path. This is the intended reviewer backend for this overlay.
If the default API model is temporarily rate-limited on your current free-tier window, keep the same overlay and bridge, and override only the reviewer model:
codex mcp remove gemini-review
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=api --env GEMINI_REVIEW_MODEL=gemini-flash-latest -- python3 ~/.codex/mcp-servers/gemini-review/server.pyWhy this exists
The upstream skills/skills-codex/ path already supports Codex-native execution with a second Codex reviewer via spawn_agent.
This package adds a different split:
- executor: Codex
- reviewer: Gemini direct API
- transport:
gemini-reviewMCP
For long paper and review prompts, the reviewer path uses:
review_startreview_reply_startreview_status
This avoids the observed Codex-hosted timeout issue when Gemini is invoked synchronously through a local bridge.
Validation Summary
This overlay was validated in two ways:
- Coverage check: all
15predefined reviewer-aware skill overrides in this package were checked to confirm they targetgemini-review - Runtime check:
- the underlying bridge completed sync, async, threaded follow-up, and multimodal local-image review tests
- representative Codex-side runs on a private, non-public research repository confirmed that real skill executions could reach the Gemini reviewer path for research-review, idea-generation, and paper-planning style tasks
Operational note:
- Gemini free tier was usable for this workflow in practice, but bursty stress tests could still produce temporary
429responses - on the same setup, a later retry completed sync review, async
review_start->review_status, and threadedreview_reply_start->review_statussuccessfully withGEMINI_REVIEW_MODEL=gemini-flash-latest - for long prompts, prefer the async
review_start/review_reply_start+review_statuspath
References
- Upstream overlay pattern from ARIS:
- Local Gemini reviewer bridge in this repo:
mcp-servers/gemini-review/README.md
- Gemini backends referenced by this overlay:
- Official Gemini API: https://ai.google.dev/api
- Official Gemini CLI: https://github.com/google-gemini/gemini-cli
- AI Studio API key entry: https://aistudio.google.com/apikey
This package keeps the upstream ARIS skill shape, but swaps the reviewer transport to the local gemini-review bridge. It now covers every predefined Codex skill in this repo that previously depended on a secondary Codex reviewer or mcp__codex__codex review step. We intentionally did not directly depend on a generic Gemini MCP server package because the ARIS review skills rely on the narrow review* tool contract, resumable review-thread behavior, and now optional local-image review for poster PNGs.
Overview (`skills/skills-codex/README.md`)
`skills-codex`
Codex-native mirror and adaptation layer for the main ARIS skills/ package.
Scope
- Base mirror coverage: all
85mainline skills underskills/ - Support directory:
shared-references/, with all30/30mainline reference names mirrored - Default reviewer contract for reviewer-heavy skills:
- round 1:
spawn_agent - follow-up:
send_input - model:
gpt-6-astra; deep reviews:ultra, regular reviews:xhigh - base Codex self-review:
review_independence: same-family,acceptance_status: provisional - other reviewers: select a backend in the full pack; acceptance depends on actual model identities, completed review scope, and the applicable gate
- round 1:
This package is still an appendage to the Claude mainline, not a separate Codex-first product line.
Recommended Install
Project-local install is the default path for Codex:
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git ~/aris_repo
cd ~/your-project
bash ~/aris_repo/tools/install_aris_codex.sh .This creates a flat managed layout:
.agents/skills/<skill-name> -> ~/aris_repo/skills/skills-codex/<skill-name>
.aris/installed-skills-codex.txt
AGENTS.md # managed Codex blockReconcile after upstream changes:
cd ~/aris_repo && git pull
bash ~/aris_repo/tools/install_aris_codex.sh ~/your-project --reconcileUninstall only managed Codex entries:
bash ~/aris_repo/tools/install_aris_codex.sh ~/your-project --uninstallSelect a Reviewer
Use the complete pack with selectable reviewers.
For one invocation, add — reviewer: antigravity (or grok, claude-code,codex). For a project default, create .aris/reviewer.json yourself:
{"backend": "antigravity", "model": "gemini-4-argon-high", "effort": "high"}Register the selected backend's MCP separately as described in the linked
contract. claude-code uses the CLI's configured provider and accepts no effort
override. Selecting a transport does not by itself establish cross-family review
or acceptance. The legacy agy route still uses gemini-review; it is distinct
from antigravity.
Migrate Frozen Partial Overlays
skills-codex-claude-review/ and skills-codex-gemini-review/ are frozen legacy
snapshots. Their directories and existing links remain available, but base skill
changes no longer regenerate them. New installations should use the full pack.
The old overlay install flags remain for compatibility, not ongoing feature sync.
For managed project symlinks, first inspect .agents/skills/<name> withreadlink and save .aris/installed-skills-codex.txt plus any customized source
files. Editing a symlinked skill edits its repository target; preserve those
changes before switching. Preview reconciliation without either overlay flag:
bash ~/aris_repo/tools/install_aris_codex.sh ~/your-project --reconcile --dry-runCheck that the planned retargets point to skills/skills-codex/, then run the same
command without --dry-run. Real directories are conflicts and are not replaced.
For an unmanaged overlay link, inspect it and use --replace-link <skill-name>
only for that specific link, previewing first. Keep the overlay directories;
merge relevant personal edits into your chosen full-pack source deliberately.
For global copied skills in ~/.codex/skills/, back up the affected skill
directories outside that discovery directory. Compare each installed overlay
skill with its frozen source and the corresponding full-pack skill, preserving
personal edits separately. Stage the full-pack replacements in a temporary
directory, reapply those edits, and inspect the result before replacing only the
reviewed installed directories. Do not copy an entire overlay over the full pack
or bulk overwrite existing skills. Then set the project reviewer configuration
and register its bridge. No migration command here writes global settings
automatically; restart Codex after installation changes so it reloads the pack.
Copy Install and Update
If you intentionally use a copied Codex install instead of managed project symlinks:
mkdir -p ~/.codex/skills
cp -a ~/aris_repo/skills/skills-codex/. ~/.codex/skills/Update copied installs with:
bash ~/aris_repo/tools/smart_update_codex.sh
bash ~/aris_repo/tools/smart_update_codex.sh --applyFor a copied project-local Codex install:
bash ~/aris_repo/tools/smart_update_codex.sh --project ~/your-project
bash ~/aris_repo/tools/smart_update_codex.sh --project ~/your-project --applysmart_update_codex.sh refuses symlink-managed installs and redirects them to install_aris_codex.sh --reconcile.
Non-Degrading Skills
The following Codex skills must not silently degrade when their required capability is missing:
comm-lit-reviewresearch-litpaper-poster-htmlpixel-art
If the required source, reviewer, or local preview capability is unavailable, the skill should stop and tell the user what to configure.
Overview (`tools/experiment_queue/README.md`)
experiment-queue Tools
Scheduler and manifest builder for /experiment-queue skill.
Files
build_manifest.py— Expands grid spec (YAML/JSON) into explicit job manifestqueue_manager.py— Scheduler that runs on the remote host; polls, launches, retries, cleans
Install on Remote
The /experiment-queue skill auto-installs these on the SSH host under ~/.aris_queue/ per invocation (idempotent). The skill resolves the local helpers via a fallback chain (.aris/tools/experiment_queue/ → tools/experiment_queue/ → $ARIS_REPO/tools/experiment_queue/ → same, resolved via the global pointer file ~/.aris/repo, #366) so it works from any project layout.
For manual install (run from anywhere; $ARIS_REPO points at the cloned ARIS repo root):
ssh <server> 'mkdir -p ~/.aris_queue'
scp "$ARIS_REPO/tools/experiment_queue/queue_manager.py" \
"$ARIS_REPO/tools/experiment_queue/build_manifest.py" \
<server>:~/.aris_queue/Example
1. Write grid spec (on local or remote)
grid_spec.yaml:
project: my_grid_experiment
cwd: /home/user/your_project
conda: my_env
gpus: [0, 1, 2, 3, 4, 5, 6, 7]
max_parallel: 8
oom_retry: {delay: 120, max_attempts: 3}
phases:
- name: distill
grid:
N: [64, 128, 256]
seed: [42, 200, 201]
n_train_subset: [50000, 150000, 500000, 652000]
template:
id: "s${seed}_N${N}_n${n_train_subset}"
cmd: >
python run_distill.py --backbone softmax --lam 0.5
--t_max_distill 0 --K 500 --L 96 --W 16 --n_steps 30000
--batch_size 128 --lr 1e-4 --seed ${seed} --subset_seed 2024
--n_hidden ${N} --n_train_subset ${n_train_subset}
expected_output: "figures/distill_sw_N${N}_*_seed${seed}.json"2. Build manifest
python3 build_manifest.py --config grid_spec.yaml --output manifest.json3. Launch scheduler
Use a per-run directory under ~/.aris_queue/runs/ so concurrent queues don't collide and crash-resume is reproducible. Note that scp runs in SFTP mode in modern OpenSSH and does NOT reliably expand $HOME in destination paths — use remote-relative paths for scp destinations and $HOME-prefixed paths only inside ssh command strings (where remote bash expands them):
RUN_TS=$(date -u +%Y%m%dT%H%M%SZ)
REMOTE_RUN_REL=".aris_queue/runs/$RUN_TS" # for scp (relative to remote home)
REMOTE_RUN_DIR="\$HOME/$REMOTE_RUN_REL" # for ssh commands (expanded remotely)
ssh <server> "mkdir -p \"$REMOTE_RUN_DIR/logs\" \"\$HOME/.aris_queue\""
scp manifest.json <server>:"$REMOTE_RUN_REL/manifest.json"
ssh <server> "nohup python3 \"\$HOME/.aris_queue/queue_manager.py\" \\
--manifest \"$REMOTE_RUN_DIR/manifest.json\" \\
--state \"$REMOTE_RUN_DIR/queue_state.json\" \\
--log-dir \"$REMOTE_RUN_DIR/logs\" \\
> \"$REMOTE_RUN_DIR/queue_mgr.log\" 2>&1 &"Note:
--log-diris the per-job log directory the scheduler reads for OOM detection. The flag--logis declared by argparse but unused; do not pass it.
4. Monitor
ssh <server> "jq '.jobs | group_by(.status) | map({(.[0].status): length}) | add' \"$REMOTE_RUN_DIR/queue_state.json\""Returns:
{"completed": 30, "running": 6, "pending": 0}State Machine
pending → running → completed
↘ failed_oom → pending (after delay, up to max_attempts)
↘ stuck (after max_attempts)
↘ failed_other → stuckDependencies
- Python 3.8+
nvidia-smion remotescreenon remote- Optional:
pyyaml(only if using YAML grid specs)
Invariants
- No GPU overlap: scheduler only assigns GPU with
memory.used < 500 MiB - State is source of truth:
queue_state.jsonis written atomically every step - Idempotent: safe to kill and restart the scheduler; picks up from state
- Output-based completion: completion is verified by
expected_outputexisting, not just by screen/process exit
Not Yet Supported
- Mid-run GPU reshuffling (if GPU becomes unavailable mid-job)
- Automatic GPU-per-job count (all jobs assumed single-GPU)
- Distributed multi-node queues
- Auto-sync results back to local
Overview (`skills/paper-poster-html/templates/README.md`)
Template gallery — paper-poster-html
Three neutral HTML scaffolds, forked from the posterly templates (MIT, © 2026 Ruishuo Chen —
see ../NOTICE.md) and adapted for ARIS: flat de-gradient, --fs-* token scale, zero
inline-style utility classes, and the data-source / data-color-exempt contracts. Class
names are unchanged, so COMPONENTS.md (the component contract catalog) applies to all three.
Each template is self-contained and neutral: no lab branding, no paper content — onlyTODO placeholders. The authoring loop is: copy one to your working dir as poster.html →
apply a token pack → fill TODOs with paper content + real figures → run the gates
(run_gates.py) and balance until they pass.
Every layout-critical element carries data-measure-role so the measurement gate can locate
columns / hero / footer regions across templates. Do not remove these attributes — the
measure gate depends on them.
Picking a template
| Template | Canvas | Layout | Use when |
|---|---|---|---|
| landscape_4col.html | 60 × 36 in landscape | header → optional banner → 4 columns → optional takeaways → footer | The default. Standard ML conference poster (ICML / NeurIPS / generic landscape) with ~3–5 content cards per column; mix of figures, equations, and tables. |
| landscape_hero.html | 60 × 36 in landscape | header → hero panel (~60%) + supporting column (~40%) → takeaways → footer | ONE figure / table / system diagram is the main message. One big illustration left, 3–4 short cards right. No framework banner — the hero is the banner. |
| portrait_2col.html | 24 × 36 in portrait | header → 2 columns → footer (no banner, no takeaways strip) | Portrait venues / sub-A0 sizes. Vertical space is precious, so banner + takeaways are dropped; the final card in the right column carries the conclusion/takeaways. |
(File names follow DESIGN_FINAL §1: the ARIS forks drop the posterly _neutral suffix.)
Scaffolds, not finished posters
A template is a scaffold, not a poster. Figures are commented out and copy is TODO
stubs, so each column only fills the top of the canvas. That has gate consequences you should
expect — do not "fix" them on a fresh scaffold:
preflightpasses out of the box. It checks structure (validdata-measure-rolevalues,
no LaTeX residue, no bare<inside$…$math, the rootdata-measure-role="poster"),
which the scaffold already satisfies.style_checksource rules (1–3, 5–11) pass on the forked scaffold. The ARIS fork has
no inline styles, nolinear-gradient, no stray hex outside the token block — so the static
source gate is green on the empty template. (The upstream posterly originals keep inline
styles and would FAILstyle_check— that is expected; the fork exists precisely to fix
that.)measureandpolishare gates for your finished poster. They check that columns
bottom-align to within 5 px, that the gap to the footer sits in a tight band (30–50), that
intercard gaps stay in [12, 50], and that the canvas fills 95–101% — properties only a
filled poster can have. An unfilled scaffold is expected to fail them (huge
column-bottom spread, a large gap to the footer). That is the gate telling you the poster is
not finished, not a bug in the template.asset_checkfails until you embed ≥2 real paper figures. A scaffold has none.
So the loop is: copy → apply token pack → fill content + drop in real figures → runrun_gates.py and balance until measure/polish/asset go green. See DESIGN_FINAL §8 for
the full phase structure and the worked ICLR 2026 acceptance case (§13).
Applying a token pack (`tokens/*.json` → `:root`)
The palette lives in two synchronized places: the tokens/*.json packs (machine-readable, whatstyle_check/run_gates read for the accent/gold hue_centers) and the :root DESIGN TOKENS
block in each template's <style> (what the browser renders). generic.json is the default
for every venue. Venue packs are opt-in (— venue-colors: true).
To apply a pack, manually copy its values into the template's :root token block (the
block fenced by /* ===== DESIGN TOKENS ===== */ … /* ===== END DESIGN TOKENS ===== */ —style_check locates the token block by exactly this comment pair, so keep it intact). The
JSON-to-CSS field mapping:
| JSON path | CSS token |
|---|---|
accent.base |
--accent |
accent.deep |
--accent-deep |
accent.light |
--accent-light |
accent.soft |
--accent-soft |
gold.base |
--gold |
gold.soft |
--gold-soft |
neutrals.text_primary / text_secondary / text_muted |
--text-primary / --text-secondary / --text-muted |
neutrals.bg_page / bg_card / bg_card_tint |
--bg-page / --bg-card / --bg-card-tint |
neutrals.border_soft |
--border-soft |
--bg-emphasis: var(--accent-light) and --border-strong: var(--accent) are derived tokens —
leave them as var(--…) references; they follow the accent automatically.
When you pass a pack to the gates (run_gates.py --tokens tokens/<venue>.json,style_check.py --tokens …), the hue_centers in the JSON are the source of truth for the
hue-cluster check (style rule 4): the two allowed non-neutral hue families arehue_centers.accent ± 22° and hue_centers.gold ± 22°. If you copied the JSON values into:root correctly, the rendered hues will land inside those windows. (If you omit --tokens,style_check derives the centers from the :root --accent / --gold instead.)
Available packs (all share the generic gold family #C9A24A / #FFF7E0; all venue accents
satisfy S ≤ 0.55, L ∈ [0.25, 0.45], hue ∉ [250, 285]):
| Pack | Accent identity | accent hue center |
|---|---|---|
generic.json |
slate-blue #2D5F8B (the default for every venue) |
210 |
iclr.json |
deep green #2E6048 |
151 |
icml.json |
deep maroon #8B3A4A |
348 |
neurips.json |
steel/slate blue #3A5A7A |
210 |
cvpr.json |
deep azure/indigo #27407A |
222 |
acl.json |
deep teal #256E72 |
183 |
Venue packs are opt-in identity, not a license to deviate from the discipline: a single
accent family + the shared gold, deep and desaturated, never purple. The default textvenue-badge (COMPONENTS.md) is the primary venue cue; the color pack is secondary.
Retargeting the canvas
A template ships with a default @page size and a matching .poster size. To change the
canvas you must edit both in the template (each in exactly one place), keeping them
identical — measure's canvas-fill / position-align gate compares the rendered .poster
bounding box against the @page viewport, so a mismatch fails the gate.
@pagein the<style>block — e.g.@page { size: 185cm 90cm; margin: 0; }..posterprint dimensions in@media print { .poster { … width: 185cm; height: 90cm; } }.
(The screen.posterusescalc(N * var(--u))with--u: 1.6px; print uses--u: 1mm, so
the screen preview scales automatically — you only hardcode the printwidth/height.)
The canvas parser accepts in / mm / cm / pt units. ICLR 2026 main conference example
(the §13 acceptance case): the official print service spec is 185 × 90 cm landscape, so
start from landscape_4col.html and set both @page and the print .poster to185cm 90cm / width: 185cm; height: 90cm;.
Safe-area / margin design belongs as internal padding on a full-bleed .poster, never as a
smaller poster — a smaller poster fails the position-align gate (the .poster bbox must align
to (0,0)–(viewport_w, viewport_h)).
Zero inline-style + utility-class policy
The templates and any finished poster carry no style= attribute (zero tolerance —style_check rule 2; IMPLEMENTATION_CONVENTIONS §B). To make that possible the templates ship
their own utility classes in the <style> block, replacing every inline style the posterly
originals used:
.fs-1 … .fs-9 font-size: var(--fs-N)
.mt-1 … .mt-6 margin-top: calc(N * var(--u))
.mb-1 … .mb-4 margin-bottom: calc(N * var(--u))
.w-45 .w-50 … .w-100 figure <img> width 45%…100% (5% steps)
.text-secondary .text-muted .nowrap .text-centerThe only sanctioned style= survivors:
- the internal markup of a
data-color-exempt="logo"element (a logo / seal SVG), and style="width: NN%"on adata-source="paper"`` for aspect-ratio width tuning when the
value is off the 5% grid (prefer the.w-NNclass when it lands on a step).
Likewise: no linear-gradient anywhere; the only gradient allowed is the .poster
background radial-gradient tint with all color stops at alpha ≤ 0.06 (style rule 5). All
font-sizes go through the --fs-* scale; calc(var(--fs-N) * k) is allowed only for the
predefined component variants catalogued in COMPONENTS.md (e.g. .eqn--large). All colors
are tokens — no hex literal outside the :root token block (and the exempted logo SVG).
Adding a new template
A new template MUST:
- Set
@page { size: <W> <H> }(in/mm/cm/pt) inside a<style>block — the
canvas parser fails if absent — and a matching print.postersize. - Carry
data-measure-role="poster"on the root poster element. - Use the roles consistently:
header,banner(optional),body,column,card,hero(mutually exclusive withbanner),footer-strip(optional),footer. - Use the
--uunit system (1.6pxscreen,1mmprint) for ALL sizing viacalc(N * var(--u))— never bare px except hairlines (≤ 2px). - Carry the
:rootDESIGN TOKENS block fenced by the/* ===== DESIGN TOKENS ===== */…/* ===== END DESIGN TOKENS ===== */comment pair,
the full--fs-1 … --fs-9scale, and the §B utility classes. - Use only components from
COMPONENTS.md; no inlinestyle=, nolinear-gradient,
no hex outside the token block. - Keep all paper-specific content as
TODOplaceholders — neutral templates only.
Then add a row to the gallery table above, a catalog note if it introduces any new component
(which requires the COMPONENTS.md new-component checkpoint), and link it in SKILL.md Phase 3.
ARIS INTRO (`docs/ARIS_INTRO.md`)
ARIS — Autonomous Research via Adversarial Multi-Agent Collaboration
Let Claude Code do research while you sleep. Wake up to find your paper scored, weaknesses identified, experiments run, and narrative rewritten — autonomously. Repo: github.com/wanshuiyin/Auto-claude-code-research-in-sleep.
TL;DR
ARIS is a collection of 85 composable Claude Code skills that orchestrate cross-model collaboration: Claude Code drives the research (reads files, writes code, deploys experiments) while an external LLM (GPT-6-Astra via Codex MCP) acts as a critical reviewer. The two models disagree, debate, and force each other to do better — adversarial, not self-play.
Seven workflows (W1 / W1.5 / W2 / W3 / W4 / W5 / W6) compose into a full research lifecycle: idea discovery → experiment bridge → auto-review → paper writing → rebuttal → resubmit → conference talk. Tested end-to-end on real ICLR/NeurIPS submissions. Score progression on a real overnight run: 5/10 → 7.5/10 with 20+ GPU experiments.
💡 The ARIS bet. Markdown is for writers. HTML is for readers. Every workflow artifact stays in Markdown (auditable, machine-parseable, future-proof). When a human needs to actually read one,
/render-htmlproduces this view — gated by a fresh cross-model Codex review (the same ARIS invariant every other audit-class skill follows).
The Problem
Every ML researcher reading this knows the rhythm:
- Spend 3 weeks reading 80 papers.
- Brainstorm 12 ideas, kill 9 in your head, fail to validate the remaining 3 quickly.
- Pick one, lose a week to a bug, miss the GPU window.
- Submit, get a 5/10 review with "lacks ablation against XYZ".
- Rebuttal week is 72 hours; you have 2 days of teaching duty.
The bottleneck isn't ideas. It's the end-to-end orchestration between literature → ideation → experiments → writing → rebuttal. AI can compress every individual step, but the integration is fragile — and worse, a single model reviewing its own work falls into local minima.
🚨 Why not self-play with one model? Using Claude Code subagents (or any homogeneous agent team) for both execution and review tends to fall into local minima — the same model reviewing its own patterns creates blind spots. ARIS forces cross-family disagreement: Claude executes, GPT reviews. They don't share lineage, they don't share training data, they don't share blind spots.
Core Architecture
The system is, in one sentence:
$$
\text{Research} = \arg\max_{\theta}; \mathbb{E}{x \sim \mathcal{D}{\text{ideas}}}\bigl[, U_{\text{exec}}(\theta,;,x) - \lambda \cdot R_{\text{review}}(\theta,;,x) ,\bigr]
$$
where $U_{\text{exec}}$ is the utility of an executor model writing code / running experiments, and $R_{\text{review}}$ is an adversarial regularizer from a cross-family reviewer that penalizes overclaims, fabricated citations, unjustified theorem extensions, and self-flattery. The regularizer is non-differentiable — it's a fresh LLM thread reading the artifact cold.
The reviewer-independence protocol
Every review round uses a fresh codex thread. We never use codex-reply to continue a previous review conversation. This is a hard rule, learned from a real NeurIPS run where codex-reply chains inflated scores from 3/10 → 8/10 through narrative accumulation (the reviewer started defending its earlier criticism instead of evaluating the current artifact). The protocol is codified at skills/shared-references/reviewer-independence.md.
┌──────────────────────┐
│ ARIS — execution │ ┌───────────────────────┐
│ (Claude Code) │────▶│ Codex MCP (GPT-6-Astra) │
│ — reads files │ │ — reads paper cold │
│ — writes code │ │ — fresh thread │
│ — deploys to GPU │ │ — scores 1-10 │
└──────────────────────┘ │ — suggests fixes │
▲ └───────────────────────┘
│ │
│ ▼
│ ┌─────────────────────────┐
└──────────────│ weakness list (.md) │
│ fix list (with budget) │
└─────────────────────────┘🔒 Cross-family invariant. The executor and reviewer must be different model families (Claude × GPT, GLM × DeepSeek, Antigravity × Gemini, …). Same-family review is a non-feature; if you only have one provider, the cheapest fix is to add a free DeepSeek or Gemini reviewer via
llm-chatMCP.
The Workflows
| W | Name | One-line summary | Entry point |
|---|---|---|---|
| 1 | Idea Discovery | Literature → brainstorm 8-12 → novelty check → pilot 2-3 on GPU → ranked report | /idea-discovery |
| 1.5 | Experiment Bridge | Plan → implement → GPT-6-Astra code review → sanity check → deploy → collect | /experiment-bridge |
| 2 | Auto Review Loop | Review → fix → re-run → repeat until score ≥ 6/10 (or MAX_ROUNDS=4 hit) |
/auto-review-loop |
| 3 | Paper Writing | Narrative → outline → figures → LaTeX → PDF → 2 rounds review (4 → 8.5/10) | /paper-writing |
| 4 | Rebuttal | Parse reviews → strategy → optional experiments → draft → stress test | /rebuttal |
| 5 | Resubmit | Port paper to a new venue under hard constraints (no new exps, no bib edits) | /resubmit-pipeline |
| 6 | Conference Talk | Paper → Beamer + PPTX + speaker notes + assurance audits | /paper-talk |
Workflow 1 — Idea Discovery & Method Refinement
"I have a research direction. What should I actually work on?"
/idea-discovery takes a vague research direction and outputs a ranked, pilot-validated proposal:
- 📚 Survey — multi-source literature search (Zotero / Obsidian / arXiv / Semantic Scholar / DeepXiv / Exa) builds a landscape map
- 🧠 Brainstorm — GPT-6-Astra xhigh generates 8-12 concrete ideas anchored to identified gaps
- 🔍 Novelty check — each top idea cross-checked against arXiv + DBLP for prior work; failed ideas killed early
- 🧪 Pilot — 2-3 surviving ideas get 1-2-hour single-GPU pilot runs (a real signal, not just LLM opinion)
- 🏆 Refine — top pilot result fed to
/research-refinewhich anchors the problem, tightens the method, and emits an experiment plan ready for Workflow 1.5
/idea-discovery "factorized gap in discrete diffusion LMs" \
--- effort: max \
--- sources: zotero, web, deepxiv💡 The bet here: a 1-hour GPU pilot tells you more than 1 hour of LLM-only reasoning. Failed pilots also get written to Research Wiki so they become anti-repetition memory.
Workflow 1.5 — Experiment Bridge
"I have a plan. Make it run."
/experiment-bridge closes the gap between paper plan and running code:
- 📋 Read
EXPERIMENT_PLAN.md(from W1 or hand-written) - 💻 Implement experiment scripts — reuses your existing codebase, adds
argparse/logging/ seeds where missing - 🔬 GPT-6-Astra code review — fresh-thread cross-model review of the generated code BEFORE any GPU time is spent (catches ~80% of bugs that would otherwise burn 8-GPU-hour runs)
- ✅ Sanity check — smallest config runs first; checks for OOM, NaN, runtime errors
- 🚀 Deploy — SSH to your GPU server (per
CLAUDE.md), launch inscreen, capture stdout/stderr - 📊 Collect —
/monitor-experimentpolls until completion, fetches results, formats for downstream skills
/experiment-bridge --- base repo: https://github.com/anthropic-experimental/some-baseline🔒 Hard rule: code review is cross-model (Claude wrote it, GPT reviews it). Same-family review on your own code is a non-feature — the model that wrote a bug usually can't see it.
Workflow 2 — Auto Review Loop
"Review my paper, fix what's wrong, repeat until it passes."
/auto-review-loop is the most-cited workflow. Run it the night before a deadline; wake up to a polished paper.
- 🔍 Deep review — GPT-6-Astra xhigh reviews the paper, identifies weaknesses (severity tagged)
- 🩹 Fix — Claude implements the fixes (rewrite, add baselines, run experiments); skips any experiment > 4 GPU-hours, flags for manual follow-up
- 📊 Re-evaluate — collect results, update paper, feed back to the reviewer (fresh thread)
- 🔁 Repeat — until score ≥
POSITIVE_THRESHOLD(default 6/10) orMAX_ROUNDS(default 4); if the context window fills mid-loop, auto-resume fromREVIEW_STATE.json
/auto-review-loop "focus on Section 3-5, our CRF results are weak" \
--- difficulty: nightmare \
--- effort: maxThe difficulty: nightmare flag lets GPT-6-Astra read your repo directly via codex exec — Claude can't filter what it sees. Maximum stress test before submission.
Key safety features (click to expand)
- 🔒
MAX_ROUNDS = 4— prevents infinite loops; stops early if score threshold is met - ⏱️ > 4 GPU-hour experiments skipped — flagged for manual follow-up, never silently launched
- 🧠 Prefer reframing over new experiments — when both can address a weakness, picks the cheaper path
- 🪞 No hiding weaknesses — explicit rule: "Do NOT hide weaknesses to game a positive score"
- 🔧 Fix before re-review — must implement fixes before resubmitting; no empty promises
- 💾 Compact recovery — persists
REVIEW_STATE.jsoneach round; auto-resumes if context window fills
🔁 Why this workflow is the headline: it's the only one that runs autonomously overnight — the human signs off before bed, the system reviews + fixes + re-runs experiments + re-reviews until the threshold is hit, and writes a one-paragraph summary of what changed. Empirically the most-cited path; the real-results table above is from one of these runs.
Workflow 3 — Paper Writing Pipeline
"I have results. Turn them into a submission-ready PDF."
/paper-writing takes a NARRATIVE_REPORT.md (claims, experiments, key figures) and produces compiled LaTeX:
- 📐 Plan —
/paper-planbuilds a claims-evidence matrix from the narrative, then a section-by-section outline - 📊 Figures —
/paper-figureauto-generates plots (line / bar / heatmap) and comparison tables from JSON/CSV results. Architecture diagrams via/figure-spec(deterministic JSON → SVG) or Gemini illustration - ✍️ Write —
/paper-writeemits per-section LaTeX following the venue's style file. Citations pulled from DBLP / CrossRef (real BibTeX, never LLM-generated) - 🔧 Compile —
/paper-compilerunslatexmkuntil clean, fixes overfull\hbox, verifies the page limit viapdftotext - ✨ Polish —
/auto-paper-improvement-loopruns 2 rounds of GPT-6-Astra content review + 1 round of format check. Real ICLR run: 4/10 → 8.5/10 across 3 rounds
/paper-writing NARRATIVE_REPORT.md --- venue: ICLR --- effort: max✅ Submission gate: at
effort: max/effort: beast(or explicitassurance: submission), the PDF is only labelled "submission-ready" if/proof-checker,/paper-claim-audit, and/citation-auditall return green viatools/verify_paper_audits.sh.
Workflow 4 — Rebuttal
"Reviews came back. Help me draft a safe rebuttal."
/rebuttal is structured around three hard safety gates that block fabrication:
- 📥 Parse reviews — atomize into per-reviewer / per-concern entries; normalize against the venue's format (ICML char limit, NeurIPS per-reviewer threads, etc.)
- 🗺️ Strategy — global themes + per-reviewer priority + character budget + a list of blocked claims (things the reviewer flagged but the paper can't actually back)
- 🧪 Evidence sprint (optional) — if
--- auto experiment: trueand the reviewer asked for a missing experiment, hand off to/experiment-bridge, wait for results, fold into draft - ✍️ Draft — global opener + numbered per-reviewer responses + closing for the meta-reviewer
- 🛡️ Safety check — 6 lints: coverage (no concern dropped), provenance (every claim cites paper/review/user-confirmed result), commitment (no overpromising), tone, internal consistency, character limit
- 🔬 GPT-6-Astra stress test — fresh-thread reviewer reads the draft cold, tries to break it
- 📤 Finalize — two outputs:
PASTE_READY.txt(exact character count, ready to drop into OpenReview) +REBUTTAL_DRAFT_rich.md(extended, for human editing)
/rebuttal "paper/ + reviews" --- venue: ICML --- character limit: 5000🔒 Three safety gates — rebuttal will NOT finalize if any fails: (a) provenance — every claim maps to paper/review/user-confirmed result; (b) commitment — every promise is user-approved; (c) coverage — every reviewer concern is tracked through to a response.
Workflow 5 — Resubmit Pipeline
"Move a polished paper from venue A to venue B under hard constraints."
/resubmit-pipeline is for the ICML→NeurIPS / workshop→archival transition. Distinct from Workflow 3 (which writes from scratch) — here the paper exists, the goal is targeted edits only:
- 📁 Physical isolation — copy into
<NEW_VENUE_DIR>/; the original submission directory is never touched - 🛡️ 5-layer anonymity check — author names, affiliations, self-citations, GitHub / Overleaf URLs, in-text "we" patterns that break double-blind
- 🔬 Soft-only audits —
/proof-checker,/paper-claim-audit,/citation-audit --soft-only(the--soft-onlymode rewrites instead of editing bib, since the bib is frozen) - ✏️ Microedit —
/auto-paper-improvement-loop --edit-whitelistwith a YAML schema (allowed_paths/forbidden_paths/forbidden_operations) - 🗡 Adversarial gate —
/kill-argumentwrites the strongest 200-word rejection memo a senior area chair would write; an independent adjudicator scores each point - 📤 Compile + push —
/paper-compile+ optional/overleaf-sync push
/resubmit-pipeline "paper/" --- venue: NeurIPS🔒 Hard constraints (cannot be overridden): no new experiments, no bib edits, no framework changes, never overwrites prior submissions. Microedit YAML schema enforces these at every diff.
Workflow 6 — Conference Talk Pipeline
"Paper accepted. Prepare the talk."
/paper-talk is the post-acceptance sister workflow to /paper-writing:
- 📋 Outline — extracted from
paper/(orNARRATIVE_REPORT.mdif no compiled paper); one slide-cluster per contribution; section→talk-beat mapping - 🎨 Generate —
/paper-slidesemits Beamer source + PPTX + speaker notes + Q&A prep - 💎 Polish —
/slides-polishdoes per-page Codex review against the reference PDF; applies a fix-pattern catalog (PPTX font scaling 1.5-1.8× for projector legibility, banner-as-tcolorbox, em-dash spacing, Chinese EA font hint via PingFang SC, anonymity placeholder discipline) - 🛡️ Audit (when
assurance: conference-ready) —/paper-claim-audit+/citation-auditrun against a synthetic paper directory at.aris/paper-talk/audit-input/sections/*.texto verify slides don't introduce claims the paper can't back
/paper-talk "paper/" --- venue: ICLR --- assurance: conference-ready💡 Assurance ladder (independent of
effort):draft/polished(default) /conference-ready. Legal combination:--- effort: lite --- assurance: conference-ready= "fast pipeline, every audit must emit a verdict before the final report." Use it when you trust the writing pass but want hard claim/citation gates.
Cross-cutting: Research Wiki & Meta-Optimize
Two skills that aren't bound to any single workflow but make the whole system smarter over time:
📚
/research-wiki— persistent knowledge base across all seven workflows. Stores every paper read, idea piloted (including failures), experiment run, claim verified. Failed ideas become anti-repetition memory: the next time/idea-creatorruns, it sees what didn't work and steers around it.🧬
/meta-optimize— the outer-loop SKILL.md optimizer. Reads accumulated event logs from your past runs (.aris/meta/events.jsonl), analyzes patterns (which skills failed often? which parameter overrides were common? where did scores plateau?), and proposes SKILL.md improvements. Reviewer-gated, user-approved.
Real Results
A real overnight 4-round run on an ML research project, from borderline reject to submission-ready:
| Round | Score | Key change |
|---|---|---|
| 0 | 5/10 | Baseline narrative + figures |
| 1 | 6.5/10 | Fixed assumption-model mismatch, softened claims |
| 2 | 6.8/10 | Added synthetic validation; tightened limitations |
| 3 | 7.0/10 | Theorem self-contained; renamed conflicting notation |
| 4 | 7.5/10 | Format pass; passed page check; ICLR-compliant |
Final: 8 pages main body (ICLR limit: 9), 0 overfull \hbox, ICLR-compliant. +2.5 points across 4 rounds.
✅ Reproducibility caveat. Score values from GPT-6-Astra are signals, not ground truth. ARIS iterates against them, so high AI-review scores are an expected outcome of the loop, not independent proof of acceptance. Human reviewers still bring updated literature knowledge and venue taste an AI reviewer doesn't model.
The 85 Skills
Grouped by role (full catalog: docs/SKILLS_CATALOG.md).
| Category | Count | Headliners |
|---|---|---|
| Literature & ideation | 9 | /research-lit, /idea-creator, /novelty-check, /deepxiv, /arxiv |
| Experiments | 8 | /experiment-bridge, /run-experiment, /monitor-experiment, /experiment-audit |
| Paper writing | 12 | /paper-plan, /paper-figure, /paper-write, /paper-compile, /auto-paper-improvement-loop |
| Audits | 6 | /proof-checker, /paper-claim-audit, /citation-audit, /citation-crosscheck, /result-to-claim, /kill-argument |
| Talks & posters | 5 | /paper-talk, /paper-slides, /paper-poster-html, /slides-polish |
| Wiki & meta | 6 | /research-wiki, /meta-optimize, /research-pipeline, /research-refine |
| Proof & theory | 4 | /proof-writer, /formula-derivation, /proof-orchestrator, /lean-formalize |
| Integrations & support | 31 | /feishu-notify, /figure-spec, /render-html, /overleaf-sync … |
The 3-layer audit chain
A core ARIS invariant: the executor must not judge its own integrity. Three layers of cross-model audit:
| Layer | Skill | Asks | When |
|---|---|---|---|
| 1 | /experiment-audit |
"Is the eval code honest? (no fake GT, no self-normalized scores, no phantom results)" | Before / after experiment runs |
| 2 | /result-to-claim |
"Does the claim scientifically follow from the result?" | After results, before writing |
| 3 | /paper-claim-audit |
"Does the paper report the numbers truthfully?" (fresh zero-context reviewer) | Before submission |
Plus /citation-audit (4th layer): every \cite{...} validated for existence, metadata, and context-appropriateness — the most diagnostic check ("does the cited paper actually establish this claim?"). And /kill-argument (5th layer): two fresh codex gpt-6-astra + ultra threads write the strongest 200-word rejection memo and an independent adjudicator pass before submission.
Cross-platform Support
ARIS skills are plain SKILL.md files. They run anywhere an agent reads markdown:
- 🤖 Claude Code — the default, most tested
- 🤖 Codex CLI — full skill mirror;
spawn_agentinstead ofmcp__codex__codex(base pack's default reviewer is same-family — install a claude-review/gemini-review overlay for cross-family verdicts) - 🖱️ Cursor — agent mode reads ARIS skills directly
- 🖥️ Trae — ByteDance AI IDE
- 🚀 Antigravity — Google's agent-first IDE, native SKILL.md
- 🐙 GitHub Copilot CLI — terminal agent, native SKILL.md
- 🐾 OpenClaw — without Claude Code slash skills
📝 ARIS is a methodology, not a platform. Fork it, rewrite it, adapt it to your stack. The only invariants are: cross-family review, fresh threads for reviewers, audit integrity. Everything else — model choice, install path, integration surface — is yours.
中文版速览
ARIS(Autonomous Research via Adversarial Multi-Agent Collaboration,梦中科研)是一组 85 个可组合的 Claude Code skills,编排跨模型对抗式协作:
- 执行:Claude Code 读文件、写代码、跑实验、改论文
- 审稿:GPT-6-Astra(via Codex MCP)以跨家族审稿人身份打分、找弱点、提建议
- 关键:每轮 review 用新 thread;执行者绝不审判自己的实验诚实度
七条工作流(W1 / W1.5 / W2 / W3 / W4 / W5 / W6)端到端贯通:找 idea → 实验桥接 → 自动审稿循环 → 写论文 → 写 rebuttal → 跨 venue 移植 → 会议演讲。在真实 ICLR/NeurIPS 投稿上验证过。
🆕 新加入的 skill:
/render-html—— 把任何 ARIS 产出的 MD(如IDEA_REPORT.md、AUTO_REVIEW.md、KILL_ARGUMENT.md)渲染成单文件 HTML,适合给人类读。Markdown 仍是 canonical source,HTML 是 generated view,永远嵌入源 SHA256 + 渲染时间戳防 drift。academic 模板默认走跨模型 Codex review gate——同样的 ARIS 不变量。
Get Started
# 1. Clone ARIS to a stable location (once)
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git ~/aris_repo
# 2. Attach to a project (creates project-local symlinks)
cd ~/your-paper-project
bash ~/aris_repo/tools/install_aris.sh
# 3. Configure the GPT-6-Astra reviewer (Codex MCP)
npm install @openai/codex
codex setup # pick gpt-6-astra when asked
claude mcp add codex -s user -- python3 "$HOME/aris_repo/mcp-servers/codex-exec/server.py"
# 4. Use in Claude Code
claude
> /research-pipeline "factorized gap in discrete diffusion LMs"⚙️ Alternative model combinations — no Claude or OpenAI API required. See the Alt routes (Alt B/E for GLM × MiniMax-M3 or free DeepSeek-V3.1 via ModelScope; nine routes total, including Antigravity-as-executor and Gemini-direct-API-as-reviewer).
Inspirations
- 🧪 AI Scientist (Sakana AI) — automated research pioneer
- 📖 AutoResearch (Karpathy) — end-to-end research automation
- 🔭 FARS (Analemma) — fully automated research system
- 🎨 PaperBanana (PKU) — multi-agent academic illustration framework
Community
| 💬 Group | WeChat group QR (refreshes weekly) |
| 🌟 Star | github.com/wanshuiyin/Auto-claude-code-research-in-sleep |
| 📖 Technical report | arXiv 2605.03042 |
| 📑 Skills catalog | docs/SKILLS_CATALOG.md |
| 🐛 Bugs / requests | GitHub Issues |
🌱 From idea to paper to podium — one toolchain. ARIS is a methodology, not a platform. Take it wherever you go.
ALI CODING PLAN GUIDE (`docs/ALI_CODING_PLAN_GUIDE.md`)
阿里百炼 Coding Plan 接入指南
本文档说明如何使用阿里百炼 Coding Plan 的一套 API Key 驱动 ARIS 全流程,无需 Claude 或 OpenAI API。
背景
Coding Plan 是什么
阿里百炼 Coding Plan 是阿里云推出的 AI 编程套餐,一个专属 API Key 打通四款国产顶级模型,同时兼容 OpenAI 和 Anthropic 两大主流 API 协议。
支持的模型
| 模型 | 图像理解 | 推荐用途 | 速度参考 |
|---|---|---|---|
qwen3.5-plus |
是 | 执行器轻量任务 / 读图 | ~94 tokens/s |
kimi-k2.5 |
是 | 执行器主力(综合能力强) | ~42 tokens/s |
glm-5 |
否 | 审查器主力(推理质量高) | ~51 tokens/s |
MiniMax-M3 |
否 | 审查器备选(速度最快) | ~101 tokens/s |
为什么不能直接用 Codex MCP
原版 ARIS 的审查器使用 Codex MCP,而 Codex CLI 硬编码调用 OpenAI 专有的 Responses API (/v1/responses),第三方 API 提供商(包括 Coding Plan)均不支持该接口。
解决方案:使用项目内置的 llm-chat MCP 服务器,它调用标准 Chat Completions API (/v1/chat/completions),兼容所有 OpenAI 兼容端点,包括 Coding Plan。
相关讨论:OpenAI Codex GitHub #7782
重要:使用条款限制
警告:阿里百炼官方文档明确规定:
"仅限在编程工具(如 Claude Code、OpenClaw 等)中使用,禁止以 API 调用的形式用于自动化脚本、自定义应用程序后端或任何非交互式批量调用场景。将套餐 API Key 用于允许范围之外的调用将被视为违规或滥用,可能会导致订阅被暂停或 API Key 被封禁。"
使用前请了解以下风险评估:
| 使用场景 | 是否符合条款 | 风险 |
|---|---|---|
| 交互式使用(手动触发 skill,人在回路) | 符合 | 低 |
半自动(每轮需人工确认,AUTO_PROCEED: false) |
基本符合 | 低 |
过夜全自动循环(/auto-review-loop 无人值守) |
违反 | 高,可能封禁 Key |
| llm-chat MCP 作为审查器被 Claude Code 调用 | 存在争议 | 中,取决于阿里方面解释 |
建议:如需完全自动化的过夜科研循环,考虑改用按量计费的百炼 API Key,或其他没有此限制的提供商(DeepSeek、MiniMax 直连等)。
双层架构
Coding Plan 提供两套 API 端点,分别对应 ARIS 的两个角色:
┌──────────────────────────────────────────────────────────┐
│ Claude Code (CLI) │
│ │
│ ┌──────────────────┐ ┌─────────────────────────┐ │
│ │ 执行器 │──────▶│ 审查器 │ │
│ │ (Claude CLI) │ │ (llm-chat MCP) │ │
│ │ │ │ │ │
│ │ ANTHROPIC_* 变量 │ │ LLM_* 环境变量 │ │
│ │ → Anthropic 端点 │ │ → OpenAI 端点 │ │
│ └──────────────────┘ └─────────────────────────┘ │
└──────────────────────────────────────────────────────────┘| 角色 | 协议 | 端点 |
|---|---|---|
| 执行器(Claude CLI) | Anthropic 兼容 | https://coding.dashscope.aliyuncs.com/apps/anthropic |
| 审查器(llm-chat MCP) | OpenAI 兼容 | https://coding.dashscope.aliyuncs.com/v1 |
两个端点使用同一个 Coding Plan 专属 API Key,无需分别申请。
安装步骤
前置条件
- Claude Code CLI 已安装:
npm install @anthropic-ai/claude-code - Python 3 可用:
python3 --version(用which python3确认路径) - 已购买阿里百炼 Coding Plan 套餐并获取专属 API Key(在套餐页面直接获取,与百炼按量 Key 不互通)
Step 1:克隆仓库
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleepStep 2:安装 Python 依赖
pip3 install -r mcp-servers/llm-chat/requirements.txtStep 3:部署 llm-chat MCP 服务器
mkdir -p ~/.claude/mcp-servers/llm-chat
cp mcp-servers/llm-chat/server.py ~/.claude/mcp-servers/llm-chat/server.pyStep 4:安装 Skills
mkdir -p ~/.claude/skills
cp -r skills/* ~/.claude/skills/Step 5:配置 ~/.claude/settings.json
以下为推荐配置(kimi-k2.5 执行 + glm-5 审查)。用 which python3 替换 command 中的 python3 路径,用 echo $HOME 替换路径中的 $HOME:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-coding-plan-api-key",
"ANTHROPIC_BASE_URL": "https://coding.dashscope.aliyuncs.com/apps/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k2.5",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen3.5-plus",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "MiniMax-M3",
"API_TIMEOUT_MS": "3000000",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "6000"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["$HOME/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "your-coding-plan-api-key",
"LLM_BASE_URL": "https://coding.dashscope.aliyuncs.com/v1",
"LLM_MODEL": "glm-5"
}
}
}
}Linux 路径说明:
$HOME通常为/root(root 用户)或/home/用户名。运行echo $HOME确认,并将配置中args里的$HOME替换为实际路径(settings.json 不会自动展开 shell 变量)。同理,用which python3确认 python3 实际路径。
Step 6:改写所有使用 Codex MCP 的 Skills
项目中有 46 个 skill 在 frontmatter 里授权了 mcp__codex__codex(依赖 OpenAI Responses API,Coding Plan 不支持),其中 28 个正文里有实际的调用块。在启动 Claude Code 后执行以下指令,让它自动完成改写:
Read skills/auto-review-loop-llm/SKILL.md as a reference.
It replaces mcp__codex__codex with mcp__llm-chat__chat.
Now rewrite ALL other skills that use mcp__codex__codex / mcp__codex__codex-reply
to use mcp__llm-chat__chat instead, following the same pattern.Claude Code 会自动:
- 扫描
~/.claude/skills/中所有使用 Codex MCP 的 skill 文件 - 参考
auto-review-loop-llm的写法(MCP 优先 + curl fallback) - 逐个改写为调用
mcp__llm-chat__chat
注意:此操作只修改
~/.claude/skills/中的本地副本,不影响仓库原文件。如需恢复,重新执行 Step 4 即可。
模型选择建议
| 场景 | 执行器(OPUS 位) | 审查器(llm-chat) | 说明 |
|---|---|---|---|
| 推荐:能力均衡 | kimi-k2.5 |
glm-5 |
kimi 执行综合能力强,glm-5 推理审查严谨 |
| 备选:速度优先 | qwen3.5-plus |
MiniMax-M3 |
两者出词最快,适合快速迭代和调试 |
| 备选:测试阶段 | qwen3.5-plus |
glm-5 |
执行轻量省请求次数,审查保持质量 |
关于跨模型优势:ARIS 的核心设计是执行器和审查器使用不同模型,互不审自己的输出,形成真正的反馈循环。如果两端用同一模型(如都用 kimi-k2.5),会部分削弱这一优势。
使用方法
配置完成后,按如下方式启动 Claude Code 并使用 skill:
claude直接可用(无需改写)
/auto-review-loop-llm "你的论文主题" # 已原生支持 llm-chat MCP改写后可用(Step 6 完成后)
/idea-discovery "你的研究方向" # 工作流 1:文献 → idea → 查新 → 实验
/auto-review-loop "你的论文主题" # 工作流 2:自动 review 循环
/paper-writing "NARRATIVE_REPORT.md" # 工作流 3:叙事 → LaTeX → PDF
/research-pipeline "你的研究方向" # 完整流水线:1 → 2 → 3验证安装
1. 验证执行器端点(Anthropic 协议)
curl -s "https://coding.dashscope.aliyuncs.com/apps/anthropic/v1/messages" \
-H "Content-Type: application/json" \
-H "x-api-key: your-coding-plan-api-key" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"kimi-k2.5","max_tokens":50,"messages":[{"role":"user","content":"Say hello"}]}'预期:返回包含 "content" 字段的 JSON,其中有模型回复文本。
2. 验证审查器端点(OpenAI 协议)
curl -s "https://coding.dashscope.aliyuncs.com/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-coding-plan-api-key" \
-d '{"model":"glm-5","messages":[{"role":"user","content":"Say hello"}],"max_tokens":50}'预期:返回包含 "choices" 字段的 JSON,其中有模型回复文本。
3. 验证 llm-chat MCP 服务器
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | \
LLM_API_KEY="your-coding-plan-api-key" \
LLM_BASE_URL="https://coding.dashscope.aliyuncs.com/v1" \
LLM_MODEL="glm-5" \
python3 ~/.claude/mcp-servers/llm-chat/server.py预期输出中包含:"protocolVersion":"2024-11-05"
4. 在 Claude Code 中端到端验证
claude
> 读一下这个项目,验证 /auto-review-loop-llm skill 是否正常可用,列出可识别的所有 skill文件结构总览
~/.claude/
├── settings.json # 包含 Coding Plan 执行器 + llm-chat MCP 配置
├── mcp-servers/
│ └── llm-chat/
│ └── server.py # 通用 LLM MCP 服务器(支持任意 OpenAI 兼容 API)
└── skills/
├── auto-review-loop-llm/
│ └── SKILL.md # 已原生支持 llm-chat MCP,无需改写
├── idea-creator/
│ └── SKILL.md # Step 6 改写后调用 mcp__llm-chat__chat
├── research-review/
│ └── SKILL.md # Step 6 改写后调用 mcp__llm-chat__chat
├── novelty-check/
│ └── SKILL.md # Step 6 改写后调用 mcp__llm-chat__chat
└── ...(其余 skill 类似)
项目目录(运行时生成)/
├── review-stage/AUTO_REVIEW.md # 审查日志(自动追加)
└── review-stage/REVIEW_STATE.json # 状态持久化,支持断点恢复与其他方案对比
| 默认方案 | 本方案(Coding Plan) | MiniMax 方案 | GLM + DeepSeek | |
|---|---|---|---|---|
| 执行器 | Claude Opus/Sonnet | kimi-k2.5 / qwen3.5-plus | GLM-5 (Z.ai) | GLM-5 (Z.ai) |
| 审查器 | GPT-6-Astra (Codex MCP) | glm-5 / MiniMax-M3 | MiniMax-M3 | DeepSeek |
| 需要 Claude API | 是 | 否 | 否 | 否 |
| 需要 OpenAI API | 是 | 否 | 否 | 否 |
| API Key 数量 | 2 个 | 1 个 | 2 个 | 2 个 |
| 配置指南 | README 快速开始 | 本文档 | MINIMAX_MCP_GUIDE | LLM_API_MIX_MATCH_GUIDE |
常见问题
Q:执行器报错 "401 Unauthorized"?
Coding Plan 专属 API Key 与百炼平台按量调用 Key 不互通。确认在 Coding Plan 套餐页面 获取的是套餐专属 Key,而非普通百炼 Key。
Q:llm-chat MCP 工具在 Claude Code 中不出现?
- 检查系统临时目录中的
llm-chat-mcp-debug.log(可运行python3 -c "import tempfile; print(tempfile.gettempdir())"查看路径) - 确认
settings.json中command的 python3 路径正确(which python3) - 确认
args中的路径为绝对路径,不能包含未展开的$HOME(需替换为/root或实际路径) - 重启 Claude Code
Q:改写后 skill 仍然调用 mcp__codex__codex?
检查 ~/.claude/skills/ 下对应 SKILL.md 文件内容是否已更新。若未改写,重新执行 Step 6 的指令。
Q:Linux 上 python3 路径在哪?
运行 which python3 确认。常见路径:/usr/bin/python3。若使用 conda/venv 环境,路径会不同(如 /root/miniconda3/envs/xxx/bin/python3)。
Q:过夜自动运行安全吗?
Coding Plan 明确禁止"非交互式批量调用",过夜无人值守的自动化循环存在封禁风险。建议改用百炼按量计费 Key 或其他无此限制的提供商。
Q:如何切换审查器模型(如从 glm-5 改为 MiniMax-M3)?
修改 ~/.claude/settings.json 中 mcpServers.llm-chat.env.LLM_MODEL 的值,重启 Claude Code 即可生效。
参考资料
- 阿里百炼 Coding Plan 文档
- 阿里百炼 Coding Plan 常见问题
- OpenAI Codex Responses API 讨论 #7782
- LLM API 混搭配置指南
- MiniMax MCP 集成指南
- Claude Code 文档
ANTIGRAVITY ADAPTATION (`docs/ANTIGRAVITY_ADAPTATION.md`)
Antigravity Adaptation Guide (ARIS Workflows)
Use ARIS research workflows in Google Antigravity — the agent-first AI IDE from Google DeepMind.
Antigravity natively supports SKILL.md files with the same YAML frontmatter + Markdown body format used by ARIS, making it one of the most natural hosts for ARIS workflows.
1. Key Differences: Claude Code vs Antigravity
| Concept | Claude Code | Antigravity |
|---|---|---|
| Skill invocation | /skill-name "args" (slash command) |
Agent auto-discovers from description; or read SKILL.md via view_file |
| Skill storage | ~/.claude/skills/skill-name/SKILL.md |
~/.gemini/antigravity/skills/skill-name/SKILL.md (global) or <workspace>/.agents/skills/skill-name/SKILL.md (project-local) |
| MCP servers | claude mcp add ... |
~/.gemini/settings.json → mcpServers section |
| Project instructions | CLAUDE.md in project root |
GEMINI.md in project root (equivalent) |
| Agent execution | Persistent CLI session, auto-compact | Editor sidebar + Manager View; multi-agent orchestration |
| File references | Auto-read from project | view_file tool; agent reads workspace files automatically |
| Long-running jobs | Single CLI session | Agent sessions with artifact-based checkpoints |
| Models available | Claude Opus 4.6 / Sonnet 4.6 | Gemini 3.1 Pro (high), Claude Opus 4.6 (Thinking), GPT-OSS-120B |
2. Model Selection
Antigravity supports multiple models as the executor (the model that runs ARIS workflows):
| Model | Best for | Configuration |
|---|---|---|
| Claude Opus 4.6 (Thinking) | Complex reasoning, long pipelines, code generation | Model selector → Claude Opus 4.6 (Thinking) |
| Gemini 3.1 Pro (high) | Fast iteration, large context, Google ecosystem integration | Model selector → Gemini 3.1 Pro with reasoning effort set to high |
Tip: Claude Opus 4.6 (Thinking) and Gemini 3.1 Pro (high) have different strengths. Claude Opus excels at step-by-step reasoning and code accuracy; Gemini 3.1 Pro has a larger context window and faster response times. Choose based on your workflow needs.
Model-Specific Notes
For Claude Opus 4.6 (Thinking):
- Extended thinking mode is enabled by default — ideal for complex research reasoning
- ARIS skill instructions will be followed very faithfully
- May be slower on long review prompts but more thorough
For Gemini 3.1 Pro (high):
- Larger context window (handles more project files at once)
- Natively understands SKILL.md format (Google's own standard)
- Set reasoning effort to
highfor best research quality — add to~/.gemini/settings.json:json{ "model": { "name": "gemini-3.1-pro-preview" } }
3. Setup
3.1 Install skills
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
# Option A: Global install (available across all projects)
mkdir -p ~/.gemini/antigravity/skills
cp -r skills/* ~/.gemini/antigravity/skills/
# Option B: Project-local install (recommended for isolation)
mkdir -p /path/to/your/project/.agents/skills
cp -r skills/* /path/to/your/project/.agents/skills/Important: Antigravity discovers skills from
~/.gemini/antigravity/skills/(global) and<workspace>/.agents/skills/(project-scoped). The agent sees skill names and descriptions at startup, then loads full SKILL.md content when relevant.
3.2 Set up Codex MCP in Antigravity (for review skills)
ARIS uses an external LLM (GPT-6-Astra via Codex) as a critical reviewer. To enable this in Antigravity:
Install Codex CLI and authenticate:
bashnpm install @openai/codex codex login # authenticate with your ChatGPT or API keyAdd MCP server in Antigravity — edit
~/.gemini/settings.json:json{ "mcpServers": { "codex": { "command": "python3", "args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"] } } }Or for project-local scope, create
.gemini/settings.jsonin your project root:json{ "mcpServers": { "codex": { "command": "python3", "args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"] } } }Restart Antigravity. Verify the MCP server connects — the agent will report available tools that include
mcp__codex__codexandmcp__codex__codex-reply.
3.3 Alternative reviewer MCP (no OpenAI API)
If you don't have an OpenAI API key, use the llm-chat MCP server with any OpenAI-compatible API (DeepSeek, GLM, MiniMax, Kimi, etc.):
Create a virtual environment and install the required dependency:
bashcd /path/to/Auto-claude-code-research-in-sleep python3 -m venv .venv .venv/bin/pip install -r mcp-servers/llm-chat/requirements.txtAdd MCP server — edit
~/.gemini/settings.json. Both paths must be absolute:json{ "mcpServers": { "llm-chat": { "command": "/path/to/Auto-claude-code-research-in-sleep/.venv/bin/python3", "args": ["/path/to/Auto-claude-code-research-in-sleep/mcp-servers/llm-chat/server.py"], "env": { "LLM_BASE_URL": "https://api.deepseek.com/v1", "LLM_API_KEY": "your_key", "LLM_MODEL": "deepseek-chat" } } } }Restart Antigravity. The
llm-chatMCP should appear in available tools.
See LLM_API_MIX_MATCH_GUIDE.md for tested provider configurations.
3.4 Project instructions (GEMINI.md)
Antigravity uses GEMINI.md (equivalent to Claude Code's CLAUDE.md) for project-specific instructions. Create this file in your project root:
## GPU Server (for auto-experiments)
- SSH: `ssh my-gpu-server` (key-based auth, no password)
- GPU: 4x A100
- Conda env: `research` (Python 3.10 + PyTorch)
- Activate: `eval "$(/opt/conda/bin/conda shell.bash hook)" && conda activate research`
- Code directory: `/home/user/experiments/`
- Use `screen` for background jobs: `screen -dmS exp0 bash -c '...'`
## Research Project
- Topic: [your research topic]
- Target venue: ICLR/NeurIPS/ICML
- Key files: NARRATIVE_REPORT.md, idea-stage/IDEA_REPORT.md4. How to Invoke Skills
Antigravity discovers ARIS skills via the YAML description field in each SKILL.md. There are three approaches:
Approach A: Natural language (recommended — Antigravity auto-discovers)
Simply describe what you want in the chat. Antigravity matches your intent to installed skills:
Run the auto review loop for "factorized gap in discrete diffusion LMs".If ARIS skills are installed (§3.1), Antigravity will automatically discover and activate the auto-review-loop skill.
Approach B: Explicit skill reference
Ask the agent to read a specific SKILL.md:
Read the file skills/auto-review-loop/SKILL.md and follow its instructions.
Topic: "factorized gap in discrete diffusion LMs".Or if installed globally:
Read ~/.gemini/antigravity/skills/auto-review-loop/SKILL.md and execute it.
Topic: "factorized gap in discrete diffusion LMs".Approach C: Direct prompt (one-off use)
Copy the relevant workflow instructions directly into the chat. Best for quick, one-time use.
5. Workflow Mapping
Workflow 1: Idea Discovery
Claude Code:
/idea-discovery "your research direction"Antigravity equivalent:
Run the full idea discovery pipeline for "your research direction".
Follow these sub-skills in sequence:
1. Read and execute skills/research-lit/SKILL.md — literature survey
2. Read and execute skills/idea-creator/SKILL.md — brainstorm ideas
3. Read and execute skills/novelty-check/SKILL.md — verify novelty
4. Read and execute skills/research-review/SKILL.md — critical review
5. Read and execute skills/research-refine-pipeline/SKILL.md — refine method + plan experimentsTip: If the context gets long, run each phase as a separate agent task in Antigravity's Manager View. Pass results via files (e.g.,
idea-stage/IDEA_REPORT.md,refine-logs/FINAL_PROPOSAL.md).
Workflow 1.5: Experiment Bridge
Claude Code:
/experiment-bridgeAntigravity equivalent:
Read and execute skills/experiment-bridge/SKILL.md.
Read refine-logs/EXPERIMENT_PLAN.md and implement the experiments.
Deploy to GPU via skills/run-experiment/SKILL.md.Workflow 2: Auto Review Loop
Claude Code:
/auto-review-loop "your paper topic"Antigravity equivalent:
Read and execute skills/auto-review-loop/SKILL.md.
Run the auto review loop for "your paper topic".
Read project narrative docs, memory files, experiment results.
Use MCP tool mcp__codex__codex for external review.Important: If using the
llm-chatMCP instead of Codex, replacemcp__codex__codexwithmcp__llm-chat__chat. Or use the adapted skill:skills/auto-review-loop-llm/SKILL.md.
Workflow 3: Paper Writing
Claude Code:
/paper-writing "NARRATIVE_REPORT.md"Antigravity equivalent:
Read and execute skills/paper-writing/SKILL.md.
Input: NARRATIVE_REPORT.md in project root.
Sub-skills to execute in sequence:
1. Read and execute skills/paper-plan/SKILL.md — outline + claims-evidence matrix
2. Read and execute skills/paper-figure/SKILL.md — generate plots and tables
3. Read and execute skills/paper-write/SKILL.md — write LaTeX sections
4. Read and execute skills/paper-compile/SKILL.md — build PDF
5. Read and execute skills/auto-paper-improvement-loop/SKILL.md — review and polishFull Pipeline
For the full pipeline (/research-pipeline), leverage Antigravity's multi-agent capability to run stages in parallel where possible:
| Stage | What to do | Output files |
|---|---|---|
| 1 | Idea Discovery: skills/idea-discovery/SKILL.md + your direction |
idea-stage/IDEA_REPORT.md, refine-logs/FINAL_PROPOSAL.md, refine-logs/EXPERIMENT_PLAN.md |
| 2 | Experiment Bridge: skills/experiment-bridge/SKILL.md |
Experiment scripts, results |
| 3 | Auto Review Loop: skills/auto-review-loop/SKILL.md |
review-stage/AUTO_REVIEW.md |
| 4 | Paper Writing: skills/paper-writing/SKILL.md + NARRATIVE_REPORT.md |
paper/ directory |
Each stage reads the previous stage's output files, so context carries forward across agent sessions.
Note: Stage 4 expects a
NARRATIVE_REPORT.md— see NARRATIVE_REPORT_EXAMPLE.md for the expected format.
6. MCP Tool Calls
ARIS skills reference MCP tools by name. These work identically in Antigravity once configured:
| ARIS MCP tool | What it does | Required MCP server |
|---|---|---|
mcp__codex__codex |
Send prompt to GPT-6-Astra | Codex |
mcp__codex__codex-reply |
Continue conversation thread | Codex |
mcp__llm-chat__chat |
Send prompt to any OpenAI-compatible model | llm-chat |
mcp__zotero__* |
Search Zotero library | zotero (name may vary) |
mcp__obsidian-vault__* |
Search Obsidian vault | obsidian-vault (name may vary) |
7. State Files & Recovery
ARIS workflows persist state to files for crash recovery. These work identically in Antigravity:
| File | Purpose | Written by |
|---|---|---|
review-stage/REVIEW_STATE.json |
Auto-review loop progress | auto-review-loop |
review-stage/AUTO_REVIEW.md |
Cumulative review log | auto-review-loop |
idea-stage/IDEA_REPORT.md |
Ranked ideas with pilot results | idea-discovery |
PAPER_PLAN.md |
Paper outline + claims-evidence matrix | paper-plan |
refine-logs/FINAL_PROPOSAL.md |
Refined method proposal | research-refine |
refine-logs/EXPERIMENT_PLAN.md |
Experiment roadmap | experiment-plan |
refine-logs/EXPERIMENT_TRACKER.md |
Run-by-run execution status | experiment-plan |
If an Antigravity agent session ends mid-workflow, start a new session and reference the state file:
Read skills/auto-review-loop/SKILL.md, then read review-stage/REVIEW_STATE.json and review-stage/AUTO_REVIEW.md.
Resume the auto review loop from the saved state.8. GPU Server Setup
Add your server info to GEMINI.md in your project root (equivalent to CLAUDE.md):
## Remote Server
- SSH: `ssh my-gpu-server` (key-based auth, no password)
- GPU: 4x A100
- Conda env: `research` (Python 3.10 + PyTorch)
- Activate: `eval "$(/opt/conda/bin/conda shell.bash hook)" && conda activate research`
- Code directory: `/home/user/experiments/`
- Use `screen` for background jobsThen invoke:
Read skills/run-experiment/SKILL.md and GEMINI.md.
Deploy the training script to the remote GPU server.9. Antigravity-Specific Advantages
Antigravity provides several unique capabilities that enhance ARIS workflows:
Multi-Agent Orchestration
Use Antigravity's Manager View to run multiple ARIS stages simultaneously:
- Agent 1: Literature survey (Workflow 1, Stage 1)
- Agent 2: Running experiments on GPU (Workflow 1.5)
- Agent 3: Reviewing and iterating on prior results (Workflow 2)
Browser Integration
Antigravity includes a built-in browser. Useful for:
- Previewing generated charts/figures from
/paper-figure - Testing web-based arXiv searches during
/research-lit - Viewing compiled PDF from
/paper-compile
Artifact System
Antigravity's artifact system (implementation plans, walkthroughs) maps naturally to ARIS outputs:
idea-stage/IDEA_REPORT.md→ implementation plan artifactreview-stage/AUTO_REVIEW.md→ walkthrough artifactPAPER_PLAN.md→ implementation plan artifact
Knowledge Persistence
Antigravity's knowledge system retains context across conversations:
- Past review findings from
/auto-review-loopare available in future sessions - Experiment configurations and results persist in knowledge items
- Literature survey results can be referenced without re-running
10. Limitations & Workarounds
| Limitation | Workaround |
|---|---|
No native /skill-name slash commands |
Use natural language (auto-discovery) or explicit read SKILL.md references |
Skills reference $ARGUMENTS |
Replace with your actual arguments in the prompt |
SKILL.md files use /skill-name to call sub-skills |
Tell the agent to read and execute the sub-skill SKILL.md files explicitly |
allowed-tools not enforced |
Antigravity's agent has access to all configured tools by default — not a problem in practice |
CLAUDE.md references in skills |
Antigravity reads GEMINI.md instead — rename or copy CLAUDE.md to GEMINI.md, or tell the agent to read both |
| Context window varies by model | Claude Opus 4.6: similar to Claude Code. Gemini 3.1 Pro: larger window. Both handle full pipelines well. Break into stages if needed |
11. Quick Reference
# Literature survey
Read skills/research-lit/SKILL.md and search for papers on "discrete diffusion models".
# Idea discovery (full pipeline)
Read skills/idea-discovery/SKILL.md and run idea discovery for
"factorized gap in discrete diffusion LMs".
# Single deep review
Read skills/research-review/SKILL.md and review this research:
[describe your work or point to files].
# Auto review loop
Read skills/auto-review-loop/SKILL.md and run the auto review loop.
Topic: "your paper topic".
# Paper writing
Read skills/paper-writing/SKILL.md and write the paper from NARRATIVE_REPORT.md.
# Run experiment
Read skills/run-experiment/SKILL.md and GEMINI.md.
Deploy: python train.py --lr 1e-4 --epochs 10012. Summary: Claude Code → Antigravity Migration Checklist
- Install skills to
~/.gemini/antigravity/skills/or/.agents/skills/ - Configure MCP servers in
~/.gemini/settings.json - Copy
CLAUDE.mdcontent toGEMINI.md(or keep both) - Select model: Claude Opus 4.6 (Thinking) or Gemini 3.1 Pro (high)
- Use natural language or explicit skill references instead of
/slash-commands - Verify MCP tools are available (codex or llm-chat)
- Run a quick test:
Read skills/research-review/SKILL.md and review my project
ANTIGRAVITY ADAPTATION CN (`docs/ANTIGRAVITY_ADAPTATION_CN.md`)
Antigravity 适配指南(ARIS 工作流)
在 Google Antigravity 中使用 ARIS 研究工作流 —— Google DeepMind 出品的 Agent-First AI IDE。
Antigravity 原生支持与 ARIS 相同的 SKILL.md 格式(YAML frontmatter + Markdown body),是 ARIS 工作流最自然的宿主之一。
1. 关键差异:Claude Code vs Antigravity
| 概念 | Claude Code | Antigravity |
|---|---|---|
| Skill 调用 | /skill-name "args"(斜杠命令) |
Agent 通过 description 自动发现;或通过 view_file 读取 SKILL.md |
| Skill 存放 | ~/.claude/skills/skill-name/SKILL.md |
~/.gemini/antigravity/skills/skill-name/SKILL.md(全局)或 <workspace>/.agents/skills/skill-name/SKILL.md(项目级) |
| MCP 配置 | claude mcp add ... |
~/.gemini/settings.json → mcpServers 字段 |
| 项目说明 | 项目根目录 CLAUDE.md |
项目根目录 GEMINI.md(等效) |
| Agent 执行 | 持续 CLI 会话,自动压缩 | 编辑器侧边栏 + Manager 视图;支持多 agent 编排 |
| 文件引用 | 自动读取项目文件 | view_file 工具;agent 自动读取工作区文件 |
| 长任务 | 单 CLI 会话 | Agent 会话 + artifact 检查点 |
| 可用模型 | Claude Opus 4.6 / Sonnet 4.6 | Gemini 3.1 Pro (high)、Claude Opus 4.6 (Thinking)、GPT-OSS-120B |
2. 模型选择
Antigravity 支持多种模型作为执行器(运行 ARIS 工作流的模型):
| 模型 | 最适合 | 配置方式 |
|---|---|---|
| Claude Opus 4.6 (Thinking) | 复杂推理、长流水线、代码生成 | 模型选择器 → Claude Opus 4.6 (Thinking) |
| Gemini 3.1 Pro (high) | 快速迭代、大上下文、Google 生态集成 | 模型选择器 → Gemini 3.1 Pro,推理力度设为 high |
提示: Claude Opus 4.6 (Thinking) 和 Gemini 3.1 Pro (high) 各有优势。Claude Opus 擅长逐步推理和代码准确性;Gemini 3.1 Pro 上下文窗口更大、响应速度更快。请根据工作流需求选择。
模型特定说明
Claude Opus 4.6 (Thinking):
- 默认启用扩展思考模式——适合复杂的研究推理
- ARIS skill 指令会被非常忠实地执行
- 长审阅 prompt 可能较慢,但更彻底
Gemini 3.1 Pro (high):
- 上下文窗口更大(一次处理更多项目文件)
- 原生理解 SKILL.md 格式(Google 自己的标准)
- 推理力度建议设为
high——添加到~/.gemini/settings.json:json{ "model": { "name": "gemini-3.1-pro-preview" } }
3. 安装配置
3.1 安装 Skills
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
# 方案 A:全局安装(所有项目可用)
mkdir -p ~/.gemini/antigravity/skills
cp -r skills/* ~/.gemini/antigravity/skills/
# 方案 B:项目级安装(推荐,隔离性好)
mkdir -p /path/to/your/project/.agents/skills
cp -r skills/* /path/to/your/project/.agents/skills/重要: Antigravity 从
~/.gemini/antigravity/skills/(全局)和<workspace>/.agents/skills/(项目级)发现技能。Agent 启动时看到技能名称和描述,相关时加载完整 SKILL.md 内容。
3.2 配置 Codex 审阅 MCP(用于审阅技能)
ARIS 使用外部 LLM(GPT-6-Astra via Codex)作为审阅者。在 Antigravity 中启用:
安装并认证 Codex CLI:
bashnpm install @openai/codex codex login # 用 ChatGPT 或 API key 认证在 Antigravity 中添加 MCP——编辑
~/.gemini/settings.json:json{ "mcpServers": { "codex": { "command": "python3", "args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"] } } }或在项目根目录创建
.gemini/settings.json(项目级配置):json{ "mcpServers": { "codex": { "command": "python3", "args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"] } } }重启 Antigravity,验证 MCP 连接——agent 应报告
mcp__codex__codex和mcp__codex__codex-reply工具可用。
3.3 替代审阅 MCP(无 OpenAI API)
没有 OpenAI API key?使用 llm-chat MCP 服务器对接 DeepSeek/GLM/MiniMax/Kimi 等兼容接口:
创建虚拟环境并安装依赖:
bashcd /path/to/Auto-claude-code-research-in-sleep python3 -m venv .venv .venv/bin/pip install -r mcp-servers/llm-chat/requirements.txt添加 MCP——编辑
~/.gemini/antigravity/mcp_config.json(旧版:~/.gemini/settings.json),路径必须为绝对路径:json{ "mcpServers": { "llm-chat": { "command": "/path/to/Auto-claude-code-research-in-sleep/.venv/bin/python3", "args": ["/path/to/Auto-claude-code-research-in-sleep/mcp-servers/llm-chat/server.py"], "env": { "LLM_BASE_URL": "https://api.deepseek.com/v1", "LLM_API_KEY": "your_key", "LLM_MODEL": "deepseek-chat" } } } }重启 Antigravity,确认
llm-chatMCP 在可用工具中。
详见 LLM_API_MIX_MATCH_GUIDE.md 获取已测试的提供商配置。
3.4 项目说明(GEMINI.md)
Antigravity 使用 GEMINI.md(等价于 Claude Code 的 CLAUDE.md)存放项目级说明。在项目根目录创建:
## GPU 服务器(用于自动实验)
- SSH: `ssh my-gpu-server`(密钥认证,无密码)
- GPU: 4x A100
- Conda 环境: `research` (Python 3.10 + PyTorch)
- 激活命令: `eval "$(/opt/conda/bin/conda shell.bash hook)" && conda activate research`
- 代码目录: `/home/user/experiments/`
- 后台任务: `screen -dmS exp0 bash -c '...'`
## 研究项目
- 课题: [你的研究方向]
- 目标会议: ICLR/NeurIPS/ICML
- 关键文件: NARRATIVE_REPORT.md, idea-stage/IDEA_REPORT.md4. 如何调用 Skills
Antigravity 通过 SKILL.md 中的 YAML description 字段自动发现 ARIS 技能。三种方式:
方式 A:自然语言(推荐——Antigravity 自动发现)
直接在对话中描述需求,Antigravity 会自动匹配已安装的技能:
对 "discrete diffusion models 中的 factorized gap" 运行自动评审循环。如果 ARIS 技能已安装(§3.1),Antigravity 会自动发现并激活 auto-review-loop 技能。
方式 B:显式引用技能文件
要求 agent 读取特定 SKILL.md:
读取 skills/auto-review-loop/SKILL.md 并按照其指令执行。
课题:"factorized gap in discrete diffusion LMs"。方式 C:直接粘贴指令(一次性使用)
将相关 workflow 指令直接粘贴到对话中,适合临时任务。
5. 工作流映射
Workflow 1:Idea Discovery(创意发现)
Claude Code:
/idea-discovery "your research direction"Antigravity 等价:
运行完整的 idea discovery 流程,方向:"your research direction"。
按顺序执行以下子技能:
1. 读取并执行 skills/research-lit/SKILL.md —— 文献综述
2. 读取并执行 skills/idea-creator/SKILL.md —— 头脑风暴
3. 读取并执行 skills/novelty-check/SKILL.md —— 新颖性验证
4. 读取并执行 skills/research-review/SKILL.md —— 深度评审
5. 读取并执行 skills/research-refine-pipeline/SKILL.md —— 方法精化 + 实验规划Workflow 1.5:Experiment Bridge(实验桥接)
Claude Code:
/experiment-bridgeAntigravity 等价:
读取并执行 skills/experiment-bridge/SKILL.md。
读取 refine-logs/EXPERIMENT_PLAN.md 并实现实验。
通过 skills/run-experiment/SKILL.md 部署到 GPU。Workflow 2:Auto Review Loop(自动评审循环)
Claude Code:
/auto-review-loop "your paper topic"Antigravity 等价:
读取并执行 skills/auto-review-loop/SKILL.md。
对 "your paper topic" 运行自动评审循环。
读取项目叙事文档、记忆文件和实验结果。
使用 MCP 工具 mcp__codex__codex 进行外部审阅。注意: 如果使用
llm-chatMCP,把mcp__codex__codex替换为mcp__llm-chat__chat。或使用适配版技能:skills/auto-review-loop-llm/SKILL.md。
Workflow 3:Paper Writing(论文写作)
Claude Code:
/paper-writing "NARRATIVE_REPORT.md"Antigravity 等价:
读取并执行 skills/paper-writing/SKILL.md。
输入:项目根目录的 NARRATIVE_REPORT.md。
按顺序执行以下子技能:
1. 读取并执行 skills/paper-plan/SKILL.md —— 大纲 + claims-evidence matrix
2. 读取并执行 skills/paper-figure/SKILL.md —— 生成图表
3. 读取并执行 skills/paper-write/SKILL.md —— 写 LaTeX 章节
4. 读取并执行 skills/paper-compile/SKILL.md —— 编译 PDF
5. 读取并执行 skills/auto-paper-improvement-loop/SKILL.md —— 审阅与润色全流程分阶段建议
利用 Antigravity 的多 agent 能力,在可能的情况下并行运行各阶段:
| 阶段 | 执行方式 | 产出文件 |
|---|---|---|
| 1 | 创意发现:skills/idea-discovery/SKILL.md + 研究方向 |
idea-stage/IDEA_REPORT.md, refine-logs/FINAL_PROPOSAL.md, refine-logs/EXPERIMENT_PLAN.md |
| 2 | 实验桥接:skills/experiment-bridge/SKILL.md |
实验脚本与结果 |
| 3 | 自动评审:skills/auto-review-loop/SKILL.md |
review-stage/AUTO_REVIEW.md |
| 4 | 论文写作:skills/paper-writing/SKILL.md + NARRATIVE_REPORT.md |
paper/ 目录 |
6. MCP 工具对照
| ARIS MCP 工具 | 作用 | 需要的 MCP Server |
|---|---|---|
mcp__codex__codex |
发审阅请求到 GPT-6-Astra | codex |
mcp__codex__codex-reply |
续接审阅线程 | codex |
mcp__llm-chat__chat |
发请求到兼容 OpenAI API 模型 | llm-chat |
mcp__zotero__* |
搜索 Zotero 文献库 | zotero |
mcp__obsidian-vault__* |
搜索 Obsidian 笔记库 | obsidian-vault |
7. 状态文件与恢复
| 文件 | 作用 | 对应流程 |
|---|---|---|
review-stage/REVIEW_STATE.json |
自动评审进度 | auto-review-loop |
review-stage/AUTO_REVIEW.md |
累计评审日志 | auto-review-loop |
idea-stage/IDEA_REPORT.md |
创意筛选与排名 | idea-discovery |
PAPER_PLAN.md |
论文大纲 + claim-evidence matrix | paper-plan |
refine-logs/FINAL_PROPOSAL.md |
精化后的方法提案 | research-refine |
refine-logs/EXPERIMENT_PLAN.md |
实验路线图 | experiment-plan |
中断恢复示例:
读取 skills/auto-review-loop/SKILL.md,然后读取 review-stage/REVIEW_STATE.json 和 review-stage/AUTO_REVIEW.md。
从保存的状态恢复自动评审循环。8. Antigravity 独有优势
多 Agent 编排
使用 Antigravity 的 Manager View 同时运行多个 ARIS 阶段:
- Agent 1:文献综述(Workflow 1 第 1 阶段)
- Agent 2:在 GPU 上跑实验(Workflow 1.5)
- Agent 3:审阅并迭代此前结果(Workflow 2)
内置浏览器
Antigravity 内置浏览器,可用于:
- 预览
/paper-figure生成的图表 /research-lit中的 arXiv 搜索- 查看
/paper-compile编译的 PDF
Artifact 系统
ARIS 产出自然映射到 Antigravity 的 artifact 系统:
idea-stage/IDEA_REPORT.md→ implementation plan artifactreview-stage/AUTO_REVIEW.md→ walkthrough artifactPAPER_PLAN.md→ implementation plan artifact
知识持久化
Antigravity 的知识系统跨对话保留上下文:
/auto-review-loop的评审发现在未来会话中可用- 实验配置和结果持久保存在知识条目中
9. 常见限制与处理
| 限制 | 处理方式 |
|---|---|
无 /skill-name 斜杠命令 |
使用自然语言(自动发现)或显式引用 SKILL.md |
Skills 引用 $ARGUMENTS |
在提示词中写明实际参数 |
| SKILL.md 中用斜杠语法调用子技能 | 告诉 agent 显式读取并执行子技能的 SKILL.md 文件 |
allowed-tools 不强制执行 |
Antigravity agent 默认可使用所有已配置工具——实际无影响 |
Skills 引用 CLAUDE.md |
Antigravity 读 GEMINI.md——重命名或复制 CLAUDE.md 为 GEMINI.md,或告诉 agent 两个文件都读 |
| 上下文窗口因模型而异 | Claude Opus 4.6 与 Claude Code 类似;Gemini 3.1 Pro 窗口更大。必要时分阶段执行 |
10. 快速参考
# 文献综述
读取 skills/research-lit/SKILL.md,搜索 "discrete diffusion models" 相关论文。
# 创意发现(完整流程)
读取 skills/idea-discovery/SKILL.md,对 "factorized gap in discrete diffusion LMs" 运行创意发现。
# 单次深度评审
读取 skills/research-review/SKILL.md,评审我的研究:[描述或指向文件]。
# 自动评审循环
读取 skills/auto-review-loop/SKILL.md,运行自动评审循环。课题:"your paper topic"。
# 论文写作
读取 skills/paper-writing/SKILL.md,根据 NARRATIVE_REPORT.md 写论文。
# 部署实验
读取 skills/run-experiment/SKILL.md 和 GEMINI.md。
部署:python train.py --lr 1e-4 --epochs 10011. 迁移清单:Claude Code → Antigravity
- 安装 skills 到
~/.gemini/antigravity/skills/或/.agents/skills/ - 在
~/.gemini/settings.json配置 MCP 服务器 - 将
CLAUDE.md内容复制到GEMINI.md(或保留两者) - 选择模型:Claude Opus 4.6 (Thinking) 或 Gemini 3.1 Pro (high)
- 用自然语言或显式技能引用替代
/斜杠命令 - 验证 MCP 工具可用(codex 或 llm-chat)
- 快速测试:
读取 skills/research-review/SKILL.md 并评审我的项目
ARIS Code README CN (`docs/ARIS-Code-README_CN.md`)
ARIS-Code 文档已移至 aris-code 分支
ARIS Code README EN (`docs/ARIS-Code-README_EN.md`)
ARIS-Code docs moved to aris-code branch
👉 中文版
ARIS INTRO.Review.Json (`docs/ARIS_INTRO.review.json`)
{
"skill": "render-html",
"source": "docs/ARIS_INTRO.md",
"source_sha256": "7757b71ab1b1bacc6a4df7c7dc1909d74acd17542bfe815ee6a25522a908d0eb",
"output": "docs/ARIS_INTRO.html",
"author": "Ruofeng Yang (杨若峰), Shanghai Jiao Tong University",
"reviewer": "codex gpt-5.5 xhigh, fresh thread per run (never codex-reply)",
"verdict": "PASS",
"checks": {
"source_hash_match": "pass",
"information_fidelity": "pass",
"structure": "pass",
"math_code_tables": "pass",
"callouts": "pass",
"safety_escaping": "pass",
"placeholder_leak": "pass",
"link_targets_absolute": "pass",
"details_inner_markdown_rendered": "pass",
"no_absolute_local_path_leak": "pass",
"author_byline_rendered": "pass",
"per_workflow_schema_consistency": "pass",
"workflow_count_consistency": "pass"
},
"blocking_issues": [],
"warnings": [],
"history": [
{
"run": 1,
"verdict": "WARN",
"thread_id": "019e3bfe-69de-7de1-8d64-7c70e3d19013",
"issue": "Key safety features inner markdown bullets emitted as literal text",
"fix": "Added _render_html_block() in render_html.py — blocks recursively parse inner content as Markdown (GFM convention)"
},
{
"run": 2,
"verdict": "PASS",
"thread_id": "019e3c03-32ac-78a0-b3a0-969db86e009e",
"issue": null,
"fix": null
},
{
"run": 3,
"verdict": "PASS",
"thread_id": "019e3c0d-7c4a-7b30-abd1-8df2aa9ad275",
"issue": "Added privacy + byline pass — verified no absolute /Users/... path leaks, author byline renders with CJK characters intact",
"fix": "Renderer: added _repo_relative() helper for display path; added --author flag + {{BYLINE_BLOCK}} placeholder; templates render byline between subtitle and meta strip"
},
{
"run": 4,
"verdict": "FAIL",
"thread_id": "019e3c17-a220-7f10-8237-ada07335a1e6",
"issue": "Expanded doc with 6 new workflow detail sections; FAIL because W2 lacked closing callout while other workflows had one; minor 'Six Workflows' vs 7 entries label inconsistency",
"fix": "Added W2 closing 🔁 callout; renamed section heading to 'The Workflows'"
},
{
"run": 5,
"verdict": "WARN",
"thread_id": "019e3c1c-0c52-7f02-8756-c92a0d251004",
"issue": "W2's new 🔁 callout rendered as plain not styled callout (emoji not in callout-prefix map); residual 'Six workflows'/'六大工作流' wording in TL;DR and CN section",
"fix": "Added 🔁 (+ 🌱 / 📚 / 🧬) to _CALLOUT_PREFIX_MAP in render_html.py; updated TL;DR + CN section to 'Seven workflows (W1/W1.5/W2/W3/W4/W5/W6)' / '七条工作流'"
},
{
"run": 6,
"verdict": "WARN",
"thread_id": "019e3c1f-3ccd-7b40-80ff-28d93a8b2408",
"issue": "One residual 'across all six workflows' phrase in Research Wiki bullet",
"fix": "Changed 'six' → 'seven' in Research Wiki bullet"
},
{
"run": 7,
"verdict": "PASS",
"thread_id": "019e3c20-e5fd-7872-baf2-7819a572cf03",
"issue": null,
"fix": null
}
],
"summary": "Seven-round review: WARN (details MD) → PASS → PASS (privacy+byline) → FAIL (W2 missing closing callout) → WARN (🔁 not styled, count drift) → WARN (one stale count phrase) → PASS. 13 checks pass on run 7. Each round generated a renderer or content fix; full audit trail above. Final source SHA256 612bea09bdbe.",
"rendered_at": "2026-05-19"
}
CODEX CLAUDE REVIEW GUIDE (`docs/CODEX_CLAUDE_REVIEW_GUIDE.md`)
Codex + Claude Reviewer Guide
This guide documents a frozen legacy partial overlay. New installs use the complete Codex pack with reviewer selection; see migration and preserving customizations. Existing directories and links remain available, without new feature sync.
Run ARIS with:
- Codex as the main executor
- Claude Code CLI as the reviewer
- the local
claude-reviewMCP bridge as the transport layer
This guide is additive to the upstream Codex-native path. It does not replace skills/skills-codex/.
Architecture
- Base skill set:
skills/skills-codex/ - Reviewer override layer:
skills/skills-codex-claude-review/ - Reviewer bridge:
mcp-servers/claude-review/
The install order matters:
- install
skills/skills-codex/* - install
skills/skills-codex-claude-review/* - register
claude-reviewMCP
Install
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
mkdir -p ~/.codex/skills
cp -a skills/skills-codex/* ~/.codex/skills/
cp -a skills/skills-codex-claude-review/* ~/.codex/skills/
mkdir -p ~/.codex/mcp-servers/claude-review
cp mcp-servers/claude-review/server.py ~/.codex/mcp-servers/claude-review/server.py
codex mcp add claude-review -- python3 ~/.codex/mcp-servers/claude-review/server.pyIf your Claude login depends on a shell helper such as claude-aws, use the wrapper:
cp mcp-servers/claude-review/run_with_claude_aws.sh ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
chmod +x ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
codex mcp add claude-review -- ~/.codex/mcp-servers/claude-review/run_with_claude_aws.shOptional reviewer model override:
codex mcp remove claude-review
codex mcp add claude-review --env CLAUDE_REVIEW_MODEL=claude-opus-4-1 -- python3 ~/.codex/mcp-servers/claude-review/server.pyVerify
- Check MCP registration:
codex mcp list- Check Claude CLI login:
claude -p "Reply with exactly READY" --output-format json --tools ""- Start Codex in your project:
codex -C /path/to/your/projectWhat gets overridden
The overlay only replaces review-heavy skills:
research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loop
Everything else still comes from the upstream skills/skills-codex/ package.
Async reviewer flow
For long paper or project reviews, use:
review_startreview_reply_startreview_status
Why: in this host path, the review hop is:
Codex -> claude-review MCP -> local Claude CLI -> Claude backend
That extra local CLI hop is what makes long synchronous reviewer calls more likely to hit the observed Codex-hosted MCP timeout.
Project config
No special project config file is required for this path.
- keep using your existing
CLAUDE.md - keep your current project layout
- only switch the installed Codex skill files and MCP registration
Maintenance
Regenerate the overlay package with:
python3 tools/generate_codex_claude_review_overrides.pyCODEX CLAUDE REVIEW GUIDE CN (`docs/CODEX_CLAUDE_REVIEW_GUIDE_CN.md`)
Codex + Claude 审稿人指南
本页记录已冻结的旧 partial overlay 安装。新安装使用完整 Codex 包和 reviewer 选择;迁移与保留定制。旧目录与已有链接继续保留,不再同步新功能。
让 ARIS 以以下方式运行:
- Codex 作为主执行者
- Claude Code CLI 作为审稿人
- 通过本地
claude-reviewMCP bridge 连接两者
这条路径是对上游 Codex 原生方案的增量叠加,不会替代 skills/skills-codex/。
架构
- 基础技能包:
skills/skills-codex/ - 审稿覆盖层:
skills/skills-codex-claude-review/ - 审稿 bridge:
mcp-servers/claude-review/
安装顺序必须保持:
- 先安装
skills/skills-codex/* - 再安装
skills/skills-codex-claude-review/* - 最后注册
claude-reviewMCP
安装
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
mkdir -p ~/.codex/skills
cp -a skills/skills-codex/* ~/.codex/skills/
cp -a skills/skills-codex-claude-review/* ~/.codex/skills/
mkdir -p ~/.codex/mcp-servers/claude-review
cp mcp-servers/claude-review/server.py ~/.codex/mcp-servers/claude-review/server.py
codex mcp add claude-review -- python3 ~/.codex/mcp-servers/claude-review/server.py如果你的 Claude 登录依赖 claude-aws 之类的 shell helper,请改用 wrapper:
cp mcp-servers/claude-review/run_with_claude_aws.sh ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
chmod +x ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh
codex mcp add claude-review -- ~/.codex/mcp-servers/claude-review/run_with_claude_aws.sh如果你想固定 Claude 审稿模型:
codex mcp remove claude-review
codex mcp add claude-review --env CLAUDE_REVIEW_MODEL=claude-opus-4-1 -- python3 ~/.codex/mcp-servers/claude-review/server.py验证
- 检查 MCP 注册:
codex mcp list- 检查 Claude CLI 登录:
claude -p "Reply with exactly READY" --output-format json --tools ""- 在项目中启动 Codex:
codex -C /path/to/your/project哪些技能会被覆盖
覆盖层只替换 review-heavy 技能:
research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loop
其余技能仍然来自上游原生 skills/skills-codex/。
异步 reviewer 流程
对于长论文或长项目审稿,请使用:
review_startreview_reply_startreview_status
原因是这条宿主链路里的 review hop 更长:
Codex -> claude-review MCP -> 本地 Claude CLI -> Claude 后端
多出来的本地 CLI hop,正是长同步 reviewer 调用更容易撞上 Codex 侧 MCP 超时的主要原因。
项目配置
这条路径不要求你新建特殊项目配置文件。
- 继续使用现有
CLAUDE.md - 保持原有项目目录结构
- 只需要切换 Codex 安装的技能文件和 MCP 注册
维护
重新生成这个 overlay 包:
python3 tools/generate_codex_claude_review_overrides.pyCODEX GEMINI REVIEW GUIDE (`docs/CODEX_GEMINI_REVIEW_GUIDE.md`)
Codex + Gemini Reviewer Guide
This guide documents a frozen legacy partial overlay. New installs use the complete Codex pack with reviewer selection; see migration and preserving customizations. Existing directories and links remain available, without new feature sync.
Run ARIS with:
- Codex as the main executor
- Gemini as the reviewer
- the local
gemini-reviewMCP bridge as the transport layer - the direct Gemini API as the default reviewer backend
This guide is additive to the upstream Codex-native path. It does not replace skills/skills-codex/.
Architecture
- Base skill set:
skills/skills-codex/ - Reviewer override layer:
skills/skills-codex-gemini-review/ - Reviewer bridge:
mcp-servers/gemini-review/
The install order matters:
- install
skills/skills-codex/* - install
skills/skills-codex-gemini-review/* - register
gemini-reviewMCP
Install
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
mkdir -p ~/.codex/skills
cp -a skills/skills-codex/* ~/.codex/skills/
cp -a skills/skills-codex-gemini-review/* ~/.codex/skills/
mkdir -p ~/.codex/mcp-servers/gemini-review
cp mcp-servers/gemini-review/server.py ~/.codex/mcp-servers/gemini-review/server.py
cp mcp-servers/gemini-review/README.md ~/.codex/mcp-servers/gemini-review/README.md
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=api -- python3 ~/.codex/mcp-servers/gemini-review/server.pyRecommended credential file:
mkdir -p ~/.gemini
cat > ~/.gemini/.env <<'EOF'
GEMINI_API_KEY="your-key"
EOF
chmod 600 ~/.gemini/.envThe bridge auto-loads ~/.gemini/.env if present.
Why direct API is the default
- This path is designed to maximize reuse of the original ARIS reviewer-aware skills while minimizing skill changes.
- The
gemini-reviewbridge preserves the samereview/review_reply/review_start/review_reply_start/review_statuscontract used by the existing Claude-review overlay. - Using the direct Gemini API removes the extra local CLI hop and keeps the reviewer path closer to the API-backed integrations already used elsewhere in ARIS.
Access Notes
- Google AI Studio / Gemini API has a free tier in eligible countries; this does not require a Gemini Advanced / Google One AI Premium subscription.
- Free-tier model availability and rate limits change over time, so do not treat any single quota number or older model example as permanent.
- On the free tier, prompts and responses may be used to improve Google's products; do not position this path as suitable for sensitive data unless the user has reviewed the current official terms.
- Official references:
- API key / AI Studio entry: https://aistudio.google.com/apikey
- Gemini API pricing and free tier: https://ai.google.dev/gemini-api/docs/pricing
Optional CLI fallback
The intended path is direct API. If you explicitly need Gemini CLI instead:
codex mcp remove gemini-review
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=cli -- python3 ~/.codex/mcp-servers/gemini-review/server.pyThat fallback is available, but it is not the primary path for this guide.
Verify
- Check MCP registration:
codex mcp list- Check that your Gemini API key file exists:
test -f ~/.gemini/.env && echo "Gemini env file found"- Start Codex in your project:
codex -C /path/to/your/projectTroubleshooting
If the default API model returns temporary free-tier 429 responses in your current window, keep the same bridge and override only the reviewer model:
codex mcp remove gemini-review
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=api --env GEMINI_REVIEW_MODEL=gemini-flash-latest -- python3 ~/.codex/mcp-servers/gemini-review/server.pyThis does not change the ARIS reviewer contract or skill overlay shape. It only changes the Gemini API model used behind the same local gemini-review bridge.
Validation Summary
This path was validated in two layers:
- Full overlay coverage check: all
15predefined reviewer-aware Codex skills overridden byskills/skills-codex-gemini-review/were checked to confirm they point atgemini-reviewand no longer depend on the old reviewer transport. - Runtime bridge check: the local
gemini-reviewMCP bridge was exercised with:reviewreview_replyreview_startreview_reply_startreview_statusimagePathsmultimodal review for local images
- Representative Codex-side smoke tests: we ran the overlay on a private, non-public research repository and confirmed that real Codex executions reached the Gemini reviewer path for representative tasks in research review, idea generation, and paper-planning style workflows.
What passed:
- direct API review returned valid reviewer text
- async review jobs completed and could be resumed through
review_status - follow-up review rounds worked with persisted thread state
- local-image review worked through
imagePaths - the runtime-tested Codex skill paths successfully loaded the Gemini overlay and issued real
gemini-reviewtool calls
What we observed:
- Gemini free-tier access is practical for this reviewer path, but bursty test loops can still trigger temporary
429rate-limit responses - rate-limit behavior is model-dependent; current API model surfaces should be checked in AI Studio /
ListModels, not inferred from older quota tables - in a later retry on the same setup, the direct API bridge completed sync review, async
review_start->review_status, and threadedreview_reply_start->review_statussuccessfully withGEMINI_REVIEW_MODEL=gemini-flash-latest - those
429responses behaved like short-window burst limits, not a sign that the integration itself was broken - long synchronous reviewer calls can still hit host-side MCP tool timeouts, so the async
review_start/review_reply_start+review_statusflow remains the recommended default for long prompts
This is why the bridge exposes both sync and async tools, while the reviewer-aware skill overlays prefer the async path for long reviews.
What gets overridden
The overlay replaces the predefined reviewer-aware Codex skills:
idea-creatoridea-discoveryidea-discovery-robotresearch-reviewnovelty-checkresearch-refineauto-review-loopgrant-proposalpaper-planpaper-figurepaper-poster-htmlpaper-slidespaper-writepaper-writingauto-paper-improvement-loop
Everything else still comes from the upstream skills/skills-codex/ package.
Core 8 vs Runtime 15
There are two equally correct ways to describe the scope of this path:
- Core 8: the direct one-to-one reviewer overlay set that aligns with the existing Claude-review path
- Runtime 15: the full reviewer-aware Codex skill surface that is routed to Gemini in the current installed skill set
The core 8 are:
research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loop
These are the skills that most directly mirror the earlier Claude-review overlay structure and reviewer contract.
The additional 7 reviewer-aware skills routed to Gemini are:
idea-creatoridea-discoveryidea-discovery-robotgrant-proposalpaper-writingpaper-slidespaper-poster-html
So the practical summary is:
- the core mechanism still tracks the same 8-skill overlay pattern as the Claude route
- the current runtime reviewer surface is broader, reaching 15 skills in total
This is why the diff is larger without changing the underlying reviewer contract shape.
Direct Consumers vs Wrappers
Within those 15 skills, there are two categories:
- 12 direct consumers that call
mcp__gemini-review__review_start/review_reply_start/review_statusthemselves:research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loopidea-creatorgrant-proposalpaper-slidespaper-poster-html
- 3 wrappers that mainly orchestrate downstream reviewer-aware sub-skills and pass
REVIEWER_MODEL=gemini-reviewthrough:idea-discoveryidea-discovery-robotpaper-writing
This matters for validation: you do not need to fully complete all 15 workflows to validate the reviewer transport. A combination of full structural checks, bridge runtime checks, and representative direct-consumer / wrapper smoke tests is enough to validate the PR-level integration logic.
Async reviewer flow
For long paper or project reviews, use:
review_startreview_reply_startreview_status
Why: even on the direct API path, long synchronous reviewer calls can still hit host-side MCP tool timeouts. The async review* flow keeps the original reviewer-aware skills usable without changing their behavior.
Project config
No special project config file is required for this path.
- keep using your existing
CLAUDE.md - keep your current project layout
- only switch the installed Codex skill files and MCP registration
Maintenance
Keep this path intentionally narrow:
- reuse
skills/skills-codex/*unchanged - only override the reviewer-aware skills in
skills/skills-codex-gemini-review/* - keep
mcp-servers/gemini-review/server.pyfocused on thereview*compatibility contract - when a skill needs poster PNG review, pass local
imagePathsthrough the direct Gemini API backend instead of inventing a second bridge
CODEX GEMINI REVIEW GUIDE CN (`docs/CODEX_GEMINI_REVIEW_GUIDE_CN.md`)
Codex + Gemini 审稿人指南
本页记录已冻结的旧 partial overlay 安装。新安装使用完整 Codex 包和 reviewer 选择;迁移与保留定制。旧目录与已有链接继续保留,不再同步新功能。
使用:
- Codex 作为主执行者
- Gemini 作为审稿人
- 本地
gemini-reviewMCP bridge 作为传输层 - direct Gemini API 作为默认 reviewer backend
这份指南是对上游 skills/skills-codex/ 的叠加方案,不是替换。
架构
- 基础 skill 集:
skills/skills-codex/ - 审稿覆盖层:
skills/skills-codex-gemini-review/ - 审稿 bridge:
mcp-servers/gemini-review/
安装顺序很重要:
- 先安装
skills/skills-codex/* - 再安装
skills/skills-codex-gemini-review/* - 最后注册
gemini-reviewMCP
安装
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
mkdir -p ~/.codex/skills
cp -a skills/skills-codex/* ~/.codex/skills/
cp -a skills/skills-codex-gemini-review/* ~/.codex/skills/
mkdir -p ~/.codex/mcp-servers/gemini-review
cp mcp-servers/gemini-review/server.py ~/.codex/mcp-servers/gemini-review/server.py
cp mcp-servers/gemini-review/README.md ~/.codex/mcp-servers/gemini-review/README.md
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=api -- python3 ~/.codex/mcp-servers/gemini-review/server.py推荐凭证文件:
mkdir -p ~/.gemini
cat > ~/.gemini/.env <<'EOF'
GEMINI_API_KEY="your-key"
EOF
chmod 600 ~/.gemini/.env如果存在,bridge 会自动加载 ~/.gemini/.env。
为什么默认走 direct API
- 这条路径的目标是:最大化复用原始 ARIS 的 reviewer-aware skills,同时最少改 skill。
gemini-reviewbridge 保留了与 Claude-review overlay 相同的review/review_reply/review_start/review_reply_start/review_status契约。- 直接走 Gemini API 可以去掉本地 CLI 这一跳,让 reviewer 路径更接近 ARIS 里已有的 API 型集成方式。
接入边界说明
- Google AI Studio / Gemini API 在支持地区提供免费层;这不要求你先订阅 Gemini Advanced / Google One AI Premium。
- 免费层可用模型、速率限制和配额会变化,不应把某个固定额度或旧模型示例写成长期承诺。
- 免费层下的 prompt / response 处理条款与付费层不同;如果涉及敏感数据,必须先核对官方当前条款。
- 官方入口与定价说明:
- API key / AI Studio:https://aistudio.google.com/apikey
- Gemini API 定价与免费层:https://ai.google.dev/gemini-api/docs/pricing
可选 CLI fallback
这份指南的预期路径是 direct API。
如果你明确想切到 Gemini CLI,可改成:
codex mcp remove gemini-review
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=cli -- python3 ~/.codex/mcp-servers/gemini-review/server.py但这不是本指南的主路径。
验证
- 检查 MCP 是否注册成功:
codex mcp list- 检查本地 Gemini 凭证文件是否存在:
test -f ~/.gemini/.env && echo "Gemini env file found"- 在你的项目里启动 Codex:
codex -C /path/to/your/project排障
如果默认 API 模型在你当前的免费层时间窗口里返回临时 429,不要改 bridge 结构,只需要覆盖 reviewer model:
codex mcp remove gemini-review
codex mcp add gemini-review --env GEMINI_REVIEW_BACKEND=api --env GEMINI_REVIEW_MODEL=gemini-flash-latest -- python3 ~/.codex/mcp-servers/gemini-review/server.py这不会改变 ARIS 的 reviewer 契约,也不会改变 skill overlay 的组织方式,只是让同一个本地 gemini-review bridge 在底层改用另一个 Gemini API 模型。
验证结果摘要
这条路径做了两层验证:
- 全量 overlay 覆盖检查:
skills/skills-codex-gemini-review/覆盖的15个预定义 reviewer-aware Codex skill 都逐一核对过,确认已经指向gemini-review,不再依赖旧的 reviewer transport。 - bridge 运行时验证:本地
gemini-reviewMCP bridge 实测覆盖了:reviewreview_replyreview_startreview_reply_startreview_status- 基于本地图像的
imagePaths多模态审查
- 代表性 Codex 侧 smoke test:我们在一个私有、未公开的研究仓库上实跑了这套 overlay,确认真实的 Codex 执行能够进入 Gemini reviewer 路径,覆盖了研究审稿、idea 生成、论文规划这几类代表性工作流。
已经验证通过的点:
- direct API 审稿可以返回有效 reviewer 文本
- 异步 review job 可以完成,并可通过
review_status恢复状态 - 带 thread 状态的 follow-up review 可以继续多轮对话
imagePaths本地图像审查可用- 已实跑的 Codex skill 路径能够正确加载 Gemini overlay,并发出真实的
gemini-reviewtool call
测试中的实际观察:
- Gemini 免费层对这条 reviewer 路径是可用的,但如果在很短时间内集中压测,仍然可能出现临时
429 - 速率限制表现和具体模型有关;当前 API 模型面应以 AI Studio /
ListModels为准,而不是沿用旧配额表里的模型示例 - 在同一套环境上的后续重试中,把
GEMINI_REVIEW_MODEL覆盖为gemini-flash-latest后,direct API bridge 已成功跑通同步 review、异步review_start->review_status以及带 thread 的review_reply_start->review_status - 这类
429更像是短时间 burst limit,而不是集成本身失效 - 对超长 prompt,宿主侧 MCP tool timeout 仍可能先于同步调用返回,所以长审稿默认仍推荐
review_start/review_reply_start+review_status
这也是为什么 bridge 同时暴露同步和异步工具,而 reviewer-aware skill overlay 默认优先走异步流程。
会覆盖哪些 skill
这个 overlay 会替换预定义的 reviewer-aware Codex skills:
idea-creatoridea-discoveryidea-discovery-robotresearch-reviewnovelty-checkresearch-refineauto-review-loopgrant-proposalpaper-planpaper-figurepaper-poster-htmlpaper-slidespaper-writepaper-writingauto-paper-improvement-loop
其它能力仍然来自上游 skills/skills-codex/。
核心 8 个 vs 运行态 15 个
这条路径有两种都成立的描述方式:
- 核心 8 个:和现有 Claude-review 路径一一对齐的 reviewer overlay 核心集合
- 运行态 15 个:当前安装后的 Codex skill 集里,实际切到 Gemini reviewer 的完整 reviewer-aware 技能面
其中 核心 8 个 是:
research-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loop
这 8 个最直接对应早先 Claude-review overlay 的组织方式和 reviewer 契约。
另外扩展进去的 7 个 reviewer-aware 技能是:
idea-creatoridea-discoveryidea-discovery-robotgrant-proposalpaper-writingpaper-slidespaper-poster-html
所以更准确的理解是:
- 核心机制 仍然沿用和 Claude 路径相同的 8-skill overlay 形状
- 运行态 reviewer 覆盖面 则已经扩展到 15 个 skill
这也解释了为什么 diff 更大,但并不意味着 reviewer 契约本身被改乱了。
直接消费者 vs wrapper
这 15 个 skill 里又可以分成两类:
- 12 个直接消费者:自己会直接调用
mcp__gemini-review__review_start/review_reply_start/review_statusresearch-reviewnovelty-checkresearch-refineauto-review-looppaper-planpaper-figurepaper-writeauto-paper-improvement-loopidea-creatorgrant-proposalpaper-slidespaper-poster-html
- 3 个 wrapper:主要负责串联下游 reviewer-aware 子 skill,并向下传递
REVIEWER_MODEL=gemini-reviewidea-discoveryidea-discovery-robotpaper-writing
这层分类对验收很重要:不需要把 15 条工作流都完整跑到底,才能证明 reviewer transport 是通的。对于 PR 验收,更合理的做法是:全量结构检查 + bridge 运行时验证 + 少量直接消费者 / wrapper 的代表性 smoke test 组合验证。
异步 reviewer 流程
对于长论文 / 长项目审稿,使用:
review_startreview_reply_startreview_status
原因:即便走 direct API,超长同步 reviewer 调用仍然可能撞上宿主侧的 MCP timeout。保留异步 review* 流程,才能在不改原有 reviewer-aware skill 行为的前提下继续复用它们。
项目配置
这条路径不需要额外的项目配置文件。
- 继续使用你现有的
CLAUDE.md - 保持现有项目布局
- 只切换安装的 Codex skill 文件和 MCP 注册
维护原则
让这条路径保持足够窄:
- 基础能力继续复用
skills/skills-codex/* - 只在
skills/skills-codex-gemini-review/*里覆盖 reviewer-aware skills - 让
mcp-servers/gemini-review/server.py只聚焦review*兼容契约 - 如果某个 skill 需要审查 poster PNG,就通过 direct Gemini API backend 传
imagePaths,而不是再发明第二套 bridge
CODEX POLICY AUDIT (`docs/CODEX_POLICY_AUDIT.md`)
Codex skill invocation audit (#433)
Install the audit dependency in your Python environment, then run:
python -m pip install -r tools/requirements-codex-policy-audit.txt
python tools/audit_codex_invocation.py --root skills/skills-codex > codex-policy-report.jsonThe report inventories the Codex mirror, detects malformed/duplicate opt-in invocation policies and lists skills referenced by other skills. A reference is a conservative warning, not evidence of a successful runtime sub-skill invocation.
YAML is parsed with PyYAML's safe loader, including block and flow mappings. Duplicate keys, malformed YAML, non-mapping policies, and non-boolean invocation flags are errors. An omitted policy or flag retains Codex's implicit-invocation default. The report always records runtime_verified: false; static references cannot establish runtime compatibility.
The audit is read-only. It never sets allow_implicit_invocation: false, because a maintainer raised a risk that explicit-only configuration may disable parent-to-child skill calls. Before changing policies, verify actual $child-skill invocation with the installed Codex CLI and record its version. Run python tools/audit_codex_invocation.py --fail-on-referenced-explicit to fail closed for any potentially blocked references.
Runtime diagnostic with real Codex CLI
Run python tools/probe_codex_invocation.py with an installed codex executable. The script initializes a disposable Git project and CODEX_HOME, creates two control skills, and calls codex debug prompt-input once with a neutral prompt that names neither skill. No model requests or credentials are needed; the installed skills and user configuration are untouched.
Observed on GitHub-hosted Ubuntu in the original probe and reproduced locally on macOS with the neutral prompt using codex-cli 0.163.0:
- Default skill: present in model-visible
<skills_instructions>metadata. - Skill with
policy.allow_implicit_invocation: false: absent from the implicit catalog. - This verifies discovery/context filtering only. It does not test explicit invocation or establish that a parent ARIS Skill can invoke an explicit-only child.
Original CI evidence: https://github.com/SiyuanChenToDo/Auto-claude-code-research-in-sleep/actions/runs/39044605650
The dedicated workflow runs on relevant pull requests, pushes to main, and manual dispatch. It publishes the static report and pins the catalog probe to Codex 0.163.0 so CLI changes are reviewed explicitly. Unit tests run in the normal Linux/macOS test suite. A missing control or unusable debug output is inconclusive (exit 2); a visible explicit-only control is a filtering failure (exit 3).
Before any shipping policy changes, exercise a real parent-to-child workflow through Codex CLI in the relevant execution mode, and ensure the child Skill body and artifacts are actually produced. Upstream issue openai/codex#40600 reports explicit $skill expansion problems on Codex 0.149.0; this probe does not reproduce or resolve that issue on 0.163.0. Keep current defaults until the parent-to-child compatibility gate is satisfied. This diagnostic does not close ARIS #433.
COPILOT CLI ADAPTATION (`docs/COPILOT_CLI_ADAPTATION.md`)
GitHub Copilot CLI Adaptation Guide (ARIS Workflows)
Use ARIS research workflows in GitHub Copilot CLI (
gh copilot/ standalonecopilot).Verified with: Copilot CLI v0.130+ (GA, May 2026). Run
copilot --versionto confirm. If your version differs, use/modelto check available models and verify MCP support.
Copilot CLI natively supports SKILL.md files with the same YAML frontmatter format used by ARIS, making it one of the most compatible hosts — no skill mirror needed, mainline skills work directly.
1. Key Differences: Claude Code vs Copilot CLI
| Concept | Claude Code | Copilot CLI |
|---|---|---|
| Skill invocation | /skill-name "args" |
/skill-name "args" (identical) |
| Skill storage | ~/.claude/skills/skill-name/SKILL.md |
.github/skills/skill-name/SKILL.md (project) or ~/.copilot/skills/skill-name/SKILL.md (global) |
| MCP servers | claude mcp add ... |
~/.copilot/mcp-config.json or .mcp.json (project) |
| Project instructions | CLAUDE.md |
AGENTS.md (root) or .github/copilot-instructions.md |
| Agent execution | Persistent CLI session | Persistent CLI session (similar) |
| File operations | Always available | --allow-tool='write' / --allow-tool='shell' |
| Skill discovery | Slash commands + auto-match | Slash commands + auto-match from description |
| Models | Claude Opus 4.6 | GPT-5 mini, GPT-4.1, GPT-5, o3 (configurable via /model) |
2. Setup
2.1 Install Copilot CLI
# Via GitHub CLI extension
gh extension install github/copilot-cli
# Or standalone
npm install @github/copilot-cli2.2 Clone ARIS and install skills
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git ~/aris_repo
cd ~/your-project
# Symlink install (recommended, stays in sync with upstream)
bash ~/aris_repo/tools/install_aris_copilot.sh .This creates:
.github/skills/<skill-name> -> ~/aris_repo/skills/<skill-name>
.aris/installed-skills-copilot.txt # manifest
AGENTS.md # managed block addedReconcile after upstream changes:
cd ~/aris_repo && git pull
bash ~/aris_repo/tools/install_aris_copilot.sh ~/your-project --reconcileUninstall:
bash ~/aris_repo/tools/install_aris_copilot.sh ~/your-project --uninstall2.3 Alternative: Copy-based install
For environments where symlinks don't work:
# Global install
mkdir -p ~/.copilot/skills
cp -r ~/aris_repo/skills/* ~/.copilot/skills/
# Remove Codex-specific mirrors (not needed for Copilot CLI)
rm -rf ~/.copilot/skills/skills-codex*
# Update later
bash ~/aris_repo/tools/smart_update_copilot.sh --apply
# Project-level
bash ~/aris_repo/tools/smart_update_copilot.sh --project ~/your-project --apply2.4 Native auto-review and optional Codex MCP
/auto-review-loop now defaults to Copilot CLI's built-in complementaryrubber-duck subagent. ARIS verifies the native lifecycle and the actual
cross-family model pair from Copilot session events, so this default needs no
Codex MCP. If no complementary model is available, the loop fails closed or
uses a positively available opposite-family fallback.
The current Copilot account/session must expose the built-in rubber-duck
agent. Check /subagents in an interactive Copilot session if it is absent.
ARIS does not change Copilot user settings or enable experimental features on
your behalf; an unavailable native agent triggers the same fail-closed fallback
and is never replaced by a generic agent under a rubber-duck label.
Other reviewer skills still use their documented external backends. Configure
Codex MCP if you use those skills, explicitly pass — reviewer: codex, or want
an Anthropic/Google-executor fallback for /auto-review-loop:
Install and authenticate Codex:
bashnpm install @openai/codex codex loginAdd MCP server — edit
~/.copilot/mcp-config.json:json{ "mcpServers": { "codex": { "command": "python3", "args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"] } } }Or project-level
.mcp.json:json{ "mcpServers": { "codex": { "command": "python3", "args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"] } } }Restart Copilot CLI. Verify with
/mcpor check thatmcp__codex__codexappears in available tools.
2.5 Alternative reviewer MCP (no OpenAI API)
Use the llm-chat MCP server with any OpenAI-compatible API (DeepSeek, GLM, MiniMax, Kimi, etc.):
Install dependencies:
bashcd ~/aris_repo python3 -m venv .venv .venv/bin/pip install -r mcp-servers/llm-chat/requirements.txtAdd to
~/.copilot/mcp-config.json(absolute paths required):json{ "mcpServers": { "llm-chat": { "command": "/path/to/aris_repo/.venv/bin/python3", "args": ["/path/to/aris_repo/mcp-servers/llm-chat/server.py"], "env": { "LLM_BASE_URL": "https://api.deepseek.com/v1", "LLM_API_KEY": "your_key", "LLM_MODEL": "deepseek-chat" } } } }
See LLM_API_MIX_MATCH_GUIDE.md for tested provider configurations.
2.6 Project instructions (AGENTS.md)
Copilot CLI reads AGENTS.md for project-specific instructions. The installer adds a managed block automatically. Add your own sections:
## GPU Server
- SSH: `ssh my-gpu-server` (key-based auth)
- GPU: 4x A100
- Conda env: `research` (Python 3.10 + PyTorch)
- Activate: `eval "$(/opt/conda/bin/conda shell.bash hook)" && conda activate research`
- Code directory: `/home/user/experiments/`
## Research Project
- Topic: [your research topic]
- Target venue: ICLR/NeurIPS/ICML3. How to Invoke Skills
Copilot CLI supports the same slash command syntax as Claude Code:
/research-lit "discrete diffusion models"
/idea-discovery "factorized gap in discrete diffusion LMs"
/auto-review-loop "your paper topic"
/paper-writing "NARRATIVE_REPORT.md"
/research-pipeline "your direction"Skills are also auto-discovered from their description field — just describe what you want naturally:
Find papers about discrete diffusion models
Run the full idea discovery pipeline for my research directionType / to see all available skills.
4. Workflow Mapping
Since Copilot CLI uses the same slash command syntax, all workflows work identically to Claude Code:
Full Pipeline
/research-pipeline "your research direction"Individual Workflows
| Workflow | Command |
|---|---|
| W1: Idea Discovery | /idea-discovery "direction" |
| W1.5: Experiment Bridge | /experiment-bridge |
| W2: Auto Review | /auto-review-loop "scope" |
| W3: Paper Writing | /paper-writing "NARRATIVE_REPORT.md" |
| W4: Rebuttal | /rebuttal "paper/ + reviews" — venue: ICML, character limit: 5000 |
Parameters
Same syntax as Claude Code:
/research-pipeline "topic" — effort: beast, difficulty: nightmare, auto_write: true, venue: NeurIPS
/auto-review-loop "topic" — human checkpoint: true, compact: true5. MCP Tool Calls
ARIS skills reference MCP tools by name. These work in Copilot CLI once configured:
| ARIS MCP tool | What it does | Required MCP server |
|---|---|---|
mcp__codex__codex |
Send prompt to GPT-6-Astra/5.5 | Codex |
mcp__codex__codex-reply |
Continue conversation thread | Codex |
mcp__llm-chat__chat |
Send prompt to any OpenAI-compatible model | llm-chat |
mcp__zotero__* |
Search Zotero library | zotero |
mcp__obsidian-vault__* |
Search Obsidian vault | obsidian-vault |
Note: If using
llm-chatinstead of Codex, use the adapted skill variant:/auto-review-loop-llm.
6. State Files & Recovery
ARIS workflows persist state for crash recovery. These work identically in Copilot CLI:
| File | Purpose | Written by |
|---|---|---|
review-stage/REVIEW_STATE.json |
Auto-review loop progress | /auto-review-loop |
review-stage/AUTO_REVIEW.md |
Cumulative review log | /auto-review-loop |
idea-stage/IDEA_REPORT.md |
Ranked ideas with pilot results | /idea-discovery |
PAPER_PLAN.md |
Paper outline + claims matrix | /paper-plan |
refine-logs/FINAL_PROPOSAL.md |
Refined method proposal | /research-refine |
refine-logs/EXPERIMENT_PLAN.md |
Experiment roadmap | /experiment-plan |
If a session ends mid-workflow, start a new session — the skill reads state files automatically and resumes.
7. Permission Flags
Copilot CLI requires explicit permission for file writes and shell execution. For ARIS workflows (which need both), launch with:
copilot --allow-tool='write' --allow-tool='shell'Or configure in ~/.copilot/config:
allowed_tools:
- write
- shellSecurity note: Only grant these permissions in projects where you trust the ARIS skills. The skills never execute arbitrary code — they only run experiment scripts you've approved.
8. Model Selection
Copilot CLI supports multiple executor models. Use /model to switch:
| Model | Best for | Notes |
|---|---|---|
| GPT-5 mini | Fast iteration, simple tasks | Included in subscription |
| GPT-4.1 | Balanced quality/speed | Included in subscription |
| GPT-5 | Complex reasoning, long pipelines | Premium requests |
| o3 | Deep mathematical reasoning | Premium requests |
Tip: For full research pipelines (
/research-pipeline,/paper-writing), use GPT-5 or o3 for best results. For quick tasks (/research-lit,/paper-compile), GPT-5 mini is sufficient.
9. Copilot CLI-Specific Features
Explore Agent
Use Copilot's built-in /explore for fast codebase questions without cluttering main context — useful before invoking ARIS skills:
/explore How is the experiment pipeline structured in this project?Task Agent
Use /task for running builds and tests alongside ARIS workflows:
/task Run pytest and report failuresGitHub MCP Server
Copilot's native GitHub MCP integrates with ARIS workflows for issue/PR management:
/research-pipeline "topic"
# ... after completion ...
# Create a PR with the paperWeb Fetch
The built-in web_fetch tool complements ARIS's /research-lit for fetching paper content:
/research-lit "topic" — sources: web10. Limitations & Workarounds
| Limitation | Workaround |
|---|---|
Skills reference CLAUDE.md |
Copilot reads AGENTS.md instead. The installer creates this. Skills that read CLAUDE.md internally will still work if you keep both files, or create a symlink: ln -s AGENTS.md CLAUDE.md |
allowed-tools in SKILL.md |
Copilot respects these but requires user-level permission flags (--allow-tool) to actually execute |
| Native rubber-duck unavailable | Check whether /subagents exposes/enables rubber-duck; ARIS does not change this setting automatically. If unavailable, configure an opposite-family external fallback or use an account/session that exposes it |
| Native complementary model unavailable | /auto-review-loop never accepts a same/unknown-family review. Configure an opposite-family external fallback (Codex for Anthropic/Google executors; a non-OpenAI manual reviewer for OpenAI executors), or switch the Copilot session model/account |
| No auto-compact recovery | Copilot CLI handles long sessions natively. Use state files for manual recovery if needed |
| Context window varies by model | GPT-5 mini has smaller context. For long pipelines, use GPT-5 or break into stages |
Cross-Model Review Consideration
For /auto-review-loop, native rubber-duck chooses a complementary model and
ARIS rejects same/unknown-family evidence. If you explicitly force Codex while
the Copilot executor is also OpenAI-family—or use another reviewer skill whose
default is Codex—choose a non-OpenAI external reviewer instead:
Use
llm-chatMCP with Claude as reviewer (true cross-family):json{ "mcpServers": { "llm-chat": { "command": "/path/to/.venv/bin/python3", "args": ["/path/to/mcp-servers/llm-chat/server.py"], "env": { "LLM_BASE_URL": "https://api.anthropic.com/v1", "LLM_API_KEY": "your_anthropic_key", "LLM_MODEL": "claude-sonnet-4-6" } } } }Or use the dedicated
claude-reviewMCP server.
11. Quick Reference
# Install skills to project
bash ~/aris_repo/tools/install_aris_copilot.sh .
# Update after upstream changes
cd ~/aris_repo && git pull
bash ~/aris_repo/tools/install_aris_copilot.sh ~/your-project --reconcile
# Launch Copilot with full permissions for ARIS
copilot --allow-tool='write' --allow-tool='shell'
# Run workflows (same as Claude Code)
/research-lit "discrete diffusion models"
/idea-discovery "factorized gap" — effort: max
/auto-review-loop "paper topic" — difficulty: hard
/paper-writing "NARRATIVE_REPORT.md" — venue: NeurIPS
/rebuttal "paper/ + reviews" — venue: ICML, character limit: 500012. Migration Checklist: Claude Code → Copilot CLI
- Install skills:
bash tools/install_aris_copilot.sh . - Optional/other reviewer skills: add Codex or llm-chat to
~/.copilot/mcp-config.json - Copy
CLAUDE.mdcontent toAGENTS.md(or keep both + symlink) - Set permission flags:
--allow-tool='write' --allow-tool='shell' - Verify: type
/to see ARIS skills listed - Test native default:
/auto-review-loop "small review scope" - If using external reviewer skills, test
/research-review "your draft"
CURSOR ADAPTATION (`docs/CURSOR_ADAPTATION.md`)
Cursor Adaptation Guide (ARIS Workflows)
Use ARIS research workflows in Cursor without Claude Code slash commands.
1. Key Differences: Claude Code vs Cursor
| Concept | Claude Code | Cursor |
|---|---|---|
| Skill invocation | /skill-name "args" (slash command) |
Paste instructions or @-reference the SKILL.md |
| Skill storage | ~/.claude/skills/skill-name/SKILL.md |
.cursor/rules/*.mdc or reference directly |
| MCP servers | claude mcp add ... |
Cursor Settings → Features → MCP, or .cursor/mcp.json |
| Agent execution | Always-on CLI | Agent mode (Ctrl/Cmd+I or chat panel) |
| File references | Auto-read from project | @filename to attach context |
| Long-running jobs | Single CLI session, auto-compact recovery | Chat sessions; use state files for recovery |
2. Setup
2.1 Clone the repo
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.gitImportant: Open this repo (or add it as a workspace folder) in Cursor. The
@skills/...references throughout this guide use Cursor's@-file feature, which only resolves files within your open workspace. If you work in a separate project, either copy theskills/folder into it or add the ARIS repo as a second workspace folder (File → Add Folder to Workspace).
2.2 Set up Codex MCP in Cursor (for review skills)
ARIS uses an external LLM (GPT-6-Astra via Codex) as a critical reviewer. To enable this in Cursor:
Install Codex CLI and authenticate:
bashnpm install @openai/codex codex login # authenticate with your ChatGPT or API keyAdd MCP server in Cursor — create or edit
.cursor/mcp.jsonin your project root:json{ "mcpServers": { "codex": { "command": "python3", "args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"] } } }Restart Cursor. Verify the MCP server appears under Settings → Features → MCP.
2.3 Set up alternative reviewer (no OpenAI API)
If you don't have an OpenAI API key, use the llm-chat MCP server with any OpenAI-compatible API (DeepSeek, GLM, MiniMax, Kimi, etc.):
Create a virtual environment and install the required dependency (the server needs
httpx):bashcd /path/to/Auto-claude-code-research-in-sleep python3 -m venv .venv .venv/bin/pip install -r mcp-servers/llm-chat/requirements.txtAdd MCP server in Cursor — create or edit
.cursor/mcp.json. Both paths must be absolute —commandpoints to the venv python (not system python, otherwisehttpxwon't be found), andargspoints to the server script:json{ "mcpServers": { "llm-chat": { "command": "/path/to/Auto-claude-code-research-in-sleep/.venv/bin/python3", "args": ["/path/to/Auto-claude-code-research-in-sleep/mcp-servers/llm-chat/server.py"], "env": { "LLM_BASE_URL": "https://api.deepseek.com/v1", "LLM_API_KEY": "your_key", "LLM_MODEL": "deepseek-chat" } } } }Restart Cursor. Verify the MCP server appears (green dot) under Settings → Features → MCP. If it shows a red dot, check
llm-chat-mcp-debug.login your system temp directory (runpython3 -c "import tempfile; print(tempfile.gettempdir())"to locate it).
See LLM_API_MIX_MATCH_GUIDE.md for tested provider configurations.
3. How to Invoke Skills
Claude Code uses /skill-name to auto-load a SKILL.md. In Cursor, you have three approaches:
Approach A: `@`-reference the SKILL.md (recommended)
In Cursor's agent mode chat, type:
@skills/auto-review-loop/SKILL.md
Run the auto review loop for "factorized gap in discrete diffusion LMs".Cursor reads the full SKILL.md and follows the instructions. This is the closest equivalent to Claude Code's /auto-review-loop.
Approach B: Convert to Cursor Rules (for frequent use)
For skills you use often, convert them to Cursor Rules so they load automatically:
Create
.cursor/rules/in your project root.Create a rule file, e.g.
.cursor/rules/auto-review-loop.mdc:text--- description: "Autonomous multi-round research review loop" globs: - "review-stage/AUTO_REVIEW.md" - "review-stage/REVIEW_STATE.json" --- [Paste the full SKILL.md content here, minus the YAML frontmatter]The rule activates automatically when you work with matching files, or you can reference it manually.
Approach C: Direct prompt (one-off use)
Copy the relevant workflow instructions directly into the chat. Best for quick, one-time use.
4. Workflow Mapping
Workflow 1: Idea Discovery
Claude Code:
/idea-discovery "your research direction"Cursor equivalent:
@skills/idea-discovery/SKILL.md
Run the full idea discovery pipeline for "your research direction".
Use these sub-skills in sequence (the SKILL.md references them as
/skill-name which is Claude Code syntax — use these @-references instead):
1. @skills/research-lit/SKILL.md — literature survey
2. @skills/idea-creator/SKILL.md — brainstorm ideas
3. @skills/novelty-check/SKILL.md — verify novelty
4. @skills/research-review/SKILL.md — critical review
5. @skills/research-refine-pipeline/SKILL.md — refine method + plan experimentsTip: Cursor's context window may be smaller than Claude Code's. For long pipelines, run each phase in a separate chat and pass results via files (e.g.,
idea-stage/IDEA_REPORT.md,refine-logs/FINAL_PROPOSAL.md).
Workflow 1.5: Experiment Bridge
Claude Code:
/experiment-bridgeCursor equivalent:
@skills/experiment-bridge/SKILL.md
Read refine-logs/EXPERIMENT_PLAN.md and implement the experiments.
Deploy to GPU via @skills/run-experiment/SKILL.md.Workflow 2: Auto Review Loop
Claude Code:
/auto-review-loop "your paper topic"Cursor equivalent:
@skills/auto-review-loop/SKILL.md
Run the auto review loop for "your paper topic".
Read project narrative docs, memory files, experiment results.
Use MCP tool mcp__codex__codex for external review.Important: If using the
llm-chatMCP instead of Codex, replacemcp__codex__codexwithmcp__llm-chat__chatin your prompt. See auto-review-loop-llm for the adapted skill.
Workflow 3: Paper Writing
Claude Code:
/paper-writing "NARRATIVE_REPORT.md"Cursor equivalent:
@skills/paper-writing/SKILL.md
@NARRATIVE_REPORT.md
Run the full paper writing pipeline from NARRATIVE_REPORT.md.
Sub-skills to use in sequence (replace /skill-name from SKILL.md):
1. @skills/paper-plan/SKILL.md — outline + claims-evidence matrix
2. @skills/paper-figure/SKILL.md — generate plots and tables
3. @skills/paper-write/SKILL.md — write LaTeX sections
4. @skills/paper-compile/SKILL.md — build PDF
5. @skills/auto-paper-improvement-loop/SKILL.md — review and polishFull Pipeline
For the full pipeline (/research-pipeline), break it into stages across chat sessions:
| Stage | What to do | Output files |
|---|---|---|
| 1 | @skills/idea-discovery/SKILL.md + your direction |
idea-stage/IDEA_REPORT.md, refine-logs/FINAL_PROPOSAL.md, refine-logs/EXPERIMENT_PLAN.md |
| 2 | @skills/experiment-bridge/SKILL.md + @refine-logs/EXPERIMENT_PLAN.md + @refine-logs/FINAL_PROPOSAL.md |
Experiment scripts, results |
| 3 | @skills/auto-review-loop/SKILL.md + your topic |
review-stage/AUTO_REVIEW.md |
| 4 | @skills/paper-writing/SKILL.md + @NARRATIVE_REPORT.md |
paper/ directory |
Each stage reads the previous stage's output files, so context carries forward even across sessions.
Note: Stage 4 expects a
NARRATIVE_REPORT.mddescribing your research story (claims, experiments, results). This is typically written by you based onreview-stage/AUTO_REVIEW.mdand experiment results — see NARRATIVE_REPORT_EXAMPLE.md for the expected format.
5. MCP Tool Calls
ARIS skills reference MCP tools by name (e.g., mcp__codex__codex). Cursor supports MCP tool calls in agent mode — when the SKILL.md instructions say to call an MCP tool, Cursor's agent will invoke it if the server is configured.
| ARIS MCP tool | What it does | Required MCP server |
|---|---|---|
mcp__codex__codex |
Send prompt to GPT-6-Astra | Codex |
mcp__codex__codex-reply |
Continue conversation thread | Codex |
mcp__llm-chat__chat |
Send prompt to any OpenAI-compatible model | llm-chat |
mcp__zotero__* |
Search Zotero library | zotero (name may vary by config) |
mcp__obsidian-vault__* |
Search Obsidian vault | obsidian-vault (name may vary by config) |
6. State Files & Recovery
ARIS workflows persist state to files for crash recovery. These work identically in Cursor:
| File | Purpose | Written by |
|---|---|---|
review-stage/REVIEW_STATE.json |
Auto-review loop progress | /auto-review-loop |
review-stage/AUTO_REVIEW.md |
Cumulative review log | /auto-review-loop |
idea-stage/IDEA_REPORT.md |
Ranked ideas with pilot results | /idea-discovery |
PAPER_PLAN.md |
Paper outline + claims-evidence matrix | /paper-plan |
refine-logs/FINAL_PROPOSAL.md |
Refined method proposal | /research-refine |
refine-logs/EXPERIMENT_PLAN.md |
Experiment roadmap | /experiment-plan |
refine-logs/EXPERIMENT_TRACKER.md |
Run-by-run execution status | /experiment-plan |
If a Cursor chat session ends mid-workflow, start a new session and reference the state file:
@skills/auto-review-loop/SKILL.md
@review-stage/REVIEW_STATE.json
@review-stage/AUTO_REVIEW.md
Resume the auto review loop from the saved state.7. GPU Server Setup
Same as Claude Code — add your server info to CLAUDE.md (or any project doc that Cursor reads). Reference it in your prompt:
@CLAUDE.md
@skills/run-experiment/SKILL.md
Deploy the training script to the remote GPU server.8. Limitations & Workarounds
| Limitation | Workaround |
|---|---|
| No native slash commands | Use @skills/skill-name/SKILL.md to reference skills |
| Context window may be smaller | Break long pipelines into per-stage sessions, pass results via files |
| No auto-compact recovery | Use review-stage/REVIEW_STATE.json to resume manually across sessions |
allowed-tools not enforced |
Cursor agent has access to all its tools by default — not a problem in practice |
Skills reference $ARGUMENTS |
Replace with your actual arguments in the prompt |
SKILL.md files use /skill-name to call sub-skills |
Cursor ignores these. For pipeline skills (idea-discovery, paper-writing), list the sub-skill @ references explicitly in your prompt — see Workflow 1 and 3 examples |
@skills/... requires workspace access |
The ARIS repo (or its skills/ folder) must be in your Cursor workspace — see Setup §2.1 |
9. Quick Reference
# Literature survey
@skills/research-lit/SKILL.md
Search for papers on "discrete diffusion models".
# Idea discovery (full pipeline)
@skills/idea-discovery/SKILL.md
Run idea discovery for "factorized gap in discrete diffusion LMs".
# Single deep review
@skills/research-review/SKILL.md
Review this research: [paste or @-reference your work].
# Auto review loop
@skills/auto-review-loop/SKILL.md
Run the auto review loop. Topic: "your paper topic".
# Paper writing
@skills/paper-writing/SKILL.md
@NARRATIVE_REPORT.md
Write the paper from this narrative report.
# Run experiment
@skills/run-experiment/SKILL.md
@CLAUDE.md
Deploy: python train.py --lr 1e-4 --epochs 100CUSTOMIZATION (`docs/CUSTOMIZATION.md`)
🎛️ Customization
← back to README · per-skill tunables (environment variables) for ARIS skills.
Skills are plain Markdown files. Fork and customize:
💡 Parameter pass-through: Parameters flow down the call chain automatically. For example,
/research-pipeline "topic" — sources: zotero, arxiv download: truepassessourcesandarxiv downloadthroughidea-discoveryall the way down toresearch-lit. This also works for optional sources such asdeepxivandexa:/research-pipeline "topic" — sources: all, deepxiv, exa. You can set any downstream parameter at any level — just add— key: valueto your command.textresearch-pipeline ──→ idea-discovery ──→ research-lit ──→ experiment-bridge ──→ run-experiment ──→ auto-review-loop ──→ idea-creator ──→ novelty-check ──→ research-review
Full Research Pipeline (`research-pipeline`)
Tune end-to-end behavior: GPU target, arXiv download, code review, human checkpoints, base repo, W&B logging, compact summaries, reference paper, illustration backend, and auto-proceed.
Override inline: /research-pipeline "topic" — auto proceed: false, illustration: mermaid
Show constants, defaults, and pass-through for /research-pipeline
| Constant | Default | Description | Pass-through |
|---|---|---|---|
AUTO_PROCEED |
true | At each selection checkpoint, report the top-ranked option and continue in the same turn; false asks for explicit confirmation |
→ idea-discovery → paper-writing when AUTO_WRITE=true |
ARXIV_DOWNLOAD |
false | Download top arXiv PDFs after literature search | → idea-discovery → research-lit |
HUMAN_CHECKPOINT |
false | When true, pause after each review round for approval |
→ auto-review-loop |
WANDB |
false | Auto-add W&B logging to experiments | → experiment-bridge → run-experiment |
CODE_REVIEW |
true | GPT-6-Astra reviews experiment code before deployment | → experiment-bridge |
BASE_REPO |
false | GitHub repo URL to clone as base codebase for experiments | → experiment-bridge |
GPU |
local |
GPU target: local, remote (SSH), or vast (Vast.ai on-demand rental) |
→ experiment-bridge → run-experiment |
COMPACT |
false | Generate compact summary files for short-context models and session recovery | → all workflows |
REF_PAPER |
false | Reference paper (PDF path or URL) to base ideas on. Summarized first, then used as context | → idea-discovery |
ILLUSTRATION |
gemini |
AI illustration: gemini (default), mermaid (free), or false (skip) |
→ paper-writing |
Auto Review Loop (`auto-review-loop`)
Tune stopping criteria: how many review→fix iterations, score threshold to declare submission-ready, and GPU-hour budget above which long experiments get flagged for manual follow-up.
Show stopping criteria for /auto-review-loop
| Constant | Default | Description |
|---|---|---|
MAX_ROUNDS |
4 | Maximum review→fix→re-review iterations |
POSITIVE_THRESHOLD |
6/10 | Score at which the loop stops (submission-ready) |
> 4 GPU-hour skip |
4h | Experiments exceeding this are flagged for manual follow-up |
Idea Discovery (`idea-discovery` / `idea-creator`)
Tune the pilot phase: max hours per pilot, hard timeout, max ideas piloted in parallel, total GPU budget, plus auto-proceed and arXiv download toggles.
Override inline: /idea-discovery "topic" — pilot budget: 4h per idea, sources: zotero, arxiv download: true
Show pilot-budget constants for /idea-discovery and /idea-creator
| Constant | Default | Description | Pass-through |
|---|---|---|---|
PILOT_MAX_HOURS |
2h | Skip any pilot estimated to take longer per GPU | — |
PILOT_TIMEOUT_HOURS |
3h | Hard timeout — kill runaway pilots, collect partial results | — |
MAX_PILOT_IDEAS |
3 | Maximum number of ideas to pilot in parallel | — |
MAX_TOTAL_GPU_HOURS |
8h | Total GPU budget across all pilots | — |
AUTO_PROCEED |
true | Report the top-ranked option and continue in the same turn; false asks for explicit confirmation |
— |
ARXIV_DOWNLOAD |
false | Download top arXiv PDFs after literature search | → research-lit |
AUTO_PROCEED=true applies to its own selection checkpoints only. Explicit
user-controlled gates, such as Feishu interactive approval, a missing venue,
or required manual figures, remain blocking. The pipeline never relies on a
silent-response timeout to resume after a turn ends.
Experiment Bridge (`experiment-bridge`)
Tune deployment safety: GPT-6-Astra code review, auto-deploy after review, sanity-test smallest experiment first, parallel run cap, W&B logging, and base-repo URL.
Override inline: /experiment-bridge — base repo: https://github.com/org/project
Show deployment and safety constants for /experiment-bridge
| Constant | Default | Description |
|---|---|---|
CODE_REVIEW |
true | GPT-6-Astra xhigh reviews code before deployment. Catches logic bugs before wasting GPU hours |
AUTO_DEPLOY |
true | Automatically deploy experiments after implementation + review. Set false to manually inspect |
SANITY_FIRST |
true | Run smallest experiment first to catch setup bugs before full deployment |
MAX_PARALLEL_RUNS |
4 | Maximum experiments to deploy in parallel (limited by available GPUs) |
WANDB |
false | Auto-add W&B logging. Requires wandb_project in CLAUDE.md |
BASE_REPO |
false | GitHub repo URL to clone as base codebase for experiments |
Literature Search (`research-lit`)
Tune sourcing: local PDF directories, local-scan cap, which sources to search (Zotero / Obsidian / web / Semantic Scholar / DeepXiv / Exa), and arXiv PDF download settings.
Override inline: /research-lit "topic" — sources: zotero, web, /research-lit "topic" — sources: all, deepxiv, /research-lit "topic" — sources: all, exa, /research-lit "topic" — arxiv download: true, max download: 10
Show source-selection and arXiv download constants for /research-lit
| Constant | Default | Description |
|---|---|---|
PAPER_LIBRARY |
papers/, literature/ |
Local directories to scan for PDFs before searching online |
MAX_LOCAL_PAPERS |
20 | Max local PDFs to scan (first 3 pages each) |
SOURCES |
all |
Which sources to search: zotero, obsidian, local, web, semantic-scholar, deepxiv, exa, or all. semantic-scholar, deepxiv, and exa must be explicitly listed |
ARXIV_DOWNLOAD |
false | When true, download top relevant arXiv PDFs to PAPER_LIBRARY after search |
ARXIV_MAX_DOWNLOAD |
5 | Maximum number of PDFs to download when ARXIV_DOWNLOAD = true |
Paper Writing (`paper-write`)
Tune paper format: real BibTeX from DBLP, target venue (ICLR/NeurIPS/ICML/CVPR/ACL/AAAI/IEEE…), anonymous author block, page limit, and illustration backend.
Override inline: /paper-write — target venue: NeurIPS, illustration: mermaid
Show paper-format and illustration constants for /paper-write
| Constant | Default | Description |
|---|---|---|
DBLP_BIBTEX |
true | Fetch real BibTeX from DBLP/CrossRef instead of LLM-generated entries |
TARGET_VENUE |
ICLR |
Target venue: ICLR, NeurIPS, ICML, CVPR, ACL, AAAI, ACM, IEEE_JOURNAL, IEEE_CONF |
ANONYMOUS |
true | Use anonymous author block for blind review. Note: most IEEE venues are NOT anonymous — set false for IEEE |
MAX_PAGES |
9 | Page limit. ML conferences: main body excl. refs. IEEE: total pages incl. refs |
ILLUSTRATION |
gemini |
AI illustration mode: gemini (default, needs GEMINI_API_KEY), mermaid (free), or false (skip) |
General (all skills using Codex MCP)
Tune the reviewer model used by every Codex MCP call (default gpt-6-astra), or fork the SKILL.md to customize prompt templates and the per-skill tool allowlist.
- Prompt templates — tailor the review persona and evaluation criteria
allowed-tools— restrict or expand what each skill can do
Show Codex MCP reviewer-model options
| Constant | Default | Description |
|---|---|---|
REVIEWER_MODEL |
gpt-6-astra |
OpenAI model used via Codex MCP. Also available: gpt-5.3-codex, gpt-5.2-codex, o3. See supported models for full list. |
CUSTOMIZATION CN (`docs/CUSTOMIZATION_CN.md`)
🎛️ 自定义
← 返回 README · ARIS 各 skill 的可调参数(环境变量)。
Skills 就是普通的 Markdown 文件,fork 后随意改:
💡 参数自动透传:参数沿调用链自动向下传递。例如
/research-pipeline "方向" — sources: zotero, arxiv download: true会将sources和arxiv download经idea-discovery一路传到research-lit。这同样适用于deepxiv和exa这类可选源:/research-pipeline "方向" — sources: all, deepxiv, exa。你可以在任何层级设置下游参数——只需加— key: value。textresearch-pipeline ──→ idea-discovery ──→ research-lit ──→ experiment-bridge ──→ run-experiment ──→ auto-review-loop ──→ idea-creator ──→ novelty-check ──→ research-review
全流程(`research-pipeline`)
调端到端行为:GPU 目标、arXiv 下载、代码审查、人工 checkpoint、base repo、W&B 日志、精简摘要、参考论文、作图后端,以及自动继续。
行内覆盖:/research-pipeline "方向" — auto proceed: false, wandb: true, illustration: true
展开 /research-pipeline 的常量、默认值与透传
| 常量 | 默认值 | 说明 | 透传 |
|---|---|---|---|
AUTO_PROCEED |
true | 每个选择检查点报告最优方案并在同一轮继续;设为 false 时请求明确确认 |
→ idea-discovery → AUTO_WRITE=true 时的 paper-writing |
ARXIV_DOWNLOAD |
false | 搜索后自动下载最相关的 arXiv PDF | → idea-discovery → research-lit |
HUMAN_CHECKPOINT |
false | 设为 true 时每轮 review 后暂停等待确认 |
→ auto-review-loop |
WANDB |
false | 自动给实验脚本加 W&B 日志 | → experiment-bridge → run-experiment |
CODE_REVIEW |
true | GPT-6-Astra 部署前审查实验代码 | → experiment-bridge |
BASE_REPO |
false | GitHub 仓库 URL,克隆作为实验基础代码 | → experiment-bridge |
GPU |
local |
GPU 目标:local、remote(SSH)、或 vast(Vast.ai 按需租用) |
→ experiment-bridge → run-experiment |
COMPACT |
false | 生成精简摘要文件,适合短 context 模型和 session 恢复 | → 所有工作流 |
REF_PAPER |
false | 参考论文(PDF 或 URL),先总结再基于它找 idea | → idea-discovery |
ILLUSTRATION |
gemini |
AI 作图:gemini(默认,需 API key)、mermaid(免费)、false(跳过) |
→ paper-writing |
自动 Review 循环(`auto-review-loop`)
调停止条件:review→修复 轮数上限、判定"可投稿"的分数阈值、超过哪个 GPU-小时预算的实验自动标记为需人工跟进。
展开 /auto-review-loop 的停止条件
| 常量 | 默认值 | 说明 |
|---|---|---|
MAX_ROUNDS |
4 | 最多 review→修复→再 review 轮数 |
POSITIVE_THRESHOLD |
6/10 | 达到此分数自动停止(可投稿) |
> 4 GPU-hour 跳过 |
4h | 超过此时长的实验标记为"需人工跟进" |
找 Idea(`idea-discovery` / `idea-creator`)
调 pilot 阶段:单 pilot 最大耗时、硬超时、并行 pilot 数、总 GPU 预算,外加自动继续和 arXiv 下载开关。
行内覆盖:/idea-discovery "方向" — pilot budget: 4h per idea, sources: zotero, arxiv download: true
展开 /idea-discovery 与 /idea-creator 的 pilot 预算常量
| 常量 | 默认值 | 说明 | 透传 |
|---|---|---|---|
PILOT_MAX_HOURS |
2h | 单个 pilot 预估超时则跳过 | — |
PILOT_TIMEOUT_HOURS |
3h | 硬超时——强制终止,收集部分结果 | — |
MAX_PILOT_IDEAS |
3 | 最多并行 pilot 几个 idea | — |
MAX_TOTAL_GPU_HOURS |
8h | 所有 pilot 的总 GPU 预算 | — |
AUTO_PROCEED |
true | 报告最优方案并在同一轮继续;设为 false 时请求明确确认 |
— |
ARXIV_DOWNLOAD |
false | 搜索后自动下载最相关的 arXiv PDF | → research-lit |
AUTO_PROCEED=true 只作用于它控制的选择检查点。显式的用户门禁(例如
飞书 interactive 审批、缺少 venue、或必须由用户补充的手动画图)仍会阻塞等待。
流程不会依赖“静默超时”来在一轮结束后恢复。
实验桥接(`experiment-bridge`)
调部署安全:GPT-6-Astra 代码审查、审查后自动部署、最小实验先跑、并行上限、W&B 日志、base repo URL。
行内覆盖:/experiment-bridge — code review: false, wandb: true
展开 /experiment-bridge 的部署与安全常量
| 常量 | 默认值 | 说明 |
|---|---|---|
CODE_REVIEW |
true | GPT-6-Astra xhigh 部署前审查代码。在浪费 GPU 前抓逻辑 bug |
AUTO_DEPLOY |
true | 实现 + 审查后自动部署。设 false 可手动检查 |
BASE_REPO |
false | GitHub 仓库 URL,克隆作为实验基础代码 |
SANITY_FIRST |
true | 先跑最小实验,提前发现 bug |
MAX_PARALLEL_RUNS |
4 | 最多并行部署几个实验(受可用 GPU 限制) |
WANDB |
false | 自动加 W&B 日志。需在 CLAUDE.md 配 wandb_project |
文献搜索(`research-lit`)
调来源:本地 PDF 目录、本地扫描上限、搜索哪些源(Zotero / Obsidian / 网络 / Semantic Scholar / DeepXiv / Exa),以及 arXiv PDF 自动下载设置。
行内覆盖:/research-lit "方向" — sources: zotero, web、/research-lit "方向" — sources: all, deepxiv、/research-lit "方向" — sources: all, exa、/research-lit "方向" — arxiv download: true, max download: 10
展开 /research-lit 的源选择和 arXiv 下载常量
| 常量 | 默认值 | 说明 |
|---|---|---|
PAPER_LIBRARY |
papers/, literature/ |
本地论文目录,搜外部之前先扫这里的 PDF |
MAX_LOCAL_PAPERS |
20 | 最多扫描多少本地 PDF(每篇读前 3 页) |
SOURCES |
all |
搜索哪些源:zotero、obsidian、local、web、semantic-scholar、deepxiv、exa、all(逗号分隔)。semantic-scholar、deepxiv 和 exa 需显式指定 |
ARXIV_DOWNLOAD |
false | 设为 true 时,搜索后自动下载最相关的 arXiv PDF 到 PAPER_LIBRARY |
ARXIV_MAX_DOWNLOAD |
5 | ARXIV_DOWNLOAD = true 时最多下载的 PDF 数量 |
论文写作(`paper-write`)
调论文格式:DBLP 真实 BibTeX、目标会议(ICLR/NeurIPS/ICML/CVPR/ACL/AAAI/IEEE…)、匿名作者块、页数上限、作图后端。
行内覆盖:/paper-write — target venue: NeurIPS, illustration: true
展开 /paper-write 的论文格式与作图常量
| 常量 | 默认值 | 说明 |
|---|---|---|
DBLP_BIBTEX |
true | 从 DBLP/CrossRef 拉取真实 BibTeX,替代 LLM 生成的条目 |
TARGET_VENUE |
ICLR |
目标会议/期刊格式:ICLR、NeurIPS、ICML、CVPR、ACL、AAAI、ACM、IEEE_JOURNAL、IEEE_CONF |
ANONYMOUS |
true | 匿名审稿模式。注意:大多数 IEEE 期刊/会议不匿名,IEEE 时设为 false |
MAX_PAGES |
9 | 页数上限。ML 会议:正文不含参考文献。IEEE:总页数含参考文献 |
ILLUSTRATION |
gemini |
AI 作图:gemini(默认,需 API key)、mermaid(免费)、false(跳过) |
通用(所有使用 Codex MCP 的 skill)
调所有 Codex MCP 调用使用的 reviewer 模型(默认 gpt-6-astra),或者 fork SKILL.md 定制 prompt 模板与每个 skill 的工具白名单。
- Prompt 模板 — 定制评审人格和评估标准
allowed-tools— 限制或扩展每个 skill 可用的工具
展开 Codex MCP reviewer 模型选项
| 常量 | 默认值 | 说明 |
|---|---|---|
REVIEWER_MODEL |
gpt-6-astra |
Codex MCP 调用的 OpenAI 模型。其他可选:gpt-5.3-codex、gpt-5.2-codex、o3。完整列表见 supported models |
GPU SETUP (`docs/GPU_SETUP.md`)
🖥️ GPU Setup for Auto-Experiments
← back to README · declare your GPU server in CLAUDE.md so ARIS can run experiments for you.
When GPT-6-Astra says "run an ablation study" or "add a baseline comparison", Claude Code automatically writes the experiment script and deploys it to your GPU server. For this to work, Claude Code needs to know your server environment.
Three GPU modes are supported — pick one and add it to your project's CLAUDE.md:
Option A: Remote SSH Server (`gpu: remote`)
## Remote Server
- gpu: remote
- SSH: `ssh my-gpu-server` (key-based auth, no password)
- GPU: 4x A100
- Conda env: `research` (Python 3.10 + PyTorch)
- Activate: `eval "$(/opt/conda/bin/conda shell.bash hook)" && conda activate research`
- Code directory: `/home/user/experiments/`
- Use `screen` for background jobs: `screen -dmS exp0 bash -c '...'`Claude Code reads this and knows how to SSH in, activate the environment, and launch experiments. GPT-6-Astra (the reviewer) only decides what experiments to run — Claude Code figures out how based on your CLAUDE.md.
Option B: Local GPU (`gpu: local`)
If you are already on the GPU server, you can add the following to your CLAUDE.md:
## GPU Environment
- gpu: local
- This machine has direct GPU access (no SSH needed)
- GPU: 4x A100 80GB
- Experiment environment: `YOUR_CONDA_ENV` (Python 3.x + PyTorch)
- Activate before any Python command: `The command to activate your experiment environment` (uv, conda, etc.)
- Code directory: `/home/YOUR_USERNAME/YOUR_CODE_DIRECTORY/`Option C: Vast.ai On-Demand GPU (`gpu: vast`)
No GPU? Rent one from Vast.ai on demand. ARIS analyzes your training task (model size, dataset, time), finds the cheapest GPU that fits, ranks options by total cost (not just $/hr), then rents → runs → collects → destroys automatically.
Drop this in CLAUDE.md:
## Vast.ai
- gpu: vast # rent on-demand GPU from vast.ai
- auto_destroy: true # auto-destroy after experiment completes (default)
- max_budget: 5.00 # optional: warn if estimated cost exceeds this📖 Full setup guide → integrations/VAST_GPU_GUIDE.md covers:
- Account +
vastaiCLI install + API key + SSH key prerequisites (5 steps) - How ARIS picks GPUs and shows a live cost-ranked table
- Manual rental via
/vast-gpu(list / rent / destroy) - Typical cost expectations (~$0.30-2 for ablations on RTX 4090, ~$2-10 for A100/H100 baselines)
- When
gpu: vastis preferable togpu: remote/gpu: local
No server at all? The review and rewriting skills still work without GPU access. Only experiment-related fixes will be skipped (flagged for manual follow-up).
GPU SETUP CN (`docs/GPU_SETUP_CN.md`)
🖥️ GPU 配置(自动跑实验用)
← 返回 README · 在 CLAUDE.md 里声明 GPU 服务器,让 ARIS 帮你跑实验。
当 GPT-6-Astra 审稿说"需要补一个消融实验"或"加一个 baseline 对比"时,Claude Code 会自动写实验脚本并部署到你的 GPU 服务器。为此,Claude Code 需要知道你的服务器环境。
在项目的 CLAUDE.md 中添加服务器信息:
## 远程服务器
- SSH:`ssh my-gpu-server`(密钥免密登录)
- GPU:4x A100
- Conda 环境:`research`(Python 3.10 + PyTorch)
- 激活:`eval "$(/opt/conda/bin/conda shell.bash hook)" && conda activate research`
- 代码目录:`/home/user/experiments/`
- 后台运行用 `screen`:`screen -dmS exp0 bash -c '...'`Claude Code 读到这些就知道怎么 SSH、激活环境、启动实验。GPT-6-Astra(审稿人)只决定做什么实验——Claude Code 根据你的 CLAUDE.md 搞定怎么跑。
如果你已经在 GPU 服务器上,可以添加以下到你的 CLAUDE.md:
## GPU 环境
- 这台机器有直接 GPU 访问(不需要 SSH)
- GPU:4x A100 80GB
- 实验环境:`YOUR_CONDA_ENV`(Python 3.x + PyTorch)
- 激活前任何 Python 命令:`激活实验环境的命令`(uv, conda 等)
- 代码目录:`/home/YOUR_USERNAME/YOUR_CODE_DIRECTORY/`没有 GPU 服务器? Review 和改写功能不受影响,只有需要跑实验的修复会被跳过(标记为"需人工跟进")。或者按需租 GPU 跑实验,见下方 Vast.ai 集成。
☁️ Vast.ai 按需 GPU
没 GPU?从 Vast.ai 按需租。ARIS 分析你的训练任务(模型大小、数据集、时间),找能放下的最便宜 GPU,按总成本(不是 $/hr)排序展示,然后租 → 跑 → 收 → 销毁全自动。
在项目 CLAUDE.md 加:
## Vast.ai
- gpu: vast # 从 vast.ai 按需租 GPU
- auto_destroy: true # 实验跑完自动销毁(默认)
- max_budget: 5.00 # 可选:估算超过这个数会警告📖 完整配置指南 → integrations/VAST_GPU_GUIDE_CN.md 包含:
- 账号 +
vastaiCLI + API key + SSH key 准备工作(5 个步骤) - ARIS 如何挑 GPU 并展示实时成本排序表
- 手动租用:
/vast-gpu(list / rent / destroy) - 典型花费区间(RTX 4090 消融 ~$0.30-2/次,A100/H100 baseline ~$2-10/次)
- 什么时候用
gpu: vast比gpu: remote/gpu: local更划算
也不想租? Review 和改写类 skill 仍可用,只有需要跑实验的修复会被跳过(标记为"需人工跟进")。
LLM API MIX MATCH GUIDE (`docs/LLM_API_MIX_MATCH_GUIDE.md`)
LLM API 混搭配置指南
本指南说明如何自由搭配 Claude Code 执行器和外部审查器的 API。
双层架构
┌─────────────────────────────────────────────────────┐
│ Claude Code │
│ │
│ ┌─────────────────┐ ┌─────────────────────┐ │
│ │ 执行器 │─────▶│ 审查器 │ │
│ │ (Executor) │ │ (Reviewer) │ │
│ │ │ │ │ │
│ │ ANTHROPIC_* │ │ LLM_* │ │
│ │ 环境变量 │ │ 环境变量 │ │
│ └─────────────────┘ └─────────────────────┘ │
│ │
└─────────────────────────────────────────────────────┘执行器配置
执行器通过 ANTHROPIC_* 环境变量配置。
1. 原生 Claude API
{
"ANTHROPIC_AUTH_TOKEN": "sk-ant-xxx",
"ANTHROPIC_BASE_URL": "https://api.anthropic.com",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6"
}2. Z.ai (GLM)
{
"ANTHROPIC_AUTH_TOKEN": "your-zai-key",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.5-air",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5"
}3. Kimi (Moonshot)
官方文档: https://platform.moonshot.cn/docs/guide/agent-support
{
"ANTHROPIC_AUTH_TOKEN": "sk-xxx",
"ANTHROPIC_BASE_URL": "https://api.moonshot.cn/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k2",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k2",
"ANTHROPIC_SMALL_FAST_MODEL": "kimi-k2-thinking-turbo",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "6000"
}4. LongCat (美团)
官方文档: https://longcat.chat/platform/docs/zh/ClaudeCode.html
{
"ANTHROPIC_AUTH_TOKEN": "ak_xxx",
"ANTHROPIC_BASE_URL": "https://api.longcat.chat/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "LongCat-Flash-Thinking-2601",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "LongCat-Flash-Thinking-2601",
"ANTHROPIC_SMALL_FAST_MODEL": "LongCat-Flash-Lite",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "6000"
}5. 自定义兼容端点
{
"ANTHROPIC_AUTH_TOKEN": "your-key",
"ANTHROPIC_BASE_URL": "https://your-endpoint.com/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "your-model"
}审查器配置
审查器通过 llm-chat MCP 服务器调用任意API。
MCP 服务器配置
在 ~/.claude/settings.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.example.com/v1",
"LLM_MODEL": "model-name"
}
}
}
}常用审查器提供商
| 提供商 | LLM_BASE_URL | LLM_MODEL |
|---|---|---|
| DeepSeek | https://api.deepseek.com/v1 |
deepseek-chat |
| MiniMax | https://api.minimax.io/v1 |
MiniMax-M3 |
完整配置示例
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-executor-key",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["/Users/yourname/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "your-reviewer-key",
"LLM_BASE_URL": "https://api.deepseek.com/v1",
"LLM_MODEL": "deepseek-chat"
}
}
}
}使用方式
# 使用通用 LLM 审查 skill
/auto-review-loop-llm改写所有 Skills(重要!)
auto-review-loop-llm 只是一个 skill 的通用 LLM 版。项目中有 46 个 skill 在 frontmatter 里授权了 Codex MCP (mcp__codex__codex),其中 28 个正文里有实际的调用块。如果你想全面切换到其他模型,需要让 Claude Code 把它们全部改写。
安装完 llm-chat MCP 服务器后,在 Claude Code 对话中执行:
Read skills/auto-review-loop-llm/SKILL.md as a reference.
It replaces mcp__codex__codex with mcp__llm-chat__chat.
Now rewrite ALL other skills that use mcp__codex__codex / mcp__codex__codex-reply
to use mcp__llm-chat__chat instead, following the same pattern.Claude Code 会自动:
- 扫描所有 skill 文件,找到使用 Codex MCP 的地方
- 参考
auto-review-loop-llm的写法(MCP 优先 + curl fallback) - 逐个改写到你本地的
~/.claude/skills/目录
⚠️ 注意: 这只修改你本地的 skill 副本,不影响仓库原文件。想恢复默认?重新
cp -r skills/* ~/.claude/skills/即可。
常见问题
Q: 为什么不用 Codex MCP?
Codex CLI 使用 OpenAI 的 Responses API (/v1/responses),这个 API 只有 OpenAI 官方支持,第三方提供商(DeepSeek、MiniMax 等)都不支持。所以我们新建了 llm-chat MCP 服务器,使用标准的 Chat Completions API (/v1/chat/completions),兼容所有 OpenAI-compatible API。
Q: GLM/Kimi/LongCat 能用吗?
可以!这些提供商支持 Anthropic-compatible API,配置到执行器(ANTHROPIC_* 环境变量)即可。审查器(LLM_* 环境变量)可以用任意 OpenAI-compatible API。
混搭组合示例
组合 1: GLM + DeepSeek(性价比)
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-zai-key",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["/Users/yourname/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "your-deepseek-key",
"LLM_BASE_URL": "https://api.deepseek.com/v1",
"LLM_MODEL": "deepseek-chat"
}
}
}
}组合 2: GLM + Kimi(长文本)
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-zai-key",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["/Users/yourname/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "your-kimi-key",
"LLM_BASE_URL": "https://api.moonshot.cn/v1",
"LLM_MODEL": "moonshot-v1-32k"
}
}
}
}组合 3: 原生 Claude + MiniMax
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-ant-xxx",
"ANTHROPIC_BASE_URL": "https://api.anthropic.com",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["/Users/yourname/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "your-minimax-key",
"LLM_BASE_URL": "https://api.minimax.io/v1",
"LLM_MODEL": "MiniMax-M3"
}
}
}
}MANUAL REVIEW GUIDE (`docs/MANUAL_REVIEW_GUIDE.md`)
Manual Review Guide
Zero API cost cross-model review. Copy the prompt to a different model family, paste the response back. If the executor is Claude Code, do NOT use Claude products as the reviewer.
Overview
The Manual Review MCP server is a human-in-the-loop alternative to the default Codex MCP reviewer. Instead of requiring a GPT Plus/Pro subscription for automated cross-model review, it lets you manually mediate the review using a different model family. If the executor is Claude Code, do NOT use Claude products as the reviewer. Recommended: ChatGPT, DeepSeek, Kimi, Gemini or Qwen. The reviewer's model must be one ARIS can classify — a name outside the recognized families cannot be shown to differ from the executor's, so it cannot acquit. See the Reviewer-Model: section below for the list.
The trade-off: you lose full automation (you need to copy/paste), but gain complete flexibility in model choice and zero API cost.
When to Use
- You have a Claude Code subscription but no GPT Plus/Codex subscription
- You want to use free-tier models for review
- You prefer to choose which model reviews each piece of work
- You're experimenting and don't want to burn API credits on reviews
Installation
# One-time setup: register the MCP server with Claude Code
claude mcp add manual-review -s user -- python3 /path/to/Auto-claude-code-research-in-sleep/mcp-servers/manual-review/server.pyNo additional dependencies required — the server uses only Python standard library.
Usage
Add — reviewer: manual to any wired skill (see Supported Skills below):
/auto-review-loop "your topic" — reviewer: manual
/research-review "paper/" — reviewer: manual
/experiment-audit "results/" — reviewer: manual
/proof-checker "paper/" — reviewer: manual
/rebuttal "paper/" — reviewer: manual
/idea-creator "direction" — reviewer: manualWorkflow
Browser Mode (default)
- The pipeline reaches a review step
- A browser page opens automatically at
http://127.0.0.1: - Left panel: the full review prompt (click "Copy Prompt")
- Right panel: paste the model's response here — its first line must be
Reviewer-Model: <exact-model-id>(see below) - Click "Submit" — the pipeline continues. If the header is missing or the model
is the same family as the executor, the page tells you why and you can fix the
line in place.
File Mode (headless Linux / SSH)
Set MANUAL_REVIEW_MODE=file in your environment.
- The pipeline reaches a review step
- Check
.aris/pending_review/pending_review.jsonfor theprompt_fileandresponse_filepaths. - Open the file at
prompt_fileto read the prompt. - Copy to your model, get the response.
- Write the response to the file at
response_file, withReviewer-Model: <exact-model-id>as its first line (see below). - The server detects the file (after confirming it's stable) and continues.
Important: The server waits for the response file to be non-empty AND stable (unchanged across two reads). Do not hardcode .aris/pending_review/response.md — always use the path from pending_review.json. Don't create an empty file first — write the full content in one operation, or use a temporary name and rename.
Multi-Round Reviews
For skills that use multiple review rounds (e.g., /auto-review-loop), the browser page shows previous exchanges in a collapsible "History" section. This helps you maintain context when continuing the conversation in your chosen model.
Tip: Keep the same model conversation open across rounds for best continuity.
The `Reviewer-Model:` header
Verdict-bearing reviews require the response to begin with one line naming the
model that actually wrote it:
Reviewer-Model: deepseek-v3
Score: 7/10
...ARIS derives the reviewer's model family from that line and refuses a review by
the executor's own family — that is the whole point of routing the review outside
the executor. Recognized families are OpenAI (gpt*, o1/o3/o4, codex),
Anthropic (claude*), Google (gemini*), DeepSeek, Moonshot (kimi*), and
Qwen (qwen*, tongyi). A model outside that list cannot be classified, so it
cannot acquit — name it exactly as the provider does.
This is a declared identity, not an attestation: ARIS checks the line you write,
it does not independently discover which web UI you used.
Tips for Best Results
- Use a reasoning-capable model — the config badge shows
reasoning_effort = xhigh, meaning the prompt is designed for deep reasoning. Models like GPT-4o, DeepSeek-V3, Kimi, or Gemini work well. Do NOT use any Claude-family model if the executor is Claude Code. - Keep the
Reviewer-Model:line first — before any blank line, heading, or
preamble your model may have added. - Paste the FULL response — don't truncate or summarize. The pipeline parses specific fields (scores, verdicts, action items) from the response.
- Don't modify the prompt — paste it exactly as shown. The prompt is identical to what Codex would receive.
- For multi-round reviews — maintain the conversation in your model (don't start a new chat for round 2).
Recovery
- Accidentally closed the tab? Check
.aris/pending_review/pending_review.jsonfor the full URL (it includes a one-time token — copy it in full, don't type the barehttp://127.0.0.1:17900). The server is still running — just reopen the URL. - Server timed out? Default timeout is 24 hours. If exceeded, the pipeline reports an error. Re-run the skill.
- Wrong response pasted? There's no undo after submit. Re-run the skill if needed.
Supported Skills
The following skills have manual-review wired (Claude Code only):
| Skill | Review Purpose |
|---|---|
/research-review |
Paper critique |
/auto-review-loop |
Iterative improvement |
/experiment-audit |
Eval code integrity |
/proof-checker |
Math verification |
/rebuttal |
Rebuttal stress test |
/idea-creator |
Idea evaluation |
/research-litcurrently has no manual-review call block; use— reviewer: oracle-prowhere supported, or run a separate review skill manually.
Future Work
- Image generation: Manual alternative to
codex-image2for paper illustrations (upload/paste images back) - Image review loop: Iterative illustration improvement through the same UI
MANUAL REVIEW GUIDE CN (`docs/MANUAL_REVIEW_GUIDE_CN.md`)
手动评审指南
零 API 成本的跨模型评审。 复制提示词到不同模型家族,粘贴回复即可。如果执行器是 Claude Code,请勿使用 Claude 产品作为评审者。
概述
手动评审 MCP 服务器是默认 Codex MCP 评审器的人工中转替代方案。无需 GPT Plus/Pro 订阅即可实现跨模型评审——你可以使用不同模型家族。如果执行器是 Claude Code,请勿使用 Claude 产品作为评审者。推荐:ChatGPT、DeepSeek、Kimi、Gemini 或 Qwen。评审模型必须是 ARIS 能够归类的——无法归类的名字也就无法证明它与执行器不同家族,因而不能用于验收。可识别的家族见下方 Reviewer-Model: 一节。
代价:失去完全自动化(需要手动复制粘贴),换来模型选择的完全自由和零 API 成本。
适用场景
- 有 Claude Code 订阅但没有 GPT Plus/Codex 订阅
- 想使用免费模型进行评审
- 希望每次自行选择评审模型
- 实验阶段不想在评审上消耗 API 额度
安装
# 一次性设置:注册 MCP 服务器到 Claude Code
claude mcp add manual-review -s user -- python3 /path/to/Auto-claude-code-research-in-sleep/mcp-servers/manual-review/server.py无需额外依赖——服务器仅使用 Python 标准库。
使用方法
在已接线的技能后添加 — reviewer: manual(见下方支持的技能):
/auto-review-loop "your topic" — reviewer: manual
/research-review "paper/" — reviewer: manual
/experiment-audit "results/" — reviewer: manual
/proof-checker "paper/" — reviewer: manual
/rebuttal "paper/" — reviewer: manual
/idea-creator "direction" — reviewer: manual工作流程
浏览器模式(默认)
- 流程到达评审步骤
- 浏览器自动打开
http://127.0.0.1: - 左侧面板:完整评审提示词(点击"复制提示词")
- 右侧面板:在此粘贴模型回复——第一行必须是
Reviewer-Model: <准确模型 ID>(见下) - 点击"提交"——流程继续。若缺少该行或评审模型与执行器同家族,页面会直接告诉你原因,可以就地改好那一行。
文件模式(无桌面 Linux / SSH)
设置环境变量 MANUAL_REVIEW_MODE=file。
- 流程到达评审步骤
- 查看
.aris/pending_review/pending_review.json,获取prompt_file和response_file路径。 - 打开
prompt_file指向的文件,阅读提示词。 - 复制到你的模型,获取回复。
- 将回复写入
response_file指向的文件,第一行为Reviewer-Model: <准确模型 ID>(见下)。 - 服务器检测到文件(确认稳定后)继续流程。
重要:服务器等待回复文件非空且稳定(两次读取内容不变)后才读取。不要硬编码 .aris/pending_review/response.md — 始终使用 pending_review.json 中的路径。不要先创建空文件再编辑——直接一次性写入完整内容,或使用临时文件名后重命名。
多轮评审
对于使用多轮评审的技能(如 /auto-review-loop),浏览器页面会在可折叠的"历史对话"区域显示之前的交互。这帮助你在所选模型中保持上下文连续性。
建议:跨轮次保持同一个模型对话窗口,以获得最佳连续性。
`Reviewer-Model:` 行
需要产出判定的评审,回复必须以一行注明实际撰写它的模型开头:
Reviewer-Model: deepseek-v3
Score: 7/10
...ARIS 从这一行推导评审模型的家族,并拒绝与执行器同家族的评审——把评审放到执行器之外,本来就是为了这个。可识别的家族:OpenAI(gpt*、o1/o3/o4、codex)、Anthropic(claude*)、Google(gemini*)、DeepSeek、Moonshot(kimi*)、Qwen(qwen*、tongyi)。不在此列的模型无法归类,因而不能用于验收——请照厂商的写法准确填写。
这是自报的身份,不是证明:ARIS 校验的是你写的这一行,它无法独立得知你实际用了哪个网页。
最佳实践
- 使用推理能力强的模型——配置提示显示
reasoning_effort = xhigh,意味着提示词为深度推理设计。GPT-4o、DeepSeek-V3、Kimi、Gemini 等效果较好。如果执行器是 Claude Code,请勿使用任何 Claude 家族模型。 - 保持
Reviewer-Model:在第一行——不要让模型自己加的空行、标题或开场白排在它前面。 - 粘贴完整回复——不要截断或总结。流程会从回复中解析特定字段(分数、判定、行动项)。
- 不要修改提示词——原样粘贴。提示词与 Codex 收到的完全一致。
- 多轮评审时——在模型中保持对话(第 2 轮不要开新对话)。
恢复
- 不小心关了标签页? 查看
.aris/pending_review/pending_review.json获取完整 URL(包含一次性 token — 必须完整复制,不要手动输入裸地址http://127.0.0.1:17900)。服务器仍在运行——重新打开 URL 即可。 - 服务器超时? 默认超时 24 小时。超时后流程报错,重新运行技能即可。
- 粘贴了错误回复? 提交后无法撤销。需要时重新运行技能。
支持的技能
以下技能已接线 manual-review(仅限 Claude Code):
| 技能 | 评审用途 |
|---|---|
/research-review |
论文评审 |
/auto-review-loop |
迭代改进 |
/experiment-audit |
实验代码审计 |
/proof-checker |
数学证明验证 |
/rebuttal |
反驳压力测试 |
/idea-creator |
想法评估 |
/research-lit当前没有 manual-review 调用块;如需文献分析深度评审,请使用已支持的oracle-pro路由或单独运行评审 skill。
后续计划
- 图片生成:
codex-image2的手动替代方案(上传/粘贴图片) - 图片评审循环:通过同一 UI 进行论文插图的迭代改进
MINIMAX MCP GUIDE (`docs/MINIMAX_MCP_GUIDE.md`)
MiniMax MCP 集成指南
本文档说明如何在 Auto-claude-code-research-in-sleep 项目中使用 MiniMax API 替代 OpenAI Codex MCP 进行研究审查。
背景
OpenAI Codex CLI 使用 Responses API (/v1/responses),而 MiniMax 等第三方 API 提供商只支持 Chat Completions API (/v1/chat/completions)。因此,Codex MCP 无法直接与 MiniMax 配合使用。
解决方案:创建自定义 MCP 服务器直接调用 MiniMax Chat Completions API。
相关讨论:GitHub #7782
两种 Review Loop 版本
| 版本 | Skill 名称 | 触发词 | 外部审查服务 |
|---|---|---|---|
| 原版 | auto-review-loop |
"auto review loop" | Codex MCP (OpenAI) |
| MiniMax版 | auto-review-loop-minimax |
"auto review loop minimax" | MiniMax API |
如何选择
- 使用原版:如果你有 OpenAI API Key,且预算充足
- 使用 MiniMax版:如果你想使用 MiniMax API(更便宜,或已有 MiniMax 账号)
安装步骤
1. 创建 MCP 服务器目录
mkdir -p ~/.claude/mcp-servers/minimax-chat2. 复制 MCP 服务器代码
将 mcp-servers/minimax-chat/server.py 复制到:
~/.claude/mcp-servers/minimax-chat/server.py3. 安装 Python 依赖
pip3 install -r mcp-servers/minimax-chat/requirements.txt4. 配置 Claude Code settings.json
在 ~/.claude/settings.json 中添加:
{
"env": {
"MINIMAX_API_KEY": "你的MiniMax API Key"
},
"mcpServers": {
"minimax-chat": {
"command": "/usr/bin/python3",
"args": ["/Users/你的用户名/.claude/mcp-servers/minimax-chat/server.py"],
"env": {
"MINIMAX_API_KEY": "你的MiniMax API Key",
"MINIMAX_BASE_URL": "https://api.minimax.io/v1",
"MINIMAX_MODEL": "MiniMax-M3"
}
}
}
}5. 重启 Claude Code
重启后,MCP 服务器将自动加载。
改写所有 Skills(重要!)
auto-review-loop-minimax 只是一个 skill 的 MiniMax 版。项目中有 46 个 skill 在 frontmatter 里授权了 Codex MCP (mcp__codex__codex),其中 28 个正文里有实际的调用块。如果你想全面切换到 MiniMax,需要让 Claude Code 把它们全部改写。
安装完 MCP 服务器后,在 Claude Code 对话中执行:
Read skills/auto-review-loop-minimax/SKILL.md as a reference.
It replaces mcp__codex__codex with mcp__minimax-chat__minimax_chat.
Now rewrite ALL other skills that use mcp__codex__codex / mcp__codex__codex-reply
to use mcp__minimax-chat__minimax_chat instead, following the same pattern.Claude Code 会自动:
- 扫描所有 skill 文件,找到使用 Codex MCP 的地方
- 参考
auto-review-loop-minimax的写法(MCP 优先 + curl fallback) - 逐个改写到你本地的
~/.claude/skills/目录
注意:这只修改你本地的 skill 副本,不影响仓库原文件。
使用方法
方法一:通过 MCP 工具(推荐)
当 MCP 正确配置后,使用:
/auto-review-loop-minimaxSkill 会自动检测并使用 mcp__minimax-chat__minimax_chat 工具。
方法二:通过 curl(备选)
如果 MCP 不可用,Skill 会自动回退到使用 curl 直接调用 MiniMax API。
确保环境变量 MINIMAX_API_KEY 已设置。
文件结构
~/.claude/
├── settings.json # Claude Code 全局配置
├── mcp-servers/
│ └── minimax-chat/
│ └── server.py # MiniMax MCP 服务器
└── skills/
├── auto-review-loop/
│ └── SKILL.md # 原版(Codex MCP)
└── auto-review-loop-minimax/
└── SKILL.md # MiniMax 版
项目目录/
├── review-stage/AUTO_REVIEW.md # 审查日志(自动生成)
└── review-stage/REVIEW_STATE.json # 状态持久化(自动生成)MCP 服务器特性
- 双格式支持:自动检测并支持标准 MCP 格式和 NDJSON 格式
- 调试日志:日志保存在系统临时目录下的
minimax-mcp-debug.log - 错误处理:完善的错误处理和恢复机制
验证安装
测试 MCP 服务器
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | \
MINIMAX_API_KEY="your-key" \
python3 ~/.claude/mcp-servers/minimax-chat/server.py预期输出:
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05",...}}测试 MiniMax API 连通性
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": "user", "content": "Say hello"}],
"max_tokens": 50
}'常见问题
Q: MCP 工具不可用?
- 检查系统临时目录下的
minimax-mcp-debug.log日志文件(可运行python3 -c "import tempfile; print(tempfile.gettempdir())"查看系统临时目录) - 确认
settings.json配置正确 - 确认 Python 路径正确(
/usr/bin/python3或which python3) - 重启 Claude Code
Q: API 调用失败?
- 确认 API Key 正确且有效
- 确认网络可访问
https://api.minimax.io/v1 - 检查 API 余额是否充足
- 查看调试日志中的错误信息
Q: Skill 没有触发?
确保使用正确的触发词:
- 原版:
auto review loop - MiniMax版:
auto review loop minimax
Q: 为什么不用 Codex MCP?
Codex CLI 硬编码使用 OpenAI Responses API,该 API 不被第三方提供商支持。详见 GitHub 讨论。
贡献
欢迎提交 Issue 和 PR 来改进这个集成!
参考资料
MODELSCOPE GUIDE (`docs/MODELSCOPE_GUIDE.md`)
ModelScope(魔搭社区)接入指南
本文档说明如何使用 ModelScope 的免费 API 驱动 ARIS 全流程,无需 Claude 或 OpenAI API。
背景
ModelScope 是什么
ModelScope(魔搭社区) 是阿里达摩院推出的开源模型即服务(MaaS)平台,提供 1000+ 开源模型的免费 API 推理服务,同时兼容 OpenAI 和 Anthropic 两大主流 API 协议。
为什么适合 ARIS
- 免费:注册即送每日 2000 次 API 调用,无需付费套餐
- 一个 Key 双协议:同一个
ms-xxxAPI Key 同时支持 Anthropic 和 OpenAI 兼容端点 - 模型丰富:DeepSeek-V4-Pro、DeepSeek-R1、Qwen3-Coder、GLM-5.1、Yi 等主流开源模型均可用
- 无使用限制:不像 Coding Plan 有"禁止自动化调用"的条款限制
支持的模型(推荐)
| 模型 | 推荐用途 | 说明 |
|---|---|---|
deepseek-ai/DeepSeek-V4-Pro |
执行器主力 | 综合能力强 |
Qwen/Qwen3-Coder-30B-A3B-Instruct |
执行器轻量 / 快速模型 | 代码能力优秀,速度快 |
deepseek-ai/DeepSeek-R1 |
审查器主力 | 推理质量高,适合深度 review |
Qwen/Qwen3-235B-A22B-Instruct |
审查器备选 | 大参数量,综合审查 |
完整模型列表见 ModelScope 模型库,筛选"API 推理"即可。模型 ID 格式为
组织/模型名。
为什么不能直接用 Codex MCP
原版 ARIS 的审查器使用 Codex MCP,而 Codex CLI 硬编码调用 OpenAI 专有的 Responses API (/v1/responses),第三方 API 提供商(包括 ModelScope)均不支持该接口。
解决方案:使用项目内置的 llm-chat MCP 服务器,它调用标准 Chat Completions API (/v1/chat/completions),兼容所有 OpenAI 兼容端点,包括 ModelScope。
双层架构
ModelScope 同时提供两套 API 端点,分别对应 ARIS 的两个角色:
┌──────────────────────────────────────────────────────────┐
│ Claude Code (CLI) │
│ │
│ ┌──────────────────┐ ┌─────────────────────────┐ │
│ │ 执行器 │──────▶│ 审查器 │ │
│ │ (Claude CLI) │ │ (llm-chat MCP) │ │
│ │ │ │ │ │
│ │ ANTHROPIC_* 变量 │ │ LLM_* 环境变量 │ │
│ │ → Anthropic 端点 │ │ → OpenAI 端点 │ │
│ └──────────────────┘ └─────────────────────────┘ │
└──────────────────────────────────────────────────────────┘| 角色 | 协议 | 端点 |
|---|---|---|
| 执行器(Claude CLI) | Anthropic 兼容 | https://api-inference.modelscope.cn |
| 审查器(llm-chat MCP) | OpenAI 兼容 | https://api-inference.modelscope.cn/v1 |
两个端点使用同一个 ModelScope API Key(ms-xxx 格式),无需分别申请。
获取 API Key
- 访问 ModelScope 并注册账号(支持支付宝/GitHub 登录)
- 登录后进入 API Key 管理页
- 创建一个 SDK Token,格式为
ms-xxxxxxxxxxxxxxxx - 无需付费——注册即可获得每日 2000 次免费调用额度
安装步骤
前置条件
- Claude Code CLI 已安装:
npm install @anthropic-ai/claude-code - Python 3 可用:
python3 --version(用which python3确认路径) - 已获取 ModelScope API Key(见上方)
Step 1:克隆仓库
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleepStep 2:安装 Python 依赖
pip3 install -r mcp-servers/llm-chat/requirements.txtStep 3:部署 llm-chat MCP 服务器
mkdir -p ~/.claude/mcp-servers/llm-chat
cp mcp-servers/llm-chat/server.py ~/.claude/mcp-servers/llm-chat/server.pyStep 4:安装 Skills
mkdir -p ~/.claude/skills
cp -r skills/* ~/.claude/skills/Step 5:配置 ~/.claude/settings.json
以下为推荐配置(DeepSeek-V4-Pro 执行 + DeepSeek-R1 审查)。用 which python3 替换 command 中的 python3 路径,用 echo $HOME 替换路径中的 $HOME:
{
"env": {
"ANTHROPIC_API_KEY": "ms-your-modelscope-token",
"ANTHROPIC_BASE_URL": "https://api-inference.modelscope.cn",
"ANTHROPIC_MODEL": "deepseek-ai/DeepSeek-V4-Pro",
"ANTHROPIC_SMALL_FAST_MODEL": "Qwen/Qwen3-Coder-30B-A3B-Instruct",
"API_TIMEOUT_MS": "3000000"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["$HOME/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "ms-your-modelscope-token",
"LLM_BASE_URL": "https://api-inference.modelscope.cn/v1",
"LLM_MODEL": "deepseek-ai/DeepSeek-R1"
}
}
}
}路径说明:
$HOME需替换为实际路径(如/root或/home/用户名),settings.json 不会自动展开 shell 变量。用which python3确认 python3 实际路径。
Step 6:改写所有使用 Codex MCP 的 Skills
项目中有 46 个 skill 在 frontmatter 里授权了 mcp__codex__codex(依赖 OpenAI Responses API,ModelScope 不支持),其中 28 个正文里有实际的调用块。在启动 Claude Code 后执行以下指令,让它自动完成改写:
Read skills/auto-review-loop-llm/SKILL.md as a reference.
It replaces mcp__codex__codex with mcp__llm-chat__chat.
Now rewrite ALL other skills that use mcp__codex__codex / mcp__codex__codex-reply
to use mcp__llm-chat__chat instead, following the same pattern.Claude Code 会自动扫描并改写所有相关 skill。
注意:此操作只修改
~/.claude/skills/中的本地副本,不影响仓库原文件。如需恢复,重新执行 Step 4 即可。
模型选择建议
| 场景 | 执行器 | 审查器 | 说明 |
|---|---|---|---|
| 推荐:能力均衡 | deepseek-ai/DeepSeek-V4-Pro |
deepseek-ai/DeepSeek-R1 |
DeepSeek 系列综合最强 |
| 备选:速度优先 | Qwen/Qwen3-Coder-30B-A3B-Instruct |
Qwen/Qwen3-235B-A22B-Instruct |
Qwen 系列,代码能力优秀 |
| 备选:跨模型 | deepseek-ai/DeepSeek-V4-Pro |
Qwen/Qwen3-235B-A22B-Instruct |
不同模型族,更强对抗性 |
关于跨模型优势:ARIS 的核心设计是执行器和审查器使用不同模型,形成真正的反馈循环。推荐使用不同模型族(如 DeepSeek 执行 + Qwen 审查)以最大化对抗性。
使用方法
配置完成后启动 Claude Code:
claude直接可用(无需改写)
/auto-review-loop-llm "你的论文主题" # 已原生支持 llm-chat MCP改写后可用(Step 6 完成后)
/idea-discovery "你的研究方向" # 工作流 1:文献 → idea → 查新 → 精炼 → 实验规划
/auto-review-loop "你的论文主题" # 工作流 2:自动 review 循环
/paper-writing "NARRATIVE_REPORT.md" # 工作流 3:叙事 → LaTeX → PDF
/research-pipeline "你的研究方向" # 完整流水线:1 → 2 → 3验证安装
1. 验证执行器端点(Anthropic 协议)
curl -s "https://api-inference.modelscope.cn/v1/messages" \
-H "Content-Type: application/json" \
-H "x-api-key: ms-your-modelscope-token" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"deepseek-ai/DeepSeek-V4-Pro","max_tokens":50,"messages":[{"role":"user","content":"Say hello"}]}'预期:返回包含 "content" 字段的 JSON。
2. 验证审查器端点(OpenAI 协议)
curl -s "https://api-inference.modelscope.cn/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ms-your-modelscope-token" \
-d '{"model":"deepseek-ai/DeepSeek-R1","messages":[{"role":"user","content":"Say hello"}],"max_tokens":50}'预期:返回包含 "choices" 字段的 JSON。
3. 验证 llm-chat MCP 服务器
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | \
LLM_API_KEY="ms-your-modelscope-token" \
LLM_BASE_URL="https://api-inference.modelscope.cn/v1" \
LLM_MODEL="deepseek-ai/DeepSeek-R1" \
python3 ~/.claude/mcp-servers/llm-chat/server.py预期输出中包含:"protocolVersion":"2024-11-05"
4. 在 Claude Code 中端到端验证
claude
> 读一下这个项目,验证所有 skill 是否正常可用与其他方案对比
| 默认方案 | Coding Plan | 本方案(ModelScope) | GLM + MiniMax | |
|---|---|---|---|---|
| 执行器 | Claude Opus/Sonnet | kimi-k2.5 | DeepSeek-V4-Pro | GLM-5 (Z.ai) |
| 审查器 | GPT-6-Astra (Codex MCP) | glm-5 | DeepSeek-R1 | MiniMax-M3 |
| 需要 Claude API | 是 | 否 | 否 | 否 |
| 需要 OpenAI API | 是 | 否 | 否 | 否 |
| 费用 | 按量 | 套餐付费 | 免费(2000次/天) | 按量 |
| 自动化限制 | 无 | 有(禁止无人值守) | 无 | 无 |
| API Key 数量 | 2 个 | 1 个 | 1 个 | 2 个 |
| 配置指南 | README | ALI_CODING_PLAN_GUIDE | 本文档 | LLM_API_MIX_MATCH_GUIDE |
ModelScope 的独特优势:免费 + 无自动化限制 + 一个 Key,是最低门槛的 ARIS 接入方式。
免费额度与限制
| 项目 | 限制 |
|---|---|
| 每日调用次数 | 2000 次(注册即送) |
| 单次请求 tokens | 取决于具体模型(通常 8K-128K) |
| 并发限制 | 有,具体见 API 使用限制 |
| 自动化使用 | 允许(无 Coding Plan 式限制) |
对于典型的
/auto-review-loop(4 轮,每轮 ~10 次 API 调用),一天可跑 ~50 次完整循环,远超日常使用需求。
常见问题
Q:API Key 从哪里获取?
登录 ModelScope,进入 我的令牌 页面创建 SDK Token。格式为 ms-xxxxxxxxxxxxxxxx。
Q:免费额度用完了怎么办?
等待第二天自动刷新(每日 2000 次)。如需更高额度,可在 ModelScope 平台申请或使用其他提供商。
Q:执行器报错 "401 Unauthorized"?
确认使用的是 ModelScope SDK Token(ms-xxx 格式),非其他平台的 Key。
Q:llm-chat MCP 工具在 Claude Code 中不出现?
- 确认
settings.json中command的 python3 路径正确(which python3) - 确认
args中的路径为绝对路径(不能包含$HOME,需替换为实际值) - 重启 Claude Code
Q:模型 ID 怎么找?
在 ModelScope 模型库 搜索模型,页面 URL 中的路径即为模型 ID(如 deepseek-ai/DeepSeek-R1)。只有标注"API 推理"的模型才支持 API 调用。
Q:如何切换审查器模型?
修改 ~/.claude/settings.json 中 mcpServers.llm-chat.env.LLM_MODEL 的值,重启 Claude Code 即可。
参考资料
MODEL COMBINATIONS (`docs/MODEL_COMBINATIONS.md`)
🔀 Alternative Model Combinations
← back to README · run ARIS with non-default executor / reviewer providers.
Don't have Claude / OpenAI API access? You can swap in other models — same cross-model architecture, different providers.
⭐ We strongly recommend Claude + GPT-6-Astra (default setup). It's the most tested and reliable combination. Alternative setups work but may require prompt tuning.
Beyond the default Claude × GPT-6-Astra route, ARIS ships 10 alternative routes (Alt A-I + C.1) covering Z.ai's GLM, Alibaba's Kimi/Qwen/GLM/MiniMax bundle, ModelScope's free DeepSeek-V3.1, Codex-as-executor with Claude or Gemini reviewers, and Google Antigravity as the executor.
Show full routing table — Default + Alt A-I × executor / reviewer / Claude-API needed / OpenAI-API needed / guide link
| Executor | Reviewer | Need Claude API? | Need OpenAI API? | Guide | |
|---|---|---|---|---|---|
| Default ⭐ | Claude Opus/Sonnet | GPT-6-Astra (Codex MCP) | Yes | Yes | Quick Start |
| Alt A | GLM-5 (Z.ai) | GPT-6-Astra (Codex MCP) | No | Yes | Setup below |
| Alt B | GLM-5 (Z.ai) | MiniMax-M3 | No | No | MINIMAX_MCP_GUIDE |
| Alt C | Any CC-compatible | Any OpenAI-compatible | No | No | LLM_API_MIX_MATCH_GUIDE |
| Alt C.1 | Claude / any CC-compatible | OpenRouter pinned model via llm-chat |
Optional | No | OPENROUTER_GUIDE |
| Alt D | Kimi-K2.5 / Qwen3.5+ | GLM-5 / MiniMax-M3 | No | No | ALI_CODING_PLAN_GUIDE |
| Alt E 🆓 | DeepSeek-V3.1 / Qwen3-Coder | DeepSeek-R1 / Qwen3-235B | No | No | MODELSCOPE_GUIDE |
| Alt F | Codex CLI (GPT-6-Astra) | Codex spawn_agent (GPT-6-Astra) |
No | Yes | skills-codex/ |
| Alt G 🆕 | Codex CLI | Claude Code CLI (claude-review MCP) |
No* | No* | CODEX_CLAUDE_REVIEW_GUIDE |
| Alt H 🆕 | Antigravity (Claude Opus 4.6 / Gemini 3.1 Pro) | GPT-6-Astra (Codex MCP) or any via llm-chat | No | Optional | ANTIGRAVITY_ADAPTATION |
| Alt I 🆕 | Codex CLI | Gemini direct API (gemini-review MCP) |
No | No | CODEX_GEMINI_REVIEW_GUIDE |
How to choose:
- Default — you have Claude + OpenAI access and want the most tested route.
- Alt A — only swap Claude for GLM, keep GPT-6-Astra as reviewer via Codex MCP.
- Alt B or Alt E — no Claude API, no OpenAI API (Alt E is free via ModelScope).
- Alt C or Alt D — OpenAI-compatible mix-and-match (Alt D = one Alibaba key for both sides).
- Alt C.1 — OpenRouter as an opt-in
llm-chatreviewer backend: one key, many models; pin a concrete reviewer model and keep it in a different family from the executor. - Alt G or Alt I — Codex stays as executor, only the reviewer changes (Claude or Gemini).
- Alt H — Antigravity as the executor (Claude Opus 4.6 or Gemini 3.1 Pro), GPT-6-Astra or any
llm-chatreviewer.
* Alt G normally relies on local Codex CLI and Claude Code CLI logins. Direct API keys are optional, not required.
Show detailed provider notes for Alt C/D/E/G/H/I
Alt C supports tested providers: GLM (Z.ai), Kimi (Moonshot), LongCat (Meituan) as executors; DeepSeek, MiniMax as reviewers. Any OpenAI-compatible API should also work via the generic llm-chat MCP server.
Alt D uses Alibaba Coding Plan — one API key for both executor and reviewer, 4 models included (Kimi, Qwen, GLM, MiniMax).
Alt E uses ModelScope — free (2000 calls/day), one key, no automation restrictions.
Alt G keeps Codex as executor but swaps the reviewer to Claude Code CLI via the local claude-review MCP bridge, with async polling for long paper/review prompts.
Alt H uses Google Antigravity as the executor with native SKILL.md support — choose Claude Opus 4.6 (Thinking) or Gemini 3.1 Pro (high) as the execution model.
Alt I keeps Codex as executor, adds only a thin skills-codex-gemini-review overlay, and routes the reviewer-aware predefined skills through the local gemini-review MCP bridge with direct Gemini API by default. It is the closest Gemini analogue to the existing Codex+Claude review path, while minimizing skill changes and now also covers poster PNG review via the same bridge. Free-tier availability, rate limits, and data-use terms remain subject to Google's current policy.
12.1 Alt A: GLM + GPT
Only replace the executor (Claude → GLM via Z.ai), keep GPT-6-Astra as reviewer via Codex MCP. Codex CLI reuses your existing OPENAI_API_KEY (from ~/.codex/config.toml or environment); no extra reviewer-side config.
Show Alt A setup commands and ~/.claude/settings.json
npm install @anthropic-ai/claude-code
npm install @openai/codex
codex setup # set model to gpt-6-astraConfigure ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your_zai_api_key",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"API_TIMEOUT_MS": "3000000",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.5-air",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5"
},
"mcpServers": {
"codex": {
"command": "python3",
"args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"]
}
}
}12.2 Alt B: GLM + MiniMax
No Claude or OpenAI API needed. Uses a custom MiniMax MCP server instead of Codex (because MiniMax doesn't support OpenAI's Responses API). Full guide: docs/MINIMAX_MCP_GUIDE.md.
12.3 Alt C: Any Executor + Any Reviewer
Mix and match freely using the generic llm-chat MCP server. Supports any OpenAI-compatible API as reviewer. Full guide: docs/LLM_API_MIX_MATCH_GUIDE.md.
Example combinations: GLM + DeepSeek, Kimi + MiniMax, Claude + DeepSeek, LongCat + GLM, etc.
12.4 After Setup: Install Skills & Verify
Use the project-local symlink install from § Install Skills above — that's the recommended path for all routes. The global-copy fallback below also works if you prefer everything under ~/.claude/skills/.
Show global-copy fallback install commands and the non-Claude executor verification prompt
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
cp -r skills/* ~/.claude/skills/
claude⚠️ For non-Claude executors (GLM, Kimi, etc.): Let the model read through the project once to ensure skills are correctly parsed. This is especially important if you've rewritten skills to use a different reviewer MCP (e.g.,
mcp__llm-chat__chatinstead ofmcp__codex__codex) — the new executor needs to understand the changed tool call patterns:textRead through this project and verify all skills are working: /idea-creator, /research-review, /auto-review-loop, /novelty-check, /idea-discovery, /research-pipeline, /research-lit, /run-experiment, /analyze-results, /monitor-experiment, /pixel-art
⚠️ Note: Alternative models may behave differently from Claude and GPT-6-Astra. You may need to tune prompt templates for best results. The core cross-model architecture remains the same.
MODEL COMBINATIONS CN (`docs/MODEL_COMBINATIONS_CN.md`)
🔀 替代模型组合
← 返回 README · 用非默认的 executor / reviewer 组合跑 ARIS。
没有 Claude / OpenAI API?可以换用其他模型——同样的跨模型架构,不同的提供商。
⭐ 强烈推荐使用 Claude + GPT-6-Astra(默认组合)。 这是经过最充分测试、最稳定的组合。替代方案可用但可能需要调整 prompt。
除了默认的 Claude × GPT-6-Astra,ARIS 还内置 10 条替代路由(方案 A-I + C.1),覆盖 Z.ai 的 GLM、阿里百炼的 Kimi/Qwen/GLM/MiniMax 套餐、ModelScope 免费的 DeepSeek-V3.1、Codex 作为执行者搭配 Claude 或 Gemini 审稿、以及 Google Antigravity 作为执行器。
展开完整路由表 —— 默认 + 方案 A-I × 执行者 / 审稿人 / 是否需要 Claude API / 是否需要 OpenAI API / 配置指南链接
| 执行者 | 审稿人 | 需要 Claude API? | 需要 OpenAI API? | 配置指南 | |
|---|---|---|---|---|---|
| 默认 ⭐ | Claude Opus/Sonnet | GPT-6-Astra(Codex MCP) | 是 | 是 | 快速开始 |
| 方案 A | GLM-5(Z.ai) | GPT-6-Astra(Codex MCP) | 否 | 是 | 配置见下 |
| 方案 B | GLM-5(Z.ai) | MiniMax-M3 | 否 | 否 | MINIMAX_MCP_GUIDE |
| 方案 C | 任意 CC 兼容 | 任意 OpenAI 兼容 | 否 | 否 | LLM_API_MIX_MATCH_GUIDE |
| 方案 C.1 | Claude / 任意 CC 兼容 | OpenRouter 固定模型 via llm-chat |
可选 | 否 | OPENROUTER_GUIDE_CN |
| 方案 D | Kimi-K2.5 / Qwen3.5+ | GLM-5 / MiniMax-M3 | 否 | 否 | ALI_CODING_PLAN_GUIDE |
| 方案 E 🆓 | DeepSeek-V3.1 / Qwen3-Coder | DeepSeek-R1 / Qwen3-235B | 否 | 否 | MODELSCOPE_GUIDE |
| 方案 F | Codex CLI (GPT-6-Astra) | Codex spawn_agent (GPT-6-Astra) |
否 | 是 | skills-codex/ |
| 方案 G 🆕 | Codex CLI | Claude Code CLI(claude-review MCP) |
否* | 否* | CODEX_CLAUDE_REVIEW_GUIDE_CN |
| 方案 H 🆕 | Antigravity(Claude Opus 4.6 / Gemini 3.1 Pro) | GPT-6-Astra(Codex MCP)或 llm-chat | 否 | 可选 | ANTIGRAVITY_ADAPTATION_CN |
| 方案 I 🆕 | Codex CLI | Gemini direct API(gemini-review MCP) |
否 | 否 | CODEX_GEMINI_REVIEW_GUIDE_CN |
怎么选:
- 默认 —— 你有 Claude + OpenAI 双账号,想要最稳的路径。
- 方案 A —— 只换执行者(Claude → GLM),审稿人保留 GPT-6-Astra via Codex MCP。
- 方案 B 或 方案 E —— 不用 Claude、不用 OpenAI API(方案 E 通过 ModelScope 免费)。
- 方案 C 或 方案 D —— OpenAI 兼容 API 自由混搭(方案 D 用阿里一个 Key 跑双端)。
- 方案 C.1 —— OpenRouter 作为 opt-in 的
llm-chat审稿后端:一个 Key 用多家模型;请固定具体审稿模型,并确保与执行者来自不同模型家族。 - 方案 G 或 方案 I —— 保留 Codex 作为执行者,只换审稿人(Claude 或 Gemini)。
- 方案 H —— 用 Antigravity 作为执行器(Claude Opus 4.6 或 Gemini 3.1 Pro),GPT-6-Astra 或任意
llm-chat审稿。
* 方案 G 通常依赖本地 Codex CLI 和 Claude Code CLI 的登录态;不强制要求 API key。
展开方案 C/D/E/G/H/I 的提供商细节
方案 C 已适配的提供商:GLM(Z.ai)、Kimi(Moonshot)、LongCat(美团)作为执行器;DeepSeek、MiniMax 作为审查器。任何 OpenAI 兼容 API 理论上均可通过通用 llm-chat MCP 服务器接入。
方案 D 使用阿里百炼 Coding Plan——一个 API Key 包含 4 款模型(Kimi、Qwen、GLM、MiniMax),双端点配置。
方案 E 使用 ModelScope(魔搭社区)——免费(2000 次/天),一个 Key,无自动化限制。
方案 G 保持 Codex 作为执行者,但把审稿人切换成通过本地 claude-review MCP bridge 暴露出来的 Claude Code CLI,并用异步轮询处理长论文 / 长 review prompt。
方案 H 使用 Google Antigravity 作为执行器,原生支持 SKILL.md——可选 Claude Opus 4.6(Thinking)或 Gemini 3.1 Pro(high)作为执行模型。
方案 I 保持 Codex 作为执行者,只增加一层很薄的 skills-codex-gemini-review overlay,并通过本地 gemini-review MCP bridge 把 reviewer-aware 预定义 skills 默认接到 direct Gemini API。这是与现有 Codex+Claude 审稿路径最接近的 Gemini 版本,同时 skill 改动最少,而且连 poster PNG 审查也复用了同一个 bridge。免费层可用性、限速和数据处理条款仍以 Google 当前政策为准。
方案 A: GLM + GPT
只替换执行者(Claude → 通过 Z.ai 切到 GLM),保留 GPT-6-Astra 通过 Codex MCP 审稿。Codex CLI 复用你已有的 OPENAI_API_KEY(来自 ~/.codex/config.toml 或环境变量),审稿端不需要额外配置。
展开方案 A 的安装命令与 ~/.claude/settings.json
npm install @anthropic-ai/claude-code
npm install @openai/codex
codex setup # 提示选模型时选 gpt-6-astra配置 ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your_zai_api_key",
"ANTHROPIC_BASE_URL": "https://api.z.ai/api/anthropic",
"API_TIMEOUT_MS": "3000000",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.5-air",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-5"
},
"mcpServers": {
"codex": {
"command": "python3",
"args": ["/ABSOLUTE/PATH/TO/aris_repo/mcp-servers/codex-exec/server.py"]
}
}
}方案 B: GLM + MiniMax
无需 Claude 或 OpenAI API。使用自定义 MiniMax MCP 服务器替代 Codex(因为 MiniMax 不支持 OpenAI 的 Responses API)。完整指南:docs/MINIMAX_MCP_GUIDE.md。
方案 C: 任意执行者 + 任意审稿人
通过通用 llm-chat MCP 服务器自由混搭,支持任意 OpenAI 兼容 API 作为审稿人。完整指南:docs/LLM_API_MIX_MATCH_GUIDE.md。
示例组合:GLM + DeepSeek、Kimi + MiniMax、Claude + DeepSeek、LongCat + GLM 等。
配置完成后:安装 Skills 并验证
推荐用上面 § 安装 Skills 的项目级 symlink 安装——所有方案通用。下面的全局拷贝是 fallback,如果你更习惯把所有 skill 放到 ~/.claude/skills/ 也行。
展开全局拷贝 fallback 安装命令与非 Claude 执行者的验证 prompt
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep
cp -r skills/* ~/.claude/skills/
claude⚠️ 非 Claude 执行者(GLM、Kimi 等): 需要让模型先读一遍项目,确保 skill 能正确解析。尤其是当你已经改写了 skill以使用不同的审查器 MCP(如
mcp__llm-chat__chat替代mcp__codex__codex)时——新执行器需要理解变更后的工具调用方式:text读一下这个项目,验证所有 skills 是否正常: /idea-creator, /research-review, /auto-review-loop, /novelty-check, /idea-discovery, /research-pipeline, /research-lit, /run-experiment, /analyze-results, /monitor-experiment, /pixel-art
⚠️ 注意: 替代模型的行为可能与 Claude 和 GPT-6-Astra 有所不同。你可能需要微调 prompt 模板以获得最佳效果。核心的跨模型架构不变。
MiniMax GLM Configuration (`docs/MiniMax-GLM-Configuration.md`)
MiniMax-M3 + GLM 配置教程 (Alt C)
概述
此配置方案使用 MiniMax-M3 作为执行者(Executor),GLM-5 作为审稿人(Reviewer)。
与方案 B(GLM + MiniMax)正好相反——适合需要 MiniMax 强大推理能力作为主力,GLM 进行代码审查的场景。
模型组合对比
| 角色 | 方案 A:GLM + GPT | 方案 B:GLM + MiniMax | 方案 C:MiniMax + GLM |
|---|---|---|---|
| 执行者(Claude Code) | GLM-5(智谱 API) | GLM-5(智谱 API) | MiniMax-M3(MiniMax API) |
| 审稿人(Skill 工具) | mcp__codex__codex |
mcp__llm-chat__chat |
mcp__llm-chat__chat |
| 需要 OpenAI API? | 是 | 否 | 否 |
配置步骤
第 1 步:安装 Claude Code
npm install @anthropic-ai/claude-code第 2 步:克隆 MCP Servers
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git
cd Auto-claude-code-research-in-sleep/mcp-servers/llm-chat
pip install -r requirements.txt
cd ../..第 3 步:配置 `~/.claude/settings.json`
编辑 ~/.claude/settings.json:
nano ~/.claude/settings.json添加以下配置:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your_minimax_api_key",
"ANTHROPIC_BASE_URL": "https://api.minimax.io/anthropic",
"API_TIMEOUT_MS": "3000000",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "MiniMax-M3",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "MiniMax-M3",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "MiniMax-M3"
},
"mcpServers": {
"llm-chat": {
"command": "python",
"args": [
"/path/to/mcp-servers/llm-chat/server.py"
],
"env": {
"LLM_API_KEY": "your_glm_api_key",
"LLM_BASE_URL": "https://open.bigmodel.cn/api/paas/v4/",
"LLM_MODEL": "GLM-5",
"LLM_SERVER_NAME": "glm"
}
}
}
}注意:将
/path/to/mcp-servers/llm-chat/server.py替换为实际路径。
保存:Ctrl+O → Enter → Ctrl+X
第 4 步:验证配置
# 启动 Claude Code
claude
# 验证 MiniMax 连接
> 请简单介绍一下你自己,告诉我你是什么模型
# 验证 GLM MCP
> 请使用 mcp__glm__chat 工具审查一段简单的代码配置说明
执行者配置(MiniMax)
| 配置项 | 值 | 说明 |
|---|---|---|
ANTHROPIC_AUTH_TOKEN |
MiniMax API Key | 从 MiniMax 开放平台 获取 |
ANTHROPIC_BASE_URL |
https://api.minimax.io/anthropic |
MiniMax Anthropic 兼容端点 |
ANTHROPIC_DEFAULT_*_MODEL |
MiniMax-M3 |
使用 MiniMax-M3 作为所有模型 |
审稿人配置(GLM via llm-chat MCP)
| 配置项 | 值 | 说明 |
|---|---|---|
LLM_API_KEY |
GLM API Key | 从 智谱开放平台 获取 |
LLM_BASE_URL |
https://open.bigmodel.cn/api/paas/v4/ |
GLM OpenAI 兼容端点 |
LLM_MODEL |
GLM-5 |
使用 GLM-5 作为审稿模型 |
| MCP 工具 | mcp__glm__chat |
调用 GLM 进行审稿 |
API 密钥获取
MiniMax API Key
- 访问 MiniMax 开放平台
- 注册/登录账号
- 进入「API 密钥管理」
- 创建新的 API Key
GLM API Key
- 访问 智谱开放平台
- 注册/登录账号
- 进入「API Keys」页面
- 创建新的 API Key
工作流程
┌─────────────────────────────────────────────────────────────┐
│ Auto-claude-code-research │
│ (Sleep Mode Research) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ MiniMax-M3 │
│ (Executor) │
│ │
│ • 理解研究任务 │
│ • 执行代码编写 │
│ • 运行测试验证 │
│ • 生成研究报告 │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ GLM-5 (via llm-chat) │
│ (Reviewer) │
│ │
│ • 代码质量审查 │
│ • 逻辑正确性验证 │
│ • 安全漏洞检查 │
│ • 改进建议生成 │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ 最终输出 │
│ (代码 + 报告 + 审查意见) │
└───────────────────────────────┘关键区别
此方案与方案 B 的关键区别:
| 方案 B:GLM + MiniMax | 方案 C:MiniMax + GLM | |
|---|---|---|
| 审稿人 API | MiniMax OpenAI 兼容 API | GLM OpenAI 兼容 API |
| MCP 工具 | mcp__codex__codex |
mcp__glm__chat |
| 模型 | MiniMax-M3 | GLM-5 |
常见问题
Q: MiniMax API 返回错误
检查以下几点:
- API Key 是否正确配置
- Base URL 是否正确(注意末尾的
/) - 账户余额是否充足
Q: GLM MCP 未生效
确保:
llm-chat/server.py路径正确- Python 依赖已安装 (
pip install -r requirements.txt) mcp__glm__chat工具可用- 网络可访问智谱 API 端点
参考
此配置方案由社区贡献,适用于 Auto-claude-code-research-in-sleep 项目
NARRATIVE REPORT EXAMPLE (`docs/NARRATIVE_REPORT_EXAMPLE.md`)
Narrative Report: Attention Sparsity Patterns in Long-Context Transformers
This is a sample NARRATIVE_REPORT.md for demonstrating
/paper-writing(Workflow 3). It shows the structure and level of detail that produces the best results. Replace this content with your own research.
Core Story
We investigate how attention patterns in Transformer language models change as context length increases from 2K to 128K tokens. Our key finding is that attention becomes increasingly sparse — at 128K context, 90%+ of attention mass concentrates on fewer than 5% of positions — but existing sparse attention methods (e.g., sliding window, BigBird) fail to match the learned sparsity pattern, leading to a 12-18% perplexity gap compared to full attention.
We propose Adaptive Sparsity Distillation (ASD), which learns position-dependent sparsity masks from a full-attention teacher at short context, then generalizes to long context at inference. ASD closes 70% of the sparse-vs-full gap while using 8× less memory than full attention.
Claims
Attention sparsity increases with context length: At 2K tokens, top-5% positions capture 60% attention mass; at 128K, they capture 93%. This is consistent across model sizes (125M to 7B) and training data.
Fixed-pattern sparse attention is suboptimal: Sliding window (W=512) captures only 40% of the learned sparse pattern at 128K context, explaining the persistent perplexity gap (14.2 vs 12.6 full attention on PG-19).
ASD transfers short-context sparsity to long context: Distilled masks from 4K context generalize to 128K with 85% overlap, because the sparsity pattern is largely position-relative (not position-absolute).
ASD achieves favorable quality-efficiency tradeoff: 13.1 PPL (vs 12.6 full, 14.2 sliding window) at 8× memory reduction on PG-19 128K.
Experiments
Setup
- Models: GPT-2 125M (pilot), Llama-2 7B (main)
- Data: PG-19 (books, long documents), GovReport (summarization), SCROLLS (long-range QA)
- Hardware: 8× A100 80GB, DeepSpeed ZeRO-3
- Baselines: Full attention, sliding window (W=128/256/512), BigBird, Longformer, StreamingLLM
Experiment 1: Sparsity Measurement (Figure 1)
Measured attention entropy and top-k concentration at context lengths [512, 1K, 2K, 4K, 8K, 16K, 32K, 64K, 128K].
Results (Llama-2 7B, PG-19, averaged over layers 8-24):
| Context Length | Attention Entropy (bits) | Top-5% Mass | Top-1% Mass |
|---|---|---|---|
| 512 | 5.82 | 0.48 | 0.21 |
| 2K | 5.14 | 0.61 | 0.33 |
| 8K | 4.31 | 0.77 | 0.49 |
| 32K | 3.52 | 0.88 | 0.62 |
| 128K | 2.87 | 0.93 | 0.71 |
Interpretation: Entropy drops ~50% from 512 to 128K. Sparsity is not uniform across layers — early layers (1-4) remain relatively dense; middle and late layers (8-32) become extremely sparse.
Experiment 2: Fixed-Pattern Overlap Analysis (Figure 2)
Computed overlap between each fixed-pattern method's attention mask and the actual learned attention pattern (thresholded at top-5%).
| Method | Overlap @ 2K | Overlap @ 32K | Overlap @ 128K |
|---|---|---|---|
| Sliding Window (W=512) | 0.72 | 0.51 | 0.40 |
| BigBird (W=256, G=64) | 0.68 | 0.55 | 0.44 |
| Longformer (W=256, G=64) | 0.69 | 0.54 | 0.43 |
| StreamingLLM (S=4) | 0.35 | 0.28 | 0.25 |
Interpretation: All fixed patterns degrade with context length. Sliding window is best at short context but degrades fastest. The mismatch explains the perplexity gap.
Experiment 3: ASD Distillation (Figure 3, Table 1)
Trained ASD masks from 4K full-attention teacher, evaluated at [4K, 16K, 32K, 64K, 128K].
Table 1: Perplexity on PG-19
| Method | 4K | 16K | 32K | 64K | 128K | Memory (128K) |
|---|---|---|---|---|---|---|
| Full Attention | 11.2 | 11.8 | 12.1 | 12.3 | 12.6 | 80 GB |
| Sliding Window (W=512) | 11.5 | 12.8 | 13.4 | 13.8 | 14.2 | 10 GB |
| BigBird | 11.6 | 12.6 | 13.1 | 13.5 | 13.9 | 12 GB |
| StreamingLLM | 12.4 | 13.8 | 14.5 | 15.1 | 15.8 | 8 GB |
| ASD (ours) | 11.3 | 12.0 | 12.4 | 12.7 | 13.1 | 10 GB |
Gap closed: (14.2 - 13.1) / (14.2 - 12.6) = 69% of the sliding-window-to-full gap.
Experiment 4: Mask Transfer Analysis (Figure 4)
Measured how well 4K-distilled masks generalize to longer contexts.
| Evaluation Length | Mask Overlap with Full-Attention Top-5% | ASD PPL | Full PPL |
|---|---|---|---|
| 4K (train) | 0.95 | 11.3 | 11.2 |
| 16K | 0.91 | 12.0 | 11.8 |
| 32K | 0.88 | 12.4 | 12.1 |
| 64K | 0.86 | 12.7 | 12.3 |
| 128K | 0.85 | 13.1 | 12.6 |
Interpretation: Overlap degrades gracefully (95% → 85%), not catastrophically. Masks are position-relative patterns (e.g., "attend to tokens at distance ±50 and ±200") that transfer well.
Experiment 5: Downstream Tasks (Table 2)
| Task | Full Attn | SW-512 | ASD | Random Sparse |
|---|---|---|---|---|
| GovReport (R-L) | 34.2 | 30.1 | 33.4 | 25.8 |
| SCROLLS (QA F1) | 41.5 | 35.2 | 39.8 | 28.4 |
| BookSum (R-L) | 28.7 | 24.3 | 27.1 | 20.5 |
ASD consistently outperforms fixed-pattern baselines and approaches full attention.
Experiment 6: Ablation — Distillation Context Length (Figure 5)
Distilled from different teacher context lengths, evaluated at 128K:
| Teacher Context | 128K PPL | Mask Overlap @ 128K |
|---|---|---|
| 1K | 13.8 | 0.78 |
| 2K | 13.5 | 0.81 |
| 4K | 13.1 | 0.85 |
| 8K | 13.0 | 0.86 |
| 16K | 12.9 | 0.87 |
Diminishing returns beyond 4K — ASD is practical because it only needs short-context distillation.
Figures
- Figure 1: Line plot — attention entropy vs context length (log-scale x-axis), separate lines for layer groups (early/middle/late). Shows the sparsity increase.
- Figure 2: Heatmap — overlap matrix (method × context length). Shows fixed patterns degrade.
- Figure 3: Bar chart — PPL comparison across methods at 128K. Main result.
- Figure 4: Line plot — mask overlap vs evaluation length. Shows graceful degradation.
- Figure 5: Line plot — teacher context vs 128K PPL. Shows diminishing returns.
- Table 1: Main results table (Experiment 3). Already in LaTeX-ready format.
- Table 2: Downstream tasks table (Experiment 5).
Known Weaknesses
- Only evaluated on English text (PG-19, GovReport). Multilingual and code domains untested.
- ASD adds a distillation phase (~2 GPU-hours on 8×A100). Not zero-cost.
- Comparison with concurrent work (MInference, Quest) incomplete — these appeared after our experiments.
- Theoretical justification for why position-relative patterns generalize is informal (Section 4.3 is hand-wavy).
Related Work
- Sparse Attention: BigBird (Zaheer et al., NeurIPS 2020), Longformer (Beltagy et al., 2020), StreamingLLM (Xiao et al., ICLR 2024)
- Long Context: RoPE scaling (Chen et al., 2023), YaRN (Peng et al., ICLR 2024), LongRoPE (Ding et al., 2024)
- Attention Analysis: Attention is not Explanation (Jain & Wallace, NAACL 2019), quantifying attention flow (Abnar & Zuidema, ACL 2020)
- Efficient Attention: FlashAttention (Dao et al., NeurIPS 2022), FlashAttention-2 (Dao, ICLR 2024), Ring Attention (Liu et al., 2024)
- Knowledge Distillation for Efficiency: DistilBERT (Sanh et al., 2019), TinyBERT (Jiao et al., EMNLP 2020)
Proposed Title
"Attention Sparsity Scales with Context: Distilling Adaptive Sparse Masks for Long-Range Transformers"
Target Venue
ICLR 2027
OPENCLAW ADAPTATION (`docs/OPENCLAW_ADAPTATION.md`)
OpenClaw 适配指南(ARIS Workflow)
目标:在没有 Claude Code slash 技能的情况下,把 ARIS 的核心流程迁移到 OpenClaw 对话式执行。
1. 适配思路
ARIS 的本质是「科研流程编排」:
- Workflow 1:文献 → 想法 → 新颖性/可行性评估
- Workflow 2:实验执行 → 自动评审循环 → 迭代修复
在 OpenClaw 中,可用“阶段化任务 + 文件化产出”替代 slash skill。
2. 对应关系(ARIS → OpenClaw)
| ARIS /skill | OpenClaw 等价执行方式 | 产出文件 |
|---|---|---|
/research-lit |
让 agent 执行文献扫描与结构化综述 | outputs/lit_scan.md |
/idea-creator |
让 agent 生成候选方案 + MVP + 失败信号 | outputs/idea_report.md |
/run-experiment |
生成实验矩阵、运行命令、日志路径规范 | outputs/experiment_plan.md / outputs/runbook.md |
/auto-review-loop |
轮次化评审(评分+最小修复动作) | outputs/review_loop.md |
| 全流程 | 分阶段串联执行 | outputs/final_summary.md |
3. 最小可跑流程(可直接复制)
阶段1:文献扫描
执行阶段1:按课题做文献扫描,输出 outputs/lit_scan.md,并给出5条研究空白。阶段2:想法生成
执行阶段2:基于 outputs/lit_scan.md 生成3个 idea,输出 outputs/idea_report.md,并给出 Top1/Top2。阶段3:实验剧本
执行阶段3:基于 Top1 生成实验矩阵与周计划,输出 outputs/experiment_plan.md 和 outputs/runbook.md。阶段4:评审循环
执行阶段4:开始 review loop,最多4轮;每轮输出评分、短板、最小修复动作,更新 outputs/review_loop.md。4. OpenClaw 实施建议
- 文件优先:每阶段必须有明确文件产出,避免上下文漂移。
- 轮次控制:review loop 默认最多 4 轮,避免无穷迭代。
- 证据可追溯:涉及史料/数据时,强制记录来源与定位字段。
- 同步机制:本地文件可同步到飞书文档,便于跨端审阅。
- 升级安全:修改前先做备份提交,再做正式改动提交。
OPENROUTER GUIDE (`docs/OPENROUTER_GUIDE.md`)
OpenRouter Integration Guide
This document explains how to use OpenRouter as an ARIS reviewer backend through the existing llm-chat MCP server. This is useful when you want a free or pay-as-you-go alternative for review calls without replacing ARIS's default assurance routing.
For mandatory audit gates, keep ARIS's default Codex MCP reviewer unless you have made a deliberate, audited routing change. Executor and reviewer must be pinned to different model families.
Background
What is OpenRouter
OpenRouter is a unified AI model API gateway that provides:
- 200+ models: OpenAI, Anthropic, Google, DeepSeek, MiniMax, Qwen, and more
- Free models: Some models offer free tiers, such as
minimax/minimax-m2.5:free - Unified interface: Standard OpenAI-compatible API, one key for many model providers
- Transparent pricing: Free models plus pay-as-you-go billing
Recommended Reviewer Models
| Model | Provider family | Purpose | Notes |
|---|---|---|---|
minimax/minimax-m2.5:free |
MiniMax | Reviewer | Good free reviewer candidate when executor is not MiniMax |
meta-llama/llama-3.1-70b-instruct |
Meta Llama | Reviewer | Paid pinned fallback when executor is not Llama |
Full model list: https://openrouter.ai/models
Use a pinned model ID rather than the Free Models Router for any skill that emits an assurance-gated verdict, and ensure executor and reviewer pin to different model families.
Dual-Layer Architecture
┌──────────────────────────────────────────────────────────┐
│ Claude Code (CLI) │
│ │
│ ┌──────────────────┐ ┌─────────────────────────┐ │
│ │ Executor │──────▶│ Reviewer │ │
│ │ (Claude CLI) │ │ (llm-chat MCP) │ │
│ │ │ │ │ │
│ │ ANTHROPIC_* │ │ LLM_* environment │ │
│ │ variables │ │ variables │ │
│ └──────────────────┘ └─────────────────────────┘ │
└──────────────────────────────────────────────────────────┘| Role | Protocol | Endpoint |
|---|---|---|
| Executor | Anthropic-compatible | Anthropic, OpenRouter, or another Claude Code-compatible endpoint |
| Reviewer | OpenAI-compatible | https://openrouter.ai/api/v1 through llm-chat |
OpenRouter should be treated as an opt-in reviewer backend via /auto-review-loop-llm. Production audit and assurance skills that depend on cross-family review should stay on mcp__codex__codex unless reviewer routing is intentionally changed and re-audited.
Getting an API Key
- Visit OpenRouter to register an account.
- Go to the Keys page and create an API key.
- Key format:
sk-or-v1-xxxxxxxxxxxxxxxx. - Free models can be used without deposit, subject to OpenRouter's current limits.
Installation Steps
Prerequisites
- Claude Code CLI installed:
npm install @anthropic-ai/claude-code - Python 3 available
- OpenRouter API key obtained
- A local ARIS checkout
Step 1: Clone ARIS
git clone https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git /path/to/aris_repo
cd /path/to/aris_repoStep 2: Install Python Dependencies
pip3 install -r mcp-servers/llm-chat/requirements.txtStep 3: Install ARIS Skills with the Standard Installer
# Standard ARIS install: points symlinks from a target project into this ARIS repo.
bash /path/to/aris_repo/tools/install_aris.sh /path/to/your-projectDo not pass $PWD from inside the ARIS repo itself. The installer should target your paper or experiment project, not the ARIS checkout. It manages per-skill symlinks, the installed-skill manifest, the .aris/tools/ helper chain (plus the global pointer file ~/.aris/repo, which lets the same chain resolve even for a global copy-install with no per-project manifest), and reconcile/uninstall/migration paths.
Step 4: Deploy the llm-chat MCP Server
mkdir -p ~/.claude/mcp-servers/llm-chat
cp mcp-servers/llm-chat/server.py ~/.claude/mcp-servers/llm-chat/server.pyThis manual copy is only for the MCP server, which install_aris.sh does not manage. Do not copy skills/* by hand.
Step 5: Configure `~/.claude/settings.json`
Option A: Executor also uses OpenRouter
Use a specific Anthropic-family model for Claude Code execution and a non-Anthropic OpenRouter model for review.
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-or-v1-your-openrouter-key",
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "anthropic/claude-opus-4.6",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "anthropic/claude-sonnet-4.6",
"ANTHROPIC_SMALL_FAST_MODEL": "anthropic/claude-sonnet-4.6",
"API_TIMEOUT_MS": "3000000",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "6000"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["$HOME/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "sk-or-v1-your-openrouter-key",
"LLM_BASE_URL": "https://openrouter.ai/api/v1",
"LLM_MODEL": "minimax/minimax-m2.5:free"
}
}
}
}Option B: Executor uses another API and reviewer uses OpenRouter (recommended)
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your-executor-api-key",
"ANTHROPIC_BASE_URL": "https://api.anthropic.com",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6",
"API_TIMEOUT_MS": "3000000",
"CLAUDE_CODE_MAX_OUTPUT_TOKENS": "6000"
},
"mcpServers": {
"llm-chat": {
"command": "/usr/bin/python3",
"args": ["$HOME/.claude/mcp-servers/llm-chat/server.py"],
"env": {
"LLM_API_KEY": "sk-or-v1-your-openrouter-key",
"LLM_BASE_URL": "https://openrouter.ai/api/v1",
"LLM_MODEL": "minimax/minimax-m2.5:free"
}
}
}
}Path notes: Replace
$HOMEwith the actual path, such as/rootor/home/username, and confirm thepython3path withwhich python3.
Use in ARIS
Use the already-shipped /auto-review-loop-llm skill when you want OpenRouter-backed review:
claude
> /auto-review-loop-llm "your paper topic"Do not batch-rewrite upstream skills from mcp__codex__codex to mcp__llm-chat__chat. Skills with assurance: submission, such as production paper audits and proof/citation checks, rely on ARIS's reviewer independence contract and should remain on the default Codex MCP path unless you intentionally update reviewer routing.
Verification
1. Verify Reviewer Endpoint
curl -s "https://openrouter.ai/api/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-or-v1-your-key" \
-d '{
"model": "minimax/minimax-m2.5:free",
"messages": [{"role": "user", "content": "Say hello"}],
"max_tokens": 50
}'Expected: JSON response containing a "choices" field.
2. End-to-End Verification in Claude Code
claude
> Read the project and verify that the /auto-review-loop-llm skill is working properlyComparison with Other Solutions
| Default | Coding Plan | ModelScope | OpenRouter | |
|---|---|---|---|---|
| Executor | Claude Opus | kimi-k2.5 | DeepSeek-V3 | 200+ models available |
| Reviewer | GPT-6-Astra xhigh fresh thread | glm-5 | DeepSeek-R1 | 200+ pinned models available |
| Free Options | No | No | Yes, 2000/day subject to current ModelScope policy (source) | Yes, free models subject to OpenRouter limits |
| API Key Count | 2 | 1 | 1 | 1 |
| Model Selection | Limited | 4 types | 1000+ types | 200+ types |
| Pricing | Pay-as-you-go | Package | Free | Free + pay-as-you-go |
OpenRouter's advantage: one key can access many reviewer model families, including free options. For ARIS audit correctness, pin the reviewer model explicitly.
FAQ
Q: What is openrouter/free?
openrouter/free is OpenRouter's Free Models Router. It auto-selects from currently available free models and may return different model families over time. It is fine for casual experiments, but do not use it for ARIS assurance-gated review.
Q: What are the limitations of free models?
Free models have rate limits and availability can change. For heavy or reproducible usage, use a paid pinned model.
Q: How do I switch reviewer models?
Modify the LLM_MODEL value in settings.json, ensure the model is from a different family than the executor, and restart Claude Code.
Q: Does OpenRouter support Claude Code execution?
OpenRouter can be used as the Claude Code executor backend for compatible models, but this guide recommends OpenRouter first as a reviewer backend through llm-chat.
Q: Why is the llm-chat MCP call failing?
Check:
- API key format is correct and starts with
sk-or-v1-. - Model ID is pinned and includes a namespace, such as
minimax/minimax-m2.5:free. - Account has sufficient free quota or paid balance.
References
- OpenRouter Official Website
- OpenRouter Model List
- OpenRouter Documentation
- OpenRouter Free Models Router
- ModelScope quota note
- LLM API Mix & Match Guide
OPENROUTER GUIDE CN (`docs/OPENROUTER_GUIDE_CN.md`)
OpenRouter 接入指南
本文档说明如何通过现有 llm-chat MCP 服务器,把 OpenRouter 作为 ARIS 的审稿后端。它适合想用免费或按量付费模型做 reviewer 的场景,但不替代 ARIS 默认的 assurance 审稿路由。
对强制审计 gate,请保留 ARIS 默认的 Codex MCP 审稿路径,除非你已经做过有意识、可审计的路由替换。执行者和审稿人必须固定到不同模型家族。
背景
OpenRouter 是什么
OpenRouter 是统一 AI 模型 API 网关,提供:
- 200+ 模型:OpenAI、Anthropic、Google、DeepSeek、MiniMax、Qwen 等
- 免费模型:部分模型提供免费额度,例如
minimax/minimax-m2.5:free - 统一接口:标准 OpenAI-compatible API,一个 Key 访问多个模型提供商
- 价格透明:免费模型 + 按量计费
推荐审稿模型
| 模型 | 模型家族 | 用途 | 说明 |
|---|---|---|---|
minimax/minimax-m2.5:free |
MiniMax | 审稿人 | 执行者不是 MiniMax 时可作为免费 reviewer 候选 |
| `meta-llama/llama-3.1-70b-ins |