Files
orchestrator/README.md

59 lines
2.6 KiB
Markdown

# agent-coding-empire orchestrator
Glue between Gitea and the dev/auditor LXCs that run `claude-code` headless.
## Architecture (v0)
```
┌──────────────────────────────┐
│ Gitea (CT 101) │
│ - Issues with labels │
│ - PRs │
│ - Actions runner (CT 112) │
└────────┬─────────────────────┘
│ webhook
┌──────────────────────────────────────┐
│ orchestrator (CT 103, this repo) │
│ - webhook handler (Phase 2) │
│ - PM helper scripts │
│ - SSH-triggers dev-task on dev LXCs │
└────────┬─────────────────────────────┘
│ SSH
┌──────────────────┐
│ dev-01 (CT 120) │ one slot active at a time
│ - claude-code │
│ - tea CLI │
│ - dev-task.sh │
└──────────────────┘
```
## Constraints
- **Max-plan auth shared.** Each dev LXC has a copy of `~/.claude/.credentials.json`.
They all draw from the same rate-limit pool as Danny's interactive sessions.
- **One dev agent active at a time** in v0 (no parallel) to avoid starving the pool.
- **Default model = sonnet.** Opus only when issue body explicitly says `Model: opus`.
- **Hard wallclock cap** = 30 minutes per task (configurable via `MAX_WALLCLOCK`).
## Repo layout
```
agents/
dev-task.sh # runs inside dev LXC; takes <repo> <issue-id>, opens PR
pm/
(todo) # PM scripts that create structured issues
auditor/
(todo) # Gitea Actions workflow for PR review
provisioning/
(todo) # scripts to bootstrap a fresh dev LXC
```
## Phase status
- [x] Phase 0: Gitea repos, dev-01 LXC, claude-code + tea installed, auth verified
- [ ] Phase 1: manual closed loop (PM writes issue → dev-task → PR)
- [ ] Phase 2: webhook-driven automation
- [ ] Phase 3: multi-dev (still one active at a time)