Skip to content

Proselint: wire schema #78

@ross-spencer

Description

@ross-spencer

Interesting we have a protobuf schema here and it is output in proselint as JSON. We should get proselint into the database but also consider the implications of outputting data to a serialization format such as JSON.

https://github.com/amperser/proselint/blob/main/docs/wire-schema.md

Repo: https://github.com/amperser/proselint

{
  "result": {
    "file:///tmp/prose/json.txt": {
      "diagnostics": [
        {
          "check_path": "needless_variants",
          "message": "Needless variant. 'outsize' is the preferred form.",
          "pos": [
            26,
            1
          ],
          "replacements": "outsize",
          "span": [
            659,
            667
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'PRONOM\nPRONOM' - a phrase is repeated.",
          "pos": [
            29,
            28
          ],
          "replacements": null,
          "span": [
            742,
            755
          ]
        },
        {
          "check_path": "weasel_words.very",
          "message": "Substitute 'damn' every time you're inclined to write 'very'; your editor will delete it and the writing will be just as it should be.",
          "pos": [
            42,
            379
          ],
          "replacements": null,
          "span": [
            1419,
            1423
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            78,
            26
          ],
          "replacements": null,
          "span": [
            5765,
            5773
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            79,
            26
          ],
          "replacements": null,
          "span": [
            5800,
            5807
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            80,
            26
          ],
          "replacements": null,
          "span": [
            5834,
            5843
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            89,
            4
          ],
          "replacements": null,
          "span": [
            5962,
            5970
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            90,
            4
          ],
          "replacements": null,
          "span": [
            5990,
            5997
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            91,
            4
          ],
          "replacements": null,
          "span": [
            6011,
            6020
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            98,
            5
          ],
          "replacements": null,
          "span": [
            6101,
            6109
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            103,
            5
          ],
          "replacements": null,
          "span": [
            6160,
            6167
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            104,
            5
          ],
          "replacements": null,
          "span": [
            6182,
            6191
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            174,
            5
          ],
          "replacements": null,
          "span": [
            9923,
            9931
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            179,
            5
          ],
          "replacements": null,
          "span": [
            9982,
            9989
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            180,
            5
          ],
          "replacements": null,
          "span": [
            10004,
            10013
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            213,
            5
          ],
          "replacements": null,
          "span": [
            12033,
            12041
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            218,
            5
          ],
          "replacements": null,
          "span": [
            12092,
            12099
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            219,
            5
          ],
          "replacements": null,
          "span": [
            12114,
            12123
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            233,
            5
          ],
          "replacements": null,
          "span": [
            13068,
            13076
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            238,
            5
          ],
          "replacements": null,
          "span": [
            13127,
            13134
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            239,
            5
          ],
          "replacements": null,
          "span": [
            13149,
            13158
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            259,
            5
          ],
          "replacements": null,
          "span": [
            13429,
            13437
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            264,
            5
          ],
          "replacements": null,
          "span": [
            13488,
            13497
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            265,
            5
          ],
          "replacements": null,
          "span": [
            13510,
            13517
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            290,
            3
          ],
          "replacements": null,
          "span": [
            14559,
            14570
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            293,
            62
          ],
          "replacements": null,
          "span": [
            14639,
            14650
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in '0\n0' - a phrase is repeated.",
          "pos": [
            293,
            75
          ],
          "replacements": null,
          "span": [
            14652,
            14655
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            298,
            5
          ],
          "replacements": null,
          "span": [
            14738,
            14749
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in '20 20 20 20' - a phrase is repeated.",
          "pos": [
            302,
            17
          ],
          "replacements": null,
          "span": [
            14773,
            14784
          ]
        },
        {
          "check_path": "typography.symbols.sentence_spacing",
          "message": "More than two spaces after the period; use 1 or 2.",
          "pos": [
            302,
            61
          ],
          "replacements": null,
          "span": [
            14817,
            14821
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            308,
            5
          ],
          "replacements": null,
          "span": [
            14922,
            14933
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in '0a 0a' - a phrase is repeated.",
          "pos": [
            313,
            14
          ],
          "replacements": null,
          "span": [
            14955,
            14960
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in '20 20 20 20' - a phrase is repeated.",
          "pos": [
            313,
            20
          ],
          "replacements": null,
          "span": [
            14961,
            14972
          ]
        },
        {
          "check_path": "typography.symbols.sentence_spacing",
          "message": "More than two spaces after the period; use 1 or 2.",
          "pos": [
            313,
            62
          ],
          "replacements": null,
          "span": [
            15003,
            15007
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            318,
            5
          ],
          "replacements": null,
          "span": [
            15111,
            15122
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in '00 20 00 20 00 20 00 20' - a phrase is repeated.",
          "pos": [
            322,
            29
          ],
          "replacements": null,
          "span": [
            15158,
            15181
          ]
        },
        {
          "check_path": "typography.symbols.ellipsis",
          "message": "'...' is an approximation, use the ellipsis symbol '\u2026'.",
          "pos": [
            322,
            60
          ],
          "replacements": null,
          "span": [
            15189,
            15192
          ]
        },
        {
          "check_path": "typography.symbols.ellipsis",
          "message": "'...' is an approximation, use the ellipsis symbol '\u2026'.",
          "pos": [
            322,
            64
          ],
          "replacements": null,
          "span": [
            15193,
            15196
          ]
        },
        {
          "check_path": "typography.symbols.ellipsis",
          "message": "'...' is an approximation, use the ellipsis symbol '\u2026'.",
          "pos": [
            324,
            70
          ],
          "replacements": null,
          "span": [
            15351,
            15354
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            328,
            5
          ],
          "replacements": null,
          "span": [
            15382,
            15393
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in '00 20 00 20 00 20 00 20' - a phrase is repeated.",
          "pos": [
            332,
            26
          ],
          "replacements": null,
          "span": [
            15426,
            15449
          ]
        },
        {
          "check_path": "typography.symbols.ellipsis",
          "message": "'...' is an approximation, use the ellipsis symbol '\u2026'.",
          "pos": [
            332,
            63
          ],
          "replacements": null,
          "span": [
            15463,
            15466
          ]
        },
        {
          "check_path": "typography.symbols.ellipsis",
          "message": "'...' is an approximation, use the ellipsis symbol '\u2026'.",
          "pos": [
            334,
            69
          ],
          "replacements": null,
          "span": [
            15621,
            15624
          ]
        },
        {
          "check_path": "typography.symbols.ellipsis",
          "message": "'...' is an approximation, use the ellipsis symbol '\u2026'.",
          "pos": [
            334,
            73
          ],
          "replacements": null,
          "span": [
            15625,
            15628
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'INDEX\nindex' - a phrase is repeated.",
          "pos": [
            379,
            1
          ],
          "replacements": null,
          "span": [
            20193,
            20204
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'GOTO\ngoto' - a phrase is repeated.",
          "pos": [
            381,
            1
          ],
          "replacements": null,
          "span": [
            20253,
            20262
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'KEY\nkey' - a phrase is repeated.",
          "pos": [
            383,
            1
          ],
          "replacements": null,
          "span": [
            20291,
            20298
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            407,
            11
          ],
          "replacements": null,
          "span": [
            20789,
            20794
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            407,
            18
          ],
          "replacements": null,
          "span": [
            20796,
            20802
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            407,
            26
          ],
          "replacements": null,
          "span": [
            20804,
            20808
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            407,
            32
          ],
          "replacements": null,
          "span": [
            20810,
            20817
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            408,
            11
          ],
          "replacements": null,
          "span": [
            20831,
            20836
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            408,
            18
          ],
          "replacements": null,
          "span": [
            20838,
            20846
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            408,
            28
          ],
          "replacements": null,
          "span": [
            20848,
            20858
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            409,
            11
          ],
          "replacements": null,
          "span": [
            20896,
            20901
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            409,
            18
          ],
          "replacements": null,
          "span": [
            20903,
            20909
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            409,
            26
          ],
          "replacements": null,
          "span": [
            20911,
            20915
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            409,
            34
          ],
          "replacements": null,
          "span": [
            20919,
            20925
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            409,
            42
          ],
          "replacements": null,
          "span": [
            20927,
            20933
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'the syntax\nThe syntax' - a phrase is repeated.",
          "pos": [
            425,
            10
          ],
          "replacements": null,
          "span": [
            21949,
            21970
          ]
        },
        {
          "check_path": "needless_variants",
          "message": "Needless variant. 'heterogeneous' is the preferred form.",
          "pos": [
            440,
            198
          ],
          "replacements": "heterogeneous",
          "span": [
            24623,
            24635
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            443,
            3
          ],
          "replacements": null,
          "span": [
            24900,
            24916
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            444,
            3
          ],
          "replacements": null,
          "span": [
            24925,
            24942
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            445,
            3
          ],
          "replacements": null,
          "span": [
            24950,
            24964
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            446,
            3
          ],
          "replacements": null,
          "span": [
            24975,
            24997
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            447,
            3
          ],
          "replacements": null,
          "span": [
            25004,
            25020
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            448,
            5
          ],
          "replacements": null,
          "span": [
            25028,
            25034
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            449,
            5
          ],
          "replacements": null,
          "span": [
            25040,
            25046
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            450,
            5
          ],
          "replacements": null,
          "span": [
            25052,
            25058
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            451,
            5
          ],
          "replacements": null,
          "span": [
            25064,
            25070
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            453,
            3
          ],
          "replacements": null,
          "span": [
            25078,
            25095
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            454,
            5
          ],
          "replacements": null,
          "span": [
            25103,
            25109
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            455,
            5
          ],
          "replacements": null,
          "span": [
            25115,
            25120
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            456,
            5
          ],
          "replacements": null,
          "span": [
            25126,
            25132
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            457,
            5
          ],
          "replacements": null,
          "span": [
            25138,
            25144
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            459,
            3
          ],
          "replacements": null,
          "span": [
            25152,
            25159
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            460,
            3
          ],
          "replacements": null,
          "span": [
            25166,
            25192
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            461,
            3
          ],
          "replacements": null,
          "span": [
            25202,
            25215
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            462,
            5
          ],
          "replacements": null,
          "span": [
            25223,
            25228
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            463,
            5
          ],
          "replacements": null,
          "span": [
            25268,
            25273
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            463,
            12
          ],
          "replacements": null,
          "span": [
            25275,
            25336
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            465,
            3
          ],
          "replacements": null,
          "span": [
            25344,
            25354
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            480,
            5
          ],
          "replacements": null,
          "span": [
            26059,
            26066
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            480,
            14
          ],
          "replacements": null,
          "span": [
            26068,
            26075
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            481,
            5
          ],
          "replacements": null,
          "span": [
            26081,
            26090
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            482,
            5
          ],
          "replacements": null,
          "span": [
            26103,
            26111
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            501,
            9
          ],
          "replacements": null,
          "span": [
            26300,
            26307
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'UNF\nUNF' - a phrase is repeated.",
          "pos": [
            524,
            1
          ],
          "replacements": null,
          "span": [
            26530,
            26537
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'bafkreiawsimwdn4blnb7scz2cfwtdksifrayccsl3z6gmxam6uxddctkoy\nbafkreiawsimwdn4blnb7scz2cfwtdksifrayccsl3z6gmxam6uxddctkoy\nbafkreiawsimwdn4blnb7scz2cfwtdksifrayccsl3z6gmxam6uxddctkoy' - a phrase is repeated.",
          "pos": [
            529,
            1
          ],
          "replacements": null,
          "span": [
            26631,
            26810
          ]
        },
        {
          "check_path": "lexical_illusions",
          "message": "There's a lexical illusion in 'Figure 11\n\n\nFigure 11' - a phrase is repeated.",
          "pos": [
            532,
            1
          ],
          "replacements": null,
          "span": [
            26811,
            26832
          ]
        },
        {
          "check_path": "weasel_words.very",
          "message": "Substitute 'damn' every time you're inclined to write 'very'; your editor will delete it and the writing will be just as it should be.",
          "pos": [
            577,
            240
          ],
          "replacements": null,
          "span": [
            30493,
            30497
          ]
        },
        {
          "check_path": "weasel_words.very",
          "message": "Substitute 'damn' every time you're inclined to write 'very'; your editor will delete it and the writing will be just as it should be.",
          "pos": [
            577,
            347
          ],
          "replacements": null,
          "span": [
            30600,
            30604
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            585,
            57
          ],
          "replacements": null,
          "span": [
            31742,
            31753
          ]
        },
        {
          "check_path": "typography.symbols.curly_quotes",
          "message": "Use curly quotes \u201c\u201d, not straight quotes \"\".",
          "pos": [
            587,
            248
          ],
          "replacements": null,
          "span": [
            32422,
            32427
          ]
        },
        {
          "check_path": "weasel_words.very",
          "message": "Substitute 'damn' every time you're inclined to write 'very'; your editor will delete it and the writing will be just as it should be.",
          "pos": [
            589,
            345
          ],
          "replacements": null,
          "span": [
            32931,
            32935
          ]
        },
        {
          "check_path": "needless_variants",
          "message": "Needless variant. 'outsize' is the preferred form.",
          "pos": [
            592,
            1
          ],
          "replacements": "outsize",
          "span": [
            34110,
            34118
          ]
        },
        {
          "check_path": "needless_variants",
          "message": "Needless variant. 'outsize' is the preferred form.",
          "pos": [
            593,
            27
          ],
          "replacements": "outsize",
          "span": [
            34152,
            34160
          ]
        },
        {
          "check_path": "weasel_words.very",
          "message": "Substitute 'damn' every time you're inclined to write 'very'; your editor will delete it and the writing will be just as it should be.",
          "pos": [
            602,
            290
          ],
          "replacements": null,
          "span": [
            35035,
            35039
          ]
        },
        {
          "check_path": "skunked_terms",
          "message": "'hopefully' is a a skunked term - impossible to use without issue. Find some other way to say it.",
          "pos": [
            606,
            241
          ],
          "replacements": null,
          "span": [
            36142,
            36151
          ]
        },
        {
          "check_path": "redundancy.misc.after_the_deadline",
          "message": "Redundancy. Use 'identification' instead of 'positive identification'.",
          "pos": [
            606,
            256
          ],
          "replacements": "identification",
          "span": [
            36157,
            36180
          ]
        },
        {
          "check_path": "weasel_words.very",
          "message": "Substitute 'damn' every time you're inclined to write 'very'; your editor will delete it and the writing will be just as it should be.",
          "pos": [
            647,
            337
          ],
          "replacements": null,
          "span": [
            43010,
            43014
          ]
        }
      ]
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    new rulesetNew potential rulesets for JSONID

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions