@alexmiller I tried to find a smaller failing case.
(require '[clojure.alpha.spec :as s] '[clojure.alpha.spec.gen :as gen])
;; => nil
(s/def :wf/S
(s/schema {:s/i-001 string?
:s/i-002 string?}))
;; => :wf/S
(s/def :wf/S1
(s/select :wf/S [:s/i-001]))
;; => :wf/S1
(s/valid? :wf/S {:s/i-001 "1"})
;; => true
(s/valid? :wf/S {:s/i-001 1})
;; => false
(s/valid? :wf/S1 {})
;; => false
(s/valid? :wf/S1 {:s/i-002 "1"})
;; => false
(s/valid? :wf/S1 {:s/i-001 "1"})
;; => true
(s/valid? :wf/S1 {:s/i-001 1})
;; => true
(gen/sample (s/gen :wf/S1) 1)
;; Caused by clojure.lang.ExceptionInfo
;; Couldn't satisfy such-that predicate after 100 tries.)
The result of the last 2 expressions is not expected (to me).