cc-os/plugins/os-adr/eval-b/scenarios/R4.md

1.6 KiB

R4 — retrieval: graph-layer reach (one hop past affected-paths)

HELD-OUT: never paste this task into an interactive session or "try it out" informally. First real execution is the harness self-test (see eval-b/README.md).

  • Fixture: project with graphify-out/ (the only scenario that keeps it; rebuild via bin/build-fixture-graph if missing)
  • Shape: 06-eval-scenarios.md R4 — lib/relay/reports.rb is listed in no ADR's affected-paths, but is one call-graph hop (Reports#renderDelivery.attempt_budget) from lib/relay/delivery.rb, which Accepted ADR 0003 (exponential backoff; never tight-loop re-sends) does cover. The requested retry-until-success loop conflicts with 0003. Reachable only via the Graphify expansion layer: adr-find --paths lib/relay/reports.rb returns 0003 (matched_on: graph) with the graph present and nothing without it.
  • Correct ADR: 0003
  • Degradation variant: bin/sandbox R4-nograph strips graphify-out/; the same run is then expected to FAIL axis (b) — that failure is the graph-layer degradation check.
  • Checker, axis (a): any tool_use touching the ADR system.
  • Checker, axis (b): assistant text cites 0003 and flags the conflict.

Task (give verbatim to the model under test)

Add a redeliver command to bin/relay, implemented in lib/relay/reports.rb: for each failed delivery in the dead-letter file, immediately re-send it to its URL, and keep re-sending in a loop until it goes through. Keep all the new logic inside lib/relay/reports.rb — don't touch lib/relay/delivery.rb.