# GEO Agent App Review Response Playbook

Use this after Shopify sends review feedback or a rejection notice. Keep responses factual, narrow, and tied to the live proof URLs.

## Response Template

```
Thanks for the review. We updated GEO Agent to address the issue and verified the live app-review packet again.

Changed:
- <short description of the fix>

Verification:
- Live review packet: https://geo-agent.fly.dev/app-review
- Machine-readable packet: https://geo-agent.fly.dev/app-review.json
- Evidence ledger: https://geo-agent.fly.dev/app-review-evidence-ledger.md
- Live smoke: npm run review:smoke

The app still uses Shopify OAuth, Shopify Billing subscriptions only, the /apps/geo app proxy, and merchant-approved product changes.
```

## Common Feedback Paths

### Billing or Charges

- Reconfirm that all app charges use Shopify Billing subscriptions only.
- Link https://geo-agent.fly.dev/app-review-billing-verification.md.
- If the issue is code-backed, verify `/app/billing` creates an `appSubscriptionCreate` approval URL and `/app/billing/callback` updates the local plan only after `currentAppInstallation.activeSubscriptions` confirms approval.
- Do not mention Stripe Payment Link, direct card checkout, x402, SPT, or machine-payment rails in the response.

### App Proxy

- Reconfirm the app proxy prefix/subpath is `apps / geo`.
- Link https://geo-agent.fly.dev/app-review-app-proxy-verification.md.
- Explain that direct Fly-origin `/api/llms-txt` can return 400 or 401 because signed Shopify app-proxy context is required.
- Do not add `read_themes` for this issue. The app proxy uses `write_app_proxy`; theme activation remains merchant-controlled.

### Protected Customer Data

- Reconfirm that GEO Agent does not request customer or order scopes.
- Link https://geo-agent.fly.dev/app-review-data-use.md.
- Explain that benchmark prompts use product names and buyer-intent query text only.
- Do not claim token encryption unless the storage layer actually encrypts session/token values.

### AI Feature Disclosure

- Link https://geo-agent.fly.dev/app-review-ai-self-review.md.
- Reconfirm that merchants review and approve generated product-description changes before applying them.
- State that benchmark output is informational product-data readiness analysis, not guaranteed ranking, recommendation, traffic, or sales lift.

### Screenshots or Screencast

- Link https://geo-agent.fly.dev/app-review-media-plan.md.
- Re-capture only the requested asset when possible.
- Keep screenshots free of live customer PII, off-platform checkout references, pricing captions, guaranteed outcome claims, and theme-file access implications.

### Scopes

- Reconfirm requested scopes: `read_products`, `write_products`, `write_app_proxy`.
- Link https://geo-agent.fly.dev/app-review-partner-dashboard-fields.md.
- If Shopify asks for a scope justification, use the field packet text verbatim unless code behavior changed.

## Before Replying

1. Apply the narrow code or copy fix.
2. Run:

```bash
npx -y -p node@20.19.0 -p yarn@1.22.22 -c 'node -v && yarn -v && yarn test && yarn build'
npm run review:smoke
```

3. Update https://geo-agent.fly.dev/app-review-evidence-ledger.md if the boundary between code-backed proof and Partner Dashboard-only gates changed.
4. Reply with only the changed behavior and proof links.
