Make the CRP loop less brittle for local models while keeping structured, typed validation where it matters.
- Keep
FINAL_RESPONSEas the hard-required slot. - Treat other template
required = trueslots as recommended structure: missing or empty content should warn, not force retry. - Keep typed validation strict when typed slots are present, especially
BulletList<FilePath>slots such asRELEVANT_FILES. - Keep parse errors as retryable failures.
- Keep retry feedback typed enough for the model and UI to understand what failed.
- Create this task tracker.
- Relax CRP required-slot validation while preserving typed slot checks.
- Update prompt/docs language so models understand the softer contract.
- Add tests covering relaxed structural slots and strict typed slots.
- Split CRP retry decisions into typed outcomes instead of returning
bool. - Add one bounded retry for empty model responses.
- Capture model
finish_reasonand use truncation-aware CRP retry guidance. - Separate budgets for tool calls, model rounds, CRP retries, empty responses, and transport retries.
- Re-run focused formatting, tests, and package script checks.