anchor.diff:      ((optima.ppcre:ppcre "^idea (.+)$" idea)
        (add-idea (reply-nick (xmpp:from message)) idea)
        (reply-chat connection (xmpp:from message)
  -                 "got it" (xmpp::type- message) 
  +                 "got it" (xmpp::type- message)
                    :highlight (reply-nick (xmpp:from message))))
       ((equal "ideas")
        (reply-chat connection (xmpp:from message)
                    (format-ideas *ideas*) (xmpp::type- message)))
       ((equal "reload")
  -     (multiple-value-bind (success text) (reload)
  -         (let ((text (if success "done" text)))
  -           (reply-chat connection (xmpp:from message)
  -                       text (xmpp::type- message)))))
  +     (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)"))
  
positive.code:                      title (xmpp::type- message)))))))
  
  (defun reply-nick (from)
    (let ((pos (position #\/ from)))
      (when pos (subseq from (1+ pos)))))
  
  (defun reply-chat (connection to reply kind &key highlight)
    (if (string-equal kind "groupchat")
      (let* ((pos (position #\/ to))
             (to (if pos (subseq to 0 pos) to))
  
negative.code: ;;   (find-in-man man (erl-fun-regex fun arity) :max-chars 300))
  
  (defun erl-man-link (module &optional fun arity)
    (check-type module string)
    (check-type fun (or string null))
    (check-type arity (or string null))
    (string-downcase
     (cond
       ((and fun arity) (format nil "http://www.erlang.org/doc/man/~a.html#~a-~a"
                                module fun arity))
       (fun (format nil "http://www.erlang.org/doc/man/~a.html#~a" module fun))
       (t (format nil "http://www.erlang.org/doc/man/~a.html" module)))))
  
  