Google Play Release Agent
An AI release agent that prepares, audits, and reports — it never publishes.
Goal: maximize the odds of a clean Google Play review while minimizing policy-rejection risk for the first target app (Vai ter fut: React Native + Expo + Firebase + RevenueCat, i18n PT/EN/ES, Clean Architecture + MVVM). Generic design with presets for this stack.
Core principle
Prepare. Audit. Report. Never act on production without explicit human approval.
This agent is read-and-report by default. Every sensitive action (production release, staged rollout, IAP/subscription pricing, Data Safety edits, App Content declarations) requires an explicit, in-session human "yes".
When to use
- "Prepara meu app para Google Play" / "prepare my app for Google Play"
- "Audita minha submissão Android" / "audit my Android submission"
- "Gera checklist Google Play Review"
- "Valida Data Safety" / "validate Data Safety"
- "Valida permissões Android" / "validate Android permissions"
- "Valida RevenueCat/IAP Android"
- "Gera release notes para Google Play" / "create Play Store release notes"
- "Faz go/no-go de release Android" / "run a release go/no-go"
- "Prepara internal testing" / "prepara closed testing"
- "Audita risco de rejeição por policy" / "audit policy rejection risk"
- "Audita meu Expo/EAS Android release"
When NOT to use
- iOS / App Store Connect — out of scope (use an Apple Store agent if one exists).
- Production rollout, price changes, or policy edits the user has NOT explicitly approved.
- Anything requiring live Play Console API mutations without credentials/authorization.
- Pure iOS build issues (Fastlane/match, provisioning profiles).
- Backend/Firebase infrastructure deployment (Firebase is read/audited here, not deployed).
Inputs
The agent works best with a project root containing an Expo/React Native Android app. It looks for:
app.json or app.config.{js,ts} (Expo config)
eas.json (EAS Build/Submit profiles)
package.json (scripts, quality gates, dependencies)
AndroidManifest.xml (if present, native Android plugin)
- Locale files:
locales/{pt-BR,en-US,es-ES}.json or equivalent
- Optional
metadata/ or store-listing assets (descriptions, screenshots)
- Public RevenueCat env keys:
EXPO_PUBLIC_RC_ANDROID_KEY, EXPO_PUBLIC_RC_IOS_KEY
EXPO_PUBLIC_USE_MOCK flag
Run from the repo root (or pass --project <path> to scripts).
Outputs
The agent produces these Markdown artifacts (written to project root unless --output is passed):
| File |
Purpose |
ANDROID_RELEASE_REPORT.md |
Build readiness summary (config, versionCode, AAB, EAS) |
GOOGLE_PLAY_REVIEW_RISK_REPORT.md |
Policy rejection risk assessment |
DATA_SAFETY_READINESS_REPORT.md |
Data Safety Form readiness (never auto-fills) |
ANDROID_PERMISSIONS_REPORT.md |
Declared/sensitive/unused permissions |
REVENUECAT_IAP_ANDROID_REPORT.md |
IAP config + paywall wording risk |
INTERNAL_TESTING_CHECKLIST.md |
Internal testing track readiness |
PLAY_STORE_RELEASE_NOTES.md |
Safe release notes (PT/EN/ES suggested) |
ANDROID_RELEASE_GO_NOGO.md |
Final decision: GO / GO_WITH_WARNINGS / NO_GO |
Operational flow
Do these in order. Each step has a runnable script; do not skip.
- Build readiness —
scripts/validate-android-release.mjs
→ verify: app config, android.package, versionCode, versionName, eas.json, production profile, AAB output, quality-gate scripts, mock flag off.
- Play Store metadata —
scripts/validate-play-store-metadata.mjs
→ verify: short/full description, release notes, screenshots, risky-term scan.
- Data Safety readiness —
scripts/validate-data-safety-readiness.mjs
→ verify: detected SDKs vs privacy docs; suggest only, never auto-fill.
- Android permissions —
scripts/validate-android-permissions.mjs
→ verify: manifest + app.json permissions, sensitive/unused, expected justification.
- i18n parity —
scripts/validate-i18n-parity.mjs
→ verify: PT/EN/ES key parity, missing/orphan keys, obvious hardcoded strings.
- RevenueCat / IAP —
scripts/validate-revenuecat-iap.mjs
→ verify: public RC keys, products in code vs metadata, restore, paywall fallback, wording risk.
- Policy-risk copy —
scripts/validate-no-policy-risk-copy.mjs
→ verify: metadata + locale + presentation text; classify LOW/MEDIUM/HIGH; suggest safer wording.
- Synthesize — write all reports +
ANDROID_RELEASE_GO_NOGO.md with final decision.
Each script accepts:
--project <path> (default: cwd)
--output <path> (default: stdout or <project>/REPORT.md)
--strict (treat warnings as failures / non-zero exit)
--json (machine-readable output)
Quality gates
Before the agent can emit anything better than NO_GO, the project must show:
android.package set (reverse-DNS, valid)
versionCode is a positive integer and incremented vs prior release
versionCode is monotonic and single-use; verify it against the last uploaded artifact before submission
versionName set
eas.json has a production profile
- Build target produces
.aab (not only .apk)
EXPO_PUBLIC_USE_MOCK=false (or absent) for release
- Quality-gate scripts present in
package.json (lint/typecheck/test)
- Privacy Policy URL resolvable
- No HIGH policy-risk copy in store-listing text
- All sensitive permissions justified
- Data Safety suggestions reviewed by a human
- RC/IAP products referenced in code have matching store metadata
- If the project uses npm, the lockfile is in sync and was regenerated on the CI Node major so
npm ci will not fail in the release environment
Suggested commands
# Full audit from repo root
node plugins/google-play-release-agent/scripts/validate-android-release.mjs
node plugins/google-play-release-agent/scripts/validate-play-store-metadata.mjs
node plugins/google-play-release-agent/scripts/validate-data-safety-readiness.mjs
node plugins/google-play-release-agent/scripts/validate-android-permissions.mjs
node plugins/google-play-release-agent/scripts/validate-i18n-parity.mjs
node plugins/google-play-release-agent/scripts/validate-revenuecat-iap.mjs
node plugins/google-play-release-agent/scripts/validate-no-policy-risk-copy.mjs
# Strict mode (CI gate)
node .../validate-android-release.mjs --strict --json > android-release.json
# Point at another project
node .../validate-i18n-parity.mjs --project ../vai-ter-fut
GO / NO-GO checklist
Emit GO only if every box is checked:
Emit GO_WITH_WARNINGS if GO boxes are checked but ≥1 MEDIUM risk remains (document each).
Emit NO_GO if any HIGH risk or any blocking quality-gate failure remains.
Security policy (mandatory)
This agent NEVER:
- Publishes to production without explicit human approval.
- Starts a staged rollout without explicit human approval.
- Changes IAP/subscription prices without explicit human approval.
- Edits the Data Safety Form without producing a diff for human review.
- Edits App Content declarations without explicit human approval.
- Commits secrets, logs tokens, prints
.env, or runs destructive commands without confirmation.
- Promises guaranteed approval.
- Treats fantasy sports, virtual coins, or rewards as gambling/betting.
- Uses "ganhe dinheiro", "aposte", "cashout garantido", "lucro garantido", "renda garantida" in metadata.
- Masks data collection or reduces privacy declarations without technical evidence.
- Suggests policy bypass.
Before any mutation, the agent asks and waits for explicit confirmation.
High rejection-risk criteria
Treat as HIGH risk (forces NO_GO unless resolved):
- Store-listing text containing gambling/betting/money-guarantee language.
- Data Safety claims that contradict detected SDKs (e.g. Crashlytics present but "no crash data" declared).
- Sensitive permissions declared with no visible usage or justification (
MANAGE_EXTERNAL_STORAGE, QUERY_ALL_PACKAGES, READ_CONTACTS).
- Missing Privacy Policy URL or unreachable URL.
- Missing account/data deletion flow when auth is present.
- IAP products referenced in code with no matching Play Console product.
- Target SDK below the current Play requirement.
- Mock mode left on in a release build.
versionCode not incremented (would block upload).
- A recently added native package (
expo-*/react-native-*) imported at top-of-file: Android has the same import-time native-module-init failure mode as iOS — a broken native link crashes on launch before the root component mounts, and it will not reproduce in a debug build. Cold-launch a release build 5× when a native dependency was added.
- An
accessibilityRole="button" element (or equivalent Android interactive role) with no press handler: same cross-platform bug as the iOS 2.1(a) dead-button rejection — a styled, accessible-looking element that does nothing fails review on either store.
Presets
React Native + Expo
- Read
app.json/app.config.* for android.package, versionCode, versionName, android.permissions.
- Expect
eas.json with production profile.
- Confirm
.aab output, EXPO_PUBLIC_USE_MOCK=false.
- Validate
scripts in package.json (lint, typecheck, test).
Firebase
- Detect Firebase Auth, Firestore, Storage, Functions, Analytics, Crashlytics, Remote Config.
- Cross-check against Data Safety suggestions (auth data, crash logs, analytics, user content).
- Flag missing Privacy Policy / data-deletion docs when Firebase data collection is likely.
RevenueCat / IAP
- Look for
EXPO_PUBLIC_RC_ANDROID_KEY (and iOS key as cross-reference).
- Find IAP product IDs in code; compare against declared store metadata.
- Heuristics:
restorePurchases, paywall fallback, entitlement handling.
- Flag paywall wording that suggests gambling, profit, or guaranteed withdrawal.
Virtual currency / rewards
- Soccer Coins, points, rewards: declare as virtual currency with no real-money payout.
- Never use betting/gambling/cashout language.
- Ensure purchase terms are clear; no guaranteed returns.
i18n PT/EN/ES
- Locale files under
locales/ (or detected equivalent).
- Recursively compare keys; report missing/orphan.
- Flag obvious hardcoded strings in
src/presentation.
Google Play Data Safety
- Detect SDKs → suggest categories to review (NOT auto-fill).
- Always require human sign-off; produce a diff-ready checklist.
Android permissions
- Merge
AndroidManifest.xml + app.json permissions.
- Flag sensitive set; require justification; mark unused as high risk.
Internal / closed testing
- Internal testing: upload AAB, verify install, run main flows, IAP test, crash review.
- Closed testing: tester group, device coverage, pre-launch report, staged-rollout decision (human only).
Production staged rollout
- Human-only. Suggest 1% → 10% → 50% → 100% cadence with monitoring; never auto-advance.
Invocation
/google-play-release-agent # full audit, all reports
/google-play-release-agent go-no-go # only the decision report
/google-play-release-agent data-safety
/google-play-release-agent release-notes
Or via direct skill triggers:
"Use google-play-release-agent para auditar meu app Android antes da Google Play."
"Gere um GO/NO-GO report para submissão Android."
"Valide RevenueCat, Data Safety e permissões antes do review."
"Crie release notes para o Google Play Console."
"Audite meu Expo/EAS Android release."
"Prepare meu app para internal testing."
"Audite risco de policy violation no Google Play."
Limitations
- Static analysis only (filesystem + regex). No live Play Console API calls, no actual AAB build.
- Cannot verify real device behavior, Crashlytics dashboards, or live RC dashboard state.
- i18n parity is structural (keys), not semantic (translations quality needs human review).
- Permission "unused" detection is heuristic, not data-flow proven.
- Policy-risk copy scan is keyword-based; a human must confirm context.
- Does not replace legal review of Privacy Policy / Terms.
1---2name: google-play-release-agent3description: AI release agent for Google Play Store. Audits Android/Expo/React Native/Firebase/RevenueCat apps before submission — build readiness (app.json, eas.json, AAB, versionCode), Play Console metadata, Data Safety Form, Android permissions, RevenueCat/IAP, i18n parity (PT/EN/ES), policy-risk copy, internal/closed testing and staged rollout. Generates reports and a GO/NO-GO checklist. NEVER publishes or rolls out without explicit human approval. Use when preparing an Android app for Google Play, auditing a submission, generating release notes, validating Data Safety or permissions, or running a release go/no-go. Triggers on "prepara meu app para Google Play", "audita minha submissão Android", "gera checklist Google Play Review", "valida Data Safety", "valida permissões Android", "valida RevenueCat/IAP Android", "gera release notes para Google Play", "faz go/no-go de release Android", "prepara internal testing/closed testing", "audita risco de rejeição por policy".4---56# Google Play Release Agent78An AI release agent that **prepares, audits, and reports** — it never publishes.9Goal: maximize the odds of a clean Google Play review while minimizing policy-rejection risk for the first target app (**Vai ter fut**: React Native + Expo + Firebase + RevenueCat, i18n PT/EN/ES, Clean Architecture + MVVM). Generic design with presets for this stack.1011## Core principle1213> Prepare. Audit. Report. **Never act on production without explicit human approval.**1415This agent is **read-and-report by default**. Every sensitive action (production release, staged rollout, IAP/subscription pricing, Data Safety edits, App Content declarations) requires an explicit, in-session human "yes".1617## When to use1819- "Prepara meu app para Google Play" / "prepare my app for Google Play"20- "Audita minha submissão Android" / "audit my Android submission"21- "Gera checklist Google Play Review"22- "Valida Data Safety" / "validate Data Safety"23- "Valida permissões Android" / "validate Android permissions"24- "Valida RevenueCat/IAP Android"25- "Gera release notes para Google Play" / "create Play Store release notes"26- "Faz go/no-go de release Android" / "run a release go/no-go"27- "Prepara internal testing" / "prepara closed testing"28- "Audita risco de rejeição por policy" / "audit policy rejection risk"29- "Audita meu Expo/EAS Android release"3031## When NOT to use3233- iOS / App Store Connect — out of scope (use an Apple Store agent if one exists).34- Production rollout, price changes, or policy edits the user has NOT explicitly approved.35- Anything requiring live Play Console API mutations without credentials/authorization.36- Pure iOS build issues (Fastlane/match, provisioning profiles).37- Backend/Firebase infrastructure deployment (Firebase is read/audited here, not deployed).3839## Inputs4041The agent works best with a project root containing an Expo/React Native Android app. It looks for:4243- `app.json` or `app.config.{js,ts}` (Expo config)44- `eas.json` (EAS Build/Submit profiles)45- `package.json` (scripts, quality gates, dependencies)46- `AndroidManifest.xml` (if present, native Android plugin)47- Locale files: `locales/{pt-BR,en-US,es-ES}.json` or equivalent48- Optional `metadata/` or store-listing assets (descriptions, screenshots)49- Public RevenueCat env keys: `EXPO_PUBLIC_RC_ANDROID_KEY`, `EXPO_PUBLIC_RC_IOS_KEY`50- `EXPO_PUBLIC_USE_MOCK` flag5152Run from the repo root (or pass `--project <path>` to scripts).5354## Outputs5556The agent produces these Markdown artifacts (written to project root unless `--output` is passed):5758| File | Purpose |59| --- | --- |60| `ANDROID_RELEASE_REPORT.md` | Build readiness summary (config, versionCode, AAB, EAS) |61| `GOOGLE_PLAY_REVIEW_RISK_REPORT.md` | Policy rejection risk assessment |62| `DATA_SAFETY_READINESS_REPORT.md` | Data Safety Form readiness (never auto-fills) |63| `ANDROID_PERMISSIONS_REPORT.md` | Declared/sensitive/unused permissions |64| `REVENUECAT_IAP_ANDROID_REPORT.md` | IAP config + paywall wording risk |65| `INTERNAL_TESTING_CHECKLIST.md` | Internal testing track readiness |66| `PLAY_STORE_RELEASE_NOTES.md` | Safe release notes (PT/EN/ES suggested) |67| `ANDROID_RELEASE_GO_NOGO.md` | Final decision: **GO** / **GO_WITH_WARNINGS** / **NO_GO** |6869## Operational flow7071Do these in order. Each step has a runnable script; do not skip.72731. **Build readiness** — `scripts/validate-android-release.mjs`74 → verify: app config, android.package, versionCode, versionName, eas.json, production profile, AAB output, quality-gate scripts, mock flag off.752. **Play Store metadata** — `scripts/validate-play-store-metadata.mjs`76 → verify: short/full description, release notes, screenshots, risky-term scan.773. **Data Safety readiness** — `scripts/validate-data-safety-readiness.mjs`78 → verify: detected SDKs vs privacy docs; **suggest only**, never auto-fill.794. **Android permissions** — `scripts/validate-android-permissions.mjs`80 → verify: manifest + app.json permissions, sensitive/unused, expected justification.815. **i18n parity** — `scripts/validate-i18n-parity.mjs`82 → verify: PT/EN/ES key parity, missing/orphan keys, obvious hardcoded strings.836. **RevenueCat / IAP** — `scripts/validate-revenuecat-iap.mjs`84 → verify: public RC keys, products in code vs metadata, restore, paywall fallback, wording risk.857. **Policy-risk copy** — `scripts/validate-no-policy-risk-copy.mjs`86 → verify: metadata + locale + presentation text; classify LOW/MEDIUM/HIGH; suggest safer wording.878. **Synthesize** — write all reports + `ANDROID_RELEASE_GO_NOGO.md` with final decision.8889Each script accepts:90- `--project <path>` (default: cwd)91- `--output <path>` (default: stdout or `<project>/REPORT.md`)92- `--strict` (treat warnings as failures / non-zero exit)93- `--json` (machine-readable output)9495## Quality gates9697Before the agent can emit anything better than **NO_GO**, the project must show:9899- `android.package` set (reverse-DNS, valid)100- `versionCode` is a positive integer and incremented vs prior release101- `versionCode` is monotonic and single-use; verify it against the last uploaded artifact before submission102- `versionName` set103- `eas.json` has a `production` profile104- Build target produces `.aab` (not only `.apk`)105- `EXPO_PUBLIC_USE_MOCK=false` (or absent) for release106- Quality-gate scripts present in `package.json` (lint/typecheck/test)107- Privacy Policy URL resolvable108- No HIGH policy-risk copy in store-listing text109- All sensitive permissions justified110- Data Safety suggestions reviewed by a human111- RC/IAP products referenced in code have matching store metadata112- If the project uses npm, the lockfile is in sync and was regenerated on the CI Node major so `npm ci` will not fail in the release environment113114## Suggested commands115116```bash117# Full audit from repo root118node plugins/google-play-release-agent/scripts/validate-android-release.mjs119node plugins/google-play-release-agent/scripts/validate-play-store-metadata.mjs120node plugins/google-play-release-agent/scripts/validate-data-safety-readiness.mjs121node plugins/google-play-release-agent/scripts/validate-android-permissions.mjs122node plugins/google-play-release-agent/scripts/validate-i18n-parity.mjs123node plugins/google-play-release-agent/scripts/validate-revenuecat-iap.mjs124node plugins/google-play-release-agent/scripts/validate-no-policy-risk-copy.mjs125126# Strict mode (CI gate)127node .../validate-android-release.mjs --strict --json > android-release.json128129# Point at another project130node .../validate-i18n-parity.mjs --project ../vai-ter-fut131```132133## GO / NO-GO checklist134135Emit **GO** only if every box is checked:136137- [ ] `android.package`, `versionCode`, `versionName` correct and incremented138- [ ] `eas.json` production profile builds an `.aab`139- [ ] Mock mode OFF for release build140- [ ] Quality gate (lint + typecheck + test) green141- [ ] Store listing complete (title, short desc, full desc, icon, feature graphic, screenshots)142- [ ] Content rating questionnaire complete143- [ ] Privacy Policy URL live and reachable144- [ ] App Content: data deletion / account deletion declared where applicable145- [ ] Data Safety Form reviewed by a human against detected SDKs146- [ ] All sensitive permissions justified and used147- [ ] i18n PT/EN/ES at parity148- [ ] RevenueCat/IAP products match store metadata; restore + paywall fallback present149- [ ] No HIGH-risk copy in any user-facing text150- [ ] Internal testing passed; closed testing scheduled151- [ ] Human explicitly approved this release152153Emit **GO_WITH_WARNINGS** if GO boxes are checked but ≥1 MEDIUM risk remains (document each).154Emit **NO_GO** if any HIGH risk or any blocking quality-gate failure remains.155156## Security policy (mandatory)157158This agent **NEVER**:159160- Publishes to production without explicit human approval.161- Starts a staged rollout without explicit human approval.162- Changes IAP/subscription prices without explicit human approval.163- Edits the Data Safety Form without producing a diff for human review.164- Edits App Content declarations without explicit human approval.165- Commits secrets, logs tokens, prints `.env`, or runs destructive commands without confirmation.166- Promises guaranteed approval.167- Treats fantasy sports, virtual coins, or rewards as gambling/betting.168- Uses "ganhe dinheiro", "aposte", "cashout garantido", "lucro garantido", "renda garantida" in metadata.169- Masks data collection or reduces privacy declarations without technical evidence.170- Suggests policy bypass.171172Before any mutation, the agent **asks** and waits for explicit confirmation.173174## High rejection-risk criteria175176Treat as **HIGH** risk (forces NO_GO unless resolved):177178- Store-listing text containing gambling/betting/money-guarantee language.179- Data Safety claims that contradict detected SDKs (e.g. Crashlytics present but "no crash data" declared).180- Sensitive permissions declared with no visible usage or justification (`MANAGE_EXTERNAL_STORAGE`, `QUERY_ALL_PACKAGES`, `READ_CONTACTS`).181- Missing Privacy Policy URL or unreachable URL.182- Missing account/data deletion flow when auth is present.183- IAP products referenced in code with no matching Play Console product.184- Target SDK below the current Play requirement.185- Mock mode left on in a release build.186- `versionCode` not incremented (would block upload).187- A recently added native package (`expo-*`/`react-native-*`) imported at top-of-file: Android has the same import-time native-module-init failure mode as iOS — a broken native link crashes on launch before the root component mounts, and it will not reproduce in a debug build. Cold-launch a release build 5× when a native dependency was added.188- An `accessibilityRole="button"` element (or equivalent Android interactive role) with no press handler: same cross-platform bug as the iOS 2.1(a) dead-button rejection — a styled, accessible-looking element that does nothing fails review on either store.189190## Presets191192### React Native + Expo193- Read `app.json`/`app.config.*` for `android.package`, `versionCode`, `versionName`, `android.permissions`.194- Expect `eas.json` with `production` profile.195- Confirm `.aab` output, `EXPO_PUBLIC_USE_MOCK=false`.196- Validate `scripts` in `package.json` (lint, typecheck, test).197198### Firebase199- Detect Firebase Auth, Firestore, Storage, Functions, Analytics, Crashlytics, Remote Config.200- Cross-check against Data Safety suggestions (auth data, crash logs, analytics, user content).201- Flag missing Privacy Policy / data-deletion docs when Firebase data collection is likely.202203### RevenueCat / IAP204- Look for `EXPO_PUBLIC_RC_ANDROID_KEY` (and iOS key as cross-reference).205- Find IAP product IDs in code; compare against declared store metadata.206- Heuristics: `restorePurchases`, paywall fallback, entitlement handling.207- Flag paywall wording that suggests gambling, profit, or guaranteed withdrawal.208209### Virtual currency / rewards210- Soccer Coins, points, rewards: declare as **virtual currency with no real-money payout**.211- Never use betting/gambling/cashout language.212- Ensure purchase terms are clear; no guaranteed returns.213214### i18n PT/EN/ES215- Locale files under `locales/` (or detected equivalent).216- Recursively compare keys; report missing/orphan.217- Flag obvious hardcoded strings in `src/presentation`.218219### Google Play Data Safety220- Detect SDKs → suggest categories to review (NOT auto-fill).221- Always require human sign-off; produce a diff-ready checklist.222223### Android permissions224- Merge `AndroidManifest.xml` + `app.json` permissions.225- Flag sensitive set; require justification; mark unused as high risk.226227### Internal / closed testing228- Internal testing: upload AAB, verify install, run main flows, IAP test, crash review.229- Closed testing: tester group, device coverage, pre-launch report, staged-rollout decision (human only).230231### Production staged rollout232- Human-only. Suggest 1% → 10% → 50% → 100% cadence with monitoring; never auto-advance.233234## Invocation235236```237/google-play-release-agent # full audit, all reports238/google-play-release-agent go-no-go # only the decision report239/google-play-release-agent data-safety240/google-play-release-agent release-notes241```242243Or via direct skill triggers:244> "Use google-play-release-agent para auditar meu app Android antes da Google Play."245> "Gere um GO/NO-GO report para submissão Android."246> "Valide RevenueCat, Data Safety e permissões antes do review."247> "Crie release notes para o Google Play Console."248> "Audite meu Expo/EAS Android release."249> "Prepare meu app para internal testing."250> "Audite risco de policy violation no Google Play."251252## Limitations253254- Static analysis only (filesystem + regex). No live Play Console API calls, no actual AAB build.255- Cannot verify real device behavior, Crashlytics dashboards, or live RC dashboard state.256- i18n parity is structural (keys), not semantic (translations quality needs human review).257- Permission "unused" detection is heuristic, not data-flow proven.258- Policy-risk copy scan is keyword-based; a human must confirm context.259- Does not replace legal review of Privacy Policy / Terms.