Source plan: issue-sequence.md draft 6 in /Users/rianjs/dev.
CR-15 — LLM adapter interface + structured contracts + fake
- Design §: §10.2, §9 (Selection/Findings/Rollup + §9.4 caps).
- Scope:
internal/llm — the §10.2 interface (nullable Usage/Quota);
the §9 JSON schemas + validation (agent IDs resolve, files ⊆ changed,
safe_to_resolve_rationale, severity caps §9.4, harness-assigned finding
UUIDs, re-prompt-once); maps validated wire JSON into internal/review
(CR-1A) domain values; a fake adapter replaying canned structured
responses.
- DoD: each contract validates+rejects malformed output, re-prompts once
then fails; caps enforced; maps cleanly into internal/review types; fake
drives downstream tests; green.
- Depends: CR-01, CR-1A.
Keep this issue scoped to the section above. Follow the one-issue/one-branch/one-PR sequence and keep the repo green at merge.
Source plan:
issue-sequence.mddraft 6 in/Users/rianjs/dev.CR-15 — LLM adapter interface + structured contracts + fake
internal/llm— the §10.2 interface (nullableUsage/Quota);the §9 JSON schemas + validation (agent IDs resolve, files ⊆ changed,
safe_to_resolve_rationale, severity caps §9.4, harness-assigned findingUUIDs, re-prompt-once); maps validated wire JSON into
internal/review(CR-1A) domain values; a fake adapter replaying canned structured
responses.
then fails; caps enforced; maps cleanly into
internal/reviewtypes; fakedrives downstream tests; green.
Keep this issue scoped to the section above. Follow the one-issue/one-branch/one-PR sequence and keep the repo green at merge.