Arbor Merge Discipline — DECIDE Doctrine

SkillDev tools

DECIDE-phase doctrine for an Arbor research run: when to merge, prune, combine, or finalize; how the held-out merge gate works; and the rule that the final report uses TEST scores. Load before deciding what to do with completed experiments.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Arbor Merge Discipline — DECIDE Doctrine skill

What this skill tells your AI

The instructions your AI receives, as published by invergent-ai/surogates in skills/research/arbor-merge-discipline/SKILL.md and read by ahel’s review.

When to merge

Call merge_experiment(action=start, node_key=...) for a done node whose dev score beats trunk. The tool re-runs the held-out test eval ITSELF (you cannot pass a score); poll merge_experiment(action=status, node_key=...) on a later turn. A successful merge writes test_trunk_score and advances trunk — later experiments branch from the new HEAD automatically. A refusal (no improvement, protected-path hit, conflict) is tree evidence, not an error to retry blindly.

When to prune

idea_tree(action=prune, node_key=..., reason=<the lesson>) for dead ends. The reason is backpropagated up the ancestor chain, so write the transferable lesson ("lr schedules don't help this objective"), not "didn't work".

Combine (ensemble)

When several diverse nodes each help a different failure class, propose a child hypothesis that ensembles/blends them. Once single ideas plateau this is often the highest-leverage move — it is exactly the "Combine" the convergence intervention suggests.

Search-scout (related work)

Before merging a validated winner, optionally delegate_task a short web search ("related work for "), then record it with idea_tree(action=update, node_key=..., fields={"related_work": "<refs>"}). Run it async — never block the cycle waiting on it.

Finalize — the report uses TEST, not dev

On budget exhaustion, a convergence STOP, or hitting the target: merge the best node, call idea_tree(action=report) (held-out test scores are authoritative there), then spawn ONE report task whose worker creates the artifact from /workspace/.arbor/REPORT.md and completes with metadata {"report": true}. The mission is only satisfied once a machine-written test improvement AND that report task both exist — prose claims never satisfy it.

Signals

GitHub stars
25
Forks
1
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
arbor-merge-discipline
Source
github.com/invergent-ai/surogates