# Plugin assets — WordPress.org repo

These are the binary assets the WordPress.org plugin directory expects. They live in this folder for staging; on submission they're uploaded into the SVN repo's top-level `/assets/` directory (NOT inside the plugin folder).

## Status

| File | Size | Status | Source |
| --- | --- | --- | --- |
| `icon-128x128.png` | 128 × 128 | ✅ generated | `scripts/generate-assets.py` |
| `icon-256x256.png` | 256 × 256 | ✅ generated | `scripts/generate-assets.py` |
| `banner-772x250.png` | 772 × 250 | ✅ generated | `scripts/generate-assets.py` |
| `banner-1544x500.png` | 1544 × 500 | ✅ generated | `scripts/generate-assets.py` |
| `screenshot-1.png` | 1280 × 800 | ⏳ todo | Settings page (capture from real WP) |
| `screenshot-2.png` | 1280 × 800 | ⏳ todo | Knowledge Base page |
| `screenshot-3.png` | 1280 × 800 | ⏳ todo | Dashboard page |
| `screenshot-4.png` | 1280 × 800 | ⏳ todo | Widget on a live site |

`screenshot-N.png` filenames must match the order in `readme.txt` → Screenshots.

## Regenerating the icons + banners

```bash
cd wordpress-plugin
../backend/.venv/bin/python scripts/generate-assets.py
```

The script is deterministic — same input, identical bytes out. Brand colors live in the script as `INK`, `COPPER`, `PAPER`, mirroring `dashboard/tailwind.config.js`. To rebrand, edit those constants.

## Producing the screenshots — already-captured raws

If you have raw screenshots at any dimensions, save them into `_raw/` with these names and run the processor:

```
assets/_raw/01-settings.png    Aetheris Chat → Settings (full WP admin window)
assets/_raw/02-knowledge.png   Aetheris Chat → Knowledge Base (with success notice)
assets/_raw/03-dashboard.png   The Aetheris dashboard's Overview page (linked from WP)
assets/_raw/04-frontend.png    A live storefront with the chat widget visible
```

```bash
cd wordpress-plugin
../backend/.venv/bin/python scripts/process-screenshots.py
```

Outputs `screenshot-{1..4}.png` at exactly 1280×800 with smart cropping:

- **01 + 02** anchored LEFT — keeps the WP admin sidebar visible
- **03** centered — editorial layout, balanced
- **04** anchored RIGHT — keeps the chat widget visible

The `_raw/` directory is gitignored; only the processed 1280×800 PNGs are committed. Re-run any time you replace a raw — script is deterministic.

## Capturing fresh

Spin up a clean WordPress install (the lightest options, in order):

1. **Local by Flywheel** — [localwp.com](https://localwp.com), one-click WP, takes 2 min.
2. **`wp-env`** — `npx @wordpress/env start` in any directory; needs Docker.
3. **`playground.wordpress.net`** — runs WP entirely in the browser via WASM. Zero install.

Then:

1. Activate the **Twenty Twenty-Four** theme (default, neutral) so screenshots match what WordPress.org reviewers expect to see.
2. Install the plugin: **Plugins → Add New → Upload Plugin → `aetheris-ai-chat.zip`**.
3. Paste your Public Key + API Key on the **Aetheris Chat → Settings** page so the dashboard tab populates.
4. Resize the browser to **1280×800** (use Chrome DevTools' device toolbar — set responsive viewport).
5. Capture each admin page:
   - `screenshot-1.png` → **Aetheris Chat → Settings** (full page, scrolled to the top)
   - `screenshot-2.png` → **Aetheris Chat → Knowledge Base**
   - `screenshot-3.png` → **Aetheris Chat → Dashboard**
   - `screenshot-4.png` → A blog post on the front-end with the chat widget open
6. Compress with `pngquant --quality 70-90 --output assets/screenshot-N.png assets/screenshot-N.png` (if installed; optional but cuts file size ~70%).

## Submission

```bash
# After your plugin is approved on wordpress.org/plugins
svn co https://plugins.svn.wordpress.org/aetheris-ai-chat
cp -R wordpress-plugin/aetheris-ai-chat/aetheris-ai-chat.php aetheris-ai-chat/trunk/
cp -R wordpress-plugin/aetheris-ai-chat/{readme.txt,uninstall.php,LICENSE.txt,includes,admin,languages} aetheris-ai-chat/trunk/
cp -R wordpress-plugin/aetheris-ai-chat/assets/*.png aetheris-ai-chat/assets/
cd aetheris-ai-chat
svn add --force trunk assets
svn ci -m "Release 1.0.0"

# Tag the release
svn cp trunk tags/1.0.0
svn ci -m "Tag 1.0.0"
```

Note: `assets/README.md` and `assets/*.svg` source files should NOT go into SVN. Only the four `.png` files get copied.
