{
  "repository": "bytedance/deer-flow",
  "ref": "c373f8491d70a2908efe3c10c99a14a9f8dbb8f4",
  "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 . --ext .ts,.tsx",
        "eslint --fix \"${@/#frontend\\//}\"' --",
        "eslint . --ext .ts,.tsx --fix"
      ],
      "triggers": [
        "pre_commit",
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.lint-frontend.steps[6] (Run frontend linting)"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.lint"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.frontend-eslint"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.check"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.lint:fix"
        },
        {
          "path": "frontend/package.json",
          "locator": "devDependencies: eslint"
        },
        {
          "path": "frontend/eslint.config.js",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/eslint/eslint",
      "docs": "https://eslint.org/docs/latest/use/command-line-interface#exit-codes",
      "exit_codes": {
        "0": "no errors",
        "1": "linting errors found",
        "2": "configuration problem or internal error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "ruff-check",
      "method": "static_analysis",
      "commands": [
        "ruff check .",
        "ruff check --fix \"${@/#backend\\//}\"' --",
        "ruff check . --fix"
      ],
      "triggers": [
        "pre_commit",
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-package-check.yml",
          "locator": "jobs.check-packages.steps[5] (Test bundled extension packages that ship tests)"
        },
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.lint-backend.steps[5] (Lint backend)"
        },
        {
          "path": "backend/Makefile",
          "locator": "target lint (line 52)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff"
        },
        {
          "path": "backend/Makefile",
          "locator": "target format (line 56)"
        },
        {
          "path": "backend/pyproject.toml",
          "locator": "[dependency-groups] dev: ruff"
        },
        {
          "path": "backend/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": "tsc",
      "method": "static_analysis",
      "commands": [
        "tsc --noEmit"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.lint-frontend.steps[7] (Check TypeScript types)"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.check"
        },
        {
          "path": "frontend/package.json",
          "locator": "devDependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "backend-unit-tests (shard: 4)",
        "e2e-tests (shard: 4)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend-unit-tests.yml",
          "locator": "jobs.backend-unit-tests.strategy.matrix"
        },
        {
          "path": ".github/workflows/e2e-tests.yml",
          "locator": "jobs.e2e-tests.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": "hypothesis",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "backend/pyproject.toml",
          "locator": "[dependency-groups] dev: hypothesis"
        }
      ],
      "upstream": "https://github.com/HypothesisWorks/hypothesis",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "playwright",
      "method": "testing",
      "commands": [
        "playwright test --shard=$EXPR/4 --workers=1 --reporter=github,html --output=test-results/e2e",
        "playwright test -c playwright.auth.config.ts --reporter=github,html --output=test-results/auth",
        "playwright test -c playwright.real-backend.config.ts",
        "playwright test"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/e2e-tests.yml",
          "locator": "jobs.e2e-tests.steps[9] (Run E2E tests)"
        },
        {
          "path": ".github/workflows/e2e-tests.yml",
          "locator": "jobs.e2e-tests.steps[10] (Run auth recovery E2E tests)"
        },
        {
          "path": ".github/workflows/replay-e2e.yml",
          "locator": "jobs.fullstack-replay-render.steps[9] (Full-stack replay render (DOM assertions are the gate))"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.test:e2e"
        },
        {
          "path": "frontend/package.json",
          "locator": "devDependencies: @playwright/test"
        },
        {
          "path": "frontend/playwright.config.ts",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/microsoft/playwright",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pytest",
      "method": "testing",
      "commands": [
        "pytest tests/blocking_io -q --tb=short",
        "pytest --collect-only -q",
        "pytest -m not live --ignore=tests/blocking_io --splits $(SPLITS) --group $(GROUP) --splitting-algorithm least_duration --durations-path=$(DURATIONS_FILE) tests/ -q",
        "pytest tests/test_client_live_policy.py::test_child_env_stays_isolated_but_bootable_on_windows tests/test_client_live_policy.py::test_config_alone_does_not_enable_live_collection tests/test_client_live_policy.py::test_explicit_opt_in_collects_live_tests tests/test_client_live_policy.py::test_ci_blocks_live_collection_even_with_opt_in tests/test_client_live_policy.py::test_opt_in_without_config_reports_missing_config tests/test_scanner_text_cache_atomic.py tests/test_workspace_changes.py -q",
        "pytest -q"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend-blocking-io-tests.yml",
          "locator": "jobs.backend-blocking-io.steps[4] (Run blocking IO regression tests)"
        },
        {
          "path": "backend/Makefile",
          "locator": "target test-blocking-io (line 28)"
        },
        {
          "path": ".github/workflows/backend-unit-tests.yml",
          "locator": "jobs.default-install-collection.steps[4] (Collect backend tests)"
        },
        {
          "path": ".github/workflows/backend-unit-tests.yml",
          "locator": "jobs.backend-unit-tests.steps[4] (Run unit tests of backend (shard ${{ matrix.shard }} of 4))"
        },
        {
          "path": "backend/Makefile",
          "locator": "target test-shard (line 42)"
        },
        {
          "path": ".github/workflows/backend-windows-live-policy.yml",
          "locator": "jobs.windows-live-policy.steps[4] (Check isolated child environment, live-test collection policy, and text-cache byte exactness)"
        },
        {
          "path": ".github/workflows/extension-package-check.yml",
          "locator": "jobs.check-packages.steps[5] (Test bundled extension packages that ship tests)"
        },
        {
          "path": ".github/workflows/replay-e2e.yml",
          "locator": "jobs.backend-replay-golden.steps[4] (Replay golden (backend SSE contract))"
        },
        {
          "path": ".github/workflows/sandbox-image-smoke.yml",
          "locator": "jobs.sandbox-image-smoke.steps[5] (Run the live real-image smoke tests)"
        },
        {
          "path": ".github/workflows/skill-review-ci.yml",
          "locator": "jobs.skill-tests.steps[4] (Run public skill script tests)"
        },
        {
          "path": "backend/Makefile",
          "locator": "target test (line 19)"
        },
        {
          "path": "backend/Makefile",
          "locator": "target test-live (line 25)"
        }
      ],
      "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": "prettier",
      "method": "formatting",
      "commands": [
        "prettier --check .",
        "prettier --write \"${@/#frontend\\//}\"' --",
        "prettier --write ."
      ],
      "triggers": [
        "pre_commit",
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.lint-frontend.steps[5] (Check frontend formatting)"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.format"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.frontend-prettier"
        },
        {
          "path": "frontend/package.json",
          "locator": "scripts.format:write"
        },
        {
          "path": "frontend/package.json",
          "locator": "devDependencies: prettier"
        },
        {
          "path": "frontend/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": "ruff-format",
      "method": "formatting",
      "commands": [
        "ruff format --check .",
        "ruff format \"${@/#backend\\//}\"' --",
        "ruff format ."
      ],
      "triggers": [
        "pre_commit",
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-package-check.yml",
          "locator": "jobs.check-packages.steps[5] (Test bundled extension packages that ship tests)"
        },
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.lint-backend.steps[5] (Lint backend)"
        },
        {
          "path": "backend/Makefile",
          "locator": "target lint (line 52)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff-format"
        },
        {
          "path": "backend/Makefile",
          "locator": "target format (line 56)"
        }
      ],
      "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/lint-check.yml",
          "locator": "jobs.lint-backend.steps[3] (Check uv.lock is in sync)"
        }
      ],
      "upstream": "https://github.com/astral-sh/uv",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash -c 'cd backend"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff-format"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.uv-lock-check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash -c 'cd frontend"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.frontend-eslint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash scripts/check_chart_sandbox_service.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/chart.yaml",
          "locator": "jobs.validate-chart.steps[3] (Validate sandbox Service-type gating)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash scripts/check_chart_sandbox_storage.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/chart.yaml",
          "locator": "jobs.validate-chart.steps[4] (Validate sandbox storage path contract)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash scripts/check_chart_skill_upload_size.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/chart.yaml",
          "locator": "jobs.validate-chart.steps[5] (Validate skill upload ingress policy)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash scripts/check_config_version.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/chart.yaml",
          "locator": "jobs.validate-chart.steps[6] (config_version drift check)"
        },
        {
          "path": ".github/workflows/nightly.yaml",
          "locator": "jobs.validate-chart.steps[3] (config_version drift check)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash scripts/verify_versions.sh $TAG_VERSION"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/verify-versions.yml",
          "locator": "jobs.verify-versions.steps[2] (Verify all version sources match tag)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "helm lint deploy/helm/deer-flow"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/chart.yaml",
          "locator": "jobs.validate-chart.steps[1] (Lint chart)"
        },
        {
          "path": ".github/workflows/nightly.yaml",
          "locator": "jobs.validate-chart.steps[1] (Lint chart)"
        },
        {
          "path": ".github/workflows/nightly.yaml",
          "locator": "jobs.publish-chart.steps[2] (Lint patched chart)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/measure-route-assets.mjs --check"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "frontend/package.json",
          "locator": "scripts.perf:check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python ./scripts/check.py"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target check (line 97)"
        },
        {
          "path": "Makefile",
          "locator": "target dev (line 155)"
        },
        {
          "path": "Makefile",
          "locator": "target start (line 162)"
        },
        {
          "path": "Makefile",
          "locator": "target dev-daemon (line 167)"
        },
        {
          "path": "Makefile",
          "locator": "target start-daemon (line 172)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python ./scripts/check_agent_guidance.py"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target check-agent-guidance (line 100)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_agent_guidance.py --base-ref $EXPR --head-ref $EXPR --github-annotations"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.agent-guidance.steps[2] (Check agent guidance on pull requests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_agent_guidance.py --before $EXPR --after $EXPR --github-annotations"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.agent-guidance.steps[3] (Check agent guidance on pushes)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_extension.py $package"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-package-check.yml",
          "locator": "jobs.check-packages.steps[4] (Build and check all bundled extension packages)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_label_declarations.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-check.yml",
          "locator": "jobs.label-declarations.steps[2] (Check every label applied by triage.yml is declared in labels.yml)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "rstest"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "frontend/package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "run 'make test-shard-durations' to regenerate the duration baseline\" >&2"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend-unit-tests.yml",
          "locator": "jobs.backend-unit-tests.steps[4] (Run unit tests of backend (shard ${{ matrix.shard }} of 4))"
        },
        {
          "path": "backend/Makefile",
          "locator": "target test-shard (line 42)"
        },
        {
          "path": "backend/Makefile",
          "locator": "target test (line 19)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
