{
  "repository": "infiniflow/ragflow",
  "ref": "1e3cb2bb29454205522cdca07e1dc32a42e6c2f7",
  "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": "ruff-check",
      "method": "static_analysis",
      "commands": [
        "ruff check {staged_files}",
        "ruff check --fix {staged_files}"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[3]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.ruff]"
        }
      ],
      "upstream": "https://github.com/astral-sh/ruff",
      "docs": "https://docs.astral.sh/ruff/linter/#exit-codes",
      "exit_codes": {
        "0": "no violations",
        "1": "violations found",
        "2": "invalid configuration, CLI options or internal error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [
        "tsc --noEmit"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.type-check"
        },
        {
          "path": "web/package.json",
          "locator": "devDependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "hypothesis",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] test: hypothesis"
        }
      ],
      "upstream": "https://github.com/HypothesisWorks/hypothesis",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "jest",
      "method": "testing",
      "commands": [
        "jest --no-cache --coverage"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.test"
        },
        {
          "path": "web/package.json",
          "locator": "devDependencies: jest"
        },
        {
          "path": "web/jest.config.ts",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/jestjs/jest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pytest",
      "method": "testing",
      "commands": [
        "pytest -s --tb=short --level=p2 test/testcases/test_sdk_api 2>&1",
        "pytest tools/scripts/test_download_dev_deps.py -q --durations=100"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_infinity.steps[9] (Run Python SDK integration tests)"
        },
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_elasticsearch.steps[4] (Run deps regression guards)"
        },
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_elasticsearch.steps[10] (Run Python SDK integration tests)"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.pytest]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] test: pytest"
        },
        {
          "path": "test/testcases/test_sdk_api/test_agent_management/pytest.ini",
          "locator": "config file"
        },
        {
          "path": "test/testcases/test_sdk_api/test_chat_assistant_management/pytest.ini",
          "locator": "config file"
        },
        {
          "path": "test/testcases/test_sdk_api/test_chunk_management_within_dataset/pytest.ini",
          "locator": "config file"
        },
        {
          "path": "test/testcases/test_sdk_api/test_dataset_mangement/pytest.ini",
          "locator": "config file"
        },
        {
          "path": "test/testcases/test_sdk_api/test_file_management_within_dataset/pytest.ini",
          "locator": "config file"
        },
        {
          "path": "test/testcases/test_sdk_api/test_memory_management/pytest.ini",
          "locator": "config file"
        },
        {
          "path": "test/testcases/test_sdk_api/test_message_management/pytest.ini",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/pytest-dev/pytest",
      "docs": "https://docs.pytest.org/en/stable/reference/exit-codes.html",
      "exit_codes": {
        "0": "all tests passed",
        "1": "some tests failed",
        "2": "interrupted by the user",
        "3": "internal error",
        "4": "command line usage error",
        "5": "no tests were collected"
      },
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "gofmt",
      "method": "formatting",
      "commands": [
        "gofmt -w {staged_files}"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[5]"
        }
      ],
      "upstream": "https://github.com/golang/go",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "ruff-format",
      "method": "formatting",
      "commands": [
        "ruff format --check {staged_files}",
        "ruff format {staged_files}"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[4]"
        }
      ],
      "upstream": "https://github.com/astral-sh/ruff",
      "docs": "https://docs.astral.sh/ruff/formatter/#exit-codes",
      "exit_codes": {
        "0": "already formatted",
        "1": "files would be reformatted (--check)",
        "2": "error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "New-Item -ItemType Directory -Force -Path $env:DIST_DIR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.build_cli.steps[3] (Build Go CLI release binaries on Windows)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "check DOCKERHUB_TOKEN can authenticate to the Hub API\""
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.build-arm64.steps[5] (Remove intermediate per-arch tags)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "create infiniflow/ragflow_deps:latest true)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_infinity.steps[3] (Run Go unit tests)"
        },
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_elasticsearch.steps[3] (Run Go unit tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "else"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[0]"
        },
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[1]"
        },
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[2]"
        },
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[3]"
        },
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[4]"
        },
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[5]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "lefthook run web-checks --files-from-stdin --no-auto-install < $changed_files"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_preflight.steps[4] (Run Lefthook on changed files)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "oxfmt --check src"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.format:check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "oxfmt src"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.format"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "oxlint src"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.lint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py case-conflict"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[8]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py eof"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[0]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py eof --fix"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[0]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py json"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[7]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py merge-conflict"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[9]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py mixed-line-ending"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[2]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py mixed-line-ending --fix"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[2]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py symlinks"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[10]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py trailing-whitespace"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[1]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py trailing-whitespace --fix"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[1]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python tools/hooks/check_files.py yaml"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": "lefthook.yml",
          "locator": "pre-commit.jobs[6]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "skipping :latest update.\""
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.build-arm64.steps[4] (Create multi-arch manifest)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tee ${ARTIFACTS_DIR}/es_go_api_test.log"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_elasticsearch.steps[9] (Run Go API tests against Elasticsearch)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tee ${ARTIFACTS_DIR}/es_sdk_test.log"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_elasticsearch.steps[10] (Run Python SDK integration tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tee ${ARTIFACTS_DIR}/infinity_go_api_test.log"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_infinity.steps[8] (Run Go API tests against Infinity)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tee ${ARTIFACTS_DIR}/infinity_sdk_test.log"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sep-tests.yml",
          "locator": "jobs.ragflow_tests_infinity.steps[9] (Run Python SDK integration tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
