Diagnose agent memory-ordering confusion
You asked an agent to implement a lock-free single-producer/single-consumer ring buffer in Rust. Twice it has handed you code that compiles, passes a basic test, but the agent keeps reaching for `unsafe` and atomics in ways you suspect have memory-ordering bugs — and each 're-prompt to fix it' just shuffles the `Ordering` constants around without principled reasoning. How do you diagnose why it's stuck, how do you re-steer it, and at what point do you stop prompting and take it over yourself?
replay_ring_buffer(capacity: int, op_lines: list[str]) → list[str][2,["push|a","push|b","push|c","pop","push|c","pop","pop","pop"]]out["ok","ok","full","a","ok","b","c","empty"][1,["pop","push|x","push|y","pop","pop"]]out["empty","ok","full","x","empty"]Treat the AI’s output as a draft to verify, not an answer to trust. Name the specific flaw and the input that triggers it, say how you’d catch it (tests, edge cases, reading critically), and how you’d re-prompt or decompose to get it right.
Vibe & agentic: describe the solution in plain language (or narrate it) and the coach grades your approach.