{
  "repository": "langflow-ai/langflow",
  "ref": "60999cc9a7350e44dde3ef641baae864e10861f0",
  "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": "codeql",
      "method": "static_analysis",
      "commands": [
        "uses github/codeql-action/analyze"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/codeql.yml",
          "locator": "jobs.analyze.steps[3] (Perform CodeQL Analysis)"
        }
      ],
      "upstream": "https://github.com/github/codeql",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "mypy",
      "method": "static_analysis",
      "commands": [
        "mypy --namespace-packages -p langflow"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-py.yml",
          "locator": "jobs.lint.steps[3] (Run Mypy)"
        }
      ],
      "upstream": "https://github.com/python/mypy",
      "docs": "https://mypy.readthedocs.io/en/stable/command_line.html",
      "exit_codes": {
        "0": "no type errors",
        "1": "type errors found",
        "2": "crash or invalid invocation"
      },
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ruff-check",
      "method": "static_analysis",
      "commands": [
        "ruff check --fix-only .",
        "ruff check --output-format=github .",
        "ruff check",
        "ruff check . --fix",
        "ruff check . --fix --unsafe-fixes"
      ],
      "triggers": [
        "pre_commit",
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/py_autofix.yml",
          "locator": "jobs.lint.steps[2]"
        },
        {
          "path": ".github/workflows/style-check-py.yml",
          "locator": "jobs.lint.steps[3] (Run Ruff Check)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff"
        },
        {
          "path": "Makefile",
          "locator": "target format_backend (line 200)"
        },
        {
          "path": "Makefile",
          "locator": "target unsafe_fix (line 210)"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.ruff]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] dev: 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": "biome",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "src/frontend/biome.json",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/biomejs/biome",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": true
    },
    {
      "tool": "eslint",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": ".eslintrc.json",
          "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": true
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "docs/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": [
        "a11y-scan (shardIndex: 8)",
        "analyze (language: 2)",
        "integration-tests (python-version: 4)",
        "lint (python-version: 5)",
        "lint (python-version: 1)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/a11y-scan.yml",
          "locator": "jobs.a11y-scan.strategy.matrix"
        },
        {
          "path": ".github/workflows/codeql.yml",
          "locator": "jobs.analyze.strategy.matrix"
        },
        {
          "path": ".github/workflows/integration_tests.yml",
          "locator": "jobs.integration-tests.strategy.matrix"
        },
        {
          "path": ".github/workflows/lint-py.yml",
          "locator": "jobs.lint.strategy.matrix"
        },
        {
          "path": ".github/workflows/style-check-py.yml",
          "locator": "jobs.lint.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": "pyproject.toml",
          "locator": "[dependency-groups] dev: hypothesis"
        }
      ],
      "upstream": "https://github.com/HypothesisWorks/hypothesis",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "jest",
      "method": "testing",
      "commands": [
        "jest --ci --watchAll=false --passWithNoTests"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/smoke-tests.yml",
          "locator": "jobs.frontend-smoke-tests.steps[3] (Run frontend smoke tests (unit tests only))"
        },
        {
          "path": "src/frontend/jest.config.js",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/jestjs/jest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "playwright",
      "method": "testing",
      "commands": [
        "playwright test $SCAN_SPECS --project=chromium --shard=$EXPR/$EXPR --workers=2 --retries=1",
        "playwright test $TESTS_FOLDER)",
        "playwright test --config=playwright.live.config.ts --workers=1 --retries=0",
        "playwright test tests/core/features/store-shard-2.spec.ts tests/extended/features/deleteComponents.spec.ts tests/extended/features/deleteFlows.spec.ts tests/extended/regression/generalBugs-shard-13.spec.ts --workers=1 --retries=0 --trace=off --reporter=line"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/a11y-scan.yml",
          "locator": "jobs.a11y-scan.steps[9] (Run IBM Equal Access Scans)"
        },
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.determine-test-suite.steps[8] (Calculate Test Shards Distribution)"
        },
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.setup-and-test.steps[10] (Execute Playwright Tests)"
        },
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.live-provider-smoke.steps[5] (Run live-provider smoke tests)"
        },
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.live-store-smoke.steps[5] (Run Store-backed tests without recordings)"
        },
        {
          "path": "src/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 scripts/ci/ -v",
        "pytest src/backend/tests/unit/template/test_starter_projects.py -v -n auto",
        "pytest src/backend/tests/unit/api/utils/test_file_relocation.py -v",
        "pytest scripts/gp/tests/ -v",
        "pytest src/backend/tests/integration --instafail -ra -m api_key_required $(args)"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci-scripts-test.yml",
          "locator": "jobs.test.steps[3] (Run CI script tests)"
        },
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.test-templates.steps[4] (Test all starter project templates)"
        },
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.test-object-storage.steps[5] (Run object storage tests against S3)"
        },
        {
          "path": ".github/workflows/gp-test.yml",
          "locator": "jobs.test.steps[3] (Run GP script tests)"
        },
        {
          "path": ".github/workflows/integration_tests.yml",
          "locator": "jobs.integration-tests.steps[2] (Run integration tests with api keys)"
        },
        {
          "path": "Makefile",
          "locator": "target integration_tests_api_keys (line 171)"
        },
        {
          "path": ".github/workflows/migration-validation.yml",
          "locator": "jobs.model-migration-consistency.steps[4] (Check model/migration consistency)"
        },
        {
          "path": ".github/workflows/migration-validation.yml",
          "locator": "jobs.model-migration-consistency.steps[5] (Check flow version deletion and attachment concurrency)"
        },
        {
          "path": ".github/workflows/migration-validation.yml",
          "locator": "jobs.model-migration-consistency.steps[6] (Check idempotent job creation concurrency)"
        },
        {
          "path": ".github/workflows/migration-validation.yml",
          "locator": "jobs.model-migration-consistency.steps[7] (Run connection migration tests on PostgreSQL)"
        },
        {
          "path": ".github/workflows/migration-validation.yml",
          "locator": "jobs.model-migration-consistency.steps[8] (Run OAuth migration and multi-worker refresh tests on PostgreSQL)"
        },
        {
          "path": ".github/workflows/migration-validation.yml",
          "locator": "jobs.model-migration-consistency.steps[9] (Run SQLite to PostgreSQL conversion tests)"
        }
      ],
      "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": "codespell",
      "method": "formatting",
      "commands": [
        "codespell --toml pyproject.toml",
        "codespell --toml pyproject.toml --write"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target codespell (line 194)"
        },
        {
          "path": "Makefile",
          "locator": "target fix_codespell (line 197)"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.codespell]"
        }
      ],
      "upstream": "https://github.com/codespell-project/codespell",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pre-commit-hooks",
      "method": "formatting",
      "commands": [
        "pre-commit hook check-case-conflict",
        "pre-commit hook end-of-file-fixer",
        "pre-commit hook mixed-line-ending",
        "pre-commit hook trailing-whitespace"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-case-conflict"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.end-of-file-fixer"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.mixed-line-ending"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.trailing-whitespace"
        }
      ],
      "upstream": "https://github.com/pre-commit/pre-commit-hooks",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "ruff-format",
      "method": "formatting",
      "commands": [
        "ruff format . --config pyproject.toml",
        "ruff format",
        "ruff format ."
      ],
      "triggers": [
        "pre_commit",
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/py_autofix.yml",
          "locator": "jobs.lint.steps[3]"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff-format"
        },
        {
          "path": "Makefile",
          "locator": "target format_backend (line 200)"
        }
      ],
      "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": [
        "Build successful! :white_check_mark:\"))"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/deploy-docs-draft.yml",
          "locator": "jobs.build-and-deploy.steps[8] (Hide Previous Build Comments)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "MIGRATE"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-migration-phase"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "alembic check"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target alembic-check (line 497)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "assert importlib.util.find_spec(module) is None, module"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sqlite-runtime.yml",
          "locator": "jobs.application-integration.steps[4] (Assert retired SDKs are absent and construct the application)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash -c 'cd src/frontend"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.local-biome-check"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.biome-lint-no-any-staged"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash scripts/ci/test_docker_images.sh"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/docker_test.yml",
          "locator": "jobs.test-docker-first.steps[1] (Build and test Docker images)"
        },
        {
          "path": ".github/workflows/docker_test.yml",
          "locator": "jobs.test-docker-retry.steps[1] (Build and test Docker images)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "case $RELEASE_TYPE in"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/docker-build-v2.yml",
          "locator": "jobs.validate-inputs.steps[0] (Validate reusable workflow inputs)"
        },
        {
          "path": ".github/workflows/docker-build-v2.yml",
          "locator": "jobs.create-manifest.steps[2] (Set tags)"
        },
        {
          "path": ".github/workflows/docker-nightly-build-arch.yml",
          "locator": "jobs.attempt-1.steps[1] (Set immutable architecture tags)"
        },
        {
          "path": ".github/workflows/docker-nightly-build-arch.yml",
          "locator": "jobs.attempt-2.steps[1] (Set immutable architecture tags)"
        },
        {
          "path": ".github/workflows/docker-nightly-build.yml",
          "locator": "jobs.validate.steps[0] (Validate release type)"
        },
        {
          "path": ".github/workflows/docker-nightly-build.yml",
          "locator": "jobs.create-manifest.steps[0] (Set manifest tags)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "check the (Experimental) jobs for their outcome\""
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/cross-platform-test.yml",
          "locator": "jobs.test-summary.steps[0] (Check test results)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "command -v npm >/dev/null 2>&1"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target check_tools (line 40)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "command -v uv >/dev/null 2>&1"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target check_tools (line 40)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "content = open(sys.argv[1]).read()"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-migration-phase"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage erase"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target coverage (line 145)"
        },
        {
          "path": "Makefile",
          "locator": "target tests (line 174)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage run"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target coverage (line 145)"
        },
        {
          "path": "Makefile",
          "locator": "target tests (line 174)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "docusaurus docs:version"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "docs/package.json",
          "locator": "scripts.docs:version"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "else echo $(BLUE)Setting up with flow: $(FLOW_NAME)$(NC)"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_run (line 571)"
        },
        {
          "path": "Makefile",
          "locator": "target load_test_langflow_quick (line 576)"
        },
        {
          "path": "Makefile",
          "locator": "target load_test_stress (line 581)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "else uv run locust -f lfx_serve_locustfile.py --host $(load_test_host) --headless -u 30 -r 5 -t 60s"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_lfx_quick (line 550)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "else uv run locust -f lfx_step_ramp.py --host $(load_test_host) --headless"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_cliff (line 546)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "else uv run locust -f locustfile_complex_serve.py --host $(load_test_host) --headless"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_ramp100 (line 542)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "latest = max(matching_versions)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release_nightly.yml",
          "locator": "jobs.check-nightly-main-pypi-dependencies.steps[2] (Wait for direct base and bundle dependencies on PyPI)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "locust -f lfx_serve_locustfile.py --host $(load_test_host) --headless -u 30 -r 5 -t 60s --html quick_test.html"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_lfx_quick (line 550)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "locust -f lfx_step_ramp.py --host $(load_test_host) --headless --html cliff_test.html"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_cliff (line 546)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "locust -f locustfile_complex_serve.py --host $(load_test_host) --headless --html ramp100_test.html"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_ramp100 (line 542)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "needs.frontend-tests-windows.result }}`\""
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/nightly_build.yml",
          "locator": "jobs.slack-notification.steps[2] (Send success notification to Slack)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "nyc merge coverage/combined coverage/combined/total-frontend-coverage.json"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.merge-frontend-coverage.steps[3] (Merge Coverage)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "nyc merge coverage/jest coverage/combined/jest.json"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.merge-frontend-coverage.steps[3] (Merge Coverage)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "nyc merge coverage/playwright/individual-test coverage/combined/playwright.json"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.merge-frontend-coverage.steps[3] (Merge Coverage)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook detect-secrets"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.detect-secrets"
        }
      ],
      "upstream": "https://github.com/Yelp/detect-secrets",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python -c \"import sys, re"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-migration-phase"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python ../../scripts/ci/release_auth_defaults.py verify dist/*.whl"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/cross-platform-test.yml",
          "locator": "jobs.build-if-needed.steps[7] (Build LFX package)"
        },
        {
          "path": ".github/workflows/release-lfx.yml",
          "locator": "jobs.release-lfx.steps[5] (Build distribution)"
        },
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.build-lfx.steps[7] (Build project for distribution)"
        },
        {
          "path": ".github/workflows/release_nightly.yml",
          "locator": "jobs.build-nightly-lfx.steps[7] (Build LFX for distribution)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_example_workflow.py --auto"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_example (line 586)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_run_load_test.py --headless --users 10 --duration 30 --no-start-langflow --html quick_test_report.html"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_langflow_quick (line 576)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_run_load_test.py --headless --users 100 --spawn-rate 5 --duration 300 --no-start-langflow --html stress_test_report.html --csv stress_test_results --shape ramp100"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_stress (line 581)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_run_load_test.py --headless --users 20 --duration 120 --no-start-langflow --html load_test_report.html --csv load_test_results"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_run (line 571)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_run_load_test.py --host $(LANGFLOW_HOST) --no-start-langflow --headless --users 10 --spawn-rate 1 --duration 120 --html remote_test_report.html"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_remote_run (line 600)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_setup_test.py --flow $(FLOW_NAME) --save-credentials load_test_creds.json"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_run (line 571)"
        },
        {
          "path": "Makefile",
          "locator": "target load_test_langflow_quick (line 576)"
        },
        {
          "path": "Makefile",
          "locator": "target load_test_stress (line 581)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_setup_test.py --flow Basic Prompting --save-credentials load_test_creds.json"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_setup_basic (line 563)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_setup_test.py --host $(LANGFLOW_HOST) --flow Basic Prompting --save-credentials remote_test_creds.json"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_remote_setup (line 595)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_setup_test.py --interactive"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_setup (line 559)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python langflow_setup_test.py --list-flows"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target load_test_list_flows (line 567)"
        },
        {
          "path": "Makefile",
          "locator": "target load_test_run (line 571)"
        },
        {
          "path": "Makefile",
          "locator": "target load_test_langflow_quick (line 576)"
        },
        {
          "path": "Makefile",
          "locator": "target load_test_stress (line 581)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/a11y/a11y_scan.py --url http://localhost:3000 --routes-file scripts/a11y/a11y_routes.json --route-group static --states-file scripts/a11y/states/settings-messages.json --out python-route-scan/report.json --markdown python-route-scan/report.md --html python-route-scan/report.html --timeout-ms 45000"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/a11y-scan.yml",
          "locator": "jobs.python-route-scan.steps[7] (Run Python Route Scan)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_changes_filter.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.path-filter.steps[4] (Validate Filter Coverage)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/check_deprecated_imports.py"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-deprecated-imports"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/backend_test_metrics.py results --expected-shards $EXPR --output ci-durations/durations.json"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend-unit-tests.yml",
          "locator": "jobs.report.steps[3] (Summarize and validate complete timings)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/check_components_frozen.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-migration-checks.yml",
          "locator": "jobs.freeze-components.steps[1] (Forbid new top-level directories under lfx/components (post-freeze))"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/check_core_dependency_pins.py $WHEEL_FILE --dependency-version $EXPR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.build-base.steps[9] (Verify built version)"
        },
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.build-main.steps[13] (Verify built version)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/check_core_dependency_pins.py dist/langflow-*.whl --dependency-version $EXPR"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release_nightly.yml",
          "locator": "jobs.build-nightly-main.steps[7] (Build Langflow Main for distribution)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/check_core_dependency_pins.py dist/langflow_base-*.whl --dependency-version $LFX_VERSION"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release_nightly.yml",
          "locator": "jobs.build-nightly-base.steps[6] (Build Langflow Base for distribution)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/check_integration_bundle_floors.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-migration-checks.yml",
          "locator": "jobs.integration-bundle-floors.steps[3] (Check integration-declaring bundle floors)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/inject_segment_write_key.py --verify-wheel src/lfx/dist/*.whl"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release-lfx.yml",
          "locator": "jobs.release-lfx.steps[6] (Verify production Segment write key)"
        },
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.build-lfx.steps[8] (Verify production Segment write key)"
        },
        {
          "path": ".github/workflows/release_nightly.yml",
          "locator": "jobs.build-nightly-lfx.steps[8] (Verify production Segment write key)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/manage_bundle_profiles.py check"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release-inventory-gate.yml",
          "locator": "jobs.downstream-bundle-profiles.steps[3] (Validate profiles and checked-in locks)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/ci/release_auth_defaults.py verify-source"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release.yml",
          "locator": "jobs.validate-tag.steps[3] (Verify tagged source disables auto-login)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/lint/check_component_env_writes.py"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-migration-checks.yml",
          "locator": "jobs.env-writes.steps[1] (Forbid component writes to process-global os.environ)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.component-env-writes"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/lint/check_logged_exception_text.py"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.logged-exception-text"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/migrate/check_bare_names.py"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-migration-checks.yml",
          "locator": "jobs.bare-names.steps[2] (Run check_bare_names.py)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.extension-migration-bare-names"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/migrate/check_bundle_api_changelog.py"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.bundle-api-changelog"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/migrate/check_bundle_api_changelog.py --base $base_ref"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-migration-checks.yml",
          "locator": "jobs.bundle-api-changelog.steps[2] (Run check_bundle_api_changelog.py)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/migrate/check_migration_append_only.py"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.extension-migration-append-only"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/migrate/check_migration_append_only.py --base $base_ref"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-migration-checks.yml",
          "locator": "jobs.append-only.steps[2] (Run check_migration_append_only.py)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python scripts/migrate/check_router_trust.py"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/extension-migration-checks.yml",
          "locator": "jobs.router-trust.steps[2] (Run check_router_trust.py)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.extension-router-trust"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python src/backend/tests/stress/stress_telemetry_writes.py --concurrency 50 --seconds 15"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/stress-tests.yml",
          "locator": "jobs.telemetry-writes.steps[3] (Run stress test)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python src/backend/tests/unit/template/test_starter_projects.py"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.validate-starter-projects"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "retry_delay_seconds = 15"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release_nightly.yml",
          "locator": "jobs.check-nightly-main-pypi-dependencies.steps[2] (Wait for direct base and bundle dependencies on PyPI)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "rev-parse --verify $tag_ref)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/prepare-release-tag.yml",
          "locator": "jobs.prepare-tag.steps[3] (Create and push the release source tag)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "rimraf ./docs/"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "docs/package.json",
          "locator": "scripts.clear-docs"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sleeping ${pypi_publish_delay_seconds}s before retry $((attempt + 1))/${pypi_publish_max_attempts}.\""
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/release_nightly.yml",
          "locator": "jobs.publish-nightly-bundles.steps[3] (Publish bundle dependencies to PyPI)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "trap 'echo \"test_status=$status\" >> \"$GITHUB_OUTPUT\""
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.report-gate.steps[4] (Check report count, merge, and validate)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "type == array and"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.determine-test-suite.steps[2] (Determine Test Suites from Changes)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "type == string and"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.determine-test-suite.steps[2] (Determine Test Suites from Changes)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "user-flow-state-cleanup.spec.ts"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.setup-and-test.steps[10] (Execute Playwright Tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "user-progress-track.spec.ts"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/typescript_test.yml",
          "locator": "jobs.setup-and-test.steps[10] (Execute Playwright Tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
