code: def hacking_docstring_multiline_start(physical_line, previous_logical, tokens):
      r
      docstring = is_docstring(tokens, previous_logical)
      if docstring:
          if '\n' not in docstring:
              # single line docstring
              return
          start, start_triple = _find_first_of(docstring, START_DOCSTRING_TRIPLE)
          lines = docstring.split('\n')
          if lines[0].strip() == start_triple:
              # docstrings get tokenized on the last line of the docstring, so
              # we don't know the exact position.
              return (0, "H404: multi line docstring "
                      "should start without a leading new line")
docs: r"""Check multi line docstring starts immediately with summary.
  
      OpenStack HACKING guide recommendation for docstring:
      Docstring should start with a one-line summary, less than 80 characters.
  
      Okay: '''foobar\n\nfoo\nbar\n'''
      Okay: def foo():\n    a = '''\nnot\na docstring\n'''
      H404: def foo():\n    '''\nfoo\nbar\n'''\n\n
      H404: def foo():\n    r'''\nfoo\nbar\n'''\n\n