# harvested from https://github.com/BitGo/BitGoJS/blob/25f9537315a45269f8d82d21d2fc6208f19c3fd7/modules/express/ruleset.yaml on 2026-10-09 — a Spectral ruleset published in the provider's own GitHub repository (BitGo/BitGoJS); found by GitHub code search, fetched verbatim x-method: harvested x-stamped: 2026-10-09 x-source-url: https://github.com/BitGo/BitGoJS/blob/25f9537315a45269f8d82d21d2fc6208f19c3fd7/modules/express/ruleset.yaml description: Recommended rules for a high quality specification. documentationUrl: https://quobix.com/vacuum/rulesets/recommended rules: duplicated-entry-in-enum: category: description: Schemas are how request bodies and response payloads are defined. They define the data going in and the data flowing out of an operation. These rules check for structural validity, checking types, checking required fields and validating correct use of structures. id: schemas name: Schemas description: Enum values can't be the same. formats: - oas3 - oas3_1 - oas2 given: $ howToFix: Make each enum value unique. id: duplicated-entry-in-enum recommended: true severity: error then: function: duplicatedEnum type: validation no-$ref-siblings: category: description: Schemas are how request bodies and response payloads are defined. They define the data going in and the data flowing out of an operation. These rules check for structural validity, checking types, checking required fields and validating correct use of structures. id: schemas name: Schemas description: $ref values can't be next to other properties. formats: - oas3 - oas3_1 - oas2 given: $ howToFix: Remove all sibling nodes, including descriptions. id: no-$ref-siblings recommended: true severity: error then: function: refSiblings type: validation no-ambiguous-paths: category: description: Operations are the core of the contract, they define paths and HTTP methods. These rules check operations have been well constructed, looks for operationId, parameter, schema and return types in depth. id: operations name: Operations description: Paths must resolve unambiguously from one another. For example, /{id}/ambiguous and /ambiguous/{id} are the same thing. formats: - oas3 - oas3_1 - oas2 given: $ howToFix: Make the path, and the variables used, unique. Check the ordering of variables and the naming of path segments. id: no-ambiguous-paths recommended: true resolved: true severity: error then: function: noAmbiguousPaths type: validation no-eval-in-markdown: category: description: Validation rules make sure that certain characters or patterns have not been used that may cause issues when rendering in different types of applications. id: validation name: Validation description: Markdown descriptions can't have `eval()` statements'. Malicious actors can use these to embed code in contracts, executing when a browser reads it. formats: - oas3 - oas3_1 - oas2 given: $ howToFix: Remove all references to 'eval()' from the description. id: no-eval-in-markdown recommended: true resolved: true severity: error then: function: noEvalDescription functionOptions: pattern: eval\( type: validation no-script-tags-in-markdown: category: description: Validation rules make sure that certain characters or patterns have not been used that may cause issues when rendering in different types of applications. id: validation name: Validation description: Markdown descriptions can't have `