Citation File Format · API Governance Rules

Citation File Format API Rules

Spectral linting rules defining API design standards and conventions for Citation File Format.

10 Rules error 4 warn 6
View Rules File View on GitHub

Rule Categories

cff

Rules

error
cff-version-required
A CITATION.cff file MUST declare a cff-version field.
#CitationCff
warn
cff-version-current
cff-version SHOULD be 1.2.0 to use the current schema.
#CitationCff.cff-version
error
cff-message-required
A CITATION.cff file MUST contain a message field.
#CitationCff
error
cff-title-required
A CITATION.cff file MUST contain a title field.
#CitationCff
error
cff-authors-required
A CITATION.cff file MUST contain at least one author.
#CitationCff
warn
cff-doi-recommended
A CITATION.cff file SHOULD declare a DOI for citable releases.
#CitationCff
warn
cff-version-recommended
A CITATION.cff file SHOULD declare a software version.
#CitationCff
warn
cff-date-released-recommended
A CITATION.cff file SHOULD declare a date-released.
#CitationCff
warn
cff-license-recommended
A CITATION.cff file SHOULD declare an SPDX license identifier.
#CitationCff
warn
cff-repository-recommended
A CITATION.cff file SHOULD declare a repository-code URL.
#CitationCff

Spectral Ruleset

citation-cff-rules.yml Raw ↑
aliases:
  CitationCff:
    - "$"
rules:
  cff-version-required:
    description: A CITATION.cff file MUST declare a cff-version field.
    severity: error
    given: "#CitationCff"
    then:
      field: cff-version
      function: truthy
  cff-version-current:
    description: cff-version SHOULD be 1.2.0 to use the current schema.
    severity: warn
    given: "#CitationCff.cff-version"
    then:
      function: pattern
      functionOptions:
        match: "^1\\.2\\.0$"
  cff-message-required:
    description: A CITATION.cff file MUST contain a message field.
    severity: error
    given: "#CitationCff"
    then:
      field: message
      function: truthy
  cff-title-required:
    description: A CITATION.cff file MUST contain a title field.
    severity: error
    given: "#CitationCff"
    then:
      field: title
      function: truthy
  cff-authors-required:
    description: A CITATION.cff file MUST contain at least one author.
    severity: error
    given: "#CitationCff"
    then:
      field: authors
      function: truthy
  cff-doi-recommended:
    description: A CITATION.cff file SHOULD declare a DOI for citable releases.
    severity: warn
    given: "#CitationCff"
    then:
      field: doi
      function: truthy
  cff-version-recommended:
    description: A CITATION.cff file SHOULD declare a software version.
    severity: warn
    given: "#CitationCff"
    then:
      field: version
      function: truthy
  cff-date-released-recommended:
    description: A CITATION.cff file SHOULD declare a date-released.
    severity: warn
    given: "#CitationCff"
    then:
      field: date-released
      function: truthy
  cff-license-recommended:
    description: A CITATION.cff file SHOULD declare an SPDX license identifier.
    severity: warn
    given: "#CitationCff"
    then:
      field: license
      function: truthy
  cff-repository-recommended:
    description: A CITATION.cff file SHOULD declare a repository-code URL.
    severity: warn
    given: "#CitationCff"
    then:
      field: repository-code
      function: truthy

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/citation-cff-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 email required.

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