# task_completion Считается, что задача по коду выполнена строго после: 1. **Формат/линт:** `go fmt ./...` (без неотформатированных файлов). 2. **Тесты:** `go test ./... -v -count=1 -timeout 120s` — все проходят (`make test`). 3. **Статический анализ:** `go vet ./...` — чисто (`make vet`). 4. **Сборка:** `go build -o ratatoskr ./cmd/ratatoskr/` (`make build`) — компилируется. - UI-сборка (cgo+Fyne) проверяется отдельно (`scripts/build-publish-ui.ps1` или `go build` с MinGW); headless-сборка cgo-пакетов (`internal/ui/desktop`) — только typecheck. 5. **Пересмотр контрактов:** если менялась сигнатура `App.New(configPath, version, updateToken string, noUI bool)` — обновить все вызовы (app_test.go, main.go). 6. Коммит осмысленными атомарными коммитами в feature-ветку `feat/` от origin/main. Рабочий процесс Ratatoskr (агент dev в этом конвейере): изучить код, реализовать так, чтобы все acceptance criteria были закрыты, закоммитить в ветку, вернуть отчёт.