diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb
index 1f07fa89ea0bafaa54587c1a6c54b591a60d8468..323b37170b181f806be1a6751e2ace95ae97b927 100644
--- a/Library/Homebrew/dev-cmd/audit.rb
+++ b/Library/Homebrew/dev-cmd/audit.rb
@@ -809,28 +809,6 @@ class FormulaAuditor
   end
 
   def line_problems(line, _lineno)
-    if line =~ /<(Formula|AmazonWebServicesFormula|ScriptFileFormula|GithubGistFormula)/
-      problem "Use a space in class inheritance: class Foo < #{Regexp.last_match(1)}"
-    end
-
-    # Commented-out cmake support from default template
-    problem "Commented cmake call found" if line.include?('# system "cmake')
-
-    # Comments from default template
-    [
-      "# PLEASE REMOVE",
-      "# Documentation:",
-      "# if this fails, try separate make/make install steps",
-      "# The URL of the archive",
-      "## Naming --",
-      "# if your formula requires any X11/XQuartz components",
-      "# if your formula fails when building in parallel",
-      "# Remove unrecognized options if warned by configure",
-    ].each do |comment|
-      next unless line.include?(comment)
-      problem "Please remove default template comments"
-    end
-
     # FileUtils is included in Formula
     # encfs modifies a file with this name, so check for some leading characters
     if line =~ %r{[^'"/]FileUtils\.(\w+)}
@@ -891,9 +869,6 @@ class FormulaAuditor
       end
     end
 
-    # Commented-out depends_on
-    problem "Commented-out dep #{Regexp.last_match(1)}" if line =~ /#\s*depends_on\s+(.+)\s*$/
-
     if line =~ /if\s+ARGV\.include\?\s+'--(HEAD|devel)'/
       problem "Use \"if build.#{Regexp.last_match(1).downcase}?\" instead"
     end
diff --git a/Library/Homebrew/rubocops/extend/formula_cop.rb b/Library/Homebrew/rubocops/extend/formula_cop.rb
index 4be0c0fe3091d4046e9ebfe865ba6e4df00578a5..e7a23ecae8bc753fa8e1dea5cd5a1e8ac3450c3b 100644
--- a/Library/Homebrew/rubocops/extend/formula_cop.rb
+++ b/Library/Homebrew/rubocops/extend/formula_cop.rb
@@ -302,6 +302,15 @@ module RuboCop
         end
       end
 
+      # Yields to a block with comment text as parameter
+      def audit_comments
+        @processed_source.comments.each do |comment_node|
+          @offensive_node = comment_node
+          @offense_source_range = :expression
+          yield comment_node.text
+        end
+      end
+
       # Returns the begin position of the node's line in source code
       def line_start_column(node)
         node.source_range.source_buffer.line_range(node.loc.line).begin_pos
@@ -312,6 +321,11 @@ module RuboCop
         node.source_range.begin_pos
       end
 
+      # Returns the ending position of the node in source code
+      def end_column(node)
+        node.source_range.end_pos
+      end
+
       # Returns the line number of the node
       def line_number(node)
         node.loc.line
diff --git a/Library/Homebrew/rubocops/lines_cop.rb b/Library/Homebrew/rubocops/lines_cop.rb
index 22039869b41e882f8f6169ca14a514f63ec9d0c8..abd46162f4a89d82ee59e62d69cb91318ae16821 100644
--- a/Library/Homebrew/rubocops/lines_cop.rb
+++ b/Library/Homebrew/rubocops/lines_cop.rb
@@ -15,6 +15,43 @@ module RuboCop
           problem ":tex is deprecated" if depends_on?(:tex)
         end
       end
+
+      class ClassInheritance < FormulaCop
+        def audit_formula(_node, class_node, parent_class_node, _body_node)
+          begin_pos = start_column(parent_class_node)
+          end_pos = end_column(class_node)
+          return unless begin_pos-end_pos != 3
+          problem "Use a space in class inheritance: class #{@formula_name} < #{class_name(parent_class_node)}"
+        end
+      end
+
+      class Comments < FormulaCop
+        def audit_formula(_node, _class_node, _parent_class_node, _body_node)
+          audit_comments do |comment|
+            [
+              "# PLEASE REMOVE",
+              "# Documentation:",
+              "# if this fails, try separate make/make install steps",
+              "# The URL of the archive",
+              "## Naming --",
+              "# if your formula requires any X11/XQuartz components",
+              "# if your formula fails when building in parallel",
+              "# Remove unrecognized options if warned by configure",
+              '# system "cmake',
+            ].each do |template_comment|
+              next unless comment.include?(template_comment)
+              problem "Please remove default template comments"
+              break
+            end
+          end
+
+          audit_comments do |comment|
+            # Commented-out depends_on
+            next unless comment =~ /#\s*depends_on\s+(.+)\s*$/
+            problem "Commented-out dependency #{Regexp.last_match(1)}"
+          end
+        end
+      end
     end
   end
 end
diff --git a/Library/Homebrew/test/dev-cmd/audit_spec.rb b/Library/Homebrew/test/dev-cmd/audit_spec.rb
index f2d8a8e7c66956cef7c268b340dc0974e24d830d..037865fdf1059f0ca3f5ebe19827179d692c55a4 100644
--- a/Library/Homebrew/test/dev-cmd/audit_spec.rb
+++ b/Library/Homebrew/test/dev-cmd/audit_spec.rb
@@ -263,28 +263,6 @@ describe FormulaAuditor do
       expect(fa.problems.shift)
         .to eq('Use pkgshare instead of (share/"foolibc++")')
     end
-
-    specify "no space in class inheritance" do
-      fa = formula_auditor "foo", <<-EOS.undent
-        class Foo<Formula
-          url '/foo-1.0.tgz'
-        end
-      EOS
-
-      fa.line_problems "class Foo<Formula", 1
-      expect(fa.problems.shift)
-        .to eq("Use a space in class inheritance: class Foo < Formula")
-    end
-
-    specify "default template" do
-      fa = formula_auditor "foo", "class Foo < Formula; url '/foo-1.0.tgz'; end"
-
-      fa.line_problems '# system "cmake", ".", *std_cmake_args', 3
-      expect(fa.problems.shift).to eq("Commented cmake call found")
-
-      fa.line_problems "# PLEASE REMOVE", 3
-      expect(fa.problems.shift).to eq("Please remove default template comments")
-    end
   end
 
   describe "#audit_github_repository" do