Problem
Failed attempts are not preserved as first-class, queryable artifacts. Verifier failure output lives only inside build_retry_prompt (src/coord/verify.rs) — ephemeral, scoped to one task, gone once the task resolves. decisions.rs has is_negative() / log_observation, but that's decision-level, not trajectory-level.
Weng's post is emphatic on this (bottleneck #3): models trained predominantly on successes bias toward over-optimism and re-trying dead hypotheses. "Make failed attempts easy to preserve." The niche draft has quarantine, but quarantine is a blocklist — "don't do that again" — not "here is why it failed."
Proposal
A persisted, queryable negative-results store:
Why it matters
Directly enables the rollback ledger the NC loop already wants, and closes the post's sharpest single gap. Small blast radius, additive to existing interfaces (decisions.rs, verify.rs).
Part of epic #358. Relates to #359, #360.
Problem
Failed attempts are not preserved as first-class, queryable artifacts. Verifier failure output lives only inside
build_retry_prompt(src/coord/verify.rs) — ephemeral, scoped to one task, gone once the task resolves.decisions.rshasis_negative()/log_observation, but that's decision-level, not trajectory-level.Weng's post is emphatic on this (bottleneck #3): models trained predominantly on successes bias toward over-optimism and re-trying dead hypotheses. "Make failed attempts easy to preserve." The niche draft has quarantine, but quarantine is a blocklist — "don't do that again" — not "here is why it failed."
Proposal
A persisted, queryable negative-results store:
resume.rsalready computes one).decisions.rsretrieval.direction.rs, NC Phase 0: Sense only — direction.rs + charter.toml (ranked needs backlog, no actions) #359) as a "don't re-propose this without new evidence" filter.Why it matters
Directly enables the rollback ledger the NC loop already wants, and closes the post's sharpest single gap. Small blast radius, additive to existing interfaces (
decisions.rs,verify.rs).Part of epic #358. Relates to #359, #360.