Help us improve
Share bugs, ideas, or general feedback.
From auto-research
LLM研究のフルライフサイクル (literature → idea → experiment → paper) を 8 phases / 4 user gates のステートマシンで進行するメインワークフロー。 Use when: LLMに関する新規研究を「アイディアの種」「論文URL」「研究テーマ文字列」のいずれかから 始めて論文ドラフトまで一気通貫で進めたい場合。 フォーカス: Evaluation/Benchmark, Agent/Tool-use, Fine-tuning/Post-training, Prompt/ICL, Attention・LLMアーキテクチャ内部研究。 NOT for: 単発の論文要約 (→ arxiv-mcp-agent)、本番ML推論パイプライン (→ ml-engineer)、 Rustクレート生成 (→ rlac-create)。 入力: 自然言語の研究テーマ | arXiv URL | 既存 .research/<slug>/STATE.json への再開
npx claudepluginhub 0h-n0/auto-research --plugin auto-researchHow this skill is triggered — by the user, by Claude, or both
Slash command
/auto-research:auto-researchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
LLM 研究のメインワークフロー。各 Phase で成果物ファイルを残し、4 つのゲートでユーザー承認を取りながら literature → idea → experiment → paper を進める。
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
auto-research — LLM研究 フル自動ワークフローLLM 研究のメインワークフロー。各 Phase で成果物ファイルを残し、4 つのゲートでユーザー承認を取りながら literature → idea → experiment → paper を進める。
arxiv-mcp-agent (breadth) と ml-engineer (実装) を再実装せず必ず Agent dispatch する。重複させない。events.jsonl の必須フィールド: event, level, ts, run_id, duration_ms (CLAUDE.md 規約)。error.type, error.message, error.stack は失敗時のみ。seed, dtype, git_rev, config_hash を RunConfig に固定。torch.use_deterministic_algorithms(True)。references/responsible_research.md 参照。superpowers:test-driven-development skill を必ず invoke。Red → Green → Refactor。各フェーズ開始時に進捗を表示:
[Phase N/8] {フェーズ名}
前フェーズの成果: {要約}
次にやること: {概要}
ユーザー対話は 4 ゲートのみ: G1 (Phase 1 末), G2 (Phase 3 末), G3 (Phase 4 末), G4 (Phase 8)。
State 管理: 全プロジェクトは .research/<slug>/STATE.json で進行を記録。references/phase_state_machine.md を参照。
1.1 入力種別の判定 — $ARGUMENTS を解析:
--resume <slug> → .research/<slug>/STATE.json を読み、current_phase から再開 (Phase 1 をスキップ)arxiv.org or .pdf → 起点論文として記録 (WebFetch でメタ取得)1.2 project_slug 生成: 入力から ^[a-z][a-z0-9-]{2,48}$ の slug を生成。既存 .research/ 下と衝突する場合は -2, -3 を付与。
1.3 ディレクトリ初期化:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/init_state.sh" <slug>
これで .research/<slug>/{02_SURVEY,06_RUNS,paper,figures}/ と STATE.json が生成される。
1.4 Brief ドラフト生成 → .research/<slug>/01_BRIEF.md:
# Research Brief: {topic}
## Motivation
{1-3 文。なぜ今やる価値があるか}
## Scope
- focus_area: {evaluation | agent | post-training | prompt | attention | other}
- 対象モデル規模: {例: ~7B open weights / API only / both}
- 検証する現象 / 改善対象: {一文}
## Out of Scope
- {明示的に除外する論点}
## Success Criteria
- 主要指標: {例: MMLU +1.5pt 統計的有意 (paired bootstrap)}
- 副次指標: {例: throughput regression < 5%}
## Budgets
- time_budget_days: {N}
- compute_budget_gpu_h: {N}
- compute_kind: {例: 1× A100 80GB / 4× H100 / TPU v4-8 / API only}
## Paper Format
- {latex-neurips | latex-acl | markdown}
## Starting Pointers
- {arxiv id / blog / github があれば箇条書き}
1.5 ユーザー確認 — Gate G1 (対話 1 回目):
🟡 Gate G1: スコープ確認
Brief を `.research/{slug}/01_BRIEF.md` に保存しました。
focus_area = {value} / time_budget = {N} days / compute_budget = {N} GPU-h
このまま Phase 2 (文献サーベイ) に進めますか?
[Y] 進む [E] 編集 [Q] 中断
承認時 STATE.json.last_gate_passed = "G1" に更新。
2.1 検索計画 — 01_BRIEF.md の focus_area と Starting Pointers から 3-6 個の検索クエリを組み立てる。research.literature.matrix skill を invoke。
2.2 breadth-first 検索 — Agent(subagent_type="arxiv-mcp-agent") を 1 回 dispatch:
arxiv-mcp-agent への依頼:
目的: {01_BRIEF.md の motivation}
検索クエリ: {計画した 3-6 個}
期間: 直近 24 ヶ月 (基礎論文が必要なら適宜広げる)
カテゴリ: cs.CL / cs.LG / cs.AI など focus_area に応じて
出力: papers.jsonl (id, title, year, abstract_summary, our_relevance) の最低 10 件
返ってきた候補を .research/<slug>/02_SURVEY/papers.jsonl に書き込む。
2.3 depth-first 並列読解 — 上位 3-5 本を Agent(subagent_type="paper-deep-reader") で 並列 dispatch (1 メッセージ複数 tool calls):
各 paper-deep-reader への依頼:
{problem, method, equations_summary, dataset, metric, claim, limitation, replicability_checklist, our_relevance} (固定、research.literature.matrix/references/paper_note_schema.md 準拠).research/<slug>/02_SURVEY/notes/<paper_id>.md並列重複防止: papers.jsonl を mutex として claim 済み id をスキップ。
2.4 比較表生成 — research.literature.matrix skill が notes/*.md を集約し 02_SURVEY/MATRIX.md を生成 (method × dataset × metric の 1 論文 1 行)。
2.5 論文骨子の早期作成 (v0.13.0+) — research.paper.scaffold skill を invoke:
paper/DRAFT.md を新規作成 (draft_md_skeleton.md 雛形ベース)[Background] + [Implication] placeholder1.1 Motivation (BRIEF.md から) + 1.2 Related Work (MATRIX.md から、grouped by sub-area, inline citations)paper/refs.bib に最小 bibtex (papers.jsonl 由来)phase_section_map.md 参照)これにより 実験前から論文の骨格が見える状態 を作る (paper-first methodology, v0.13.0+)。 本ステップは任意で skip 可。
2.6 進捗表示 (ゲートなし、自動継続):
[Phase 2/8 完了] 文献サーベイ
読解した論文: N 本
比較表: .research/{slug}/02_SURVEY/MATRIX.md
次: Phase 3 (Gap 分析・アイディア抽出)
STATE.json.current_phase = 3 に更新。
3.1 並列 gap 分析 — Agent(subagent_type="research-gap-finder") を 3 並列 で dispatch (seed違いで多様性確保):
各 research-gap-finder への依頼:
02_SURVEY/MATRIX.md, papers.jsonl, notes/*.md03_GAP_ANALYSIS_{a,b,c}.md3.2 統合とアイディア提案 — 3 つの gap analysis を統合し 03_GAP_ANALYSIS.md (統合版) と 03_IDEAS.md を生成。
03_IDEAS.md フォーマット:
# Ideas
## Idea 1: {tagline}
- novelty: {1-5}
- feasibility: {1-5} (compute_budget 内で実行可能か)
- impact: {1-5}
- 仮説: {一文 falsifiable}
- 必要リソース: GPU-h ~{N}, データ {name/license}, モデル {id}
- 主要 risk: {一文}
## Idea 2 ...
3.3 ユーザー確認 — Gate G2 (対話 2 回目):
🟡 Gate G2: アイディア採択
3 つの gap finder が以下のアイディアを提案しています:
1. {Idea 1 tagline} (N/F/I = 4/3/4)
2. {Idea 2 tagline} (N/F/I = 5/2/5)
3. {Idea 3 tagline} (N/F/I = 3/4/3)
[1-N] 1つ採択 [M] 複数採択 (要相談) [R] サーベイに戻る (Phase 2) [Q] 中断
STATE.json.last_gate_passed = "G2"、採択された idea 番号を STATE.json.adopted_idea_id に記録。
3.4 論文骨子の更新 (v0.13.0+) — research.paper.scaffold skill を再 invoke:
## Abstract の [Method] (採択 Idea の Proposed experiment から)## Abstract の [Hypothesis (Phase 6 で検証予定)] (採択 Idea の Core hypothesis から)### 1.3 Contributions (3-4 bullet、各 hypothesis に紐付け)3.4 では 1.1 Motivation / 1.2 Related Work は touch しない (人手 polish 尊重)。
3.5 Lab notebook の seed (v0.14.0+ / v0.15.0 拡張) — research.lab.notebook skill を invoke:
03_IDEAS.md の adopted vs rejected を分離03_REJECTED_IDEAS.md に full body + rejection reason + future revisit conditions で保存 (捨てない)LAB_NOTEBOOK.md を skeleton から生成 + Phase 3 entry (3 ideas considered, 1 adopted, 2 rejected の判断記録)Predicted outcome / Confidence (低/中/高) / Key assumptions ≤3 を agent draft (Annie Duke "How to Decide" 由来、Light touch、hindsight bias 防止)#phase-3 #decision-adopted 等) + 自由 tag を agent draftこれにより Phase 4 以降で「なぜ B でなく A を選んだか」「B を再考する条件」「採択時に何を予測 / 信じていたか」を即座に参照可能。
4.1 設計委任 — Agent(subagent_type="experiment-designer") を 1 回 dispatch:
experiment-designer への依頼:
入力: 03_IDEAS.md の採択 idea, 01_BRIEF.md の budget
出力: 04_EXPERIMENT_PLAN.md (RQ, H1..Hn, 独立/従属変数, ablation 軸,
primary/sanity metric, baselines, 統計検定 (paired bootstrap 等),
seed plan, GPU-h 見積)
制約: compute_budget_gpu_h を超えない設計。超える場合は smaller model / LoRA / subset eval を提案
4.2 計画妥当性チェック:
eval_protocol.md 準拠 (汚染チェック、ベースライン妥当性)references/reproducibility_checklist.md 全項目埋め4.3 ユーザー確認 — Gate G3 (対話 3 回目):
🟡 Gate G3: 実験予算 + 設計合意
`04_EXPERIMENT_PLAN.md` を生成しました:
RQ: {一文}
ベースライン: {N 個}
Ablation 軸: {M 個}
推定 GPU-h: {N} (予算 {budget} の {%})
primary metric: {name}, 統計検定: {method}
このまま Phase 5 (実装) に進めますか?
[Y] 進む [E] 編集 [R] アイディア再選 (Phase 3) [Q] 中断
STATE.json.last_gate_passed = "G3"。
4.4 論文骨子の更新 (v0.13.0+) — research.paper.scaffold skill を再 invoke:
## 2. Method (RQ → Hypotheses → Factor Matrix → primary/sanity metric → statistical test)### 3.1 Setup (datasets / models / decoding / prompt template / compute budget)4.5 Lab notebook の Phase 4 entry (v0.15.0+ 新規) — research.lab.notebook skill を invoke:
Plan summary (1-2 文)Predicted ablation winner / Predicted statistical significance / Confidence / Key assumptions ≤3#phase-4 #decision-design #confidence-{low|medium|high} 等)### 3.2 Baselines (baseline list with refs to refs.bib)これで ## 3.3 Results 以外の主要 section が揃う。実験前に reviewer に見せれば 80% コメント可能 な品質。
5.1 プロジェクト雛形 — research.experiment.scaffold skill を invoke:
.research/<slug>/code/ に uv プロジェクトを生成 (pyproject.toml, src/, tests/, configs/, notebooks/, results/)。RunConfig dataclass を必ず生成。
5.2 TDD 規律 — superpowers:test-driven-development skill を invoke:
Agent(subagent_type="ml-engineer"))5.2.5 TDD Red 30min stuck (v0.18.0+) — Red 段階で 30 分以上 stuck な user 認識時:
research.lab.notebook を manual invoke 推奨 (test failure + hypothesis + verified by を short note で記録)Today's stuck フィールドで 1 行残す/auto-research:lessons-search --phase 5 で過去の Phase 5 stuck パターンを検索next_steps_template.md §3.7 に従って提示5.3 ベースライン実行 — 1 seed・1 config でベースラインを通す。uv run pytest -q 全パス & ベースライン metrics が 04_EXPERIMENT_PLAN.md の sanity 範囲内か確認。
5.4 進捗表示 (ゲートなし):
[Phase 5/8 完了] Scaffold + Baseline
ベースライン {metric}: {value} (期待 {expected_range})
テスト: passed
次: Phase 6 (本番実験 + 分析)
6.1 本番実行 — research.experiment.run skill を invoke:
run_id = {YYYYMMDD-HHMMSS}-{git-sha[:7]}-{config-hash[:6]}06_RUNS/<run_id>/{config.yaml, metrics.json, events.jsonl, STATUS} に書き出すSTATUS=failed で残すhooks/post-experiment-log.sh) が events.jsonl に追記する6.2 並列分析 — 全実行完了後、以下を 並列 dispatch:
- Agent(subagent_type="result-statistician")
入力: 06_RUNS/*/metrics.json
出力: 06_RESULTS.md, figures/*.pdf, 統計検定結果
- (focus_area が attention の場合のみ)
Agent(subagent_type="attention-analyst")
入力: 最良/最悪 run のチェックポイント
出力: analysis/<slug>.py + results/<slug>.json (logit lens / patching 結果)
6.3 sanity check 失敗時のロールバック:
CHANGELOG.md に記録)6.4 論文骨子の更新 (v0.13.0+) — research.paper.scaffold skill を再 invoke:
### 3.3 Results を 06_RESULTS.md から書く (preliminary、Phase 7 で polish)## Abstract の [Hypothesis (Phase 6 で検証予定)] を [Result] に置換 (実測値 + 統計検定の閾値)6.5 失敗 run の lab notebook 化 (v0.14.0+ / v0.15.0 拡張) — research.experiment.run が STATUS=failed
を書いた直後に research.lab.notebook を auto-trigger:
06_RUNS/<id>/POSTMORTEM.md 下書き (Hypothesis space 3-5 候補 draft、§4 Decision / §5 Lessons は user polish 必須)06_RUNS/<id>/reproduce.sh を events.jsonl から構築 (set -euo pipefail + uv sync --frozen)06_RUNS/<id>/uv.lock snapshot を project root から copy (deps drift 防止)LAB_NOTEBOOK.md に Phase 6 entry (POSTMORTEM への link + Tags 含)これにより 失敗 run も成功 run と同等の reproducibility 7-tuple (code rev / config / deps / seed / data hash / hardware / reproduce.sh) を持ち、bash reproduce.sh で同じ failure を再現可能。さらに hindsight bias を防ぐ metacognition が自動生成される。
6.6 進捗表示:
[Phase 6/8 完了] Run & Analysis
完了 run: N (failed: M) ⚠ M 件の POSTMORTEM 下書き済 (要 polish)
primary metric 結果: {summary}
paper/DRAFT.md 充足度: ~95%
Reproducibility checklist: 全 N run ✓
次: Phase 7 (論文ドラフト最終仕上げ)
7.1 論文骨格 — research.paper.draft skill を invoke:
01_BRIEF.md の paper_format で latex-neurips / latex-acl / markdown を分岐references/paper_skeleton.{tex,md} を雛形として .research/<slug>/paper/ に展開7.2 章ごと並列ドラフト — 以下を 並列 dispatch (1 メッセージ複数 Task):
04_EXPERIMENT_PLAN.md, 06_RESULTS.md, 02_SURVEY/MATRIX.md を渡す7.3 統合パス — 用語・記号を統一、refs.bib を Semantic Scholar MCP で DOI 補完、図表番号を整理。
7.4 関連研究最終確認 — Agent(subagent_type="arxiv-mcp-agent") で「直近 3 ヶ月の関連最新論文」を再検索し Related Work セクションに追補。
7.5 進捗表示:
[Phase 7/8 完了] Paper Drafting
paper/main.{tex|md}: 全 N 章ドラフト完了
refs.bib: M エントリ
次: Phase 8 (セルフレビュー)
8.1 セルフレビュー — Agent(subagent_type="research-gap-finder") を reviewer モードで dispatch:
依頼 (v0.18.0 拡張):
入力:
- paper/main.{tex,md} (LaTeX 化済 paper)
- paper/DRAFT.md (v0.13.0+) (paper.scaffold 由来、Phase 4 Predicted ablation winner 等を含む)
- 06_RESULTS.md (実測 metric)
- LAB_NOTEBOOK.md (v0.14.0+) (Phase 3-6 decision journal + metacognition、特に Surprise score)
- 06_RUNS/*/POSTMORTEM.md (v0.14.0+) (failed run の Hypothesis space + Lessons)
- 03_REJECTED_IDEAS.md (v0.14.0+) (捨てた idea の revisit conditions)
(不在ファイルは skip、v0.13.0 以前 project でも broken なし)
観点 (ICLR reviewer 視点):
- Soundness: 主張と証拠の対応、統計検定の妥当性
- Presentation: 構成、図表、用語一貫性
- Contribution: 新規性、impact、再現性
- Reproducibility: seed / config / 環境再現の十分性
- Design integrity (v0.18.0+):
* Phase 3-4 の予測 (Decision journal block) vs Phase 6 実測の alignment
* Surprise score high (≥4) の assumption 反証の含意
* rejected ideas の revisit risk (03_REJECTED_IDEAS.md の future revisit conditions)
* POSTMORTEM の Lessons が paper の Limitations 節に反映されているか
出力: 08_REVIEW.md (弱点 + reviewer-likely-questions)
並列で gemini skill を invoke し「直近 1 週間の関連最新論文」を確認、出てきたら Related Work に追加。
8.1.5 Lessons 統合 (v0.14.0+ / v0.15.0 拡張) — research.lab.notebook skill を再 invoke:
LAB_NOTEBOOK.md の Phase 3-6 entries (特に POSTMORTEM §5 Lessons + Phase 6 metacognition の Generalizable insight 集約) から top 3 lessons を抽出08_REVIEW.md に ## Lessons learned 節として 追記 (上書きしない)03_REJECTED_IDEAS.md の "Future revisit conditions" を見直し、archive 候補を提示~/.research-lessons.json (user home、全プロジェクト共通) に top 3 lessons を atomic append (id 衝突 skip、idempotent)。schema は lessons_db_schema.md 準拠これにより Phase 8 review が「失敗からの学び」も含めた総括になり、/auto-research:lessons-search で過去プロジェクトの institutional memory も検索可能、次プロジェクトの起点になる。
8.2 ユーザー確認 — Gate G4 (対話 4 回目):
🟢 Gate G4: 公開判断
セルフレビュー完了:
Soundness: {pass/concern}
致命的問題: {N 件}
reviewer-likely-questions: {M 件}
[Y] 公開する (CHANGELOG.md に記録、終了)
[I] 致命的問題を修正
→ 修正方向を user に問う (v0.18.0+):
[4] Phase 4 (実験計画見直し、新しい因子追加 / hypothesis 拡張)
[6] Phase 6 (追加 run 実施、現状計画を保ったまま データ補強)
[E] レビューコメントだけ反映してもう 1 周
[Q] 中断 (現状凍結)
[I] 選択時、user 選択に応じて .research/<slug>/CHANGELOG.md に rollback 記録:
[4] → yyyy-mm-dd: rolled back to Phase 4 (致命的問題 N 件: ...) + STATE.json.current_phase = 4 + rollbacks に entry[6] → yyyy-mm-dd: extended Phase 6 (致命的問題 N 件: ...) + STATE.json.current_phase = 6 + rollbacks に entryresearch.lab.notebook も Phase 8 lessons (致命的問題の root cause を blameless で要約) を 08_REVIEW.md に統合 + Lessons DB append。
公開時 CHANGELOG.md に [unreleased] -> [v0.1.0] のように追記、STATE.json.completed_at をセット。
references/phase_state_machine.md 参照。最低限:
{
"project_slug": "attention-sink-llama-long-ctx",
"created_at": "2026-05-09T10:00:00Z",
"current_phase": 4,
"last_gate_passed": "G3",
"adopted_idea_id": 2,
"active_run_ids": [],
"paper_format": "latex-neurips",
"focus_area": "attention",
"compute_budget_gpu_h": 200
}
| 失敗 | 検出 | 回復 |
|---|---|---|
| 関連論文 < 5 本 | Phase 2 | キーワード LLM で拡張、隣接領域へ |
| novelty 不足 | Phase 3 G2 | Phase 2 に戻り検索軸を直交化 |
| GPU 不足 | Phase 4 G3 | smaller model / LoRA / subset eval |
| sanity 失敗 | Phase 6 | Phase 5 へ戻る |
| 致命的レビュー指摘 | Phase 8 G4 | Phase 4 or 6 へ戻る |
各 rollback は .research/<slug>/CHANGELOG.md に 1 行で記録 (yyyy-mm-dd: rolled back from Phase 6 → 5 (sanity failure on metric X))。
各 Phase 完了時、および呼び出された /auto-research:research-* コマンドの最終出力末尾に、
next-step trailer を 必ず 出力する。仕様は references/next_steps_template.md に集約。
最小手順:
.research/<slug>/STATE.json を Read (なければ「STATE.json 不在」分岐)next_steps_template.md §2 マッピング表 + §3 特殊状態に従って 推奨 / 代替 を決定─ 罫線、●○ 進捗バー、空行 1 個)skip 不可。STATE.json が読めない場合も §1「STATE.json 不在」テンプレを出す。
research.notebook.viz skill で MkDocs material による HTML 視覚化 を任意で実施可能。
MD ファイルは SoT として残し、HTML は .research/<slug>/viz/ に generated artifact として出力:
> /auto-research:notebook-viz <slug> # build only
> /auto-research:notebook-viz <slug> --serve # localhost:8000 で preview
Tags: → mkdocs-material tags plugin で逆引きPhase auto-dispatch なし (build は重め、user が見たい時に manual)。詳細: skills/research.notebook.viz/SKILL.md。
references/phase_state_machine.md — STATE.json schema + rollback edgesreferences/next_steps_template.md — Next-step trailer の表示仕様 + 状態マッピングreferences/data_lineage.md — データの所在・retention・公開方針 (v0.3.0+)references/error_handling_spec.md — Phase 別 failure mode と回復手順 (v0.4.0+)skills/research.cost.estimate/references/gpu_price_table.json — GPU 単価 SoT (v0.5.0+)skills/research.experiment.scaffold/references/observability_setup.md — W&B/MLflow opt-in (v0.5.0+)skills/research.publish/SKILL.md — HF Hub / Zenodo upload + DOI (v0.6.0+)skills/research.compute.shop/SKILL.md — GPU 提供元のランク推奨 (18 provider catalog) (v0.8.0+)skills/research.autonomous.tinker/SKILL.md — karpathy 流 autonomous tinker mode (Phase 5-6 alt) (v0.9.0+)skills/research.autonomous.swarm/SKILL.md — N agents 並列 swarm mode (research org) (v0.10.0+)references/eval_protocol.md — ベンチマーク選定・汚染チェックreferences/reproducibility_checklist.md — Phase 4 で必須項目references/data_card_template.md — Phase 5 で生成references/responsible_research.md — PII / 著作権 / LLM-author 開示agents/DISPATCH_MATRIX.md (プラグイン root) — 5 subagents × 8 phases の dispatch ルール