Aider · API Governance Rules
Aider API Rules
Spectral linting rules defining API design standards and conventions for Aider.
38 Rules
error 19
warn 15
info 4
Rule Categories
cli
delete
example
get
info
openapi
operation
parameter
path
request
response
schema
security
servers
tag
tags
Rules
error
info-title-prefix-aider
Spec title must start with "Aider".
$.info.title
error
info-description-required
Spec must include a long description explaining the CLI surface.
$.info
warn
info-description-min-length
Spec description must be at least 200 characters.
$.info.description
error
info-license-required
License is required and must be Apache 2.0 for Aider.
$.info.license
warn
info-contact-required
Contact block must be present so consumers know how to reach maintainers.
$.info.contact
info
info-generated-from-marker
x-generated-from extension should be set so this synthetic CLI-as-API spec is identifiable.
$.info
error
openapi-version-3-0
OpenAPI version must be 3.0.x.
$.openapi
error
servers-required
Servers array must be defined even though Aider has no network endpoint (use cli:// scheme).
$
warn
servers-cli-scheme
At least one server should use the cli:// scheme to flag the CLI nature of the surface.
$.servers[*].url
error
tags-global-array
Global tags array must be defined.
$
warn
tag-description-required
Every global tag must have a description.
$.tags[*]
warn
tag-title-case-aider
Tag descriptions should be Title Case and start with "Aider".
$.tags[*].description
error
path-kebab-case
Paths must use lowercase kebab-case segments.
$.paths.*~
error
path-commands-or-launch-prefix
Top-level path segment must be /commands or /launch (CLI surface convention).
$.paths.*~
error
path-no-trailing-slash
Paths must not end with a trailing slash.
$.paths.*~
error
operation-operationid-required
Every operation must have an operationId.
$.paths.*[get,post,put,patch,delete]
error
operation-operationid-camel-case
operationId must be camelCase.
$.paths.*[get,post,put,patch,delete].operationId
error
operation-summary-required
Every operation must have a summary.
$.paths.*[get,post,put,patch,delete]
error
operation-summary-aider-prefix
Operation summary must start with "Aider ".
$.paths.*[get,post,put,patch,delete].summary
warn
operation-summary-title-case
Operation summary should be Title Case (every word capitalized except small words).
$.paths.*[get,post,put,patch,delete].summary
warn
operation-description-required
Every operation must have a description.
$.paths.*[get,post,put,patch,delete]
error
operation-tags-required
Every operation must have at least one tag.
$.paths.*[get,post,put,patch,delete]
info
operation-microcks-extension
Every operation should declare x-microcks-operation so Microcks can mock it.
$.paths.*[get,post,put,patch,delete]
warn
parameter-description-required
Every parameter must have a description.
$.paths.*[get,post,put,patch,delete].parameters[*]
error
parameter-schema-required
Every parameter must have a schema with a type.
$.paths.*[get,post,put,patch,delete].parameters[*]
error
request-body-json-only
Request bodies must use application/json content type.
$.paths.*[post,put,patch].requestBody.content
error
response-success-required
Every operation must define a 200 success response.
$.paths.*[get,post,put,patch,delete].responses
warn
response-description-required
Every response must have a description.
$.paths.*[get,post,put,patch,delete].responses[*]
warn
response-json-content
Responses must return application/json.
$.paths.*[get,post,put,patch,delete].responses.*.content
warn
schema-property-snake-case
Schema properties must use snake_case.
$.components.schemas[*].properties.*~
warn
schema-property-type-required
Every schema property must have a type.
$.components.schemas[*].properties[*]
info
schema-property-description-required
Every schema property should have a description.
$.components.schemas[*].properties[*]
warn
security-schemes-defined
components.securitySchemes must be defined for the LLM provider key placeholder.
$.components.securitySchemes
warn
security-llm-provider-key-defined
An LLMProviderKey security scheme must be present to document the BYO-LLM model.
$.components.securitySchemes
error
get-no-request-body
GET operations must not declare a request body.
$.paths.*.get
error
delete-no-request-body
DELETE operations must not declare a request body.
$.paths.*.delete
info
example-encouraged-on-properties
Schema properties should include an example value.
$.components.schemas[*].properties[*]
warn
cli-launch-config-singleton
There must be exactly one launch configuration resource (/launch/config).
$.paths