59 lines
2.6 KiB
Markdown
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)
|