Context
The MCP tool loopover_build_results_payload (src/mcp/server.ts:2067, via buildLoopResults) is gated only by enforceToolRateLimit — no repo/operator access check — calling the pure buildResultsPayload function on caller-supplied, already-computed data ("source-free" per its own description). This is the same auth/purity tier as loopover_check_slop_risk, which already has both a REST route and CLI mirror. This tool has neither.
Requirements
- Add
POST /v1/loop/results-payload delegating to the existing pure buildResultsPayload function.
- Add a matching CLI subcommand/stdio tool.
Deliverables
Test Coverage Requirements
99%+ Codecov patch coverage on every changed line and branch in the new route/tool/CLI code, plus a test asserting output parity between the mirrored surfaces for identical input.
Expected Outcome
The results-payload builder is available over REST/CLI, matching its same-tier sibling check_slop_risk's existing parity.
Links & Resources
Precedent: POST /v1/lint/slop-risk (src/api/routes.ts:3164) + slopRiskCli (loopover-mcp.js:3098).
Context
The MCP tool
loopover_build_results_payload(src/mcp/server.ts:2067, viabuildLoopResults) is gated only byenforceToolRateLimit— no repo/operator access check — calling the purebuildResultsPayloadfunction on caller-supplied, already-computed data ("source-free" per its own description). This is the same auth/purity tier asloopover_check_slop_risk, which already has both a REST route and CLI mirror. This tool has neither.Requirements
POST /v1/loop/results-payloaddelegating to the existing purebuildResultsPayloadfunction.Deliverables
POST /v1/loop/results-payloadrouteTest Coverage Requirements
99%+ Codecov patch coverage on every changed line and branch in the new route/tool/CLI code, plus a test asserting output parity between the mirrored surfaces for identical input.
Expected Outcome
The results-payload builder is available over REST/CLI, matching its same-tier sibling
check_slop_risk's existing parity.Links & Resources
Precedent:
POST /v1/lint/slop-risk(src/api/routes.ts:3164) +slopRiskCli(loopover-mcp.js:3098).