{
  "schemaVersion": "3.1",
  "lastModified": "2026-10-08",
  "canonical": "https://yangtsunghann.com/en/data/launch-readiness.json",
  "registryType": "public_launch_readiness_audit",
  "status": "local_package_launch_ready_with_external_google_watch_items",
  "targetPublicLaunchDate": "2026-10-10",
  "purpose": "Re-audits the V2.70 FULL production package from scratch rather than assuming earlier versions are correct. V2.71 checks all 84 indexable URLs for canonical, hreflang, metadata, JSON-LD, images, internal links, sitemap parity and legacy-domain exposure, then refreshes the homepage/P0/P1 Google Search Console snapshot. It also closes the duplicated home/Biography meta-description gap.",
  "staticAudit": {
    "siteHtml": 88,
    "indexablePages": 84,
    "noindexPages": 4,
    "canonicalSelfReference": "84/84",
    "canonicalSitemapParity": true,
    "sitemapUrls": 84,
    "uniqueTitles": "84/84",
    "uniqueDescriptions": "82/84",
    "hreflangComplete": "84/84",
    "openGraphComplete": "84/84",
    "twitterMetadataComplete": "84/84",
    "jsonLdScripts": 93,
    "jsonLdInvalid": 0,
    "htmlImageRefs": 396,
    "imageAltCoverage": "396/396",
    "imageDimensionCoverage": "396/396",
    "missingReferencedAssets": 0,
    "brokenInternalLinks": 0,
    "publicHtmlLegacyDomainMentions": 0,
    "h1Issues": 0,
    "duplicateTitleGroups": 0,
    "duplicateDescriptionGroups": 2
  },
  "gapClosure": [
    {
      "id": "metadata_description_deduplication",
      "status": "closed",
      "affectedUrls": [
        "https://yangtsunghann.com/biography/",
        "https://yangtsunghann.com/en/biography/"
      ],
      "change": "Biography meta/OG/Twitter descriptions differentiated from home page without changing artist facts.",
      "sitemapLastmodUpdated": true
    }
  ],
  "googleSearchConsole": {
    "checkedOn": "2026-10-04",
    "property": "sc-domain:yangtsunghann.com",
    "searchAnalytics": {
      "window": "last_28_settled_days",
      "settledThrough": "2026-09-29",
      "clicks": 5,
      "impressions": 37,
      "ctrPercent": 13.513513513513514,
      "averagePosition": 4.648648648648649
    },
    "inspectionQuotaAfterPriorityChecks": {
      "used": 2,
      "limit": 2000,
      "remaining": 1998
    },
    "priorityChecks": [
      {
        "url": "https://yangtsunghann.com/",
        "verdict": "PASS",
        "coverageState": "Submitted and indexed",
        "robotsTxtState": "ALLOWED",
        "indexingState": "INDEXING_ALLOWED",
        "lastCrawlTime": "2026-10-03T07:58:57Z",
        "pageFetchState": "SUCCESSFUL",
        "launchInterpretation": "healthy"
      },
      {
        "url": "https://yangtsunghann.com/en/artwork/tunnel-of-four-seasons/01/",
        "verdict": "NEUTRAL",
        "coverageState": "Not found (404)",
        "robotsTxtState": "ALLOWED",
        "indexingState": "INDEXING_STATE_UNSPECIFIED",
        "lastCrawlTime": "2026-10-03T08:44:59Z",
        "pageFetchState": "NOT_FOUND",
        "launchInterpretation": "google_stale_or_unrecovered_p0_watch"
      },
      {
        "url": "https://yangtsunghann.com/bibliography/colors-of-memory/",
        "verdict": "NEUTRAL",
        "coverageState": "Crawled - currently not indexed",
        "robotsTxtState": "ALLOWED",
        "indexingState": "INDEXING_STATE_UNSPECIFIED",
        "lastCrawlTime": "2026-10-03T11:44:45Z",
        "pageFetchState": "SUCCESSFUL",
        "launchInterpretation": "indexing_watch_not_site_fetch_failure"
      }
    ]
  },
  "launchBlockers": {
    "localPackageP0": 0,
    "localPackageP1": 0,
    "externalGoogleBlockers": 0,
    "externalGoogleWatchItems": 2,
    "interpretation": "The packaged site has no detected local launch-blocking defect. Two Google states remain watch items because indexing/crawl state can lag deployment; the English Four Seasons #01 old 404 state must be rechecked before launch, while Colors of Memory is fetch-successful but not indexed."
  },
  "watchItems": [
    {
      "priority": "P0 watch",
      "url": "https://yangtsunghann.com/en/artwork/tunnel-of-four-seasons/01/",
      "currentGoogleState": "Not found (404)",
      "lastGoogleCrawl": "2026-10-03T08:44:59Z",
      "currentPackageState": "route exists; canonical/indexability/internal-link checks pass locally",
      "launchAction": "Reinspect after the V2.71/V2.72 deployment. Do not treat the old Google crawl as proof the current route is still 404."
    },
    {
      "priority": "P1 watch",
      "url": "https://yangtsunghann.com/bibliography/colors-of-memory/",
      "currentGoogleState": "Crawled - currently not indexed",
      "lastGoogleCrawl": "2026-10-03T11:44:45Z",
      "currentPackageState": "route exists; fetch-success was reported by Google; local metadata/canonical/indexability checks pass",
      "launchAction": "Keep stable through launch; observe rather than churn metadata repeatedly."
    }
  ],
  "launchGates": [
    {
      "id": "static_integrity",
      "status": "pass",
      "expected": "84 indexable canonical URLs; zero broken internal links; zero missing referenced assets."
    },
    {
      "id": "metadata_integrity",
      "status": "pass",
      "expected": "84/84 unique titles and descriptions after Biography deduplication; OG/Twitter complete."
    },
    {
      "id": "structured_data_integrity",
      "status": "pass",
      "expected": "All packaged JSON-LD parses successfully."
    },
    {
      "id": "image_integrity",
      "status": "pass",
      "expected": "396/396 image refs have alt and width/height; referenced assets exist."
    },
    {
      "id": "bilingual_integrity",
      "status": "pass",
      "expected": "84/84 indexable pages have zh-Hant/en/x-default hreflang set."
    },
    {
      "id": "canonical_sitemap_integrity",
      "status": "pass",
      "expected": "84 canonical URLs exactly match 84 public sitemap URLs."
    },
    {
      "id": "legacy_domain_public_exposure",
      "status": "pass",
      "expected": "No public site HTML promotes yangtsunghan.com as current official domain."
    },
    {
      "id": "google_homepage_health",
      "status": "pass",
      "expected": "Homepage Submitted and indexed / fetch successful."
    },
    {
      "id": "google_priority_recovery",
      "status": "watch",
      "expected": "Four Seasons #01 EN should eventually receive a new successful Google crawl; Colors of Memory remains an indexing observation item."
    }
  ],
  "nextRelease": "V2.72 — UX / Visual / Mobile / Accessibility Hardening",
  "visiblePublicContentChanged": false,
  "uxHardening": {
    "registry": "/en/data/ux-hardening.json",
    "toolRoute": "/tools/ux-hardening.html",
    "status": "pass",
    "staticAccessibilityErrors": 0,
    "visualRegressionDeferredTo": "V2.76"
  },
  "bilingualContentFinalPass": {
    "registry": "/en/data/bilingual-content-final-pass.json",
    "toolRoute": "/tools/bilingual-content-final-pass.html",
    "status": "pass",
    "contentFreezeCandidate": true
  },
  "searchAiLaunchHardening": {
    "registry": "/en/data/search-ai-launch-hardening.json",
    "toolRoute": "/tools/search-ai-launch-hardening.html",
    "status": "pass_with_external_watch_items",
    "personEntityConsistency": "86/86",
    "publicCanonicalDomainObserved": true,
    "externalGoogleWatchItems": 2,
    "cdnWafNamedBotAcceptanceVerified": false
  },
  "analyticsLaunchBaseline": {
    "registry": "/en/data/analytics-launch-baseline.json",
    "toolRoute": "/tools/analytics-launch-baseline.html",
    "siteInstrumentation": "pass",
    "ga4ReadbackAvailable": false
  },
  "releaseCandidate": {
    "registry": "/en/data/release-candidate.json",
    "toolRoute": "/tools/release-candidate.html",
    "status": "automated_pass_manual_browser_gate_pending",
    "featureFreezeActivated": true,
    "contentFreezeDate": "2026-10-09",
    "qa": "/en/data/release-candidate.json",
    "manualSafariFirefoxGatePending": true
  },
  "publicLaunch": {
    "registry": "/en/data/public-launch.json",
    "toolRoute": "/tools/public-launch.html",
    "status": "launch_ready_not_deployed",
    "targetDate": "2026-10-10"
  },
  "imageRightsMetadata": "/en/data/image-rights-metadata.json",
  "imageRightsPatch": {
    "version": "3.0.1",
    "registry": "/en/data/image-rights-metadata.json",
    "status": "ready_not_deployed",
    "rightsPage": "/en/image-rights/",
    "indexableUrlCountChanged": false
  },
  "searchGrowth": "/en/data/search-growth.json"
}
