27 lines
1.5 KiB
Markdown
27 lines
1.5 KiB
Markdown
# TASK: Harness skeleton (build phase 2)
|
|
|
|
## Objective
|
|
Initial Go implementation in /home/reachableceo/projects/meta/MOPAC/harness per
|
|
its DESIGN.md (READ IT FIRST, esp. "MVP demo bar" + "Model selection layer"
|
|
sections, appended 2026-08-28 ~19:00): config load, conductor loop (single-shot
|
|
mode), redmine-pull intake (list issues in scope), bounded turn via LiteLLM
|
|
(OpenAI-compatible, base_url+key from config), REPORT file writeback, exec tool
|
|
(bash, allow-listed).
|
|
|
|
## Constraints
|
|
- Read docs/PORTING-NOTES-*.md first if present.
|
|
- `go build ./...` and `go vet ./...` clean; no external deps beyond stdlib +
|
|
tree-sitter/gomft if genuinely needed (prefer stdlib for v1).
|
|
- Config: harness.toml (scope query, litellm url/key-ref, paths) + example file.
|
|
- Single-shot: `harness once` runs ONE iteration then exits (chainable, no daemon).
|
|
- Dry-run mode: `harness once --dry-run` = intake+plan only, no LLM call.
|
|
- MODEL ROUTING v0: harness.toml `[models]` tier map (aliases `mopac-study`
|
|
-> glm-4.7-flash, `mopac-code` -> glm-5.2, `mopac-review` -> glm-5-turbo,
|
|
`mopac-primary` -> glm-5.3) + per-TASK `class` field; requests go out with
|
|
the concrete model name resolved from the map. No heuristic code in v0.
|
|
- MVP DEMO (the acceptance bar): `harness once` on a demo issue whose prompt
|
|
is "tell me about yourself" through LiteLLM; the GLM self-description comes
|
|
back and lands as the REPORT. Wire this as an example/smoke path.
|
|
- Tests for loop/gate logic (table-driven, stdlib testing).
|
|
- Commit incrementally; REPORT lists what works, what's stubbed, next chunk.
|