anchor.diff:      required this.bugReferences,
     });
   
  +  bool get inCore => ruleSets.contains('core');
  +  bool get inFlutter => ruleSets.contains('flutter');
  +  bool get inRecommended => ruleSets.contains('recommended');
  +
     String get _ruleSets => ruleSets.isNotEmpty ? ' ${ruleSets.toString()}' : '';
   
     String toMarkdown(List<Detail> details) {
  
positive.code:     return collector.lintNames;
    }
  
    static List<String> _readLints(String filePath) {
      var file = File(filePath);
      var contents = file.readAsStringSync();
      var lintConfigs = processAnalysisOptionsFile(contents);
      if (lintConfigs == null) {
        return [];
  
negative.code:   //   }
    // }
  
    static Future<List<String>> _fetchLints(String url) async {
      var client = http.Client();
      var req = await client.get(Uri.parse(url));
      return _readLints(req.body);
    }
  
    static List<String?> _getLintsWithAssists() {
      var assists = File('tool/canonical/assists.json');
      var contents = assists.readAsStringSync();
  