I would expect a plain predicate work with {{s/merge}}:
(s/explain any? {:x 1, :y 2})
; Success!
(s/explain (s/merge any?) {:x 1, :y 2})
; val: {:x 1, :y 2} fails predicate: any?
Still, wrapping the predicate into specs seems to work:
(s/explain (s/merge (s/spec any?)) {:x 1, :y 2})
; Success!