# GEO Agent Final Shopify Submission Runbook

Use this after the code-backed review packet is green and before pressing Submit in the Shopify Partner Dashboard.

## Pre-Submit Proof

Run this from the repo root and keep the output with the submission notes:

```bash
npm run review:smoke
```

Expected result: all public review packet URLs, commerce manifests, the static API index, OpenAPI, and Shopify Billing-only checkout surfaces return the expected status and content. Direct Fly-origin app-proxy calls should return 400 or 401 because Shopify's signed app-proxy context is required.

## Dashboard Sequence

1. Run Shopify's App Store AI self-review or AI Toolkit review using `marketing/app-review-ai-self-review.md`.
2. Paste the app metadata, scope justifications, protected-data statement, billing statement, and review-proof links from `marketing/app-review-partner-dashboard-fields.md`.
3. Paste tester instructions from `marketing/app-review-tester-instructions.md`.
4. Install the production app on a development store through Shopify Admin or the review install surface.
5. Approve a Shopify Billing subscription and confirm the embedded app shows the approved plan only after Shopify reports an active subscription.
6. Run the embedded app flow: dashboard scan, Products audit, Fixes generation with merchant review, Benchmark, Settings, and theme-extension guidance.
7. Verify signed storefront app-proxy outputs using `marketing/app-review-app-proxy-verification.md`.
8. Capture the demo screencast using `marketing/app-review-media-plan.md` and attach it to the submission.
9. Re-run `npm run review:smoke` after any dashboard field, media, or listing-copy change that touches public review URLs.

## Submit Boundary

Submit only after these dashboard-only gates are complete:

- AI self-review completed in Shopify's tooling.
- Development-store install opened the production embedded app.
- Shopify Billing approval completed inside Shopify Admin.
- Storefront app-proxy checks passed from the review store domain.
- Tester instructions and app metadata are pasted into the Partner Dashboard.
- Demo screencast is attached.

Do not claim final submission readiness from local tests, Fly deploy success, or public route smoke alone.

## Submission Notes

Use these proof URLs in the Partner Dashboard notes if space permits:

- 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
- Final submission runbook: https://geo-agent.fly.dev/app-review-final-submission-runbook.md
- Tester instructions: https://geo-agent.fly.dev/app-review-tester-instructions.md
- Billing verification: https://geo-agent.fly.dev/app-review-billing-verification.md
- App proxy verification: https://geo-agent.fly.dev/app-review-app-proxy-verification.md

## Post-Submit

If Shopify sends feedback, use `marketing/app-review-response-playbook.md`, update the narrow code or packet surface that changed, re-run the local verification command and `npm run review:smoke`, then respond with the live proof URL.
