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

1.5 KiB

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.