    {:abilities [{:cost [:credit 1] :msg "break 1 sentry subroutine"}]}
 
    "Ninja"
-   {:abilities [{:cost [:credit 1] :msg "break 1 sentry subroutine"}
-                {:cost [:credit 3] :msg "add 5 strength" :effect (effect (pump card 5))}]}
+   (auto-icebreaker ["Sentry"]
+     {:abilities [{:cost [:credit 1] :msg "break 1 sentry subroutine"}
+                  {:cost [:credit 3] :msg "add 5 strength" :effect (effect (pump card 5) :pump 5)}]})
 
    "Passport"
-   {:abilities [{:cost [:credit 1] :req (req (#{:hq :rd :archives} (first (:server run))))
-                 :msg "break 1 code gate subroutine"}
-                {:cost [:credit 2] :msg "add 2 strength" :effect (effect (pump card 2))}]}
+   (auto-icebreaker ["Code Gate"]
+     {:abilities [{:cost [:credit 1] :req (req (#{:hq :rd :archives} (first (:server run))))
+                   :msg "break 1 code gate subroutine"}
+                  {:cost [:credit 2] :msg "add 2 strength" :effect (effect (pump card 2) :pump 2)}]})
 
    "Omega"
-   {:abilities [{:cost [:credit 1] :req (req (= (:position run) (dec (count (:ices run)))))
-                 :msg "break 1 subroutine on the innermost ICE protecting this server"}
-                {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1))}]}
+   (auto-icebreaker ["All"]
+     {:abilities [{:cost [:credit 1] :req (req (= (:position run) (dec (count (:ices run)))))
+                   :msg "break 1 subroutine on the innermost ICE protecting this server"}
+                  {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1) :pump 1)}]})
 
    "Overmind"
-   {:effect (effect (set-prop card :counter (:memory runner)))
-    :abilities [{:counter-cost 1 :msg "break 1 subroutine"}
-                {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1))}]}
+   (auto-icebreaker ["All"]
+     {:effect (effect (set-prop card :counter (:memory runner)))
+      :abilities [{:counter-cost 1 :msg "break 1 subroutine"}
+                  {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1) :pump 1)}]})
 
    "Peacock"
-   {:abilities [{:cost [:credit 2] :msg "break 1 code gate subroutine"}
-                {:cost [:credit 2] :msg "add 3 strength" :effect (effect (pump card 3))}]}
+   (auto-icebreaker ["Code Gate"]
+     {:abilities [{:cost [:credit 2] :msg "break 1 code gate subroutine"}
+                  {:cost [:credit 2] :msg "add 3 strength" :effect (effect (pump card 3) :pump 3)}]})
 
    "Pipeline"
-   {:abilities [{:cost [:credit 1] :msg "break 1 sentry subroutine"}
-                {:cost [:credit 2] :msg "add 1 strength for the remainder of this run"
-                 :effect (effect (pump card 1 :all-run))}]}
+   (auto-icebreaker ["Sentry"]
+     {:abilities [{:cost [:credit 1] :msg "break 1 sentry subroutine"}
+                  {:cost [:credit 2] :msg "add 1 strength for the remainder of this run"
+                   :effect (effect (pump card 1 :all-run) :pump 1)}]})
 
    "Refractor"
-   {:abilities [{:cost [:credit 1] :msg "break 1 code gate subroutine"}
-                {:cost [:credit 1] :msg "add 3 strength" :effect (effect (pump card 3))}]}
+   (auto-icebreaker ["Code Gate"]
+     {:abilities [{:cost [:credit 1] :msg "break 1 code gate subroutine"}
+                  {:cost [:credit 1] :msg "add 3 strength" :effect (effect (pump card 3) :pump 3)}]})
 
    "Sage"
    {:abilities [{:cost [:credit 2] :msg "break 1 code gate or barrier subroutine"}]

                {:cost [:credit 2] :msg "break 1 subroutine on the host ICE"}]}

   "Leviathan"
   {:abilities [{:cost [:credit 3] :msg "break up to 3 code gate subroutines"}
                {:cost [:credit 3] :msg "add 5 strength" :effect (effect (pump card 5))}]}

   "Morning Star"
   {:abilities [{:cost [:credit 1] :msg "break any number of barrier subroutines"}]}

    :strength-bonus (req (or (:counter card) 0))}

   "Switchblade"
   (auto-icebreaker ["Sentry"]
     {:abilities [{:cost [:credit 1] :msg "break any number of sentry subroutines"}
                  {:cost [:credit 1] :msg "add 7 strength" :effect (effect (pump card 7) :pump 7)}]})

   "Torch"
   (auto-icebreaker ["Code Gate"]
     {:abilities [{:cost [:credit 1] :msg "break 1 code gate subroutine"}
                  {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1) :pump 1)}]})

   "Wyrm"
   (auto-icebreaker ["All"]
     {:abilities [{:cost [:credit 3] :msg "break 1 subroutine on ICE with 0 or less strength"}
                  {:cost [:credit 1]
                   :label "give -1 strength to current ice" :msg (msg "give -1 strength to " (:title current-ice))
                   :req (req current-ice)
                   :effect (req (update! state side (update-in card [:wyrm-count] (fnil #(+ % 1) 0)))
                                (update-ice-strength state side current-ice))}
                  {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1) :pump 1)}]
      :events (let [wy {:effect (req (update! state side (dissoc card :wyrm-count)))}]
                   {:pre-ice-strength {:req (req (and (= (:cid target) (:cid current-ice)) (:wyrm-count card)))
                                       :effect (req (let [c (:wyrm-count (get-card state card))]
                                                         (ice-strength-bonus state side (- c))))}
                    :pass-ice wy :run-ends wy})})

   "Yog.0"
   {:abilities [{:msg "break 1 code gate subroutine"}]}

   "ZU.13 Key Master"
   (auto-icebreaker ["Code Gate"]
     {:abilities [{:cost [:credit 1] :msg "break 1 code gate subroutine"}
                  {:cost [:credit 1] :msg "add 1 strength" :effect (effect (pump card 1) :pump 1)}]})

   ;; ICE
   "Archer"
