{
  "checker": {
    "details": {
      "argv": [
        "/opt/fds/bin/flake8",
        "./",
        "--select",
        "FDS"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 1,
      "scope": "product operation",
      "stderr": "",
      "stdout": "./bad.py:1:5: FDS100: Group by 3s from right (e.g. 10_000)\n./bad.py:2:5: FDS200: Group by 3s from right (e.g. 10_000.1_234)\n./bad.py:3:5: FDS300: Group by 4s from right after prefix `0b_` (e.g. 0b_1101_1001)\n./bad.py:4:5: FDS400: Group by 3s from right after prefix `0o_` (e.g. 0o_12_134_155)\n./bad.py:5:5: FDS500: Group by 4s from right after prefix `0x_` (e.g. 0x_CAFE_F00D)",
      "working": true
    },
    "status": "PASS"
  },
  "deviations": [
    "Venv creation failed: `python3 -m venv /opt/fds` reported ensurepip unavailable; ran `apt-get install -y python3-venv` and recreated the venv.",
    "README's `pip install flake8-digit-separator` was replaced by installing from the pinned /workspace source so the version matches the pinned commit."
  ],
  "main_blocker": null,
  "operation": "Ran the README usage command `flake8 ./ --select FDS` against a scratch file with known violations; flake8 reported FDS100, FDS200, FDS300, FDS400 and FDS500 with correct line numbers.",
  "operation_scope": "CLI linter plugin. Verified detection of all five rules on /tmp/fds_sample/bad.py. The pinned repo itself has no FDS findings (exit 0). Not exercised: --fds-exclude option, unit tests, lint suites.",
  "outcome": "working",
  "steps": [
    "apt-get install python3-venv (needed for venv creation)",
    "python3 -m venv /opt/fds",
    "/opt/fds/bin/pip install /workspace (pinned source, installs as flake8-digit-separator 1.0.8)",
    "cd /workspace && /opt/fds/bin/flake8 ./ --select FDS (exit 0, no findings)",
    "cd /tmp/fds_sample && /opt/fds/bin/flake8 ./ --select FDS (findings for FDS100-500, exit 1)"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
