# Chrome Web Store — Submission Checklist

Everything you need to publish **Rewrite with AI** is in this folder.

## Files in this folder

| File | What it's for |
| ---- | ------------- |
| `LISTING.md` | All listing text — name, summary, description, permission justifications, data disclosures |
| `PRIVACY.md` | Privacy policy. Host it publicly and paste the URL into the dashboard |
| `rewrite-with-ai-v1.0.0.zip` | The packaged extension to upload |
| `generate_assets.py` | Regenerates the graphics below (run `python3 generate_assets.py`) |
| `graphics/` | All image assets (see sizes below) |

## Graphic assets (all in `graphics/`)

| File | Size | Where it goes | Required? |
| ---- | ---- | ------------- | --------- |
| `store-icon-128x128.png` | 128×128 | Store icon | ✅ Required |
| `screenshot-1-rightclick.png` | 1280×800 | Screenshot | ✅ ≥1 required |
| `screenshot-2-inplace.png` | 1280×800 | Screenshot | optional |
| `screenshot-3-autocomplete.png` | 1280×800 | Screenshot | optional |
| `screenshot-4-modes.png` | 1280×800 | Screenshot | optional |
| `screenshot-5-summary.png` | 1280×800 | Screenshot | optional |
| `promo-small-440x280.png` | 440×280 | Small promo tile | optional |
| `promo-marquee-1400x560.png` | 1400×560 | Marquee promo tile | optional |

> All screenshots are 1280×800 (the preferred size; 640×400 is also allowed).
> Up to 5 screenshots are accepted — all 5 here are ready to upload.

## Step-by-step

1. **Pay the one-time $5 developer fee** at the Chrome Web Store Developer
   Dashboard if you haven't already registered.
2. **Host the privacy policy.** Put `PRIVACY.md` (or an HTML version) on a public
   URL — a GitHub repo, GitHub Pages, or a Gist all work. Copy that URL.
3. **Create a new item** and upload `rewrite-with-ai-v1.0.0.zip`.
4. **Store listing tab** — paste from `LISTING.md`: summary, detailed
   description; set Category = *Productivity*, Language = *English (US)*. Upload
   the icon, screenshots, and promo tiles from `graphics/`.
5. **Privacy tab** — paste the Single-purpose text and each permission
   justification from `LISTING.md`. Check the data-usage disclosures, paste the
   privacy policy URL, and certify the three compliance boxes.
6. **Distribution** — Public (or Unlisted if you want a private link first).
7. **Submit for review.**

## Likely-review flags (be ready to explain)

These don't block publishing but commonly draw extra reviewer questions — the
justifications in `LISTING.md` already address them:

- **Broad host permissions** (`http://*/*`, `https://*/*`). Justified: the
  rewrite feature must work in any text field on any site. If you want a smoother
  review, consider switching to `activeTab` + on-demand injection only, but the
  current model is acceptable with the justification provided.
- **`tabs` permission.** Used only to find/open and drive the `chatgpt.com` tab
  in ChatGPT-tab mode.
- **Automating chatgpt.com.** Disclose plainly (the description and privacy
  policy do). It uses the user's own session and is not presented as an official
  ChatGPT product.
- **Remote code / API keys.** No remote code is loaded. The only network
  destinations are `api.openai.com` and `chatgpt.com`.

## Before you submit — quick sanity checks

- [ ] `manifest.json` version is `1.0.0` (bump it for every future update).
- [ ] Load the unzipped folder via `chrome://extensions` → *Load unpacked* and
      confirm both modes work end to end.
- [ ] Privacy policy URL resolves publicly.
- [ ] Screenshots reflect current UI (regenerate with `generate_assets.py` if you
      restyle the popup or menu).
