{
  "repository": "prettier/prettier",
  "ref": "d5d30c11e87a245cae6e91ce8dc910e57afddb20",
  "methods": [
    {
      "slug": "formal",
      "title": "Formal verification and model checking"
    },
    {
      "slug": "static_analysis",
      "title": "Static analysis"
    },
    {
      "slug": "testing",
      "title": "Testing"
    },
    {
      "slug": "formatting",
      "title": "Formatting and hygiene"
    },
    {
      "slug": "supply_chain",
      "title": "Supply chain"
    },
    {
      "slug": "unclassified",
      "title": "Unclassified"
    }
  ],
  "verifications": [
    {
      "tool": "eslint",
      "method": "static_analysis",
      "commands": [
        "eslint .",
        "eslint dist --config=./scripts/production-eslint-config.js --quiet"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[5] (Lint ESLint)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:eslint"
        },
        {
          "path": ".github/workflows/prod-test.yml",
          "locator": "jobs.lint.steps[4] (Lint Code)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:production-lint"
        },
        {
          "path": "package.json",
          "locator": "scripts.fix:eslint"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: eslint"
        },
        {
          "path": "eslint.config.js",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/eslint/eslint",
      "docs": "https://eslint.org/docs/latest/use/command-line-interface#exit-codes",
      "exit_codes": {
        "0": "no errors",
        "1": "linting errors found",
        "2": "configuration problem or internal error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [
        "tsc"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[4] (Check JSDoc Types)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:typecheck"
        },
        {
          "path": "package.json",
          "locator": "dependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "test (os: 3, node: 2, include: 1)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/dev-test.yml",
          "locator": "jobs.test.strategy.matrix"
        }
      ],
      "upstream": "https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "jest",
      "method": "testing",
      "commands": [
        "jest"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/bundler-friendly.yml",
          "locator": "jobs.webpack.steps[5] (Test)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        },
        {
          "path": ".github/workflows/dev-test.yml",
          "locator": "jobs.test.steps[3] (Run Tests)"
        },
        {
          "path": ".github/workflows/release-script-test.yml",
          "locator": "jobs.test.steps[3] (Test)"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: jest"
        },
        {
          "path": "jest.config.js",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/jestjs/jest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "prettier",
      "method": "formatting",
      "commands": [
        "prettier . --check --cache"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[6] (Lint Prettier)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:prettier"
        },
        {
          "path": "package.json",
          "locator": "scripts.fix:prettier"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: prettier"
        },
        {
          "path": "prettier.config.js",
          "locator": "config file"
        },
        {
          "path": "tests/format/.prettierrc",
          "locator": "config file"
        },
        {
          "path": "tests/integration/.prettierrc",
          "locator": "config file"
        },
        {
          "path": "tests/integration/cli/config-precedence/invalid-config/.prettierrc",
          "locator": "config file"
        },
        {
          "path": "tests/integration/cli/config-precedence/overrides/.prettierrc",
          "locator": "config file"
        },
        {
          "path": "tests/integration/cli/config-precedence/valid-config/.prettierrc",
          "locator": "config file"
        },
        {
          "path": "tests/integration/cli/config/$schema/.prettierrc",
          "locator": "config file"
        },
        {
          "path": "tests/integration/cli/config/.prettierrc",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/prettier/prettier",
      "docs": "https://prettier.io/docs/cli#exit-codes",
      "exit_codes": {
        "0": "everything formatted",
        "1": "something was not formatted (--check)",
        "2": "prettier error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "dependency-review",
      "method": "supply_chain",
      "commands": [
        "uses actions/dependency-review-action"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[12] (Dependency Review)"
        }
      ],
      "upstream": "https://github.com/actions/dependency-review-action",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[11] (Lint workflow files)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env INSTALL_PACKAGE=1 yarn test"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/dev-package-test.yml",
          "locator": "jobs.test.steps[4] (Run Tests)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:dev-package"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env NODE_ENV=production node --inspect-brk ./dist/prettier/bin/prettier.cjs"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.perf:inspect"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env NODE_ENV=production yarn test"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/prod-test.yml",
          "locator": "jobs.test.steps[7] (Run Tests)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:production"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env TEST_BUNDLE_FORMAT=umd yarn test:production:browser:chrome"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test:production:browser:chrome:umd"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env TEST_BUNDLE_FORMAT=umd yarn test:production:browser:firefox"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test:production:browser:firefox:umd"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env TEST_RUNTIME=browser yarn test:production"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/prod-test.yml",
          "locator": "jobs.browser.steps[6] (Run Tests (ESM))"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:production:browser"
        },
        {
          "path": ".github/workflows/prod-test.yml",
          "locator": "jobs.browser.steps[7] (Run Tests (UMD))"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env TEST_RUNTIME_BROWSER=chrome yarn test:production:browser"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test:production:browser:chrome"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env TEST_RUNTIME_BROWSER=firefox yarn test:production:browser"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test:production:browser:firefox"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cross-env TEST_STANDALONE=1 yarn test:production"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/prod-test.yml",
          "locator": "jobs.test.steps[8] (Run Format Tests (standalone))"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:production-standalone"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cspell --no-progress --relative --dot --gitignore"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[7] (Spellcheck)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:spellcheck"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "knip"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[19] (Knip)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:knip"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node --inspect-brk bin/prettier.js --ignore-path=.prettierignore"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.debug:inspect"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/check-deps.js"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[3] (Check Dependencies)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:deps"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/format-test-lint.js"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[9] (Lint \"format test\")"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:format-test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/lint-changelog.js"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint.steps[8] (Lint Changelog)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:changelog"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/prepare-test-for-legacy-nodejs.js --node-version $EXPR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/prod-test.yml",
          "locator": "jobs.test.steps[3] (Downgrade Jest)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/update-stable-docs.mjs"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "website/package.json",
          "locator": "scripts.update-stable-docs"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/generate-flow-estree-type-definition.js"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.fix:flow-estree-type-definition"
        },
        {
          "path": "package.json",
          "locator": "scripts.generate-flow-estree-type-definition"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/update-babel-plugin-tests.js"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/update-babel-plugin-tests.yml",
          "locator": "jobs.run.steps[3] (Run script)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "run-p --continue-on-error lint:*"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "run-s --continue-on-error fix:eslint fix:prettier"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.fix"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
