{
  "title": "M6 R3.1 W08 external action protocol foundation",
  "date": "2026-11-02",
  "schemaVersion": 42,
  "fagoCommit": "18c6e148cdc17ff365e1df77acd86ba2833707d3",
  "goalStatus": "in_progress",
  "availability": {
    "pureCompile": "v6 opt-in only",
    "definitionsAndExecution": "v6 rejected by constructors",
    "formalRuntimeProfiles": "unchanged",
    "durableActionJobs": false,
    "remotePersistenceCertified": false,
    "compensationExecution": false
  },
  "implementedBoundaries": [
    "Explicit external node input/output fields; legacy compilers reject even empty inputs key",
    "Immutable sorted action/version/target contracts; empty field omitted from old manifests",
    "Selected input copies, optional absence, activation/tenant/contract business identity and per-operation keys",
    "Request digest and output-field baseline conflict checks preserving unrelated parallel changes",
    "Independent private dispatch proof with exact payload, context, work source, captured pool/deadline and callback lifetime",
    "Fixed HTTPS target and restricted credential file; numeric-loopback-only explicit development HTTP",
    "No environment proxy, redirects or retry loop; bounded transport/body and strict response binding/JSON",
    "Unknown remote outcome on network/protocol failure; only standard cancellation causes retained in errors"
  ],
  "checks": {
    "coreRace": {
      "status": "passed",
      "topLevelTests": 51,
      "newExternalTopLevelTests": [
        "TestExternalCompilerBoundary",
        "TestExternalManifestIsolation",
        "TestExternalDispatchProof",
        "TestExternalDispatchLifetime",
        "TestExternalHTTPProtocol",
        "TestExternalHTTPEndpointAndCredentials",
        "TestExternalHTTPErrorSanitization",
        "TestExternalSnapshotIdentity",
        "TestExternalOutputConflict",
        "TestExternalResponseStrictJSON"
      ]
    },
    "coreVet": "passed",
    "coreNilness": "passed",
    "workspaceRaceVet": {
      "status": "passed",
      "modules": 26
    },
    "independentFreshCache": {
      "status": "passed",
      "modules": 26
    },
    "golangciLint": "not installed; not run",
    "databaseIntegration": "not rerun in this batch; no schema or executable SQL path added",
    "remoteDurability": "not certified; real loopback HTTP tests use an echo receiver, not a durable idempotency service",
    "documents": "passed: sync/check/build/check; 60 pages",
    "browser": "not run; disabled in Work settings",
    "staticHtml": "passed: 4 pages, new roadmap anchor, all 4 books and evidence bytes",
    "finalCoreIndependent": "passed: final source, GOWORK=off, fresh cache, race/vet; temporary copy cleaned"
  },
  "privateLogSHA256": {
    "external-protocol-core-20261102.jsonl": "c7613ecd5a127b9c7550ca4c22e06dab1529751ab44aac396860faee97b59ed5",
    "external-protocol-workspace-20261102.log": "9e4b88de9185b266cace5081ef774bac47bc56b548b9da03dcceeee5f57f0bff",
    "external-protocol-independent-20261102.log": "05512f1620e3bd7d0420eaf900b4f6dae1305009e77c2fde868d7015253285db",
    "external-protocol-docs-20261102.log": "31aacf2bdbc1b471929558e9e5ef769be075792555d1285716ff85b2f3800e30",
    "external-protocol-docs-final-20261102.log": "608d73a73abbd1ef04bcf2f2e116938ea6b7c0014f842260f435e24ad1c89677",
    "external-protocol-core-independent-final-20261102.log": "322a11b834fd7438eb5f3f253a9d99ecc90223b6027f6e1881f62fac4b8f6d56"
  },
  "remaining": [
    "Durable action job/attempt schema, dispatch intent, independent result receipt and fenced local completion",
    "Finite retry/dead, current management commands and actual compensation/tombstone validation",
    "Unified terminal guards, action references in Retire, explicit actual resource/approval ports and formal worker wiring",
    "Dedicated MySQL/Postgres rollback, uncertain-outcome, restart, reclaim and output-conflict integration tests before removing v6 gates",
    "Other W08 accepted commands, W07 resources, W11 actual API pool/approval UI and W10/W12 full rolling/capacity"
  ]
}
