Arbor — Autonomous Optimization via Hypothesis Tree Refinement
Runs a long-horizon experiment loop that improves a code/model/prompt artifact against an evaluator, using a persistent hypothesis tree and a held-out test merge gate to avoid overfitting.
Dev & CodingAdvanced★ 46,333⑂ 4,193AI score 9/10Last updated: Sep 21, 2026
What it does
Implements Hypothesis Tree Refinement (HTR) from the Arbor paper as a Claude Code workflow.
- Pins down the task tuple first:
(M_0 artifact, objective, E_dev evaluator, E_test evaluator). - Claude acts as a long-lived coordinator owning a hypothesis tree; short-lived executor subagents each test one hypothesis inside an isolated git worktree.
- Six-step cycle repeated until budget is spent: Observe → Ideate → Select → Dispatch → Backpropagate → Decide.
- Falsified branches are pruned with a recorded reason, becoming negative constraints; leaf insights are abstracted into direction-level and global priors.
- A candidate becomes the new best only if it beats the held-out
E_test, so dev-set exploitation gets caught instead of shipped. - All bookkeeping runs through
scripts/tree.py(init, observe, add-node, set-evidence, propagate, prune, merge) plus reference docs for executor briefs and the final report.
Who it's for
- ML engineers tuning training recipes, optimizers, or architectures over many trials.
- Agent/harness builders pushing pass rate or accuracy on a scored loop.
- Anyone doing MLE-bench / Kaggle-style "improve the submission" work.
- Prompt or data-pipeline optimization where outputs can be auto-scored.
- Not for one-shot fixes or evaluator-free ideation.
Example uses
- Kick off a run:
python scripts/tree.py init --objective "Improve BrowseComp answer accuracy" --dev-eval "python eval.py --split dev --n 50" --test-eval "python eval.py --split test --n 300" --branching 3 --max-depth 2 --budget 12. - Compare sibling hypotheses in parallel: under the depth-1 direction "verification, not retrieval, is the bottleneck", dispatch "aggregate K=5 rollouts by evidence dossier" and "decompose the question into atomic constraints" simultaneously, then abstract the shared lesson upward.
- Catch an overfit candidate: a branch that jumps on dev but collapses on test gets
prune --reason "search-augmented judge overfits dev questions; no test transfer", and that reason steers later ideation away from the same trap.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/HEAD/skills/arbor/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/arbor folder from the GitHub repo K-Dense-AI/scientific-agent-skills into my ~/.claude/skills/arbor/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git && mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/arbor ~/.claude/skills/arbor⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal.
- Clone the skill repository:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - Create the skills directory if needed:
mkdir -p ~/.claude/skills - Copy just this skill:
cp -r scientific-agent-skills/skills/arbor ~/.claude/skills/arbor - Verify
~/.claude/skills/arborcontainsSKILL.md,scripts/tree.py, and thereferences/folder. - Make sure Python 3 and git are installed, and that the project you want to optimize is git-tracked and currently runnable.
- Prepare two scoring commands: a fast dev evaluator for search, and a separate held-out test evaluator used only at the merge gate.
- Restart Claude Code and ask something like "run many experiments to raise this benchmark score without overfitting the dev split" to trigger the skill.
View source on GitHub ↗License: MIT