Preserve proposal outcomes and classify filtered proposals

This commit is contained in:
2026-09-24 17:09:35 +00:00
parent 51169ff9e9
commit 42bde59827
8 changed files with 144 additions and 54 deletions

View File

@@ -463,6 +463,16 @@ without examining error strings; counts are available independently of debug.
## Stage 3 — Convert Proposal Failures and Classify Safe Filtering
**Completed 2026-09-24.** Proposal generation and the shared path used by all
four built-in modules now preserve one identified operation with terminal counts
on success, recoverable failure, and fatal return. Recoverable failures yield no
candidates; a valid empty response succeeds. A focused domain classifier separates
defective proposals from editorial rejection without changing deterministic
validator policy. Updated proposal, wrapper, and filtering tests are present.
`git diff --check` passed. Those tests and the existing four-module routing tests
cannot compile until the validator warning consumers are converted in Stage 4;
the attempted `go test` reports those exact stale-field errors.
**Work:** Update `proposal_generation.GenerateCandidates` and all four module
wrappers to preserve operation outcomes. A recoverable proposal call returns zero
candidates plus a failed operation, not a warning or fatal Go error. A valid empty