{
  "scope": "#521 R3 bounded local visual-prototype correction only",
  "changedFiles": [
    {
      "path": "preview.js",
      "rationale": "Move the single trainer-led game-actions footer into the existing full-width role summary; leave ordinary cards and review handlers unchanged.",
      "sha256": "cda9147c40a386cc6e47100d09e3a49f8772df5e4ff35dd07defb2c6220f60b2",
      "before_sha256": "94c67c60749290cda3aab811ff3786eabe61e4651baf01025a1f598b397f4e15"
    },
    {
      "path": "design.css",
      "rationale": "Four-column role summary; keep game actions together; remove obsolete training terms trailing margin and in-column action spacing.",
      "sha256": "d7f64d800e0d636d6178d3b6b52c62aef59ca0f5a642a677a9f76ddc8a868025",
      "before_sha256": "e8ff1b2ee080fe287ee0083fcfa505bdcafb4e36057d7ee9df6fcce294674006"
    },
    {
      "path": "preview.html",
      "rationale": "Regenerated by the existing builder from corrected CSS/JS; cover bytes reused programmatically.",
      "sha256": "15f9e56e83395d3254be08c778a3f04655022c00c9a29c6e8d4279287691d6e5",
      "before_sha256": "fb1dbd72f15016675cee388a9dab589ffb9faf0cc6a1f27a049e8b9c9a9165b8"
    },
    {
      "path": "README.md",
      "rationale": "Compact implementation delta, exact component handoff, review-dialog contract and explicit browser limitations.",
      "sha256": "467a75797dd632da0af19b9e51a0b12a5e585996e14cb8655782a72784ee732a",
      "before_sha256": null
    },
    {
      "path": "delta-manifest.json",
      "rationale": "This delta inventory and verification status; self-hash omitted."
    }
  ],
  "preserved": "before-delta holds pre-correction CSS, JS, preview and scenario manifest; inputs and assets untouched; original native call receipt preserved externally",
  "checks": {
    "jsSyntax": "PASS — installed Node absolute path",
    "initialNodeAttempt": "ENVIRONMENT: node not in PATH; resolved with existing installed binary; no dependency install",
    "structuralDelta": "PASS — ordinary HTML identical, one trainer footer, full terms, unchanged role/dialog handlers and mobile rules",
    "priorParentChecks": "72 existing checks reused for unchanged behavior; not rerun",
    "browserGeometry": "NOT_TESTED",
    "keyboardReviewFlow": "NOT_TESTED for delta; existing handlers retained",
    "actualOnestLoaded": "Inherited parent evidence; existing local asset and font-face retained; not remeasured",
    "independentQA": "NOT_TESTED",
    "DEV": "NOT_TESTED",
    "OwnerUAT": "NOT_TESTED"
  },
  "measurements": [
    {
      "width": 390,
      "status": "NOT_TESTED",
      "normalDemoGapPx": null,
      "desktopPhotoAspect": null,
      "ordinaryUnchangedGeometry": null,
      "overflowOrFooterClipping": null
    },
    {
      "width": 820,
      "status": "NOT_TESTED",
      "normalDemoGapPx": null,
      "desktopPhotoAspect": null,
      "ordinaryUnchangedGeometry": null,
      "overflowOrFooterClipping": null
    },
    {
      "width": 1280,
      "status": "NOT_TESTED",
      "normalDemoGapPx": null,
      "desktopPhotoAspect": null,
      "ordinaryUnchangedGeometry": null,
      "overflowOrFooterClipping": null
    },
    {
      "width": 1920,
      "status": "NOT_TESTED",
      "normalDemoGapPx": null,
      "desktopPhotoAspect": null,
      "ordinaryUnchangedGeometry": null,
      "overflowOrFooterClipping": null
    }
  ],
  "parentAcceptance": {
    "desktopWidths": [
      820,
      1280,
      1920
    ],
    "normalDemoGapPx": 0,
    "desktopPhotoAspect": 1,
    "mobileWidth": 390,
    "mobilePhotoHeightPx": 210,
    "ordinary": "baseline unchanged",
    "flow": "no overflow or footer clipping; long content remains accessible",
    "review": "one keyboard trainer review open/close/focus-return flow"
  },
  "reviewContract": "RoleReputationCardActions trainingTrigger.onOpen -> existing trainerProfileId RoleReviewsDialog path; separate organization trigger; no public-player mapping dependency, ID namespace comparison or name deduplication",
  "sourceEdits": false,
  "networkCalls": false,
  "dependenciesAdded": false
}
