ratatoskr-go: стартовый каркас (Go-бинарь, CI, structure)
All checks were successful
build-test / build (push) Successful in 47s
All checks were successful
build-test / build (push) Successful in 47s
This commit is contained in:
49
README.md
Normal file
49
README.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Ratatoskr-go
|
||||
|
||||
Ratatoskr на Go — **оркестратор в единый статический бинарь** + субагенты через
|
||||
[opencode](https://opencode.ai) как внешний процесс. Переезд с Python-версии.
|
||||
|
||||
## Почему Go
|
||||
|
||||
Агентный конвейер — это клей (HTTP/JSON к LLM, SQLite, Gitea API, Telegram), а не
|
||||
горячие вычисления. Цель — **один статический бинарь без runtime-зависимостей**
|
||||
(CGO_ENABLED=0), который решает проблему доставки/деплоя. Go: горизонт
|
||||
HTTP/JSON + goroutine-параллелизм research/feedback/notify + SQLite без CGO
|
||||
(`modernc.org/sqlite`).
|
||||
|
||||
## Структура
|
||||
|
||||
```
|
||||
cmd/ratatoskr/ # точка входа, сборка бинаря
|
||||
internal/
|
||||
app/ # компоновка (composition root), конфиг, DI
|
||||
dialog/ # state-machine диалога: collect→confirm→created
|
||||
decide/ # аналитик: промпт + разбор JSON-решения (opencode agent)
|
||||
research/ # исследователь: FACTS о репозитории
|
||||
feedback/ # feedback: транскрипт→proposals (opencode agent)
|
||||
opencode/ # обёртка запуска opencode-процесса, парсинг вердикта
|
||||
gitea/ # Gitea API-клиент: issues, labels, PR, webhook
|
||||
webhook/ # digest-ответы и статус в Telegram
|
||||
issue/ # issue: формирование тела задачи, task-tag
|
||||
```
|
||||
|
||||
## Сборка
|
||||
|
||||
```bash
|
||||
go build -o bin/ratatoskr ./cmd/ratatoskr # обычная
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||
-o bin/ratatoskr-linux-amd64 ./cmd/ratatoskr # статический бинарь
|
||||
```
|
||||
|
||||
## Контракты (не ломать)
|
||||
|
||||
- `process_turn` всегда возвращает **3 значения**: `(reply, action, session)`.
|
||||
- `decide_fn` возвращает кортеж/структуру `(decision, err)`.
|
||||
- `/proposal` передаёт аналитику **полный комплект**, а не digest.
|
||||
- Вердикты агентов — строгий JSON; `_extract_json` устойчив к мусору.
|
||||
|
||||
## Eval
|
||||
|
||||
Eval-suite (парсинг A / контракты B / качество C) — см.
|
||||
[дизайн в вики](../wiki/concepts/ratatoskr-evals.md). Запуск после внедрения:
|
||||
`go test ./...` для детерминированных уровней A+B.
|
||||
Reference in New Issue
Block a user