{
  "schemaVersion": 3,
  "recordId": "cadre-agent-api-handshake-2026-08-22-rc20-plugin-v1.0.2-candidate",
  "measuredAt": "2026-08-22T06:14:30.146Z",
  "license": "https://creativecommons.org/publicdomain/zero/1.0/",
  "method": {
    "collectorName": "collect-rc20-v102-handshake.mjs",
    "collectorSha256": "1904f3cc31d746445b1e1343349395cce26d6ad006184d4f566c8bc54fd606a9",
    "requestSequence": [
      "initialize",
      "notifications/initialized",
      "tools/list",
      "tools/call:get_app_state"
    ],
    "mutatingToolCalls": 0
  },
  "subject": {
    "app": {
      "name": "Cadre",
      "version": "1.0.0-rc.20",
      "bundleVersion": "1.0.0-rc.20",
      "distribution": "signed and notarized public macOS app launched from its read-only DMG",
      "release": "https://github.com/ArthurBrioche/cutro-releases/releases/tag/v1.0.0-rc.20",
      "sourceCommit": "bcb4e8f6b69f5f0cd3876af47303556447fffb9c",
      "downloadUrl": "https://github.com/ArthurBrioche/cutro-releases/releases/download/v1.0.0-rc.20/CADRE.dmg",
      "releaseAssetId": 524688469,
      "dmgSha256": "89856e753359b43921562a0469b154690a99aa103ca8e237d7660ddc0120cbbf",
      "dmgBytes": 202760397,
      "dmgCdHash": "5ad6cf1be7d7145ef7b9d43486af812299e8eea3",
      "dmgSigningIdentifier": "Cadre-1.0.0-rc.20-arm64",
      "executableSha256": "719922a22c7faeb3489f65618d53b0d34ca33fc0279b7422d9ec245810eff698",
      "bundleIdentifier": "com.cutro.app",
      "teamIdentifier": "K46XNRQD9K",
      "cdHash": "55d6813aa0b3618a1ba5c40ff1dee9a4f3b7cfc6",
      "signatureTimestamp": "22 Aug 2026 at 06:53:51",
      "runtimeVersion": "26.4.0",
      "hardenedRuntime": true
    },
    "plugin": {
      "name": "cadre",
      "version": "1.0.2",
      "distribution": "independently versioned standalone Claude plugin",
      "repository": "https://github.com/ArthurBrioche/cadre-video-editor-plugin",
      "release": "https://github.com/ArthurBrioche/cadre-video-editor-plugin/releases/tag/v1.0.2",
      "sourceCommit": "7bb7bcc1d65941a2857e92c3c1596d9f1ecf1f5e",
      "archiveUrl": "https://github.com/ArthurBrioche/cadre-video-editor-plugin/releases/download/v1.0.2/Cadre-Claude-Plugin-v1.0.2.zip",
      "releaseAssetId": 524719691,
      "archiveSha256": "63aed246a57a01d20684313698bf2208dd3c76bceb4db137f0775817a737ff95",
      "archiveBytes": 24166,
      "exactFileCount": 8,
      "files": {
        ".claude-plugin/plugin.json": "276c6bb9751b0f85fc236e4ec5c617a2dee2e8a8608e40411003230fffdbd31a",
        ".mcp.json": "452efef7315422f71e4f9372469c96642fc7f1a252eb300dc2ee09d1276732f9",
        "LICENSE": "ab9689d97b3ab2bb0de0ed847996ae2ab7e89b8eabd5ea42e7993c975044994b",
        "README.md": "348e5442b8932977c41a138322e15f75d4135b58235221d01afed4168c93da9c",
        "SECURITY.md": "83ac7b649c1be2796e4d605e918da36fe1225526feaefa453c48a9349ae8cba8",
        "server/cadre-bridge.mjs": "cef53531c8e30926eb6c84942b79d507f12783ca0250211a4645a7786b6168b1",
        "server/cadre-launcher.sh": "3a84ecdb0df09134010d6a67640b713724c074f81a8bd8b7f2f819815f87970e",
        "skills/cadre-editor/SKILL.md": "5fba78f4c5e47e16d6fbed001c752c13a7363506e299b4f9dc7ccc0ccf33de90"
      }
    }
  },
  "environment": {
    "operatingSystem": "macOS 15.6.1",
    "architecture": "arm64",
    "nodeRuntime": "v26.7.0",
    "isolatedEphemeralProfile": true
  },
  "verification": {
    "dmgIntegrityValid": true,
    "dmgSignatureValid": true,
    "dmgDeveloperIdSigned": true,
    "dmgNotarizationTicketStapled": true,
    "dmgGatekeeperAccepted": true,
    "appSignatureValid": true,
    "appDeveloperIdSigned": true,
    "appNotarizationTicketStapled": true,
    "appGatekeeperAccepted": true,
    "mountedFromPinnedReadOnlyDmg": true,
    "runningProcessMatchesPinnedApp": true,
    "isolatedUserDataVerified": true,
    "profileDirectoryMode": "0700",
    "connectionFileMode": "0600",
    "connectionRecordUnchanged": true,
    "listenerOwnedByRunningApp": true,
    "loopbackOnly": true,
    "pluginArchiveMatchesExtractedFiles": true,
    "protocolVersion": "2025-06-18",
    "serverName": "screencraft",
    "serverVersion": "1.0.0-rc.20",
    "toolDiscovery": {
      "total": 57,
      "readOnly": 18,
      "mutations": 39,
      "destructive": 9,
      "idempotent": 27,
      "openWorld": 1,
      "namesSha256": "031e4b7900ad8b07b3143bd98516e232eb0b600cafa31a32d1b1c9c4333210ca",
      "definitionsSha256": "ed090b7f9b10a244ae428581332355c7bc8f8bb5967a488098936785e3b96257",
      "requiredJobTools": [
        "get_agent_job_status",
        "get_agent_job_result",
        "cancel_agent_job"
      ],
      "names": [
        "get_app_state",
        "get_license_status",
        "list_recording_sources",
        "get_recording_status",
        "start_recording",
        "stop_recording",
        "pause_recording",
        "resume_recording",
        "cancel_recording",
        "list_projects",
        "open_project",
        "save_project",
        "import_video",
        "get_timeline",
        "map_time",
        "add_zoom",
        "update_zoom",
        "delete_zoom",
        "add_cut",
        "update_cut",
        "delete_cut",
        "set_speed",
        "delete_speed",
        "add_mask",
        "update_mask",
        "delete_mask",
        "recalculate_zooms",
        "add_text_overlay",
        "add_svg_overlay",
        "update_overlay",
        "delete_overlay",
        "analyze_audio",
        "list_captions",
        "add_caption",
        "update_caption",
        "delete_caption",
        "generate_captions",
        "set_caption_style",
        "list_caption_models",
        "download_caption_model",
        "get_recording_context",
        "generate_transcript",
        "get_interaction_context",
        "analyze_visual_context",
        "get_video_frame",
        "get_edited_frame",
        "set_style",
        "set_music",
        "set_audio_gains",
        "undo",
        "redo",
        "export_video",
        "get_export_status",
        "cancel_export",
        "get_agent_job_status",
        "get_agent_job_result",
        "cancel_agent_job"
      ]
    },
    "getAppState": {
      "observed": {
        "version": "1.0.0-rc.20",
        "projectOpen": false,
        "licensePlan": "free",
        "licenseMode": "live",
        "exportPhase": "idle"
      }
    },
    "latencyMs": {
      "launcherCheck": 27.423,
      "initialize": 106.532,
      "toolsList": 527.66,
      "getAppState": 463.577
    }
  },
  "safety": {
    "userProjectsAccessed": false,
    "recordingInvoked": false,
    "importInvoked": false,
    "editInvoked": false,
    "exportInvoked": false,
    "modelOrCaptionJobInvoked": false,
    "privatePathsTokensAndProcessIdsIncluded": false
  },
  "interpretation": {
    "result": "compatible",
    "statement": "The exact public standalone Claude plugin v1.0.2 completed MCP initialization, exact 57-tool discovery, and one benign get_app_state call against the exact public signed and notarized Cadre rc.20 app.",
    "historicalEvidenceRelationship": "This record safely supplements rather than replaces the frozen rc.18/plugin-v1.0.1 54-tool handshake. It specifically covers rc.20/plugin-v1.0.2 compatibility and the three added background-job tools."
  },
  "limitations": [
    "This compatibility proof covers only MCP initialization, exact tool discovery, and one read-only app-state call.",
    "It deliberately does not exercise recording, user projects, importing, editing mutations, captions, model downloads, export, visual output, model reasoning quality, or customer outcomes.",
    "The standalone plugin v1.0.2 is API-compatible with rc.20; rc.20 bundles plugin v1.0.1, so this does not claim byte identity with the plugin prepared inside the app.",
    "Latency is a local round trip on one Mac and should not be generalized to other hardware or workloads."
  ]
}
