{
  "checker": {
    "claims": [
      {
        "claim": "The advanced server edits Resolve files with no Resolve running: parses an EDL offline",
        "command": "node bin/davinci-resolve-advanced-mcp.mjs tools/call {\"tool\": \"editorial\", \"arguments\": {\"action\": \"parse_interchange\", \"args\": {\"format\": \"edl\", \"content\": \"TITLE: DEMO\\nFCM: NON-DROP FRAME\\n\\n001  AX       V     C        00:00:00:00 00:00:02:00 01:00:00:00 01:00:02:00\\n* FROM CLIP NAME:  SHOT_A.mov\\n\\n002  AX       V     C        00:00:02:00 00:00:05:00 01:00:02:00 01:00:05:00\\n* FROM CLIP NAME:  SHOT_B.mov\\n\", \"fps\": 24}}}",
        "evidence": "SHOT_B.mov\\\",\\n      \\\"srcIn\\\": 48,\\n      \\\"srcOut\\\": 120,\\n      \\\"recIn\\\": 86448,\\n      \\\"recOut\\\": 86520,\\n      \\\"speed\\\": 100,\\n      \\\"reverse\\\": false,\\n      \\\"transition\\\": null,\\n      \\\"fps\\\": 24,\\n      \\\"clipName\\\": \\\"SHOT_B.mov\\\"\\n    }\\n  ]\\n}\"}]}",
        "expected": "events list both clips, including SHOT_B.mov",
        "input": "{\"tool\": \"editorial\", \"arguments\": {\"action\": \"parse_interchange\", \"args\": {\"format\": \"edl\", \"content\": \"TITLE: DEMO\\nFCM: NON-DROP FRAME\\n\\n001  AX       V     C        00:00:00:00 00:00:02:00 01:00:00:00 01:00:02:00\\n* FROM CLIP NAME:  SHOT_A.mov\\n\\n002  AX       V     C        00:00:02:00 00:00:05:00 01:00:02:00 01:00:05:00\\n* FROM CLIP NAME:  SHOT_B.mov\\n\", \"fps\": 24}}}",
        "kind": "claim",
        "outcome": "Real input produced the expected result: SHOT_B.mov",
        "source": "applies DB/XML-level changes **with no Resolve running**, so it",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Live Resolve control requires Resolve Studio external scripting",
        "command": "",
        "evidence": "DaVinci Resolve is not installed in this disposable Linux guest; install.py reported 'API Path: Not found' and 'Library: Not found', so the live Python server cannot be exercised here",
        "expected": "",
        "input": "",
        "kind": "claim",
        "outcome": "DaVinci Resolve is not installed in this disposable Linux guest; install.py reported 'API Path: Not found' and 'Library: Not found', so the live Python server cannot be exercised here",
        "source": "Before connecting, open DaVinci Resolve Studio and set **Preferences > General > External scripting using** to **Local**.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "blocked"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected (README.md, bin/, src/server.py, src/batch_cli.py, src/utils/grade_loop.py, resolve-advanced/bin, resolve-advanced/server). No cron, scheduler, daemon loop, webhook or --once/--now product cycle; grade_loop is a retry-ladder assessment helper and batch_cli is a job runner, not a scheduled cycle. The advanced server is stdio request/response only.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected (README.md, bin/, src/server.py, src/batch_cli.py, src/utils/grade_loop.py, resolve-advanced/bin, resolve-advanced/server). No cron, scheduler, daemon loop, webhook or --once/--now product cycle; grade_loop is a retry-ladder assessment helper and batch_cli is a job runner, not a scheduled cycle. The advanced server is stdio request/response only.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "node",
        "bin/davinci-resolve-advanced-mcp.mjs"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "davinci-resolve-advanced-mcp",
        "version": "0.0.0-dev"
      },
      "tool_result": {
        "content": [
          {
            "text": "{\n  \"format\": \"edl\",\n  \"count\": 2,\n  \"events\": [\n    {\n      \"index\": 1,\n      \"track\": \"V\",\n      \"source\": \"SHOT_A.mov\",\n      \"srcIn\": 0,\n      \"srcOut\": 48,\n      \"recIn\": 86400,\n      \"recOut\": 86448,\n      \"speed\": 100,\n      \"reverse\": false,\n      \"transition\": null,\n      \"fps\": 24,\n      \"clipName\": \"SHOT_A.mov\"\n    },\n    {\n      \"index\": 2,\n      \"track\": \"V\",\n      \"source\": \"SHOT_B.mov\",\n      \"srcIn\": 48,\n      \"srcOut\": 120,\n      \"recIn\": 86448,\n      \"recOut\": 86520,\n      \"speed\": 100,\n      \"reverse\": false,\n      \"transition\": null,\n      \"fps\": 24,\n      \"clipName\": \"SHOT_B.mov\"\n    }\n  ]\n}",
            "type": "text"
          }
        ]
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 32424,
      "tools": [
        "drp",
        "drt",
        "drx",
        "offline_ref",
        "fusion",
        "audio_plan",
        "fairlight",
        "audio",
        "conform",
        "project_db",
        "project_read",
        "color_trace",
        "capabilities",
        "pipeline",
        "deliverable",
        "media",
        "editorial",
        "provenance"
      ],
      "working": false
    },
    "evidence_strength": "partly_checked",
    "example_checks": [
      {
        "claim": "Offline test suite for the advanced server passes without Resolve",
        "command": "npm test",
        "deferred": false,
        "evidence": "00 - internals.varintToNumber: handles BigInt and number\n  ---\n  duration_ms: 0.045896\n  type: 'test'\n  ...\n# Subtest: round-trip: hue + sat + lum bounded survives generate\u2192parse\u2192extract\nok 1201 - round-trip: hue + sat + lum bounded survives generate\u2192parse\u2192extract\n  ---\n  duration_ms: 9.044142\n  type: 'test'\n  ...\n# Subtest: round-trip: full spec with softness on all axes\nok 1202 - round-trip: full spec with softness on all axes\n  ---\n  duration_ms: 0.921695\n  type: 'test'\n  ...\n1..1202\n# tests 1202\n# suites 0\n# pass 1136\n# fail 0\n# cancelled 0\n# skipped 66\n# todo 0\n# duration_ms 128372.416357",
        "expected": "all offline tests pass, 0 failing",
        "input": "npm test in resolve-advanced after npm install --omit=dev --omit=optional plus --no-save better-sqlite3",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "resolve-advanced/package.json scripts.test",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "python install.py exited 1 at venv creation: python3-venv missing (ensurepip unavailable). Fixed with sudo apt-get install python3.12-venv, then re-ran install.py; venv and mcp SDK installed.",
    "python install.py ends with 'Setup incomplete - the scripting API did not load' because DaVinci Resolve is not installed (API Path and Library not found). Not fixable in this guest.",
    "Guest Node 18.19 was below the >=20.9 requirement; installed Node 22 via NodeSource setup_22.x (via curl | sudo bash of the NodeSource setup script).",
    "Installed with --omit=dev --omit=optional as the README's npm command specifies; first npm test run had 60 failures from missing optional better-sqlite3, so it was added with --no-save and the suite then passed fully.",
    "install.py was run with --clients manual and --update-policy never (no client configs written, update checks disabled).",
    "The live src/server.py was not started or called; the Resolve scripting API is absent, so it is unverified."
  ],
  "fault_owner": "prerequisite",
  "main_blocker": "DaVinci Resolve Studio is not installed in this disposable guest, so the live Resolve control server cannot connect to Resolve.",
  "operation": "Run the README's source install (python install.py) and exercise the MCP servers; verified the offline advanced MCP server (editorial parse_interchange on an inline EDL). The live DaVinci Resolve control server (src/server.py) could not be exercised.",
  "operation_scope": "Linux x86_64 guest, Ubuntu, Python 3.12.3, Node 22.23.4 (README requires Node >=20.9 for the advanced server). No DaVinci Resolve Studio installed, so live Resolve control is out of scope. Offline advanced server works without Resolve.",
  "outcome": "unverified",
  "plain_failure": "The main product, which controls a running DaVinci Resolve Studio, could not be tested because Resolve is not installed on this test machine. The offline companion server that edits Resolve project files works and passed its tests.",
  "steps": [
    "git init; git remote add origin https://github.com/samuelgursky/davinci-resolve-mcp; git fetch --depth 1 origin 931bc2cda8fd9049982a457de9ff70836c406cd7; git reset --mixed FETCH_HEAD",
    "sudo apt-get install -y python3.12-venv",
    "python3 install.py --clients manual --update-policy never",
    "NodeSource setup_22.x then sudo apt-get install -y nodejs (guest Node was 18.19, below the >=20.9 engine)",
    "cd resolve-advanced && npm install --omit=dev --omit=optional",
    "npm install --no-save better-sqlite3@^11.10.0 (optional native dep, needed by offline tests)",
    "node bin/davinci-resolve-advanced-mcp.mjs (MCP stdio) tool editorial action parse_interchange on inline EDL -> returned SHOT_A.mov and SHOT_B.mov events",
    "npm test in resolve-advanced -> 1202 tests, 1136 pass, 0 fail, 66 skipped"
  ],
  "stuck_step": "python install.py: scripting API did not load (DaVinci Resolve not present)",
  "suggested_fix": "Run the README's install on a machine with DaVinci Resolve Studio and external scripting set to Local, then call a live Resolve tool. Consider making install.py's venv error name the apt package on Debian/Ubuntu."
}
