AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Self-improving multi-agent software factory on Claude Code: plan, build in parallel worktrees, judge, repair, merge, learn, evolve.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A self-improving multi-agent software factory built on Claude Code.
You give Orchestra a goal. It plans a task graph, builds tasks in parallel git worktrees, verifies each one with tests plus an independent judge working from hidden scenarios, repairs what fails, merges through a serialized queue, records what it learned, and periodically evolves its own prompts and config. A new harness version is promoted only when a measured eval shows a gain.
╭─ ♫ ORCHESTRA r20261021-2022-77o1 harness v1 ──────────────────────────────── 00:01 ─╮
│ Goal Build a tiny CLI with config loading and docs │
│ ✓ PLAN ─ · BUILD ─ ▶ VERIFY ─ · MERGE ─ · LEARN │
│ ███████░░░░░░░░░░░░░░░░░░░ 1/4 ✓1 ●2 ⟳0 ✗0 $1.04 RUNNING │
├─ Tasks ────────────────────────────────────────────────────────────────────────────────┤
│ ✓ T1 merged ███████░ 0.89 try 1 $0.26 Core module │
│ ⠸ T2 running ███░░░░░ 0.40 try 2 $0.46 Config loader │
│ ⠸ T3 judging ░░░░░░░░ ---- try 1 $0.20 CLI wiring ⇠ T1 │
╰────────────────────────────────────────────────────────────────────────────────────────╯
verification.*, see docs/configuration.md).orchestra/<run>/integration, with tests after each merge.orchestra stats reports health per harness version.orchestra promote <vN>.git push, and edits to the harness and evals. It is not the isolation boundary (see Isolation). Each run has a budget.Requirements: Node 23.6 or newer (runs TypeScript directly, no build step), git, and Claude Code with headless auth working (orchestra doctor checks it).
1. Try the demo (no tokens spent). It runs the full pipeline with a simulated runner in a temporary repo:
node <path-to-orchestra>/bin/orchestra.ts demo
2. Install. As a Claude Code plugin:
claude plugin marketplace add <path-to-orchestra>
claude plugin install orchestra@orchestra-local
Or as a CLI in any terminal:
cd <path-to-orchestra> && npm link
3. Initialise a repo. From inside a git repo:
orchestra init
4. First run:
orchestra run "Add a --json flag to the export command"
Results land on orchestra/<run>/integration. Review with git log main..orchestra/<run>/integration, then git merge that branch to land it.
Set ORCHESTRA_RUNNER=fake to use the simulator instead of real Claude sessions in any command.
| Command | What it does |
|---|---|
orchestra init | Set up .orchestra/ in the current git repo |
orchestra run "<goal>" | Plan, build, verify, merge, learn (live dashboard on a TTY) |
--detach | Run in the background; follow with orchestra watch |
--no-evolve | Skip the automatic evolution check after the run |
--serve | Also serve the web dashboard while the run is live |
--sandbox auto|srt|claude|off | OS-sandbox workers: writes only to the worktree and temp, no credential reads, network limited to the model API plus sandbox.allowedHosts. Default off |
--sandbox docker | Opt-in container backend (docker run --rm --network=none by default, --sandbox-image <image>, --sandbox-network <net>, --gvisor) for untrusted repos. See docs/isolation.md |
--unattended | Refuse to start without a sandbox backend (srt, bwrap + socat, or sandbox-exec); strips credentials from agent env |
orchestra serve [--port N] | Web dashboard on localhost (default 4317), read-only |
orchestra serve --tui [runId] | Interactive terminal dashboard, no browser and no port (alias: orchestra tui) |
orchestra watch [runId] | Full-screen live dashboard (q to quit) |
orchestra status [runId] | One-shot board of the current or given run |
orchestra bench | Run the fixed benchmark suite (arms x goals x repeats, hidden checks); --verify-oracles validates the suite, --ablations runs the ablation arms and a matched-cost single-session baseline. See docs/bench.md |
orchestra approve <runId> <taskId> --by <name> | Land a high-risk task held as (opt-in ); the approver must be a human other than the requester (advisory: names are free text, not authenticated identities; with no recorded requester it warns) |
Inside Claude Code, the plugin adds /orchestra:setup, /orchestra:run, /orchestra:serve, /orchestra:status, /orchestra:stats, /orchestra:bench, and /orchestra:evolve.
The boundary is the OS, not the hook. Opt in with --sandbox auto|srt|claude (OS sandbox: srt, or Claude Code sandbox settings via bwrap + socat or sandbox-exec) or --sandbox docker (container, optional gVisor). The sandbox allows writes only to the worktree and temp, denies reads of credential directories, .env* and the holdout, and limits network to the model API plus sandbox.allowedHosts. A pre-flight self-test aborts the run if a blocked host or denied path is reachable. Credentials are stripped from worker env, .git/hooks and .git/config are read-only, and only the orchestrator commits, pushes and opens PRs. --unattended refuses to start without a backend. Missing tools are detected and the run degrades to unsandboxed (attended only).
The src/guard.ts hook stays on as defence in depth. It is a deny-list that python, node, git remotes or DNS can bypass. srt is a research preview and sandbox setup varies by OS (Linux needs unprivileged user namespaces). Details: docs/architecture.md and docs/isolation.md.
site/).orchestra/config.json and harness configThe current version is in package.json. The test suite runs against the simulator (npm test). Workers share one machine unless you opt in to --sandbox; the default is unsandboxed. Evolution reruns past goals, so it costs roughly sample × 2 runs; tune evolve.sample, evolve.every and evolve.candidates in the config.
awaiting_approvaloversight.riskTiersorchestra resume <runId> | Finish a run that approval left with deferred work (blocked tasks, mutation, learning) on the same run and integration branch. Workers inherit the run's recorded isolation; weaker flags need --override-isolation |
orchestra stats | Factory health per harness version, plus outcome metrics (merge acceptance, edits before landing, revert rate, cost per accepted merge, success by task length), merged-but-wrong rate, judge agreement split by M4 verification mode, and oversight and throughput metrics (interruptions, review minutes, edits before landing, conflict rate, merge wait, cache-read share; --json for scripts) |
orchestra evolve | Propose, evaluate, and maybe promote a better harness |
orchestra learnings [--domain <slug>] | Show what the factory has learned in this repo (--domain filters to one domain, global for cross-domain lessons) |
orchestra atlas find|neighbors|impact|tests <symbol-or-path> | L2 code graph queries as a capped tree (80 lines). Need context.atlas.enabled and a built atlas, else a hint and a non-zero exit. Files modified in the current worktree are marked (stale: read the file). context.atlas.query adds the command to worker and judge prompts. Advisory only |
orchestra atlas build / orchestra atlas stats | Build or refresh the Repo Atlas code graph for HEAD (.orchestra/atlas/<sha>.json), or show its file, symbol and edge counts. Work even when context.atlas.enabled is false; .orchestra/, .env* and secret files are never indexed |
orchestra evals | List Factory Eval cases (--regression, --tag <t>) |
orchestra evals add | Add a case for a goal you choose, or harvest a failed run with --from-run <id> --fix <commit> |
orchestra evals audit | Check cases and lessons for solution leakage (exit 1 on findings) |
orchestra evals ablation | Replay the holdout with and without learnings |
orchestra promote <vN> | Promote a harness version (also used for rollback) |
orchestra doctor | Check Claude CLI and headless auth |
orchestra demo | Simulated run in a temp repo (no tokens spent) |
orchestra statusline | Statusline command for Claude Code (reads JSON on stdin) |