Crucible is the open research operating system for autonomous ML discovery on commodity GPUs — where hypothesis synthesis, fleet orchestration, and judge-separated loops compose into one closed loop.
Every roadmap item below is scored against that statement. If a proposed feature drifts into wet-lab, frontier-model-scale, dev-engineering agent, or HPO math reinvention, it's not on this roadmap — see docs/positioning.md for the exclusions.
Crucible works. We've validated the full loop — provision RunPod pods, bootstrap, dispatch experiments, monitor, collect results, destroy. Training losses drop, W&B logs, experiments complete. Hub-based cross-project knowledge sharing, GIANTS-style synthesis, judge-separated LM-as-judge loops, the harness optimizer, the eval-watcher daemon, and a 200+-tool MCP server are all functional.
But it's alpha software. Here's an honest assessment and what comes next.
| Feature | Status | Notes |
|---|---|---|
| RunPod fleet provisioning | Working | Multi-pod runs, project-tagged isolation, transactional orphan recovery |
| SSH provider | Structural | Not battle-tested |
| Bootstrap (sync + install + data) | Working | Per-step state tracking, exponential backoff |
| Experiment dispatch via SSH | Working | Detached subprocess on pods |
| Result collection via rsync | Working | Poll-based |
| W&B integration | Working | Logging, annotation, image support; wandb.required=true enqueue + runtime contract |
CLI (crucible command) |
Working | All subcommands wired |
| Orchestrator-contract researcher | Working | research_request_prompt / research_submit — no LLM keys in Crucible |
Legacy AutonomousResearcher |
Working | Closed-loop Python API (opt-in, requires ANTHROPIC_API_KEY) |
| GIANTS-style finding synthesis | Working | design_synthesize_from_findings mines hub finding pairs with provenance |
| Judge-separation contract | Working | Reward/eval/audit judges; enforced before pod time burns |
| Tree search (UCB1 / greedy / epsilon-greedy / agent-directed / GRPO) | Working | Multi-policy node expansion, N-D Pareto frontiers |
| Harness optimizer | Working | Meta-harness evolutionary loop with N-D Pareto |
| Eval-watcher daemon | Working | Auto-evals running pods, SHA-deduplicated, persists across restarts |
| Model zoo + plugin system | Working | 4 built-in + plugin auto-discovery, declarative composer |
| MCP server (200+ tools) | Working | Fleet, design, research, hub, models, taps, harness, eval-watch |
| REST API (10 endpoints) | Working | FastAPI thin wrapper |
| Hub (cross-project knowledge) | Working | 3-tier finding promotion, git-synced |
| Notes system | Working | Markdown + YAML frontmatter, HF Discussion crosspost |
| Research briefing | Working | LLM session orientation, optional HF prior-attempts pull |
| HuggingFace collab (Tier 14 + 15) | Working | Publish leaderboards/findings/recipes/artifacts; pull peer prior attempts and discussions |
| Output parser | Working | Regex patterns validated |
| Configurable metrics | Working | No hardcoded assumptions |
| Interactive TUI | Partial | Design browser + diff + history; no live fleet/queue/leaderboard yet |
| Test suite | Partial | Core/runner/analysis/architect/plugins covered; fleet/synthesis/code-search gaps |
| Community taps | Working | Homebrew-style plugin sharing across 15 plugin types |
Before building more, we acknowledge what others do better:
- Fleet orchestration: SkyPilot supports 20+ clouds with cost optimization and spot failover. Our RunPod + SSH is functional but not competitive at the infra layer.
- HPO math: Optuna and Ax have mathematically superior search (TPE, Bayesian, CMA-ES). Our LLM-driven search is different, not necessarily better at parameter optimization.
- Experiment tracking UI: W&B and MLflow exist. We don't build dashboards.
- Model zoo: HuggingFace Transformers exists. Our components are from one competition.
- Paper generation: Sakana AI Scientist already has a Nature 2026 peer-reviewed paper. We'll ship a draft generator (Phase 4), but writing isn't the moat — the research loop is.
- Full closed-loop autonomy on rental GPUs — No other tool goes from API key → autonomous research loop on RunPod/SSH.
- MCP-first agent-native architecture — Model Context Protocol is the native orchestration interface. Any LLM the orchestrator picks can drive Crucible; no LLM keys baked in.
- GIANTS-style cross-finding synthesis —
design_synthesize_from_findingspair-mines hub findings across projects/tracks; provenance carried through batches and W&B tags. No competitor has this. - Judge-separation contract — reward judge ≠ eval judge in different model families, enforced at the contract layer before pod time burns. Hard-coded into the API surface.
- Tiered experiment promotion — Experiments earn expensive compute (smoke → screen → proxy → medium → promotion).
- Plugin registry with 3-tier precedence — 15 extension points unified under one contract. Taps make sharing Homebrew-easy.
- Harness optimizer — meta-harness evolutionary loop for agent scaffolds / memory systems with N-D Pareto frontier tracking.
- Auto-eval daemon — polls running pods, SCPs new checkpoints, runs your eval suite on each, SHA-deduplicated, persists across restarts.
- HuggingFace collab as peer-research surface — publish leaderboards/findings/recipes/artifacts; pull peer agents' prior attempts and discussions to inform your hypothesis stage.
- Cross-project knowledge hub — git-synced findings with confidence-gated promotion (project → track → global).
Full plan + audit at /Users/eren/.claude/plans/ai-native-discovery-engines-xuster-virtual-hare.md. Realistic timeline: 10-13 weeks.
Lock the positioning statement in the codebase, prune scope.
- Positioning statement drafted (May 2026 audit)
- README.md leads with the niche, not the feature list
- CLAUDE.md "What is this?" updated
-
docs/positioning.md1-pager (landscape, what we are NOT, scope tests) - ROADMAP.md refreshed (this file)
-
docs/index.mdaligned (Phase 2.7 learning-path reorg)
Exit: Positioning statement appears verbatim in README, CLAUDE.md, docs/positioning.md.
Make one MCP call drive N iterations end-to-end while keeping the orchestrator-contract design intact.
-
autonomous_research_loopMCP tool — persisted-session driver (start/submit/status/cancel), doom-loop detector, content-hash state_snapshot, wall-clock × pod-rate budget cap (Phase 1.1/1.2/1.8) -
tree_autonomous_loopMCP tool — same protocol over tree search; external_dispatch hint when pending nodes await fleet ops (Phase 1.4) -
harness_autonomous_loopMCP tool — wraps HarnessOptimizer + judge-separation guard (Phase 1.5) - Auto-promote findings —
context_push_finding(auto_promote=True)honors PROMOTION_RULES per-scope thresholds (Phase 1.7 small-batch) -
tree_prune(mode='auto')— deterministic greedy kill via configured metric threshold (Phase 1.10, collapsed into the existing tool per "don't add a sibling tool when a parameter does the job") - Literature pre-injection —
with_literature=Trueon autonomous_research_loop pulls top-K HF Papers vialiterature.py(Phase 1.7) - CLI:
crucible research run --iterations N --tier proxy --budget-usd $X(Phase 1.1) - Plus the
autoresearchimporter (crucible research import autoresearch <path>) — strategic differentiator hedge against Lightning AI bolting multi-GPU onto autoresearch (Phase 1.6) - Part G — production-hardening sweep: 8 schema-skew / race-safety seams closed (state file_lock, atomic writes, content_hash, doom-loop, budget guard, file-lock factory typing, stale-submit MCP roundtrip, TUI partial-data)
Exit: One MCP call + one CLI command can drive a full closed loop with no orchestrator handholding beyond initial setup.
Flatten 12-step onboarding to 5, make the 200+ MCP tools navigable, turn the TUI into a live cockpit.
-
tool_routerMCP — 11-branch state-aware recommender (Phase 2.1) - Briefing
next_actionsfield —get_research_briefing()returns structured tool recommendation + markdown "Recommended Next Tool" section (Phase 2.2) - TUI cockpit screens — FleetPane, QueuePane, LeaderboardPane, BriefingPane in TabbedContent (Phase 2.3, branch
phase-2-3-tui-cockpit) -
docs/quickstart-5-minutes.md— cold start to leaderboard + tool-router rec in 5 commands (Phase 2.4) -
runs_searchMCP tool — SQL-ish predicate with safe AST whitelist + optionalstrict_fieldstypo detection (Phase 2.5) -
crucible recipe list / getCLI + recipe index in docs (Phase 2.6) -
docs/index.mdlearning path — 5-section organization (Phase 2.7) - Plus
crucible mcp call <tool>CLI single-shot dispatcher (Phase 2.4 hook)
Exit: First-day onboarding goes from 12 steps to 5; TUI shows live state; agents never have to guess "what should I call next?"
Make Crucible bidirectional — publish outward today, ingest inward tomorrow.
- Evaluators plugin family —
core/evaluators.pyparallel to data_sources/; builtinlm_eval_harnessshells out to lm-eval CLI;evaluator_listMCP tool (Phase 3.3) - Optuna HPO bridge —
hpo_create_study/hpo_ask_trial/hpo_tell_result/hpo_statusMCP. Tell-and-ask over TPE/random/CMA-ES/BoTorch samplers; in-process cache (threading.Lock from Part H) + persisted JSON for resume (Phase 3.4) - External MCP consumption —
external_mcp_servers:config +external_mcp_list_servers/list_tools/callMCP tools with per-call timeout (Phase 3.5) - Code-level mutation — Phase 5+ deferred per "Sakana spent 6 weeks on this"; interface stub + design doc +
code_mutation_listMCP tool ship in Phase 3.6 (full impl indocs/code-mutation-design.md) -
research_arxiv_search(Phase 3.1) +research_openreview_search(Phase 3.2) MCP tools — Atom-feed + v2/v1 fallback, defusedxml-safe parse
Exit: Crucible ingests external benchmark scores, consumes Optuna posteriors, calls external MCP, and mutates training code.
Demonstrate the niche with an end-to-end story plus features competitors don't have.
-
note_generate_paper_draft(track_name)MCP tool — request_prompt/submit orchestrator contract, 7 required sections, markdown H1/H2 demotion to prevent header injection (Phase 4.1) - Memory-aware GIANTS synthesis —
design_synthesize_from_findings(policy='memory_filter')with tunablememory_filter_configfor half_life_days / cross_project_bonus / etc. (Phase 4.2) -
research_peer_sync(challenge_id)— shared HF Discussion thread with v1 header convention; redact_secrets on both write and read sides (Phase 4.3 + Part H.1.2 read-side fix) -
examples/full_autonomous_discovery/— 11-step playbook README exercising every Phase 1-4 surface end-to-end (Phase 4.4) - Public showcase video / asciinema for the README (optional, deferred)
Exit: A new user can clone, run the demo, and have a paper draft + reproducibility bundle by lunch.
- Smoke gate every phase.
tests/integration/test_phase_N_end_to_end.pyruns the headline deliverable on a fake-fleet (SSH provider pointed at localhost). - Doc audit.
docs/quickstart-5-minutes.mdmust work verbatim after each phase. Tracked in CI doc-lint step. - MCP tool descriptions. Every new MCP tool includes REQUIRES/RETURNS/NEXT and is reachable from
tool_router. - Positioning gate. Each phase exit reviews against the positioning statement: strengthens the niche, or drifts?
- Experiment tracking UI — Use W&B or MLflow.
- Kubernetes orchestration — Use SkyPilot.
- Model serving / inference — Out of scope.
- Dataset hosting — Use HuggingFace.
- Optimization math — Use Optuna/Ax (integrate, don't reinvent).
- Wet-lab integration — Periodic Labs / Profluent / FutureHouse Phoenix own that space.
- Frontier model training — Crucible is model-agnostic; users bring their LLM via the orchestrator contract.
- Enterprise dev-engineer agent — Cognition Devin owns that. Different buyer.
- Web UI (in this roadmap) — TUI is enough for now; web UI is post-Phase 4 if at all.
See CONTRIBUTING.md. Highest-impact contributions:
- Compute providers — Modal, Lambda, Vast.ai, SkyPilot backends.
- Search strategies — Optuna, Ax, code-mutation policies.
- Evaluator plugins — lm-eval-harness, BIG-bench, papers-with-code adapters.
- Architecture plugins — Mamba, SSM, MoD reference architectures.
- Domain spec plugins — taps with task-specific harness templates.
- Bug reports — File issues, we'll fix them.