feat: множественные репозитории (Repos) и клонирование в воркере
All checks were successful
CI / test (push) Successful in 46s
CI / build-and-package (amd64, darwin) (push) Successful in 36s
CI / build-and-package (amd64, linux) (push) Successful in 37s
CI / build-and-package (amd64, windows) (push) Successful in 44s
CI / build-and-package (arm64, darwin) (push) Successful in 35s
CI / build-and-package (arm64, linux) (push) Successful in 36s
All checks were successful
CI / test (push) Successful in 46s
CI / build-and-package (amd64, darwin) (push) Successful in 36s
CI / build-and-package (amd64, linux) (push) Successful in 37s
CI / build-and-package (amd64, windows) (push) Successful in 44s
CI / build-and-package (arm64, darwin) (push) Successful in 35s
CI / build-and-package (arm64, linux) (push) Successful in 36s
- Task.Repos []string (XML-колонка repos, обратная совместимость с repo)
- config: блок git {base_url, token}
- аналитик: ответ repos[], шаблон показывает список
- core: propose без repos → возврат в сбор (E1)
- worker вариант A: один dev из общего cwd, prepareRepos клонирует
недостающие репо (git clone), validateRepoName (E3), ErrRepoNotGit (E4)
- ошибки E1-E4 в worker/errors.go
This commit is contained in:
@@ -6,28 +6,35 @@ import (
|
||||
)
|
||||
|
||||
// devPromptTemplate — промпт для dev-агента при запуске задачи.
|
||||
var devPromptTemplate = template.Must(template.New("dev").Parse(`Ты — dev-агент, реализуешь задачу в репозитории.
|
||||
var devPromptTemplate = template.Must(template.New("dev").Parse(`Ты — dev-агент, реализуешь задачу в репозитории(ях).
|
||||
|
||||
**Задача:**
|
||||
{{if .Title}}Название: {{.Title}}{{end}}
|
||||
{{if .Goal}}Цель: {{.Goal}}{{end}}
|
||||
{{if .Repos}}
|
||||
Репозитории (доступны как подпапки текущего каталога):
|
||||
{{- range .Repos}}
|
||||
- {{.}}
|
||||
{{- end}}
|
||||
{{end}}
|
||||
{{if .Why}}Зачем: {{.Why}}{{end}}
|
||||
{{if .Repo}}Репозиторий: {{.Repo}}{{end}}
|
||||
{{if .AC}}Критерии готовности:
|
||||
{{.AC}}{{end}}
|
||||
|
||||
**Инструкции:**
|
||||
1. Напиши код, реализующий задачу.
|
||||
2. Убедись, что все acceptance criteria выполнены.
|
||||
3. В процессе работы пользуйся встроенными инструментами opencode (чтение файлов, поиск, редактирование).
|
||||
4. По окончании работы верни краткий отчёт о том, что сделано.
|
||||
1. Рабочий каталог — общий корень, в котором лежат все репозитории по именам.
|
||||
Правь файлы внутри нужного репозитория (./имя_репо/...). Связанные репозитории меняй согласованно.
|
||||
2. Напиши код, реализующий задачу.
|
||||
3. Убедись, что все acceptance criteria выполнены.
|
||||
4. Пользуйся встроенными инструментами opencode (чтение файлов, поиск, редактирование).
|
||||
5. По окончании верни краткий отчёт о том, что сделано.
|
||||
`))
|
||||
|
||||
// DevPromptData — данные для рендера dev-промпта.
|
||||
type DevPromptData struct {
|
||||
Title string
|
||||
Goal string
|
||||
Repo string
|
||||
Repos []string
|
||||
Why string
|
||||
AC string
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user