Files
mopac-pmo/archive/TASK-20260828-1903-harness-skeleton.md

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.