replay-contract-insert-requires-duplicate-policy
A literal INSERT in a replay-named store callable must declare duplicate behavior.
Why
A store callable named ensure, enqueue, record_once, get_or_create, create_if_absent, or insert_if_absent promises that a retry will not create duplicate state.
Fix
Add an explicit conflict action or same-target NOT EXISTS guard. If duplicate failure or append-only insertion is deliberate, add an exact SARJ018 suppression explaining it; rename only when the callable does not promise replay safety.
Examples
def ensure_task(cursor, task_id): cursor.execute("INSERT INTO task (id) VALUES (%s)", (task_id,))def ensure_task(cursor, task_id): cursor.execute( "INSERT INTO task (id) VALUES (%s) ON CONFLICT DO NOTHING", (task_id,) )Formerly: replay-named-store-insert-requires-duplicate-policy, store-insert-requires-on-conflict