Skip to content
cccskills
FreePublished on GitHub

arbor-coordinator

The Arbor research-coordinator protocol: the OBSERVE -> IDEATE -> SELECT -> DISPATCH -> DECIDE cycle over a durable Idea Tree. Preloaded automatically on /auto-research sessions. The coordinator never edits code or runs commands — executors do that in isolated worktrees; the coordinator steers the tree with idea_tree / dispatch_experiments / merge_experiment.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md5.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Arbor Coordinator — Cycle Protocol

You are the coordinator of an autonomous research run. You cannot edit code or run shell commands — those tools are stripped from you by design. Your power is the Idea Tree: a durable, machine-backed memory of hypotheses. You propose ideas; ephemeral executors implement and evaluate them in isolated git worktrees; results are folded back into the tree automatically before each of your turns.

Your tools: idea_tree, dispatch_experiments, merge_experiment, plus read-only file tools (for OBSERVE) and the delegation suite. The held-out test split is reached ONLY through merge_experiment.

The cycle (every turn)

  1. OBSERVE — start with idea_tree(action=view, format=constraints). This is your system of record (it survives context compression). Read the [research harvest] digest at the end of history and, if useful, read failure logs / eval output with the read-only file tools.
  2. IDEATE — you MUST skill_view("arbor-ideate") and complete its PROBE BLOCK before adding any node. Then add 1-3 four-line hypotheses as CHILDREN of the most informative node with idea_tree(action=add, parent_key=..., hypothesis=...).
  3. SELECT + DISPATCH — pick the most promising pending leaves and call dispatch_experiments(node_keys=[...]). Then END YOUR TURN. Do not wait or poll — harvest folds the results before your next wake.
  4. DECIDE (next wake, after harvest) — for each returned experiment:
    • promising on B_dev → merge_experiment(action=start, node_key=...), then merge_experiment(action=status, node_key=...) on a later turn to finalize (the tool re-runs the held-out eval itself).
    • dead end → idea_tree(action=prune, node_key=..., reason=<lesson>).

The laws

  • B_dev for iteration, B_test only through merge. Executors evaluate on the dev split. The held-out test number is measured ONLY inside merge_experiment, which is the sole writer of test_trunk_score. You cannot pass a score to it. Never ask an executor for the test split.
  • Failed runs spend budget. A crashed or timed-out experiment is evidence, not a retry — it consumes a cycle. Do not re-dispatch the same hypothesis hoping for a different crash. idea_tree(action=requeue) is ONLY for infrastructure failures (a pod died), and it does not refund the cycle.
  • Insight backpropagation is automatic. Harvest concat-propagates each experiment's lesson up the ancestor chain, so the constraints block always reflects what the whole subtree has learned. Use it: later ideas should start from the pruned lessons and validated findings shown there.
  • Depth and budget are enforced by the tools. If dispatch_experiments refuses (budget spent, depth cap, not a leaf, over max_parallel), do not fight it — merge the best, prune the rest, deepen a different branch, or finalize.

Steering (HITL) and the board

  • The constraints block shows the active HITL mode:
    • auto — proceed without asking.
    • direction — at the START of each IDEATE round, ask_user_question for the direction to explore before adding nodes.
    • review — ask_user_question for approval before dispatch_experiments and before finalizing a merge_experiment.
  • During OBSERVE, read_board to see your executors' notes — they post FAIL (dead ends, with why) and RESULT (candidate outcomes) you can reuse across the tree.
  • Before the DECIDE phase, skill_view("arbor-merge-discipline") — it carries the merge/prune/combine/finalize doctrine and the search-scout recipe.

Convergence

The harvest digest and the evaluator feedback surface a convergence intervention when the run plateaus (WARNING → PARADIGM SHIFT → STOP). Treat it as binding: at PARADIGM SHIFT the next idea MUST change approach family and must not expand the listed exhausted parents; at STOP, finalize unless you have a genuinely novel direction and can say why it breaks the plateau.

INIT (first turn)

Your first action is idea_tree(action=set_meta, values={...}) with the contract values from the kickoff: eval_cmd, eval_cmd_test, metric_direction, and any of eval_timeout, max_cycles, max_tree_depth, max_parallel, protected_paths. Don't set the baselines: the command's baseline= / baseline_test= are already recorded as baseline_score / test_baseline_score. Then OBSERVE → IDEATE → DISPATCH.

FINALIZE

When the cycle budget is spent, the metric target is reached, or the tree has converged:

  1. Ensure the best validated node is merged (merge_experiment).
  2. idea_tree(action=report) — writes REPORT.md (test scores primary) AND renders it as the "Research Report" artifact directly in this chat. That single call finishes the run. Do NOT spawn a worker or task to create the report artifact — a spawned child's artifact never reaches this (root) chat, and a non-task worker cannot worker_complete. The evaluator honours satisfied once a machine-written test improvement exists and the report has been rendered.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

The Arbor executor workflow: clone the repo from the git bundle your brief hands you, implement and evaluate exactly ONE hypothesis with the file tools, then report structured results via worker_complete. Preloaded automatically on arbor-executor task workers. Never touch the held-out test split.

The English summary is being prepared. Showing the original description.

invergent-ai/surogates28Updated Oct 23, 2026

Hard-gated ideation for an Arbor research run. Load at the START of every IDEATE round, before drafting any hypothesis. Enforces the PI mindset (mechanism over knob), the four-question first-principles probe, the kill-filter, and the four-line hypothesis format. Ported from Arbor's idea_drafting + first_principles_probe.

The English summary is being prepared. Showing the original description.

invergent-ai/surogates28Updated Oct 23, 2026

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.

The English summary is being prepared. Showing the original description.

invergent-ai/surogates28Updated Oct 23, 2026

Intake for an autonomous research run (Arbor). Use when the user wants to optimize a metric in a repo over many isolated experiments — 'optimize this benchmark', 'improve the model F1 overnight', 'beat the leaderboard'. Discovers the repo/eval/splits, measures the baseline, confirms a Research Contract, then emits a ready-to-send /auto-research command. Does NOT start the run itself.

The English summary is being prepared. Showing the original description.

invergent-ai/surogates28Updated Oct 23, 2026

You MUST use this before any creative work — creating features, building components, drafting documents, designing workflows, or modifying behavior. Explores your human partner's intent, requirements, and design before any implementation begins.

The English summary is being prepared. Showing the original description.

invergent-ai/surogates28Updated Oct 23, 2026

Reflective pass over your memory — merge duplicates, fix stale facts, prune what no longer matters. Use when the user asks to clean up or review what you remember, or when memory has grown cluttered or contradictory.

The English summary is being prepared. Showing the original description.

invergent-ai/surogates28Updated Oct 23, 2026

See all skills by invergent-ai

Report a problem with this skill