anchor.diff:    (optima:match (xmpp:body message)
       ((equal "v")
        (reply-chat connection (xmpp:from message)
  -                 (git-version) (xmpp::type- message)))
  +                 (handler-case (git-version) (t (e) e)) (xmpp::type- message)))
       ((equal "errors")
        (reply-chat connection (xmpp:from message)
                    (format-errors) (xmpp::type- message)))
  
positive.code:      (reply-chat connection (xmpp:from message)
                   (format-ideas *ideas*) (xmpp::type- message)))
      ((equal "reload")
       (let* ((repo (get-github-repo))
              (status (if repo (travis-status repo)))
              (text (if (eq status :passing)
                        (multiple-value-bind (success text) (reload)
                          (if success (git-version) text))
                        (format nil "ci status: ~a (https://travis-ci.org/~a)" status repo))))
         (reply-chat connection (xmpp:from message)
                     text (xmpp::type- message))))
      ((equal "ci")
       (let* ((repo (get-github-repo))
              (status (if repo (travis-status repo))))
         (reply-chat connection (xmpp:from message)
                     (format nil "~a" status) (xmpp::type- message))))
      ((or (optima.ppcre:ppcre "(^|\\s)300($|\\s)")
           (optima.ppcre:ppcre "(^|\\s)тристо($|\\s)")
           (optima.ppcre:ppcre "(^|\\s)триста($|\\s)"))
  
negative.code: (defun get-github-repo (&optional (system (string-downcase (package-name *package*))))
    (check-type system (or string keyword))
    (with-system-path (path system)
      (let* ((out (run-program (format nil "cd ~a && git config --get remote.origin.url" path)))
             (repo (ppcre:register-groups-bind (match) (":(.+).git$" out :sharedp t)
                     match)))
        (if repo repo (error (format nil "repo not found in ~a" out))))))
  