worker: добавлен пакет worker (W1-W5, poll-цикл, runTask, промпт, тесты) + SetMaxOpenConns(1) для SQLITE_BUSY
All checks were successful
build-test / build (push) Successful in 42s
All checks were successful
build-test / build (push) Successful in 42s
This commit is contained in:
42
internal/worker/prompt.go
Normal file
42
internal/worker/prompt.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package worker
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
// devPromptTemplate — промпт для dev-агента при запуске задачи.
|
||||
var devPromptTemplate = template.Must(template.New("dev").Parse(`Ты — dev-агент, реализуешь задачу в репозитории.
|
||||
|
||||
**Задача:**
|
||||
{{if .Title}}Название: {{.Title}}{{end}}
|
||||
{{if .Goal}}Цель: {{.Goal}}{{end}}
|
||||
{{if .Why}}Зачем: {{.Why}}{{end}}
|
||||
{{if .Repo}}Репозиторий: {{.Repo}}{{end}}
|
||||
{{if .AC}}Критерии готовности:
|
||||
{{.AC}}{{end}}
|
||||
|
||||
**Инструкции:**
|
||||
1. Напиши код, реализующий задачу.
|
||||
2. Убедись, что все acceptance criteria выполнены.
|
||||
3. В процессе работы пользуйся встроенными инструментами opencode (чтение файлов, поиск, редактирование).
|
||||
4. По окончании работы верни краткий отчёт о том, что сделано.
|
||||
`))
|
||||
|
||||
// DevPromptData — данные для рендера dev-промпта.
|
||||
type DevPromptData struct {
|
||||
Title string
|
||||
Goal string
|
||||
Repo string
|
||||
Why string
|
||||
AC string
|
||||
}
|
||||
|
||||
// RenderDevPrompt собирает промпт для dev-агента.
|
||||
func RenderDevPrompt(data DevPromptData) (string, error) {
|
||||
var buf strings.Builder
|
||||
if err := devPromptTemplate.Execute(&buf, data); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return buf.String(), nil
|
||||
}
|
||||
Reference in New Issue
Block a user