{
  "repository": "remix-run/react-router",
  "ref": "db80dda076ec9cdcefff480079252fe0c977710e",
  "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 --cache ."
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/test-unit.yml",
          "locator": "jobs.test.steps[7] (Lint)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint"
        },
        {
          "path": "package.json",
          "locator": "dependencies: eslint"
        },
        {
          "path": "eslint.config.ts",
          "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",
        "tsc --noEmit"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "integration/package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "scripts/package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "integration/package.json",
          "locator": "dependencies: typescript"
        },
        {
          "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 (node: 2)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/test-unit.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": "playwright",
      "method": "testing",
      "commands": [
        "playwright test --config ./integration/playwright.config.ts"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/test-integration-run.yml",
          "locator": "jobs.integration.steps[6] (Run Integration Tests ${{ inputs.browser }})"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:integration"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:integration:run"
        },
        {
          "path": "package.json",
          "locator": "scripts.playwright:integration"
        },
        {
          "path": "package.json",
          "locator": "scripts.vite-ecosystem-ci:test"
        },
        {
          "path": "integration/package.json",
          "locator": "dependencies: @playwright/test"
        },
        {
          "path": "package.json",
          "locator": "dependencies: @playwright/test"
        },
        {
          "path": "integration/playwright.config.ts",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/microsoft/playwright",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "jest",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "package.json",
          "locator": "dependencies: jest"
        },
        {
          "path": "packages/create-react-router/jest.config.js",
          "locator": "config file"
        },
        {
          "path": "packages/react-router-architect/jest.config.js",
          "locator": "config file"
        },
        {
          "path": "packages/react-router-dev/jest.config.js",
          "locator": "config file"
        },
        {
          "path": "packages/react-router-express/jest.config.js",
          "locator": "config file"
        },
        {
          "path": "packages/react-router-fs-routes/jest.config.js",
          "locator": "config file"
        },
        {
          "path": "packages/react-router-node/jest.config.js",
          "locator": "config file"
        },
        {
          "path": "packages/react-router-remix-routes-option-adapter/jest.config.js",
          "locator": "config file"
        },
        {
          "path": "packages/react-router/jest.config.js",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/jestjs/jest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "vitest",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "package.json",
          "locator": "dependencies: vitest"
        }
      ],
      "upstream": "https://github.com/vitest-dev/vitest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "prettier",
      "method": "formatting",
      "commands": [
        "prettier --ignore-path .prettierignore --write .",
        "prettier --ignore-path .prettierignore --check ."
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/format.yml",
          "locator": "jobs.format.steps[4] (Format)"
        },
        {
          "path": "package.json",
          "locator": "scripts.format"
        },
        {
          "path": "package.json",
          "locator": "scripts.format:check"
        },
        {
          "path": "integration/package.json",
          "locator": "dependencies: prettier"
        },
        {
          "path": "package.json",
          "locator": "dependencies: prettier"
        },
        {
          "path": "docs/prettier.config.js",
          "locator": "config file"
        },
        {
          "path": "prettier.config.js",
          "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": null,
      "method": "unclassified",
      "commands": [
        "bash ${RUNNER_TEMP}/gh-aw/actions/audit_pre_agent_workspace.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/aw-command-implement.lock.yml",
          "locator": "jobs.agent.steps[28] (Audit pre-agent workspace)"
        },
        {
          "path": ".github/workflows/aw-command-iterate.lock.yml",
          "locator": "jobs.agent.steps[25] (Audit pre-agent workspace)"
        },
        {
          "path": ".github/workflows/aw-command-review-issue.lock.yml",
          "locator": "jobs.agent.steps[22] (Audit pre-agent workspace)"
        },
        {
          "path": ".github/workflows/aw-command-review-proposal.lock.yml",
          "locator": "jobs.agent.steps[21] (Audit pre-agent workspace)"
        },
        {
          "path": ".github/workflows/aw-command-review-pull-request.lock.yml",
          "locator": "jobs.agent.steps[21] (Audit pre-agent workspace)"
        },
        {
          "path": ".github/workflows/aw-comment-router.lock.yml",
          "locator": "jobs.agent.steps[19] (Audit pre-agent workspace)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash ${RUNNER_TEMP}/gh-aw/actions/check_oauth_tokens.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/aw-command-implement.lock.yml",
          "locator": "jobs.activation.steps[7] (Check for OAuth tokens)"
        },
        {
          "path": ".github/workflows/aw-command-iterate.lock.yml",
          "locator": "jobs.activation.steps[8] (Check for OAuth tokens)"
        },
        {
          "path": ".github/workflows/aw-command-review-issue.lock.yml",
          "locator": "jobs.activation.steps[8] (Check for OAuth tokens)"
        },
        {
          "path": ".github/workflows/aw-command-review-proposal.lock.yml",
          "locator": "jobs.activation.steps[8] (Check for OAuth tokens)"
        },
        {
          "path": ".github/workflows/aw-command-review-pull-request.lock.yml",
          "locator": "jobs.activation.steps[8] (Check for OAuth tokens)"
        },
        {
          "path": ".github/workflows/aw-comment-router.lock.yml",
          "locator": "jobs.activation.steps[9] (Check for OAuth tokens)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash ${RUNNER_TEMP}/gh-aw/actions/check_otlp_default_credentials.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/aw-command-implement.lock.yml",
          "locator": "jobs.agent.steps[3] (Check OTLP telemetry configuration)"
        },
        {
          "path": ".github/workflows/aw-command-iterate.lock.yml",
          "locator": "jobs.agent.steps[3] (Check OTLP telemetry configuration)"
        },
        {
          "path": ".github/workflows/aw-command-review-issue.lock.yml",
          "locator": "jobs.agent.steps[3] (Check OTLP telemetry configuration)"
        },
        {
          "path": ".github/workflows/aw-command-review-proposal.lock.yml",
          "locator": "jobs.agent.steps[3] (Check OTLP telemetry configuration)"
        },
        {
          "path": ".github/workflows/aw-command-review-pull-request.lock.yml",
          "locator": "jobs.agent.steps[3] (Check OTLP telemetry configuration)"
        },
        {
          "path": ".github/workflows/aw-comment-router.lock.yml",
          "locator": "jobs.agent.steps[3] (Check OTLP telemetry configuration)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash ${RUNNER_TEMP}/gh-aw/actions/validate_multi_secret.sh CODEX_API_KEY OPENAI_API_KEY Codex https://github.github.com/gh-aw/reference/engines/"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/aw-command-iterate.lock.yml",
          "locator": "jobs.activation.steps[7] (Validate CODEX_API_KEY or OPENAI_API_KEY secret)"
        },
        {
          "path": ".github/workflows/aw-command-review-issue.lock.yml",
          "locator": "jobs.activation.steps[7] (Validate CODEX_API_KEY or OPENAI_API_KEY secret)"
        },
        {
          "path": ".github/workflows/aw-command-review-proposal.lock.yml",
          "locator": "jobs.activation.steps[7] (Validate CODEX_API_KEY or OPENAI_API_KEY secret)"
        },
        {
          "path": ".github/workflows/aw-command-review-pull-request.lock.yml",
          "locator": "jobs.activation.steps[7] (Validate CODEX_API_KEY or OPENAI_API_KEY secret)"
        },
        {
          "path": ".github/workflows/aw-comment-router.lock.yml",
          "locator": "jobs.activation.steps[8] (Validate CODEX_API_KEY or OPENAI_API_KEY secret)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node --experimental-vm-modules --no-warnings=ExperimentalWarning --inspect-brk ./node_modules/jest/bin/jest.js"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test:inspect"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node --experimental-vm-modules --no-warnings=ExperimentalWarning ./node_modules/jest/bin/jest.js"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/test-unit.yml",
          "locator": "jobs.test.steps[8] (Run tests)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/change-file-check.ts"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/change-file-check.yml",
          "locator": "jobs.check.steps[4] (Check for package change files)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/docs.ts"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/docs.yml",
          "locator": "jobs.docs.steps[6] (Generate Markdown Docs)"
        },
        {
          "path": "package.json",
          "locator": "scripts.docs:jsdoc"
        },
        {
          "path": "package.json",
          "locator": "scripts.docs"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "startup_timeout_sec = 120"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/aw-command-iterate.lock.yml",
          "locator": "jobs.agent.steps[22] (Start MCP Gateway)"
        },
        {
          "path": ".github/workflows/aw-command-review-issue.lock.yml",
          "locator": "jobs.agent.steps[19] (Start MCP Gateway)"
        },
        {
          "path": ".github/workflows/aw-command-review-proposal.lock.yml",
          "locator": "jobs.agent.steps[18] (Start MCP Gateway)"
        },
        {
          "path": ".github/workflows/aw-command-review-pull-request.lock.yml",
          "locator": "jobs.agent.steps[18] (Start MCP Gateway)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tool_timeout_sec = 60"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/aw-command-iterate.lock.yml",
          "locator": "jobs.agent.steps[22] (Start MCP Gateway)"
        },
        {
          "path": ".github/workflows/aw-command-review-issue.lock.yml",
          "locator": "jobs.agent.steps[19] (Start MCP Gateway)"
        },
        {
          "path": ".github/workflows/aw-command-review-proposal.lock.yml",
          "locator": "jobs.agent.steps[18] (Start MCP Gateway)"
        },
        {
          "path": ".github/workflows/aw-command-review-pull-request.lock.yml",
          "locator": "jobs.agent.steps[18] (Start MCP Gateway)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "typedoc"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/docs.yml",
          "locator": "jobs.docs.steps[5] (Generate Typedoc Docs)"
        },
        {
          "path": "package.json",
          "locator": "scripts.docs:typedoc"
        },
        {
          "path": "package.json",
          "locator": "scripts.docs"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
