{
  "repository": "langgenius/dify",
  "ref": "937fdb49a8a1912a8b0b36c415c06a4aca62e244",
  "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 --concurrency=auto",
        "eslint --fix --concurrency=auto",
        "eslint --quiet --concurrency=auto"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint:eslint"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:eslint:fix"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:eslint:quiet"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: eslint"
        },
        {
          "path": "eslint.config.mjs",
          "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": "golangci-lint",
      "method": "static_analysis",
      "commands": [
        "uses golangci/golangci-lint-action",
        "golangci-lint run ./..."
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sandbox-runtime-tests.yml",
          "locator": "jobs.sandbox-runtime-lint.steps[2] (Run golangci-lint)"
        },
        {
          "path": "dify-agent-runtime/Makefile",
          "locator": "target lint (line 31)"
        }
      ],
      "upstream": "https://github.com/golangci/golangci-lint",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ruff-check",
      "method": "static_analysis",
      "commands": [
        "ruff check --fix .",
        "ruff check ${targets[@]}",
        "ruff check src/dify_agent/layers/dify_core_tools/client.py tests/local/dify_agent/layers/dify_core_tools/test_client.py",
        "ruff check ./api",
        "ruff check --fix ./api"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/autofix.yml",
          "locator": "jobs.autofix.steps[10]"
        },
        {
          "path": ".github/workflows/autofix.yml",
          "locator": "jobs.autofix.steps[11]"
        },
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[8] (Lint Dify KnowledgeFS integration)"
        },
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[15] (Lint Dify Agent KnowledgeFS integration)"
        },
        {
          "path": "Makefile",
          "locator": "target check (line 64)"
        },
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        },
        {
          "path": "api/pyproject.toml",
          "locator": "[dependency-groups] dev: ruff"
        },
        {
          "path": "dify-agent/pyproject.toml",
          "locator": "[tool.ruff]"
        },
        {
          "path": "dify-agent/pyproject.toml",
          "locator": "[dependency-groups] dev: ruff"
        },
        {
          "path": "api/.ruff.toml",
          "locator": "config file"
        },
        {
          "path": "api/tests/e2e_tests/containers/.ruff.toml",
          "locator": "config file"
        },
        {
          "path": "api/tests/unit_tests/.ruff.toml",
          "locator": "config file"
        }
      ],
      "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": "mkdocs",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "dify-agent/pyproject.toml",
          "locator": "[dependency-groups] docs: mkdocs"
        }
      ],
      "upstream": "https://github.com/mkdocs/mkdocs",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "cli/package.json",
          "locator": "devDependencies: typescript"
        },
        {
          "path": "e2e/package.json",
          "locator": "devDependencies: typescript"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: typescript"
        },
        {
          "path": "web/package.json",
          "locator": "devDependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "api-unit (python-version: 1, shardIndex: 2, shardTotal: 1)",
        "api-integration (python-version: 1)",
        "dify-agent-unit (python-version: 1)",
        "test (python-version: 1)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-unit.strategy.matrix"
        },
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-integration.strategy.matrix"
        },
        {
          "path": ".github/workflows/dify-agent-tests.yml",
          "locator": "jobs.dify-agent-unit.strategy.matrix"
        },
        {
          "path": ".github/workflows/vdb-tests-full.yml",
          "locator": "jobs.test.strategy.matrix"
        },
        {
          "path": ".github/workflows/vdb-tests.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": "go-test",
      "method": "testing",
      "commands": [
        "go test -race -count=1 ./...",
        "go test -tags=integration -v -count=1 -timeout=300s ./tests/...",
        "go test ./...",
        "go test ./benchmarks/ -bench . -run ^$$ -benchtime 40x"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sandbox-runtime-tests.yml",
          "locator": "jobs.sandbox-runtime-unit.steps[2] (Run unit tests)"
        },
        {
          "path": ".github/workflows/sandbox-runtime-tests.yml",
          "locator": "jobs.sandbox-runtime-integration.steps[3] (Run integration tests)"
        },
        {
          "path": "dify-agent-runtime/Makefile",
          "locator": "target integration-test (line 74)"
        },
        {
          "path": "dify-agent-runtime/Makefile",
          "locator": "target test (line 28)"
        },
        {
          "path": "dify-agent-runtime/Makefile",
          "locator": "target integration (line 85)"
        },
        {
          "path": "dify-agent-runtime/Makefile",
          "locator": "target benchmark (line 104)"
        }
      ],
      "upstream": "https://github.com/golang/go",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "hypothesis",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "api/pyproject.toml",
          "locator": "[dependency-groups] dev: hypothesis"
        }
      ],
      "upstream": "https://github.com/HypothesisWorks/hypothesis",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "node-test",
      "method": "testing",
      "commands": [
        "node --test .github/scripts/knowledge-deploy-gates.test.cjs",
        "node --test .github/actions/wait-e2e-web-build/*.test.cjs"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[2] (Test deployment revision gates)"
        },
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.core-build.steps[1] (Test Web build synchronization)"
        }
      ],
      "upstream": "https://github.com/nodejs/node",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pytest",
      "method": "testing",
      "commands": [
        "pytest -p no:benchmark --timeout ${PYTEST_TIMEOUT:-20} -n auto -o addopts=-p no:opik -p no:langsmith_plugin --cov=./api --cov-branch --import-mode=importlib --cov-report= --file-shard-plan unit-test-plan.json --shard-index $EXPR --shard-total $EXPR --write-test-durations test-results/durations-$EXPR.json --junitxml=test-results/unit.xml @$RUNNER_TEMP/unit-test-files.txt",
        "pytest -p no:benchmark --timeout ${PYTEST_TIMEOUT:-20} -n auto -o addopts=-p no:opik -p no:langsmith_plugin --cov=./api --cov-branch --import-mode=importlib --cov-report= --junitxml=test-results/controllers.xml api/tests/unit_tests/controllers api/tests/e2e_tests/contracts/controllers",
        "pytest -p no:benchmark --start-middleware --middleware-stop-timeout 2 -n auto -o addopts=-p no:opik -p no:langsmith_plugin --cov=./api --cov-branch --import-mode=importlib --cov-report= --timeout ${PYTEST_TIMEOUT:-180} api/tests/e2e_tests/middleware/workflow api/tests/e2e_tests/middleware/tools api/tests/e2e_tests/containers",
        "pytest",
        "pytest tests/local/dify_agent/layers/dify_core_tools/test_client.py -q"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-unit.steps[5] (Run Unit Tests)"
        },
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-controllers.steps[4] (Run Controller Tests)"
        },
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-integration.steps[4] (Run Integration Tests)"
        },
        {
          "path": ".github/workflows/dify-agent-tests.yml",
          "locator": "jobs.dify-agent-unit.steps[4] (Run unit tests)"
        },
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[17] (Test Dify Agent KnowledgeFS integration)"
        },
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.vector-backends.steps[4] (Exercise real write, retry, filtered search, isolation and deletion)"
        },
        {
          "path": ".github/workflows/vdb-tests-full.yml",
          "locator": "jobs.test.steps[5] (Test Vector Stores)"
        },
        {
          "path": ".github/workflows/vdb-tests.yml",
          "locator": "jobs.test.steps[5] (Test Vector Stores)"
        },
        {
          "path": "Makefile",
          "locator": "target test (line 97)"
        },
        {
          "path": "Makefile",
          "locator": "target test-all (line 102)"
        },
        {
          "path": "api/pyproject.toml",
          "locator": "[dependency-groups] dev: pytest"
        },
        {
          "path": "dify-agent/pyproject.toml",
          "locator": "[tool.pytest]"
        }
      ],
      "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": "unittest",
      "method": "testing",
      "commands": [
        "unittest discover -s docker/tests -p test_*.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/autofix.yml",
          "locator": "jobs.autofix.steps[9] (Check Docker environment overrides)"
        }
      ],
      "upstream": "https://github.com/python/cpython",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "playwright",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "devDependencies: @playwright/test"
        }
      ],
      "upstream": "https://github.com/microsoft/playwright",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "vitest",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "cli/package.json",
          "locator": "devDependencies: vitest"
        },
        {
          "path": "web/package.json",
          "locator": "devDependencies: vitest"
        }
      ],
      "upstream": "https://github.com/vitest-dev/vitest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "ruff-format",
      "method": "formatting",
      "commands": [
        "ruff format ..",
        "ruff format .",
        "ruff format --check ${targets[@]}",
        "ruff format --check src/dify_agent/layers/dify_core_tools/client.py tests/local/dify_agent/layers/dify_core_tools/test_client.py",
        "ruff format ./api"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/autofix.yml",
          "locator": "jobs.autofix.steps[10]"
        },
        {
          "path": ".github/workflows/autofix.yml",
          "locator": "jobs.autofix.steps[11]"
        },
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[8] (Lint Dify KnowledgeFS integration)"
        },
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[15] (Lint Dify Agent KnowledgeFS integration)"
        },
        {
          "path": "Makefile",
          "locator": "target format (line 59)"
        },
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        }
      ],
      "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": "uv-lock",
      "method": "supply_chain",
      "commands": [
        "uv lock --check"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/dify-agent-tests.yml",
          "locator": "jobs.dify-agent-unit.steps[2] (Check UV lockfile)"
        }
      ],
      "upstream": "https://github.com/astral-sh/uv",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "add_test_target $path"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[7] (Collect Dify KnowledgeFS gate targets)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "ast-grep scan . --inline-rules $(cat /tmp/optional-rule.yml) --update-all"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/autofix.yml",
          "locator": "jobs.autofix.steps[12] (ast-grep)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash $RUNNER_TEMP/check-hotfix-cherry-picks.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/hotfix-cherry-pick.yml",
          "locator": "jobs.check-cherry-pick-provenance.steps[3] (Check PR commits)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bun scripts/e2e-provision.ts"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/cli-e2e.yml",
          "locator": "jobs.provision.steps[5] (Mint token & provision apps)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bun scripts/generate-command-tree.ts --check"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "cli/package.json",
          "locator": "scripts.tree:check"
        },
        {
          "path": "cli/package.json",
          "locator": "scripts.ci"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage json --show-contexts -o $report"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[11] (Enforce Dify KnowledgeFS focused coverage)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage run --branch --source=api -m pytest ${targets[@]} --no-cov -q"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[10] (Test Dify KnowledgeFS unit surface)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage xml -o coverage.xml"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-unit.steps[8] (Generate coverage report)"
        },
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-controllers.steps[6] (Generate coverage report)"
        },
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-integration.steps[5] (Generate coverage report)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "done < ${RUNNER_TEMP:?}/knowledge-fs-ci-targets/unit-test-files"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[10] (Test Dify KnowledgeFS unit surface)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "dotenv-linter ./api/.env.example ./web/.env.example"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[18] (Dotenv check)"
        },
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "else set -e"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target test (line 97)"
        },
        {
          "path": "Makefile",
          "locator": "target test-all (line 102)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "lint-imports"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[4] (Run Import Linter)"
        },
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "next dev --inspect"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.dev:next:inspect"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node --input-type=module -e \"import { access } from 'node:fs/promises'"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/tool-test-sdks.yaml",
          "locator": "jobs.build.steps[3] (Build and verify package entry points)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ../packages/tooling/scripts/lint-a11y.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.lint:a11y"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./packages/tooling/scripts/check-web-production-unused-after-knip-fix.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.knip:production-unused-check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/check-i18n.js"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.i18n:check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/generate-i18n-types.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.i18n:generate-types"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/generate-i18n-types.ts --check"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.i18n:check"
        },
        {
          "path": "web/package.json",
          "locator": "scripts.i18n:check-types"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --full"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:full"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --full -- --tags @axe and @wcag-a"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:accessibility:a"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --full -- --tags @axe and @wcag-aa"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:accessibility"
        },
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:accessibility:aa"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --full --headed"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:full:headed"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --headed"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:headed"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --seed-only --profile external-runtime"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:external:prepare"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --seed-only --profile post-merge"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:post-merge:prepare"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-cucumber.ts --seed-only --profile prepared"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:prepared:prepare"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-external-runtime.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:external"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-post-merge.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:post-merge"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/run-prepared.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:prepared"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/setup.ts middleware-down"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:middleware:down"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/setup.ts middleware-up"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:middleware:up"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/setup.ts reset"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:reset"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./scripts/setup.ts web-build"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.e2e:web:build"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pyrefly check --summary=none src/dify_agent/layers/dify_core_tools/client.py tests/local/dify_agent/layers/dify_core_tools/test_client.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[16] (Type-check Dify Agent KnowledgeFS integration)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pyrefly check 2>&1"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/pyrefly-diff.yml",
          "locator": "jobs.pyrefly-diff.steps[4] (Run pyrefly on PR branch)"
        },
        {
          "path": ".github/workflows/pyrefly-diff.yml",
          "locator": "jobs.pyrefly-diff.steps[6] (Run pyrefly on base branch)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python api/dev/check_knowledge_fs_coverage.py --coverage-json $report --glue-manifest ${RUNNER_TEMP:?}/knowledge-fs-ci-targets/glue-files --base $coverage_base --minimum 90 --glue-minimum 90"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[11] (Enforce Dify KnowledgeFS focused coverage)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python api/dev/generate_billing_client.py --check"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[6] (Check Billing Client Is Generated From Snapshot)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python api/dev/generate_knowledge_fs_contract.py --check"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[6] (Verify pinned KnowledgeFS contract)"
        },
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.quality.steps[12] (Verify Dify KnowledgeFS contract)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python api/dev/lint_response_contracts.py"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        },
        {
          "path": "Makefile",
          "locator": "target api-contract-lint (line 82)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python api/dev/lint_response_contracts.py --fail-on-mismatch"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[5] (Run Response Contract Linter)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python api/dev/pytest_sharding.py --plan unit-test-plan.json --shard-index $EXPR --shard-total $EXPR --ignore api/tests/unit_tests/controllers --ignore api/tests/e2e_tests/contracts/controllers api/tests/unit_tests api/tests/e2e_tests/contracts api/providers/vdb/*/tests/unit_tests api/providers/trace/*/tests/unit_tests > $RUNNER_TEMP/unit-test-files.txt"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-unit.steps[5] (Run Unit Tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python api/dev/pytest_sharding.py --shard-index 1 --shard-total 2 --durations unit-test-durations.json --write-plan unit-test-plan.json --split-threshold 60 --ignore api/tests/unit_tests/controllers --ignore api/tests/e2e_tests/contracts/controllers api/tests/unit_tests api/tests/e2e_tests/contracts api/providers/vdb/*/tests/unit_tests api/providers/trace/*/tests/unit_tests"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/api-tests.yml",
          "locator": "jobs.api-unit-plan.steps[3] (Freeze file assignments for every shard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_base_model.py"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_base_model.py --base-rev $GUARD_BASE_REV"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[11] (Run No New Base Model Guard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_cast.py"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_cast.py --base-rev $GUARD_BASE_REV"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[12] (Run No New Cast Guard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_constructor_bypass.py"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_constructor_bypass.py --base-rev $GUARD_BASE_REV"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[13] (Run No New Constructor Bypass Guard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_controller_sqlalchemy.py --base-rev $EXPR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[8] (Run No New Controller SQLAlchemy Guard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_getattr.py --base-rev $EXPR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[7] (Run No New Getattr Guard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_session_mock.py --base-rev $EXPR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[9] (Run No New Session Mock Guard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_new_test_doubles.py --base-rev $GUARD_BASE_REV"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[14] (Run No New Test Doubles Guard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_no_spec_mock.py"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.python-style.steps[10] (Run No Spec Mock Guard)"
        },
        {
          "path": "Makefile",
          "locator": "target lint (line 69)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "skipping KnowledgeFS checks.\""
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/knowledge-fs-ci.yml",
          "locator": "jobs.skip.steps[0] (Report skipped KnowledgeFS checks)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tsrs --noEmit"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/image-resources.yml",
          "locator": "jobs.image-resources.steps[3] (Type-check image checker)"
        },
        {
          "path": "package.json",
          "locator": "scripts.type-check"
        },
        {
          "path": "cli/package.json",
          "locator": "scripts.type-check"
        },
        {
          "path": "e2e/package.json",
          "locator": "scripts.type-check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tsrs --runExternalCode --noEmit"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.type-check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tsslint --project tsconfig.json"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.lint:tss"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tsslint --project tsconfig.json --force --fix"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.migrate:type-assertions"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "unzip -o pyrefly_type_coverage.zip"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/pyrefly-type-coverage-comment.yml",
          "locator": "jobs.comment.steps[4] (Unzip artifact)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp check --fix"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.check:fix"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp fmt types/doc-paths.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.gen-doc-paths"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp lint"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint:oxlint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp lint --fix"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint:oxlint:fix"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp lint --fix web packages/dify-ui"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint:tailwind:fix"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp lint --quiet"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint:oxlint:quiet"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp lint web packages/dify-ui"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint:tailwind"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run check:cached"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run e2e:accessibility:$EXPR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/accessibility-e2e.yml",
          "locator": "jobs.accessibility.steps[7] (Run automated WCAG Level ${{ inputs.level == 'a' && 'A' || 'AA' }} checks)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run e2e:full --download-web-build -- --shard $EXPR/3"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.chromium-full.steps[7] (Run Chromium full shard)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run e2e:full --download-web-build -- --tags @browser-smoke"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.webkit-smoke.steps[7] (Run WebKit browser smoke)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run e2e:install:ci:chromium"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/accessibility-e2e.yml",
          "locator": "jobs.accessibility.steps[5] (Install Chromium for accessibility E2E)"
        },
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.chromium-full.steps[5] (Install Chromium)"
        },
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.external-runtime.steps[5] (Install Chromium)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run e2e:install:ci:webkit"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.webkit-smoke.steps[5] (Install WebKit)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run e2e:post-merge"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.external-runtime.steps[7] (Run prepared and external runtime E2E tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run e2e:web:build"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.core-build.steps[6] (Build production Web app)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run i18n:check-types"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.web-style-checks.steps[3] (Check generated i18n types)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run knip:production-unused-check"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.web-style-checks.steps[7] (Web production unused declarations check)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run lint:eslint:fix"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.check:fix"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run lint:tss"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/style.yml",
          "locator": "jobs.web-style-checks.steps[4] (Web tsslint)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run test:storybook"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-tests.yml",
          "locator": "jobs.dify-ui-storybook-test.steps[3] (Run dify-ui Storybook tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp run test:unit"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-e2e.yml",
          "locator": "jobs.core-build.steps[5] (Run E2E support unit tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "cli/package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test --config vitest.e2e.config.ts"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/cli-e2e.yml",
          "locator": "jobs.suite-framework-output-error.steps[4] (Run framework + output + error-handling)"
        },
        {
          "path": "cli/package.json",
          "locator": "scripts.test:e2e"
        },
        {
          "path": ".github/workflows/cli-e2e.yml",
          "locator": "jobs.suite-discovery.steps[4] (Run discovery suite)"
        },
        {
          "path": ".github/workflows/cli-e2e.yml",
          "locator": "jobs.suite-run.steps[4] (Run run/${{ matrix.name }})"
        },
        {
          "path": ".github/workflows/cli-e2e.yml",
          "locator": "jobs.suite-auth-safe.steps[4] (Run auth/login + status + whoami)"
        },
        {
          "path": ".github/workflows/cli-e2e.yml",
          "locator": "jobs.suite-last.steps[4] (Run use / devices / logout / agent (serial))"
        },
        {
          "path": "cli/package.json",
          "locator": "scripts.test:e2e:local"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test --config vitest.e2e.config.ts --testNamePattern \\[P0\\]"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "cli/package.json",
          "locator": "scripts.test:e2e:smoke"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test --coverage"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "cli/package.json",
          "locator": "scripts.test:coverage"
        },
        {
          "path": "cli/package.json",
          "locator": "scripts.ci"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test --project browser"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.test:browser"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test --project unit"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "web/package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test run"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "e2e/package.json",
          "locator": "scripts.test:unit"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test run --project browser --silent=passed-only --coverage"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-tests.yml",
          "locator": "jobs.browser-test.steps[3] (Run browser tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test run --project unit --coverage --silent=passed-only"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-tests.yml",
          "locator": "jobs.dify-ui-test.steps[3] (Run dify-ui tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "vp test run --project unit --reporter=minimal --shard=$EXPR/$EXPR --coverage"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/web-tests.yml",
          "locator": "jobs.test.steps[2] (Run tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
