MiniMax · API Governance Rules

MiniMax — minimax desgin plugin rules

Spectral linting rules defining API design standards and conventions for MiniMax.

6 Rules warn 4
View Rules File View on GitHub

Rule Categories

error operation path property response schema

Rules

warn
property-name-snake-case
Property names must be snake_case
$.components.schemas.*.properties[*]~
warn
operation-id-camel-case
Operation IDs must be camelCase
$.paths.*.*.operationId
hint
error-response-schema
Error responses should reference a standard error schema
$.paths.*.*.responses[?(@property >= '400' && @property < '600')].content['application/json'].schema
warn
response-schema-defined
Success responses with JSON content should define a schema
$.paths.*.*.responses[?(@property >= '200' && @property < '300')].content['application/json']
warn
path-param-description
Path parameters should have a description
$.paths.*.parameters[?(@.in == 'path')]$.paths.*.*.parameters[?(@.in == 'path')]
hint
schema-description
Component schemas should have a description
$.components.schemas.*

Spectral Ruleset

Raw ↑
# harvested from https://github.com/MiniMax-AI/minimax-desgin-plugin/blob/bef9de2101e9d873619c83553b8f03ebb0c10663/comfyui-plugin/backend/.spectral.yaml on 2026-10-09 — a Spectral ruleset published in the provider's own GitHub repository (MiniMax-AI/minimax-desgin-plugin); found by GitHub code search, fetched verbatim
x-method: harvested
x-stamped: 2026-10-09
x-source-url: https://github.com/MiniMax-AI/minimax-desgin-plugin/blob/bef9de2101e9d873619c83553b8f03ebb0c10663/comfyui-plugin/backend/.spectral.yaml
extends:
  - spectral:oas

# Severity levels: error, warn, info, hint, off
# Rules from the built-in "spectral:oas" ruleset are active by default.
# Below we tune severity and add custom rules for our conventions.
#
# This ruleset mirrors Comfy-Org/cloud/.spectral.yaml so specs across the
# organization are linted against a single consistent standard.

rules:
  # -----------------------------------------------------------------------
  # Built-in rule severity overrides
  # -----------------------------------------------------------------------
  operation-operationId: error
  operation-description: warn
  operation-tag-defined: error
  info-contact: off
  info-description: warn
  no-eval-in-markdown: error
  no-$ref-siblings: error

  # -----------------------------------------------------------------------
  # Custom rules: naming conventions
  # -----------------------------------------------------------------------

  # Property names should be snake_case
  property-name-snake-case:
    description: Property names must be snake_case
    severity: warn
    given: "$.components.schemas.*.properties[*]~"
    then:
      function: pattern
      functionOptions:
        match: "^[a-z][a-z0-9]*(_[a-z0-9]+)*$"

  # Operation IDs should be camelCase
  operation-id-camel-case:
    description: Operation IDs must be camelCase
    severity: warn
    given: "$.paths.*.*.operationId"
    then:
      function: pattern
      functionOptions:
        match: "^[a-z][a-zA-Z0-9]*$"

  # -----------------------------------------------------------------------
  # Custom rules: response conventions
  # -----------------------------------------------------------------------

  # Error responses (4xx, 5xx) should use a consistent shape
  error-response-schema:
    description: Error responses should reference a standard error schema
    severity: hint
    given: "$.paths.*.*.responses[?(@property >= '400' && @property < '600')].content['application/json'].schema"
    then:
      field: "$ref"
      function: truthy

  # All 2xx responses with JSON body should have a schema
  response-schema-defined:
    description: Success responses with JSON content should define a schema
    severity: warn
    given: "$.paths.*.*.responses[?(@property >= '200' && @property < '300')].content['application/json']"
    then:
      field: schema
      function: truthy

  # -----------------------------------------------------------------------
  # Custom rules: best practices
  # -----------------------------------------------------------------------

  # Path parameters must have a description
  path-param-description:
    description: Path parameters should have a description
    severity: warn
    given:
      - "$.paths.*.parameters[?(@.in == 'path')]"
      - "$.paths.*.*.parameters[?(@.in == 'path')]"
    then:
      field: description
      function: truthy

  # Schemas should have a description
  schema-description:
    description: Component schemas should have a description
    severity: hint
    given: "$.components.schemas.*"
    then:
      field: description
      function: truthy

overrides:
  # /ws uses HTTP 101 (Switching Protocols) — a legitimate response for a
  # WebSocket upgrade, but not a 2xx, so operation-success-response fires
  # as a false positive. OpenAPI 3.x has no native WebSocket support.
  - files:
      - "openapi.yaml#/paths/~1ws"
    rules:
      operation-success-response: off

Work with this as data

Every ruleset here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for spectral rules

4 MCP tools reach this
  • find_rulesBrowse and filter every ruleset in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This ruleset
curl "https://apis.io/api/v1/rules/minimax-ai-minimax-desgin-plugin-spectral-rules"
All spectral rules
curl "https://apis.io/api/v1/rules?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.