diff --git a/CHANGELOG.md b/CHANGELOG.md
index 931313d..9cd946f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to OpenOrbit are documented in this file.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
and this project uses [Semantic Versioning](https://semver.org/).
+## [0.12.1] - 2026-09-24
+
+### Fixed
+
+- Fixed Git and pip installations failing at startup because the internal coding-agent helpers were missing from the wheel.
+
## [0.12.0] - 2026-09-23
### Added
diff --git a/README.md b/README.md
index eaeea5e..92fcf0f 100644
--- a/README.md
+++ b/README.md
@@ -1,136 +1,143 @@
-*Read this in other languages: [한국어](i18n\ko\README.md)*
+*Read this in other languages: [한국어](i18n/ko/README.md)*
# OpenOrbit
-> **The local control plane for continuously evaluating, supervising, and improving AI systems.**
+> **A local workspace where AI personas find product work, AI coding agents
+> prepare changes, and your team reviews the result.**
-OpenOrbit does not use AI merely to automate work. It automates the operating cycle around an AI system itself: evaluate it on a schedule, retain evidence, review supervisor feedback, and make its improvement history observable.
+OpenOrbit is a local-first web service for running the work around an AI
+product—not only evaluating the agent itself. Personas explore a product,
+report problems and tasks, and preserve the evidence. Your selected AI coding
+agent can prepare a change in an isolated Git worktree; your team reviews the
+diff, evidence, and decision in one control room.
-Run the control room locally, keep the operational record in your own AppData, and decide which changes deserve approval.
-
-## See OpenOrbit in action
-
-Start with a Quick Start, watch the evaluation loop take shape, and review
-evidence-backed improvements in one place.
-
-
+It also supports repeatable AI-agent evaluation and self-improvement. Every
+run, proposal, decision, and approved change becomes retained operational
+history. Everything runs locally, and the record stays in your AppData.
## Why OpenOrbit?
-An AI feature can look healthy in a demo and still regress after a prompt, model, tool, or product change. OpenOrbit gives that feature a repeatable operating loop rather than a one-off test:
+An AI feature or web product can look healthy in a demo and still regress after
+a prompt, model, tool, or product change. OpenOrbit connects the people,
+personas, coding agents, and evidence needed to turn a reported problem into a
+reviewable improvement:
```mermaid
flowchart LR
- A[AI system] --> B[Recurring evaluation]
- B --> C[Logs, browser evidence, and traces]
- C --> D[Supervisor review]
- D --> E[Issues and improvement proposals]
- E --> F[Human-approved changes]
- F --> A
+ A[AI persona explores
the product]
+ B[Problem, task, and
retained evidence]
+ C[AI coding agent prepares
a worktree change]
+ D[Review the diff, evidence,
and proposal]
+ E[Human decision]
+ F[Improved product or
AI agent]
+
+ A --> B --> C --> D --> E --> F --> A
```
+OpenOrbit keeps this work visible and reversible: AI can propose and prepare
+work, while people decide what is applied.
+
## What you can do
-- Define reusable **builds** from a target, workflow, runner, fixed test cases, manager prompt, and AI model profile.
-- Run a one-off **test** before saving a build, or run its configured lifecycle repeatedly with clear approval boundaries.
-- Inspect every phase through process logs, structured evidence, browser screenshots, supervisor responses, and OpenTelemetry traces.
-- Review reported issues and proposed improvements in a durable decision history.
-- Observe the PDCA cycle across iterations instead of treating a single model response as the whole story.
-- Stop active work from one local control room.
+- **Develop reported problems with worktrees.** When AI reports a concrete
+ problem, let a coding agent prepare an isolated change, then review its diff
+ and evidence before deciding what to apply.
+- **Use your preferred AI coding agent.** Connect the coding agent your team
+ already uses instead of being tied to one provider.
+- **Give AI personas work to do.** Personas explore from a defined point of
+ view, surface tasks and problems, and keep their work connected to evidence.
+- **Improve AI agents over time.** Repeated evaluations retain responses,
+ feedback, proposals, and decisions so an AI agent can improve safely.
+- **Manage personas and reusable assets.** Keep personas, model profiles,
+ prompts, test cases, environments, and workflows ready for the next task.
+- **Ask and operate with Orbit Assistant.** Ask about the screen you are
+ viewing and use the assistant to help operate the control room.
+- **Automate through MCP and OpenAPI.** Let your own agents and tools read the
+ same local operating data and automate supported work.
-## Product tour
+## Quick start
-OpenOrbit is designed around the information an operator needs at each stage:
+Start with a guided template, then adapt it to the product, persona, and AI
+workflow your team wants to operate.
-| Area | What it answers |
-| --- | --- |
-| **Dashboard** | Is the AI system healthy right now? What changed recently? |
-| **Builds** | What exactly is being evaluated, with which assets and policy? |
-| **Run detail** | What happened in each phase, and what evidence supports the result? |
-| **Improvements** | Are feedback, decisions, and scores actually improving over time? |
+
-The screenshots below follow a customer-support AI through its retained
-evaluation evidence and improvement cycle.
+### Start in 10 seconds with a Quick Start
-### See what the evaluated AI actually did
+Open **Quick starts** on the Dashboard, choose a guided template, fill in the
+target-specific fields, and create a build. A template connects the needed
+runner, test cases, environments, policy, and model profile so you can start
+with a working workflow and refine it from there.
-Open a retained run to review the behavior observed from the evaluated AI at
-each iteration. Then compare that behavior with the proposed improvement and
-the evidence supporting it.
+| Quick Start | Use it when | Example first run |
+| --- | --- | --- |
+| **User journey smoke test** | You need a recurring, read-only browser check for a local product. | Confirm that the home page loads and the primary heading is visible. |
+| **Site exploration review** | You want evidence-backed product feedback from safe same-site exploration. | Explore the documentation or dashboard and retain the visited pages behind each recommendation. |
+| **Agent self-improvement** | You want to improve a managed prompt from real AI responses. | Send a support request to the configured target model, retain its response, and let the supervisor approve only response-backed prompt changes. |
+| **AI SLO and behavior drift monitor** | You already have a structured evaluator for quality, safety, latency, or cost. | Connect its probe command and compare the retained metrics with the configured baseline and thresholds. |
-
+For example, to evaluate a support-agent prompt:
-### Review evidence across the improvement cycle
+1. Choose **Agent self-improvement**.
+2. Select the Git repository and managed prompt file, then choose your AI model profile.
+3. Enter one representative user request and its response-level acceptance criterion.
+4. Create the build and run it. OpenOrbit retains the actual target-AI response and asks the supervisor to classify evidence-backed, reversible prompt improvements as acceptable. Only a human-accepted proposal can be applied on a following iteration.
-Compare feedback volume, accepted changes, scores, and run health across
-multiple builds. The history makes it clear whether the operating
-cycle is improving the AI system over time.
+Quick Starts never store provider keys. They reference the environment-variable
+name already configured in the selected model profile.
-
+## Product tour
-### Ask an AI assistant what to do next
+OpenOrbit's web control room keeps the work from discovery to decision in one
+place. Its current navigation is organized around the work your team performs:
-Configure a System AI model to use the built-in Chat Assistant for questions
-about evaluation work, runners, and the control room. Your own AI agent can
-work with the same local operating data through OpenOrbit's versioned API.
+| Area | What you do there |
+| --- | --- |
+| **Dashboard** | See current activity and start a guided workflow. |
+| **Assets** | Manage reusable personas, model profiles, prompts, test cases, environments, runners, and workflows. |
+| **Builds** | Connect the assets and policy for a product or AI-agent workflow. |
+| **Runs** | Inspect an execution and the evidence it produced. |
+| **Improvements** | Follow feedback and persona journeys; review AI-reported issues and worktree proposals. |
+| **Settings** | Configure models, coding agents, and the local control room. |
-
+The screens below follow work from retained evidence to a reviewable AI-created
+change.
-## Development partners
+### Inspect the evidence behind a run
-
+Open a retained run to review its workflow, lifecycle progress, and the
+evidence collected at each stage. Then compare the observed behavior with the
+supervisor feedback and any proposed improvement.
-## Build with us
+
-We are looking for thoughtful collaborators who share our belief that AI
-systems should be observable, controllable, and continuously improved.
-Contributions are especially welcome from people working on agent harnesses,
-browser evaluation (including Playwright), local automation, and evidence-backed
-operational loops. Start a fork, open a small issue, improve the docs, or help
-shape a larger idea—every contribution is welcome.
+### Follow improvement and persona activity
-New to the project? Browse [good first issues](https://github.com/forthfate/openorbit/labels/good%20first%20issue),
-ask a question or share an idea in [Issues](https://github.com/forthfate/openorbit/issues),
-or read the [contribution guide](CONTRIBUTING.md) before opening a pull request.
+Compare feedback, decisions, scores, run health, and persona journeys across
+builds. The history shows whether a product or AI-agent workflow is getting
+better over time.
-## Quick start
+
-### Start in 10 seconds with a Quick Start
+### Review AI-created work before it is applied
-Open the **Quick starts** section on the Dashboard, choose a guided template,
-fill in the few target-specific fields, and create the build. Each
-template creates the runner, fixed test cases, environments, manager policy,
-and model profile configuration together—so you can start with a working
-operating loop instead of assembling every asset by hand.
+When retained evidence supports a concrete change, an AI coding agent can
+prepare a proposal in an isolated worktree. Review its rationale, acceptance
+evidence, and diff, then approve, reject, or keep it under review—nothing is
+applied without a decision.
-| Quick Start | Use it when | Example first run |
-| --- | --- | --- |
-| **User journey smoke test** | You need a recurring, read-only browser check for a local product. | Confirm that the home page loads and the primary heading is visible. |
-| **Site exploration review** | You want evidence-backed product feedback from safe same-site exploration. | Explore the documentation or dashboard and retain the visited pages behind each recommendation. |
-| **Agent self-improvement** | You want to improve a managed prompt from real AI responses. | Send a support request to the configured target model, retain its response, and let the supervisor approve only response-backed prompt changes. |
-| **AI SLO and behavior drift monitor** | You already have a structured evaluator for quality, safety, latency, or cost. | Connect its probe command and compare the retained metrics with the configured baseline and thresholds. |
+
-For example, to evaluate a support-agent prompt:
+### Ask Orbit Assistant about the current screen
-1. Choose **Agent self-improvement**.
-2. Select the Git repository and managed prompt file, then choose your AI model profile.
-3. Enter one representative user request and its response-level acceptance criterion.
-4. Create the build and run it. OpenOrbit retains the actual target-AI response and asks the supervisor to classify evidence-backed, reversible prompt improvements as acceptable. Only a human-accepted proposal can be applied on a following iteration.
+Configure a System AI model to use Orbit Assistant for questions about the
+screen in front of you and help operating the control room. Your own AI agent
+can work with the same local operating data through OpenOrbit's MCP server or
+versioned API.
-Quick Starts never store provider keys. They reference the environment-variable
-name already configured in the selected model profile.
+
+
+## Installation and development
### Requirements
@@ -154,7 +161,7 @@ run `pnpm run build` to generate both the SDK docs and the control-room UI.
### Run the packaged app
-Install the packaged release:
+For the standard packaged release, install OpenOrbit and start it:
```bash
python -m pip install openorbit
@@ -162,7 +169,8 @@ orbit run
```
The wheel already includes the bundled control-room UI, so Node.js and pnpm are
-not required at runtime.
+not required at runtime. Open `http://127.0.0.1:3000` after it starts. If that
+port is occupied, OpenOrbit selects the next available port and prints its URL.
To keep one control room's operational data with a project or another chosen
directory, pass that directory to `run`. OpenOrbit creates and uses its
@@ -173,7 +181,13 @@ orbit run . # Store data in the current directory's .orbit/
orbit run ./my-project # Store data in ./my-project/.orbit/
```
-> PyPI publication is made possible with the support of insighta cloud Inc.
+To use a specific listener, set `ORBIT_PORT` and `ORBIT_HOST`:
+
+```bash
+ORBIT_PORT=8787 ORBIT_HOST=0.0.0.0 orbit run
+```
+
+### Other ways to start
To use the latest development version, install directly from the main OpenOrbit
repository. This source installation requires Node.js 24+ and pnpm:
@@ -188,11 +202,7 @@ Or run it once with npm:
npx openorbit run
```
-Open `http://127.0.0.1:3000`. If that port is occupied, OpenOrbit selects the next available port and prints its URL. Set `ORBIT_PORT` and `ORBIT_HOST` when you need a specific listener:
-
-```bash
-ORBIT_PORT=8787 ORBIT_HOST=0.0.0.0 orbit run
-```
+> PyPI publication is made possible with the support of insighta cloud Inc.
### Run from this repository
@@ -233,17 +243,12 @@ Only builds that run browser journeys need a Chromium browser and
its platform-specific system libraries. This is not required to start
OpenOrbit, create assets, review runs, or use non-browser runners.
-## Your first evaluation loop
-
-1. Create or choose an AI model profile in **Assets**.
-2. Add the runner, workflow, fixed test cases, and target environment that describe the AI system you want to evaluate.
-3. Create a **Build** from those assets.
-4. Use **Test** to execute the build once and inspect its full run detail without adding it to the evaluation-run history.
-5. Start a regular run when ready, then review evidence and supervisor results in **Runs**.
-6. Use **Improvements** to compare scores, feedback, decisions, and cycle health over time.
-
## Core concepts
+> A Build defines the operating loop. A Test checks it once. A Run preserves
+> what happened. A Supervisor turns evidence into feedback and proposals. Your
+> team decides what changes next.
+
| Concept | Meaning |
| --- | --- |
| **Asset** | A reusable model profile, runner, workflow, prompt, test set, or environment. |
@@ -280,7 +285,10 @@ OpenOrbit exposes a local, versioned API:
- API base: `http://localhost:3000/api/v1`
- MCP (Streamable HTTP): `http://localhost:3000/mcp/`
-Read the [API reference](docs/API.md) for endpoint details. To add reusable automation, create a Python runner with explicit lifecycle phases:
+Use MCP or the versioned OpenAPI to connect your own agents and automate
+supported work with the same local operating data. Read the
+[API reference](docs/API.md) for endpoint details. To add reusable automation,
+create a Python runner with explicit lifecycle phases:
```python
from orbit_sdk import runner
@@ -293,11 +301,26 @@ if __name__ == "__main__":
runner.main()
```
-Runners are intentionally bounded. They provide evidence to the control plane; they do not start their own scheduler or silently modify a target system.
+Runners provide evidence to the control plane without starting their own
+scheduler or silently modifying a target system.
+
+## Build with us
+
+We are looking for thoughtful collaborators who share our belief that AI
+systems should be observable, controllable, and continuously improved.
+Contributions are especially welcome from people working on agent harnesses,
+browser evaluation (including Playwright), local automation, and evidence-backed
+operational loops. Start a fork, open a small issue, improve the docs, or help
+shape a larger idea—every contribution is welcome.
+
+New to the project? Browse [good first issues](https://github.com/forthfate/openorbit/labels/good%20first%20issue),
+ask a question or share an idea in [Issues](https://github.com/forthfate/openorbit/issues),
+or read the [contribution guide](CONTRIBUTING.md) before opening a pull request.
## Contributing
-Contributions are welcome: bug reports, evaluation-runner templates, documentation improvements, and product feedback all help.
+Contributions are welcome: bug reports, evaluation-runner templates,
+documentation improvements, and product feedback all help.
```bash
uv run ruff check orbit/ backend/ tests/
@@ -308,6 +331,22 @@ pnpm --filter agent-improvement-console-ui run build
Please open a pull request rather than pushing directly to `main`. See [CONTRIBUTING.md](CONTRIBUTING.md) for development, checks, and release rules.
+## Development partners
+
+
+
## License
Copyright © 2026 forthfate and insighta cloud Inc.
diff --git a/docs/README_MEDIA.md b/docs/README_MEDIA.md
index 48b960e..623a662 100644
--- a/docs/README_MEDIA.md
+++ b/docs/README_MEDIA.md
@@ -1,45 +1,124 @@
# README product-tour media
-Product-tour screenshots in the README should show the current interface and be
-reproducible from sanitized local data. Do not capture a personal workspace,
-real API credentials, or private conversations.
+The product-tour media in the README must show the current English interface
+and be reproducible from sanitized local data. Capture neither a personal
+workspace nor real API credentials, private paths, or conversations.
-## Orbit Assistant dashboard image
+The README tells one continuous story: start with a Quick Start, inspect what
+the target AI did, review the improvement history, review AI-created work, and
+ask the local Assistant for help. Keep those five captures coherent by using
+the same prepared demo AppData for all of them.
-`docs/images/chat-assistant-question.png` is a 1024 × 768 PNG showing the
-Dashboard with the Orbit Assistant open. Capture it with the interface set to
-English and the following draft message entered, but not sent:
+## Shared capture contract
-> I'd like to hear your thoughts on the user improvement cycle we're currently
-> working on.
+Before capturing any asset:
-### Preparation
-
-1. Use the maintained, sanitized test AppData that contains representative
- evaluation data. Set it explicitly; never rely on a personal default data
- directory.
-2. Start the locally built application on port 3080:
+1. Use the maintained, sanitized README demo AppData. It must contain the
+ representative customer-support Build, its retained Runs and evidence, an
+ approved improvement, and enough history for the Improvements charts. Never
+ rely on a personal default AppData directory.
+2. Start the locally built application on port 3080. Replace the placeholder
+ with the explicit path to the prepared demo AppData:
```bash
- ORBIT_APP_DATA=/path/to/sanitized-test-app-data \
+ ORBIT_APP_DATA=/path/to/sanitized-readme-demo-app-data \
uv run uvicorn app.main:app --app-dir backend --host 127.0.0.1 --port 3080
```
-3. Use Selenium with a headless Chrome browser. Set its emulated viewport to
- exactly 1024 × 768 at device scale factor 1, then save the viewport directly
- to `docs/images/chat-assistant-question.png`. Do not resize or crop it after
- capture.
+3. Use Selenium with a headless Chrome browser. Set the interface language to
+ English by setting `orbit.locale` to `en` in local storage, then reload.
+4. Use the default dark theme and device scale factor 1. Capture PNGs at
+ exactly 1024 × 768 and the Quick Start GIF at exactly 1024 × 640. Save the
+ viewport directly: do not crop or resize it afterwards.
+5. Before committing, confirm that visible labels use the current product
+ vocabulary (`Builds`, `Runs`, `Improvements`, and `Run detail`) and that no
+ stale release label, secret, personal path, or private data is visible.
+
+## Quick Start GIF
+
+`docs/images/openorbit-quick-start.gif` introduces the fast path for a new
+operator. It should show the Dashboard, the Quick starts section, the guided
+setup for **Continuous user journey**, the created Build, and a Test opening
+its Run detail.
+
+1. Open `http://127.0.0.1:3080/dashboard` with the prepared demo AppData.
+2. Clear stored Assistant position values and ensure the Assistant is closed
+ so the Quick starts cards remain unobstructed.
+3. Start recording at the Dashboard with the Quick starts cards in view.
+4. Open **Continuous user journey**, enter the prepared demo URL, persona, and
+ goal, then review and create the Build. Do not enter a provider key.
+5. In **Builds**, show the created Build, start **Test**, and end with its Run
+ detail visible.
+6. Save the recording as `docs/images/openorbit-quick-start.gif` at
+ 1024 × 640. Check that the motion is brief, readable, and does not loop
+ through unrelated UI.
+
+## Run detail image
+
+`docs/images/evaluation-result-approved.png` shows a retained Run's workflow,
+lifecycle progress, and the evidence available for review.
+
+1. Open the retained customer-support Run from **Runs**.
+2. Open **Run detail** and select the view that shows its completed workflow
+ graph and Result tab.
+3. Keep the Run status, lifecycle progress, workflow graph, and evidence
+ summary readable in the 1024 × 768 viewport.
+4. Save the viewport directly to
+ `docs/images/evaluation-result-approved.png`.
+
+## Improvements image
+
+`docs/images/improvement-cycle-healthy.png` shows the value of retained history
+across a Build rather than the result of one isolated Run.
+
+1. Open `http://127.0.0.1:3080/improvements`.
+2. Select a prepared Build with retained persona evidence and scroll to its
+ **Persona journey timeline**.
+3. Keep the selected Build's Run history and persona actions, decisions, and
+ next steps readable in the 1024 × 768 viewport. Do not show empty states,
+ stale filters, or unrelated Builds.
+4. Save the viewport directly to
+ `docs/images/improvement-cycle-healthy.png`.
+
+## AI-created proposal image
+
+`docs/images/ai-created-proposal-review.png` shows the approval boundary around
+an AI-created change rather than implying that a proposal is applied
+automatically.
+
+1. Open `http://127.0.0.1:3080/improvements` and select the prepared
+ self-improvement Build with a retained agent proposal.
+2. Scroll to **Issue management**, open the AI-created proposal, and keep its
+ rationale, generated diff, isolated proposal branch, and approval actions
+ visible together.
+3. Use the English UI and prepared English proposal data. Do not show private
+ worktree paths, provider credentials, or private repository content.
+4. Save the 1024 × 768 viewport directly to
+ `docs/images/ai-created-proposal-review.png`.
+
+## Orbit Assistant improvements image
+
+`docs/images/chat-assistant-question.png` shows **Improvements** with the Orbit
+Assistant open. Enter the following draft message, but do not send it:
+
+> Please analyze the improvements shown on this screen and suggest the safest
+> next action.
-### Capture steps
+1. Open `http://127.0.0.1:3080/improvements` and select the prepared Build
+ that has a retained **Persona journey timeline**.
+2. Scroll until the Build's recent Run and persona actions are visible, then
+ clear the stored Assistant position values, reload, and open **Orbit
+ assistant**. This keeps the default Assistant placement reproducible.
+3. Enter the draft message above without sending it, while keeping the visible
+ improvement evidence readable behind the Assistant.
+4. Save the 1024 × 768 viewport directly to
+ `docs/images/chat-assistant-question.png`. Confirm that the Improvements
+ view, the open Assistant, its available-tools summary, and the draft
+ message are readable.
-1. Open `http://127.0.0.1:3080/dashboard`.
-2. Set `orbit.locale` in local storage to `en`, clear the stored Assistant
- position values, and reload. This keeps the default Assistant placement
- reproducible.
-3. Open **Orbit assistant** and enter the draft message above without sending
- it.
-4. Save a 1024 × 768 PNG and visually confirm that the Dashboard, the open
- Assistant, its available-tools summary, and the draft message are readable.
+## Final review
-Before committing, verify the image dimensions and inspect the final image for
-credentials, private paths, personal data, or stale UI.
+View every generated asset at its final size before committing. The five assets
+should read as one product story and show the same current English UI state. If
+the interface changes in a way that makes a capture stale, update both the
+asset and this guide in the same change.
diff --git a/docs/images/ai-created-proposal-review.png b/docs/images/ai-created-proposal-review.png
new file mode 100644
index 0000000..418e294
Binary files /dev/null and b/docs/images/ai-created-proposal-review.png differ
diff --git a/docs/images/chat-assistant-question.png b/docs/images/chat-assistant-question.png
index 35a0d82..80761de 100644
Binary files a/docs/images/chat-assistant-question.png and b/docs/images/chat-assistant-question.png differ
diff --git a/docs/images/evaluation-result-approved.png b/docs/images/evaluation-result-approved.png
index d6f17ab..fcdf3d0 100644
Binary files a/docs/images/evaluation-result-approved.png and b/docs/images/evaluation-result-approved.png differ
diff --git a/docs/images/improvement-cycle-healthy.png b/docs/images/improvement-cycle-healthy.png
index 2253e71..587a29b 100644
Binary files a/docs/images/improvement-cycle-healthy.png and b/docs/images/improvement-cycle-healthy.png differ
diff --git a/docs/images/openorbit-quick-start.gif b/docs/images/openorbit-quick-start.gif
index afb2c6d..d69c383 100644
Binary files a/docs/images/openorbit-quick-start.gif and b/docs/images/openorbit-quick-start.gif differ
diff --git a/frontend/package.json b/frontend/package.json
index a038f1b..932b977 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,7 +1,7 @@
{
"name": "agent-improvement-console-ui",
"private": true,
- "version": "0.12.0",
+ "version": "0.12.1",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/i18n/ko/README.md b/i18n/ko/README.md
index bd26619..69c8f1c 100644
--- a/i18n/ko/README.md
+++ b/i18n/ko/README.md
@@ -8,115 +8,107 @@
# OpenOrbit
-> **AI 시스템을 지속적으로 평가하고, 감독하고, 개선하기 위한 로컬 컨트롤 플레인.**
+> **AI 페르소나가 제품의 일을 찾고, AI 코딩 에이전트가 변경안을 준비하며,
+> 팀이 결과를 검토하는 로컬 워크스페이스입니다.**
-OpenOrbit는 단순히 작업을 자동화하기 위해 AI를 사용하지 않습니다. AI 시스템 자체를 둘러싼 운영 사이클을 자동화합니다. 즉, 정해진 주기로 평가하고, 증거를 보존하고, 감독자(supervisor) 피드백을 검토하며, 개선 이력을 관찰 가능하게 만듭니다.
+OpenOrbit은 AI 에이전트 자체를 평가하는 데 그치지 않고, AI 제품을 둘러싼 일을 운영하는 로컬 우선 웹서비스입니다. 페르소나는 제품을 탐색하며 문제와 과제를 보고하고 증거를 남깁니다. 여러분이 선택한 AI 코딩 에이전트는 격리된 Git worktree에서 변경안을 준비하고, 팀은 하나의 컨트롤룸에서 diff·증거·결정을 검토합니다.
-컨트롤룸을 로컬에서 실행하고, 운영 기록을 여러분 자신의 AppData에 보관하며, 어떤 변경을 승인할지 여러분이 직접 결정하세요.
-
-## OpenOrbit 실제 동작 살펴보기
-
-Quick Start로 시작해 평가 루프가 만들어지는 과정을 지켜보고, 증거에 기반한 개선 결과를 한곳에서 검토하세요.
-
-
+반복적인 AI Agent 평가와 자가 개선도 지원합니다. 실행, 제안, 의사결정, 승인된 변경은 모두 보존되는 운영 이력이 됩니다. 모든 것은 로컬에서 실행되고 기록은 AppData에 남습니다.
## 왜 OpenOrbit인가?
-AI 기능은 데모에서는 정상으로 보이더라도 프롬프트, 모델, 도구, 제품 변경 이후 성능이 저하될 수 있습니다. OpenOrbit는 그 기능에 일회성 테스트가 아니라 반복 가능한 운영 루프를 제공합니다.
+AI 기능이나 웹 제품은 데모에서는 정상으로 보이더라도 프롬프트, 모델, 도구, 제품 변경 이후 성능이 저하될 수 있습니다. OpenOrbit은 보고된 문제를 검토 가능한 개선으로 바꾸는 데 필요한 사람, 페르소나, 코딩 에이전트, 증거를 연결합니다.
```mermaid
flowchart LR
- A[AI system] --> B[Recurring evaluation]
- B --> C[Logs, browser evidence, and traces]
- C --> D[Supervisor review]
- D --> E[Issues and improvement proposals]
- E --> F[Human-approved changes]
- F --> A
+ A[AI 페르소나가
제품을 탐색]
+ B[문제, 과제, 보존된 증거]
+ C[AI 코딩 에이전트가
worktree 변경안을 준비]
+ D[diff, 증거, 제안 검토]
+ E[사람의 결정]
+ F[개선된 제품 또는
AI Agent]
+
+ A --> B --> C --> D --> E --> F --> A
```
+OpenOrbit은 이 일을 투명하고 되돌릴 수 있게 남깁니다. AI는 일을 제안하고 준비할 수 있지만, 적용 여부는 사람이 결정합니다.
+
## 할 수 있는 일
-- 타깃, 워크플로, 러너, 고정 테스트 케이스, 매니저 프롬프트, AI 모델 프로필로부터 재사용 가능한 **빌드(build)** 를 정의합니다.
-- 빌드를 저장하기 전에 일회성 **테스트(test)** 를 실행하거나, 명확한 승인 경계 아래에서 구성된 라이프사이클을 반복 실행합니다.
-- 프로세스 로그, 구조화된 증거, 브라우저 스크린샷, 감독자 응답, OpenTelemetry 트레이스를 통해 모든 단계를 점검합니다.
-- 보고된 이슈와 제안된 개선안을 지속적인 의사결정 이력 안에서 검토합니다.
-- 단일 모델 응답을 전부로 취급하는 대신, 반복(iteration) 전반에 걸친 PDCA 사이클을 관찰합니다.
-- 하나의 로컬 컨트롤룸에서 진행 중인 작업을 중지합니다.
+- **보고된 문제를 worktree로 개발합니다.** AI가 구체적인 문제를 보고하면 코딩 에이전트가 격리된 변경안을 준비하게 하고, 적용 전에 diff와 증거를 검토합니다.
+- **원하는 AI 코딩 에이전트를 사용합니다.** 특정 제공자에 묶이지 않고 팀이 이미 사용하는 코딩 에이전트를 연결합니다.
+- **AI 페르소나에게 일을 맡깁니다.** 페르소나는 정해진 관점에서 제품을 탐색하고, 과제와 문제를 발견하며, 그 일을 증거와 연결합니다.
+- **AI Agent를 지속적으로 개선합니다.** 반복 평가가 응답, 피드백, 제안, 결정을 보존하므로 AI Agent를 안전하게 개선할 수 있습니다.
+- **페르소나와 재사용 가능한 자산을 관리합니다.** 다음 작업에 사용할 페르소나, 모델 프로필, 프롬프트, 테스트 케이스, 환경, 워크플로를 관리합니다.
+- **Orbit Assistant로 질문하고 조작합니다.** 현재 보고 있는 화면에 관해 묻고, 컨트롤룸을 조작하는 데 도움을 받습니다.
+- **MCP와 OpenAPI로 자동화합니다.** 여러분의 에이전트와 도구가 같은 로컬 운영 데이터를 읽고 지원되는 작업을 자동화할 수 있습니다.
-## 제품 둘러보기
+## Quick start
-OpenOrbit는 각 단계에서 운영자가 필요로 하는 정보를 중심으로 설계되었습니다.
+가이드 템플릿으로 시작한 뒤, 팀이 운영하려는 제품, 페르소나, AI 워크플로에 맞게 조정하세요.
-| 영역 | 답해 주는 질문 |
-| --- | --- |
-| **Dashboard** | 지금 AI 시스템은 건강한가? 최근에 무엇이 바뀌었는가? |
-| **Builds** | 정확히 무엇이, 어떤 자산과 정책으로 평가되고 있는가? |
-| **Run detail** | 각 단계에서 무슨 일이 있었고, 어떤 증거가 그 결과를 뒷받침하는가? |
-| **Improvements** | 피드백, 의사결정, 점수가 시간이 지나며 실제로 개선되고 있는가? |
+
-아래 스크린샷은 고객 지원 AI가 보존된 평가 증거와 개선 사이클을 거치는 과정을 따라갑니다.
+### Quick Start로 10초 만에 시작하기
-### 평가된 AI가 실제로 무엇을 했는지 확인하기
+Dashboard의 **Quick starts**를 열고 가이드 템플릿을 선택한 뒤, 타깃별 필드를 채우고 빌드를 생성하세요. 템플릿은 필요한 러너, 테스트 케이스, 환경, 정책, 모델 프로필을 연결하므로 동작하는 워크플로에서 시작해 필요한 만큼 다듬을 수 있습니다.
-보존된 실행(run)을 열어 각 반복에서 평가된 AI로부터 관찰된 동작을 검토하세요. 그런 다음 그 동작을 제안된 개선안 및 이를 뒷받침하는 증거와 비교하세요.
+| Quick Start | 사용 시점 | 첫 실행 예시 |
+| --- | --- | --- |
+| **User journey smoke test** | 로컬 제품에 대한 반복적이고 읽기 전용인 브라우저 점검이 필요할 때. | 홈 페이지가 로드되고 주요 제목(heading)이 보이는지 확인합니다. |
+| **Site exploration review** | 안전한 동일 사이트 탐색으로부터 증거 기반 제품 피드백을 얻고 싶을 때. | 문서나 대시보드를 탐색하고, 각 권장 사항 뒤에 방문한 페이지를 보존합니다. |
+| **Agent self-improvement** | 실제 AI 응답으로부터 관리형 프롬프트를 개선하고 싶을 때. | 구성된 타깃 모델에 지원 요청을 보내고, 그 응답을 보존한 뒤, 감독자가 응답에 근거한 프롬프트 변경만 승인하도록 합니다. |
+| **AI SLO and behavior drift monitor** | 품질, 안전성, 지연 시간, 비용에 대한 구조화된 평가기를 이미 갖추고 있을 때. | 해당 probe 명령을 연결하고, 보존된 지표를 구성된 기준선 및 임계값과 비교합니다. |
-
+예를 들어, 지원 에이전트 프롬프트를 평가하려면:
-### 개선 사이클 전반의 증거 검토하기
+1. **Agent self-improvement** 를 선택합니다.
+2. Git 저장소와 관리형 프롬프트 파일을 선택한 뒤, AI 모델 프로필을 고릅니다.
+3. 대표적인 사용자 요청 하나와 그 응답 수준의 수용 기준을 입력합니다.
+4. 빌드를 생성하고 실행합니다. OpenOrbit는 실제 타깃 AI 응답을 보존하고, 감독자에게 그 증거를 검토하도록 요청하며, 다음 반복에서 채택된 되돌릴 수 있는 프롬프트 개선만 적용합니다.
-여러 빌드에 걸쳐 피드백 양, 채택된 변경, 점수, 실행 건강도를 비교하세요. 이 이력은 운영 사이클이 시간이 지나며 AI 시스템을 개선하고 있는지 분명하게 보여줍니다.
+Quick Start는 제공자 키를 절대 저장하지 않습니다. 선택한 모델 프로필에 이미 구성된 환경 변수 이름을 참조할 뿐입니다.
-
+## 제품 둘러보기
-### 다음에 무엇을 할지 AI 어시스턴트에게 묻기
+OpenOrbit의 웹 컨트롤룸은 문제 발견부터 결정까지의 일을 한곳에 모읍니다. 현재 내비게이션은 팀이 수행하는 작업을 중심으로 구성되어 있습니다.
-System AI 모델을 구성하면 내장 Chat Assistant를 사용해 평가 작업, 러너, 컨트롤룸에 관해 질문할 수 있습니다. 여러분 자신의 AI 에이전트도 OpenOrbit의 버전 관리 API를 통해 동일한 로컬 운영 데이터와 함께 작업할 수 있습니다.
+| 영역 | 여기서 하는 일 |
+| --- | --- |
+| **Dashboard** | 현재 활동을 확인하고 가이드 워크플로를 시작합니다. |
+| **Assets** | 재사용할 페르소나, 모델 프로필, 프롬프트, 테스트 케이스, 환경, 러너, 워크플로를 관리합니다. |
+| **Builds** | 제품 또는 AI Agent 워크플로에 사용할 자산과 정책을 연결합니다. |
+| **Runs** | 실행과 그 실행이 남긴 증거를 확인합니다. |
+| **Improvements** | 피드백과 페르소나 여정을 살피고, AI가 보고한 이슈와 worktree 제안을 검토합니다. |
+| **Settings** | 모델, 코딩 에이전트, 로컬 컨트롤룸을 설정합니다. |
-
+아래 화면은 보존된 증거가 검토 가능한 AI 생성 변경안으로 이어지는 과정을 보여줍니다.
-## 개발 파트너
+### 실행의 증거 확인하기
-
+보존된 실행(run)을 열어 워크플로, 라이프사이클 진행 상태, 각 단계에서 수집된 증거를 검토하세요. 그런 다음 관찰된 동작을 감독자 피드백 및 제안된 개선안과 비교하세요.
-## 함께 만들어요
+
-우리는 AI 시스템이 관찰 가능하고, 통제 가능하며, 지속적으로 개선되어야 한다는 믿음을 공유하는 사려 깊은 협력자를 찾고 있습니다. 특히 에이전트 하네스, 브라우저 평가(Playwright 포함), 로컬 자동화, 증거 기반 운영 루프 분야에서 일하는 분들의 기여를 환영합니다. 포크를 시작하거나, 작은 이슈를 열거나, 문서를 개선하거나, 더 큰 아이디어를 함께 다듬어 주세요. 모든 기여를 환영합니다.
+### 개선과 페르소나 활동 살펴보기
-프로젝트가 처음이신가요? [good first issues](https://github.com/forthfate/openorbit/labels/good%20first%20issue)를 둘러보거나, [Issues](https://github.com/forthfate/openorbit/issues)에서 질문하거나 아이디어를 나누고, 풀 리퀘스트를 열기 전에 [기여 가이드](CONTRIBUTING.md)를 읽어 보세요.
+여러 빌드에 걸쳐 피드백, 의사결정, 점수, 실행 상태, 페르소나 여정을 비교하세요. 이 이력은 제품 또는 AI Agent 워크플로가 시간에 따라 나아지고 있는지 보여줍니다.
-## Quick start
+
-### Quick Start로 10초 만에 시작하기
+### 적용 전 AI가 만든 작업 검토하기
-Dashboard의 **Quick starts** 섹션을 열고, 가이드 템플릿을 선택한 뒤, 몇 개의 타깃별 필드를 채우고 빌드를 생성하세요. 각 템플릿은 러너, 고정 테스트 케이스, 환경, 매니저 정책, 모델 프로필 구성을 함께 생성하므로, 모든 자산을 손수 조립하는 대신 동작하는 운영 루프로 시작할 수 있습니다.
+보존된 증거가 구체적인 변경을 뒷받침하면 AI 코딩 에이전트가 격리된 worktree에서 제안을 준비할 수 있습니다. 근거, 수용 증거, diff를 검토한 뒤 승인하거나, 거절하거나, 계속 검토 상태로 둘 수 있으며, 결정 없이는 어떤 변경도 적용되지 않습니다.
-| Quick Start | 사용 시점 | 첫 실행 예시 |
-| --- | --- | --- |
-| **User journey smoke test** | 로컬 제품에 대한 반복적이고 읽기 전용인 브라우저 점검이 필요할 때. | 홈 페이지가 로드되고 주요 제목(heading)이 보이는지 확인합니다. |
-| **Site exploration review** | 안전한 동일 사이트 탐색으로부터 증거 기반 제품 피드백을 얻고 싶을 때. | 문서나 대시보드를 탐색하고, 각 권장 사항 뒤에 방문한 페이지를 보존합니다. |
-| **Agent self-improvement** | 실제 AI 응답으로부터 관리형 프롬프트를 개선하고 싶을 때. | 구성된 타깃 모델에 지원 요청을 보내고, 그 응답을 보존한 뒤, 감독자가 응답에 근거한 프롬프트 변경만 승인하도록 합니다. |
-| **AI SLO and behavior drift monitor** | 품질, 안전성, 지연 시간, 비용에 대한 구조화된 평가기를 이미 갖추고 있을 때. | 해당 probe 명령을 연결하고, 보존된 지표를 구성된 기준선 및 임계값과 비교합니다. |
+
-예를 들어, 지원 에이전트 프롬프트를 평가하려면:
+### 현재 화면에 관해 Orbit Assistant에게 묻기
-1. **Agent self-improvement** 를 선택합니다.
-2. Git 저장소와 관리형 프롬프트 파일을 선택한 뒤, AI 모델 프로필을 고릅니다.
-3. 대표적인 사용자 요청 하나와 그 응답 수준의 수용 기준을 입력합니다.
-4. 빌드를 생성하고 실행합니다. OpenOrbit는 실제 타깃 AI 응답을 보존하고, 감독자에게 그 증거를 검토하도록 요청하며, 다음 반복에서 채택된 되돌릴 수 있는 프롬프트 개선만 적용합니다.
+System AI 모델을 구성하면 Orbit Assistant에게 현재 보고 있는 화면을 질문하고 컨트롤룸 조작을 도움받을 수 있습니다. 여러분의 AI 에이전트도 OpenOrbit의 MCP 서버 또는 버전 관리 API를 통해 같은 로컬 운영 데이터와 함께 작업할 수 있습니다.
-Quick Start는 제공자 키를 절대 저장하지 않습니다. 선택한 모델 프로필에 이미 구성된 환경 변수 이름을 참조할 뿐입니다.
+
+
+## 설치 및 개발
### 요구 사항
@@ -138,14 +130,14 @@ pnpm run docs:serve
### 패키지 앱 실행
-패키지 릴리스를 설치합니다.
+일반 패키지 릴리스는 OpenOrbit을 설치한 뒤 바로 실행합니다.
```bash
python -m pip install openorbit
orbit run
```
-wheel에는 번들된 컨트롤룸 UI가 이미 포함되어 있으므로, 런타임에 Node.js와 pnpm이 필요하지 않습니다.
+wheel에는 번들된 컨트롤룸 UI가 이미 포함되어 있으므로, 런타임에 Node.js와 pnpm이 필요하지 않습니다. 시작한 뒤 `http://127.0.0.1:3000`을 여세요. 해당 포트가 사용 중이면 OpenOrbit는 다음으로 사용 가능한 포트를 선택하고 그 URL을 출력합니다.
프로젝트나 원하는 디렉터리와 함께 하나의 컨트롤룸 운영 데이터를 보관하려면 `run`에 해당 디렉터리를 전달하세요. OpenOrbit는 그 안에 `.orbit` 하위 디렉터리를 만들어 사용합니다.
@@ -154,7 +146,13 @@ orbit run . # 현재 디렉터리의 .orbit/에 저장
orbit run ./my-project # ./my-project/.orbit/에 저장
```
-> PyPI 배포는 insighta cloud Inc.의 지원으로 이루어집니다.
+특정 리스너가 필요하면 `ORBIT_PORT`와 `ORBIT_HOST`를 설정하세요.
+
+```bash
+ORBIT_PORT=8787 ORBIT_HOST=0.0.0.0 orbit run
+```
+
+### 다른 실행 방법
최신 개발 버전을 사용하려면 OpenOrbit 메인 저장소에서 직접 설치하세요. 이 소스 설치에는 Node.js 24+와 pnpm이 필요합니다.
@@ -168,11 +166,7 @@ python -m pip install "openorbit @ git+https://github.com/forthfate/openorbit.gi
npx openorbit run
```
-`http://127.0.0.1:3000`을 엽니다. 해당 포트가 사용 중이면 OpenOrbit는 다음으로 사용 가능한 포트를 선택하고 그 URL을 출력합니다. 특정 리스너가 필요하면 `ORBIT_PORT`와 `ORBIT_HOST`를 설정하세요.
-
-```bash
-ORBIT_PORT=8787 ORBIT_HOST=0.0.0.0 orbit run
-```
+> PyPI 배포는 insighta cloud Inc.의 지원으로 이루어집니다.
### 이 저장소에서 실행
@@ -206,17 +200,10 @@ OpenOrbit는 독립 실행형(standalone)이며 로컬 우선(local-first) 컨
브라우저 여정을 실행하는 빌드만 Chromium 브라우저와 플랫폼별 시스템 라이브러리가 필요합니다. OpenOrbit를 시작하거나, 자산을 생성하거나, 실행을 검토하거나, 브라우저가 아닌 러너를 사용하는 데에는 필요하지 않습니다.
-## 첫 번째 평가 루프
-
-1. **Assets** 에서 AI 모델 프로필을 생성하거나 선택합니다.
-2. 평가하려는 AI 시스템을 기술하는 러너, 워크플로, 고정 테스트 케이스, 타깃 환경을 추가합니다.
-3. 이 자산들로부터 **Build** 를 생성합니다.
-4. **Test** 를 사용해 빌드를 한 번 실행하고, 평가 실행 이력에 추가하지 않은 채로 전체 실행 상세를 점검합니다.
-5. 준비가 되면 정기 실행을 시작한 뒤, **Runs** 에서 증거와 감독자 결과를 검토합니다.
-6. **Improvements** 를 사용해 시간에 따른 점수, 피드백, 의사결정, 사이클 건강도를 비교합니다.
-
## 핵심 개념
+> Build는 운영 루프를 정의하고, Test는 이를 한 번 점검하며, Run은 발생한 일을 보존합니다. Supervisor는 증거를 피드백과 제안으로 바꾸고, 다음 변경은 팀이 결정합니다.
+
| 개념 | 의미 |
| --- | --- |
| **Asset** | 재사용 가능한 모델 프로필, 러너, 워크플로, 프롬프트, 테스트 세트, 또는 환경. |
@@ -247,7 +234,7 @@ OpenOrbit는 로컬의, 버전이 관리되는 API를 노출합니다.
MCP 클라이언트는 `http://localhost:3000/mcp/`에 연결하면 프로젝트와 파이프라인을 조회하고, 실행·승인 작업 및 개선안 수명주기를 다룰 수 있습니다. `openorbit://openapi` 리소스는 전체 v1 HTTP API의 OpenAPI 계약을 제공합니다. MCP도 로컬 전용이며 기본 인증을 제공하지 않으므로, 신뢰할 수 없는 네트워크에 직접 노출하지 마세요.
-엔드포인트 세부 정보는 [API 레퍼런스](../../docs/API.md)를 참고하세요. 재사용 가능한 자동화를 추가하려면 명시적인 라이프사이클 단계를 갖는 Python 러너를 생성하세요.
+MCP 또는 버전 관리 OpenAPI를 사용하면 여러분의 에이전트를 연결하고, 같은 로컬 운영 데이터로 지원되는 작업을 자동화할 수 있습니다. 엔드포인트 세부 정보는 [API 레퍼런스](../../docs/API.md)를 참고하세요. 재사용 가능한 자동화를 추가하려면 명시적인 라이프사이클 단계를 갖는 Python 러너를 생성하세요.
```python
from orbit_sdk import runner
@@ -260,7 +247,13 @@ if __name__ == "__main__":
runner.main()
```
-러너는 의도적으로 제한적입니다. 러너는 컨트롤 플레인에 증거를 제공할 뿐, 자체 스케줄러를 시작하거나 타깃 시스템을 조용히 수정하지 않습니다.
+러너는 컨트롤 플레인에 증거를 제공하며, 자체 스케줄러를 시작하거나 타깃 시스템을 조용히 수정하지 않습니다.
+
+## 함께 만들어요
+
+우리는 AI 시스템이 관찰 가능하고, 통제 가능하며, 지속적으로 개선되어야 한다는 믿음을 공유하는 사려 깊은 협력자를 찾고 있습니다. 특히 에이전트 하네스, 브라우저 평가(Playwright 포함), 로컬 자동화, 증거 기반 운영 루프 분야에서 일하는 분들의 기여를 환영합니다. 포크를 시작하거나, 작은 이슈를 열거나, 문서를 개선하거나, 더 큰 아이디어를 함께 다듬어 주세요. 모든 기여를 환영합니다.
+
+프로젝트가 처음이신가요? [good first issues](https://github.com/forthfate/openorbit/labels/good%20first%20issue)를 둘러보거나, [Issues](https://github.com/forthfate/openorbit/issues)에서 질문하거나 아이디어를 나누고, 풀 리퀘스트를 열기 전에 [기여 가이드](CONTRIBUTING.md)를 읽어 보세요.
## 기여하기
@@ -275,6 +268,22 @@ pnpm --filter agent-improvement-console-ui run build
`main`에 직접 푸시하지 말고 풀 리퀘스트를 열어 주세요. 개발, 검사, 릴리스 규칙은 [CONTRIBUTING.md](CONTRIBUTING.md)를 참고하세요.
+## 개발 파트너
+
+
+
## 라이선스
Copyright © 2026 forthfate and insighta cloud Inc.
diff --git a/package.json b/package.json
index 2473441..781ce97 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "openorbit",
- "version": "0.12.0",
+ "version": "0.12.1",
"description": "Open control plane for recurring AI automations",
"license": "MIT",
"type": "module",
diff --git a/pyproject.toml b/pyproject.toml
index e6f357a..9978570 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "openorbit"
-version = "0.12.0"
+version = "0.12.1"
description = "Open control plane for recurring AI automations"
readme = "README.md"
license = "MIT"
@@ -41,6 +41,7 @@ include = ["orbit/resources/**/*.yaml", "orbit/resources/**/*.json", "orbit/reso
"frontend/dist" = "frontend/dist"
"site" = "site"
"backend/orbit_sdk" = "orbit_sdk"
+"backend/coding_agents.py" = "coding_agents.py"
[tool.hatch.build.hooks.custom]
diff --git a/uv.lock b/uv.lock
index 59dc124..045e12a 100644
--- a/uv.lock
+++ b/uv.lock
@@ -950,7 +950,7 @@ wheels = [
[[package]]
name = "openorbit"
-version = "0.12.0"
+version = "0.12.1"
source = { editable = "." }
dependencies = [
{ name = "fastapi" },