{
  "schema": "comments-design-evidence-v1",
  "status": "DESIGN_REVIEW_CANDIDATE",
  "owner_approval": "PENDING",
  "uat": "NOT_TESTED",
  "product_implementation": "NOT_PERFORMED",
  "publication": "NOT_PERFORMED",
  "source": {
    "directory": "/home/agentagency-dev/owner-swipe438-empty-20261101",
    "head": "d7feebbabd507091928a303ed4e7fe8b810f8fce",
    "accepted_reference": "8733578a2f8a6cfd860371e8a2c2aa39f1b885bb",
    "worktree_status": "CLEAN",
    "inspected_host_and_found_postgame_paths_unchanged_since_reference": true,
    "files": {
      "docs/product/SITEWIDE_UI_STYLE_GUIDE.md": {
        "bytes": 7966,
        "sha256": "186f23ae91a18ff1c4b7ff716970bf1c08a104c4e6dae96ac6d2386753a951f5"
      },
      "docs/product/DESKTOP_OVERLAY_STYLE_GUIDE.md": {
        "bytes": 5584,
        "sha256": "2d9b09fe32d81691edeb1121335ab2db2de49820e07839f676454755b6965403"
      },
      "apps/web/src/components/consumer/pages/GameDetailPage.tsx": {
        "bytes": 9106,
        "sha256": "d5ab689dd3b9dae4bcbe07a6cdc86220b601a93c083994e35ad68b6f2c75c3a4"
      },
      "apps/web/src/components/consumer/venues/VenuePage.tsx": {
        "bytes": 3528,
        "sha256": "d3561e19d1308c39ecf48903fcc9a4b5e2ab3e3b7a1a31ea69d1ac13e8d3f131"
      },
      "apps/web/src/components/consumer/pages/PublicPlayerProfilePage.tsx": {
        "bytes": 1007,
        "sha256": "a51f955e95775b63152feda27feba5a7439b35fc7fdd51fb4ff195b8be09bccd"
      },
      "apps/web/src/components/consumer/players/PublicPlayerProfile.tsx": {
        "bytes": 11693,
        "sha256": "d41d5d358bb70e89cf170f0fc88f39cedc6249e3cf0fd60572e393dbf9ac83e1"
      },
      "apps/api/src/games/game-outcomes.service.ts": {
        "bytes": 11406,
        "sha256": "3118bf5e2c0a817161088510bbb4c29a24eb82064fa2a52b43329e9121aa9975"
      },
      "apps/api/src/games/game-outcomes.policy.ts": {
        "bytes": 8532,
        "sha256": "27246810017e6b5921b0a19f074e22bc44c23d758613b48417dce44e575fb4ce"
      }
    }
  },
  "authority": {
    "provided_rules_sha256": "0d529c0d50118f6473d8126df8202aa2201322eebe8e66ed00fe572e06c36b30",
    "scope": "Owner design-only assignment; output directory only"
  },
  "artifacts": {
    "index.html": {
      "bytes": 226157,
      "sha256": "efaae738061a924531f800e6e0671c231bf8971b3602cfe7030f2b4b3fea3785"
    },
    "DESIGN.md": {
      "bytes": 18857,
      "sha256": "3d2b2bc94a7fcf0ee9a1033db5cf5fec7762b0eaeb93a6449349ecca5f4cf16c"
    },
    "STYLE_GUIDE_COMMENTS.md": {
      "bytes": 8627,
      "sha256": "1cbcd536aceb21749c639aaefd89645439624226dc7a2c2239b30069866d238e"
    }
  },
  "contexts": [
    {
      "id": "game",
      "source": "GameDetailPage",
      "same_component": true,
      "all_state_options_available": true
    },
    {
      "id": "venue",
      "source": "VenuePage",
      "same_component": true,
      "all_state_options_available": true
    },
    {
      "id": "player",
      "source": "PublicPlayerProfilePage / PublicPlayerProfile",
      "same_component": true,
      "all_state_options_available": true
    }
  ],
  "viewports": [
    {
      "width": 390,
      "height": 844
    },
    {
      "width": 1024,
      "height": 960
    },
    {
      "width": 1440,
      "height": 960
    }
  ],
  "states": [
    {
      "id": "normal",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "empty",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "guest",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "writing",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "pending",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "success",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "read-error",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "unknown",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "edit",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "delete",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "deleted",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "reply",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "safety",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "disabled",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    },
    {
      "id": "restricted",
      "availability": "IMPLEMENTED_IN_STATIC_DEMO",
      "browser_validation": "NOT_RUN"
    }
  ],
  "interactions": {
    "composer": "local in-memory pending then success; stale demo completion ignored after scenario switch",
    "reply": "first root only; one level; disclosure and local reply submit",
    "edit_delete": "own root records; inline edit and confirmed soft delete",
    "sorting": "old/new root order; replies stay attached",
    "pagination": "local two-root remainder",
    "long_text": "load more then expand/collapse",
    "unknown": "submit locked; check remains unconfirmed; no resend",
    "safety": "existing player target semantics only; no actual report/block",
    "auth": "existing flow placeholder; no real credential form",
    "preview": "iframe srcdoc CSS viewport; optional fit transform"
  },
  "policy_pending": [
    "player comment visibility and owner control",
    "game/venue guest reading and write eligibility",
    "moderation, block effects, soft-delete retention and recovery",
    "text limit, count semantics, initial sort and batch size"
  ],
  "explicitly_omitted": [
    "likes",
    "ratings",
    "reputation",
    "verified badges",
    "notification defaults",
    "private feedback publication",
    "real people/photos/contacts/private identifiers"
  ],
  "checks": {
    "javascript_syntax": [
      {
        "artifact": "check-script-0.js",
        "command": "node --check check-script-0.js",
        "exit_code": 0,
        "stderr": ""
      },
      {
        "artifact": "check-script-1.js",
        "command": "node --check check-script-1.js",
        "exit_code": 0,
        "stderr": ""
      }
    ],
    "html_parser": "PASS: parsed; unique static IDs; 15 scenario options",
    "assets": "PASS: embedded local font and existing logo; no unresolved placeholders",
    "network": "PASS_STATIC: no external src/href/action, no fetch/XHR/WebSocket/sendBeacon; CSP connect-src none",
    "viewport_controls": "PASS_STATIC: 390/1024/1440 present",
    "nonzero_artifacts": "PASS",
    "tracked_source_unchanged": "PASS: clean worktree",
    "browser_preview": "NOT_RUN: no browser binary or installed Playwright/Selenium discovered",
    "visual_overflow_focus_keyboard": "NOT_RUN",
    "independent_qa": "NOT_PERFORMED",
    "product_ci_dev_smoke": "NOT_APPLICABLE_TO_DESIGN_ARTIFACT"
  },
  "limitations": [
    "Static checks do not prove runtime interactions or visual correctness.",
    "Surrounding product pages are shortened contextual sketches, not replacement screen specifications.",
    "Demo state/entity switching resets in-memory examples; no persistence.",
    "A real comments API/feature was not confirmed by scoped source inspection.",
    "No new browser runner or dependencies installed."
  ],
  "postgame_reference": {
    "path": "/home/agentagency-dev/train-execution-evidence-20261027/postgame372-astra-design-v1/index.html",
    "read_for_visual_consistency": true,
    "DESIGN_md": "ABSENT_AT_INSPECTION",
    "writes": "NONE",
    "dependency": "NONE"
  }
}
