diff --git a/.github/workflows/app-discovery-qa.yml b/.github/workflows/app-discovery-qa.yml index 8f390854..df61a628 100644 --- a/.github/workflows/app-discovery-qa.yml +++ b/.github/workflows/app-discovery-qa.yml @@ -16,6 +16,8 @@ on: - tests/instant-judge-support-growth.test.mjs - support/roast-me/index.html - tests/roastme-support-growth.test.mjs + - support/future-me/index.html + - tests/futureme-support-growth.test.mjs - tests/idea-market-support-growth.test.mjs - tests/debate-me-support-growth.test.mjs - tests/dotchi-support-growth.test.mjs @@ -48,6 +50,8 @@ on: - tests/instant-judge-support-growth.test.mjs - support/roast-me/index.html - tests/roastme-support-growth.test.mjs + - support/future-me/index.html + - tests/futureme-support-growth.test.mjs - tests/idea-market-support-growth.test.mjs - tests/debate-me-support-growth.test.mjs - tests/dotchi-support-growth.test.mjs @@ -83,4 +87,4 @@ jobs: - name: Verify non-destructive release scripts have valid shell syntax run: bash -n scripts/publish_app_discovery.sh scripts/check_app_discovery_live.sh - name: Verify search, referral links and guide listings - run: node --test tests/catalog-growth.test.mjs tests/search-landing-growth.test.mjs tests/dotchi-support-growth.test.mjs tests/debate-me-support-growth.test.mjs tests/idea-market-support-growth.test.mjs tests/blur-support-growth.test.mjs tests/instant-judge-support-growth.test.mjs tests/roastme-support-growth.test.mjs + run: node --test tests/catalog-growth.test.mjs tests/search-landing-growth.test.mjs tests/dotchi-support-growth.test.mjs tests/debate-me-support-growth.test.mjs tests/idea-market-support-growth.test.mjs tests/blur-support-growth.test.mjs tests/instant-judge-support-growth.test.mjs tests/roastme-support-growth.test.mjs tests/futureme-support-growth.test.mjs diff --git a/scripts/check_app_discovery_live.sh b/scripts/check_app_discovery_live.sh index 1cc0a225..380924b1 100644 --- a/scripts/check_app_discovery_live.sh +++ b/scripts/check_app_discovery_live.sh @@ -85,6 +85,14 @@ grep -Fq 'support_roast_me_hero' "$tmp/roastme.html" || { echo 'FAIL RoastMe cam if grep -Eiq 'AI-generated roasts|Get roasted by AI and friends|100% anonymous' "$tmp/roastme.html"; then echo 'FAIL RoastMe promises unverified AI roasts or absolute anonymity' >&2; exit 1 fi +# FutureMe landing must not promise unrelated letter/time-capsule features or fixed premium prices. +fetch '/support/future-me/' 'futureme.html' +grep -Fq 'Explore AI-generated future scenarios for fun' "$tmp/futureme.html" || { echo 'FAIL FutureMe first-view copy stale' >&2; exit 1; } +grep -Fq 'data-position="hero"' "$tmp/futureme.html" || { echo 'FAIL FutureMe first-screen Play CTA missing' >&2; exit 1; } +grep -Fq 'support_future_me_hero' "$tmp/futureme.html" || { echo 'FAIL FutureMe Play campaign missing' >&2; exit 1; } +if grep -Eiq 'Letters to future self|Time capsule feature|FutureMe Premium.*[0-9]+/(month|year)|FutureMe Premium 提供月度|NT\\$150/月' "$tmp/futureme.html"; then + echo 'FAIL FutureMe support page contains outdated feature or pricing claims' >&2; exit 1 +fi fetch '/robots.txt' 'robots.txt' grep -Fq 'Allow: /icons/apps/' "$tmp/robots.txt" || { echo 'FAIL Google image crawl allow not live' >&2; exit 1; } echo 'PASS: catalog, guides, priority search landings, store CTAs, icon crawl policy and sitemap current (HTTP 200)' diff --git a/scripts/publish_app_discovery.sh b/scripts/publish_app_discovery.sh index b4964ae0..123ca650 100644 --- a/scripts/publish_app_discovery.sh +++ b/scripts/publish_app_discovery.sh @@ -15,7 +15,7 @@ root="${APP_SITE_DEPLOY_ROOT:-/var/www/html}" if [[ ! "$host" =~ ^[a-zA-Z0-9_.@-]+$ || ! "$root" =~ ^/var/www/[a-zA-Z0-9_./-]+$ ]]; then echo 'Invalid APP_SITE_DEPLOY_HOST or APP_SITE_DEPLOY_ROOT' >&2; exit 2 fi -files=(index.html apps.html sitemap.xml robots.txt guides/quick-games/index.html guides/daily-habits/index.html guides/decision-helpers/index.html guides/ai-tools/index.html support/brain-burst/index.html support/snaplingo/index.html support/face-reaction-battle/index.html support/twotaku/index.html support/debate-me/index.html support/idea-market/index.html support/blur/index.html support/instant-judge/index.html support/roast-me/index.html) +files=(index.html apps.html sitemap.xml robots.txt guides/quick-games/index.html guides/daily-habits/index.html guides/decision-helpers/index.html guides/ai-tools/index.html support/brain-burst/index.html support/snaplingo/index.html support/face-reaction-battle/index.html support/twotaku/index.html support/debate-me/index.html support/idea-market/index.html support/blur/index.html support/instant-judge/index.html support/roast-me/index.html support/future-me/index.html) for file in "${files[@]}"; do [[ -s "$file" ]] || { echo "Missing source file: $file" >&2; exit 2; } done diff --git a/support/future-me/index.html b/support/future-me/index.html index b0a56b15..da7caaa9 100644 --- a/support/future-me/index.html +++ b/support/future-me/index.html @@ -4,8 +4,8 @@ - FutureMe – AI Predictions & Future Self Letters | SK APPS - + FutureMe – AI Future Predictions & Reflection | SK APPS +