Arbor Agent Tools
Use this skill when the host does not provide native Arbor tools. The bundled
script stores state in the same style as open-source Arbor:
<cwd>/.arbor/sessions/<run_name>/.coordinator/idea_tree.json
<cwd>/.arbor/sessions/<run_name>/.coordinator/idea_tree.md
Script
scripts/arbor_state.py is stdlib-only.
Common commands:
TOOLS="<skill-dir>/arbor-agent-tools/scripts/arbor_state.py"
python "$TOOLS" init --cwd <project> --run-name <run> --task "<contract>"
python "$TOOLS" view --cwd <project> --run-name <run> --format constraints
python "$TOOLS" meta --cwd <project> --run-name <run> --set baseline_score=42 --set trunk_score=42
python "$TOOLS" meta --cwd <project> --run-name <run> --set "eval_cmd=cd {cwd} && bash eval.sh"
python "$TOOLS" add --cwd <project> --run-name <run> --parent-id ROOT --hypothesis "<four-line hypothesis>"
python "$TOOLS" update --cwd <project> --run-name <run> --node-id 1 --status done --score 45 --insight "..."
python "$TOOLS" worktree --cwd <project> --run-name <run> --node-id 1 --trunk <trunk_branch>
python "$TOOLS" prompt-executor --cwd <project> --run-name <run> --node-id 1 --workdir <worktree>
python "$TOOLS" prompt-executor --cwd <project> --run-name <run> --node-id 1 --smoke
python "$TOOLS" eval --cwd <project> --run-name <run> --split dev --exec-cwd <worktree> --cmd "bash {cwd}/eval.sh" --set-meta trunk
python "$TOOLS" record --cwd <project> --run-name <run> --node-id 1 --score 45 --insight "..." --result "..."
python "$TOOLS" parse-log --log <project>/run.log --metric val_bpb
python "$TOOLS" report --cwd <project> --run-name <run>
python "$TOOLS" check --cwd <project> --run-name <run> --require-report --require-experiment --require-executor-prompt
Read references/tool-mapping.md when deciding which script command maps to a
native Arbor tool.
State Rules
- Keep scores absolute.
- Keep eval commands templated with
{cwd} and {node_id}.
- Do not run B_test during executor iteration.
- Use
record for executor outcomes so artifacts and tree updates stay in
one place.
- Use
check before trusting a hand-edited tree. Add artifact flags such as
--require-report, --require-experiment, --require-executor-prompt,
--require-events, --require-run-stats, or --strict-artifacts when
validating a completed run.
- Serialize tree-mutating commands for the same run. Do not parallelize
init, meta, add, update, prune, propagate, eval, record,
worktree, or merge.
Forward Testing
For a smoke test, copy the target project to a disposable directory outside the
Arbor repository, initialize a short run, record metadata, add one idea,
generate an executor prompt, and run only cheap commands. Do not run full long
training unless explicitly requested.
Smoke-specific rules:
- Use
prompt-executor --smoke.
- If a real eval command invokes training, data prep, downloads, GPU work, or a
minute-scale benchmark, do not execute it; store a cached-score parser,
harmless echo, or mocked score instead.
- Parse existing logs with
parse-log; it normalizes carriage-return progress
logs before extracting metrics. Avoid full cat, raw rg, raw grep, or
tail output; cap diagnostic log snippets at 20 lines.
- Finish with
check and report so the smoke produces a real REPORT.md.
1---2name: arbor-agent-tools3description: Deterministic helper layer for emulating Arbor tools in Codex or Claude Code when native TreeView, TreeAddNode, TreeSetMeta, RunExecutor, GitMergeBranch, or report tooling is unavailable. Use for local state management, eval score capture, executor prompt generation, merge checks, and skill forward tests.4---56# Arbor Agent Tools78Use this skill when the host does not provide native Arbor tools. The bundled9script stores state in the same style as open-source Arbor:1011```text12<cwd>/.arbor/sessions/<run_name>/.coordinator/idea_tree.json13<cwd>/.arbor/sessions/<run_name>/.coordinator/idea_tree.md14```1516## Script1718`scripts/arbor_state.py` is stdlib-only.1920Common commands:2122```bash23TOOLS="<skill-dir>/arbor-agent-tools/scripts/arbor_state.py"24python "$TOOLS" init --cwd <project> --run-name <run> --task "<contract>"25python "$TOOLS" view --cwd <project> --run-name <run> --format constraints26python "$TOOLS" meta --cwd <project> --run-name <run> --set baseline_score=42 --set trunk_score=4227python "$TOOLS" meta --cwd <project> --run-name <run> --set "eval_cmd=cd {cwd} && bash eval.sh"28python "$TOOLS" add --cwd <project> --run-name <run> --parent-id ROOT --hypothesis "<four-line hypothesis>"29python "$TOOLS" update --cwd <project> --run-name <run> --node-id 1 --status done --score 45 --insight "..."30python "$TOOLS" worktree --cwd <project> --run-name <run> --node-id 1 --trunk <trunk_branch>31python "$TOOLS" prompt-executor --cwd <project> --run-name <run> --node-id 1 --workdir <worktree>32python "$TOOLS" prompt-executor --cwd <project> --run-name <run> --node-id 1 --smoke33python "$TOOLS" eval --cwd <project> --run-name <run> --split dev --exec-cwd <worktree> --cmd "bash {cwd}/eval.sh" --set-meta trunk34python "$TOOLS" record --cwd <project> --run-name <run> --node-id 1 --score 45 --insight "..." --result "..."35python "$TOOLS" parse-log --log <project>/run.log --metric val_bpb36python "$TOOLS" report --cwd <project> --run-name <run>37python "$TOOLS" check --cwd <project> --run-name <run> --require-report --require-experiment --require-executor-prompt38```3940Read `references/tool-mapping.md` when deciding which script command maps to a41native Arbor tool.4243## State Rules4445- Keep scores absolute.46- Keep eval commands templated with `{cwd}` and `{node_id}`.47- Do not run B_test during executor iteration.48- Use `record` for executor outcomes so artifacts and tree updates stay in49 one place.50- Use `check` before trusting a hand-edited tree. Add artifact flags such as51 `--require-report`, `--require-experiment`, `--require-executor-prompt`,52 `--require-events`, `--require-run-stats`, or `--strict-artifacts` when53 validating a completed run.54- Serialize tree-mutating commands for the same run. Do not parallelize55 `init`, `meta`, `add`, `update`, `prune`, `propagate`, `eval`, `record`,56 `worktree`, or `merge`.5758## Forward Testing5960For a smoke test, copy the target project to a disposable directory outside the61Arbor repository, initialize a short run, record metadata, add one idea,62generate an executor prompt, and run only cheap commands. Do not run full long63training unless explicitly requested.6465Smoke-specific rules:6667- Use `prompt-executor --smoke`.68- If a real eval command invokes training, data prep, downloads, GPU work, or a69 minute-scale benchmark, do not execute it; store a cached-score parser,70 harmless echo, or mocked score instead.71- Parse existing logs with `parse-log`; it normalizes carriage-return progress72 logs before extracting metrics. Avoid full `cat`, raw `rg`, raw `grep`, or73 `tail` output; cap diagnostic log snippets at 20 lines.74- Finish with `check` and `report` so the smoke produces a real `REPORT.md`.