# Extension Publish

> Prepare, submit, and optimize Chrome Web Store listings. Covers workflow, checklist, rejection reasons, listing optimization, and CI/CD automation.

- **Type:** Skill
- **Install:** `agentstack add skill-quangpl-browser-extension-skills-extension-publish`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [quangpl](https://agentstack.voostack.com/s/quangpl)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [quangpl](https://github.com/quangpl)
- **Source:** https://github.com/quangpl/browser-extension-skills/tree/main/skills/extension-publish

## Install

```sh
agentstack add skill-quangpl-browser-extension-skills-extension-publish
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# extension-publishing

## Workflow

```
prepare → package → submit → review → publish
```

1. **Prepare**: assets, privacy policy, permission justifications, manifest
2. **Package**: `zip` source (exclude dev files), validate manifest
3. **Submit**: Chrome Web Store Developer Dashboard
4. **Review**: 1–3 days typical; up to 7 days for new publishers
5. **Publish**: auto or manual rollout

---

## Pre-Submission Checklist (Quick)

- [ ] Manifest v3 only (MV2 deprecated)
- [ ] `name`, `version`, `description` set in manifest
- [ ] Icons: 16×16, 48×48, 128×128 PNG
- [ ] Screenshots: min 1, 1280×800 or 640×400
- [ ] Single purpose clearly defined
- [ ] Only permissions actually used
- [ ] Privacy policy URL (required if collecting data)
- [ ] Permission justification field filled for sensitive perms
- [ ] No remote code execution (`eval`, remote scripts)
- [ ] All features functional in review build

Full checklist: [references/submission-checklist.md](references/submission-checklist.md)

---

## Top 10 Rejection Reasons

1. Single purpose violation — does too many unrelated things
2. Excessive/unnecessary permissions
3. Missing privacy policy (required when user data collected)
4. Missing permission justification in submission form
5. Description doesn't match functionality
6. Keyword spam in title/description
7. Remote code execution (`eval`, external scripts)
8. Improper user data handling or disclosure
9. Extension non-functional or crashes
10. Broken features / inaccessible links

Full details + fixes: [references/common-rejections.md](references/common-rejections.md)

---

## Listing Optimization Essentials

- **Title**: ` + `, max 45 chars, no keyword stuffing
- **Description first 150 chars**: shown in search — make them count
- **Structure**: problem → solution → key benefits → CTA
- **Screenshots**: annotate features, show real UI, 1280×800
- **Category**: choose most specific fit

Full guide: [references/store-listing-optimization.md](references/store-listing-optimization.md)

---

## CI/CD with chrome-webstore-upload

### Install

```bash
npm install -g chrome-webstore-upload-cli
```

### Upload & Publish

```bash
# Upload new version
chrome-webstore-upload upload \
  --source extension.zip \
  --extension-id $EXT_ID \
  --client-id $CLIENT_ID \
  --client-secret $CLIENT_SECRET \
  --refresh-token $REFRESH_TOKEN

# Publish
chrome-webstore-upload publish \
  --extension-id $EXT_ID \
  --client-id $CLIENT_ID \
  --client-secret $CLIENT_SECRET \
  --refresh-token $REFRESH_TOKEN
```

### Required Env Vars

| Var | Source |
|-----|--------|
| `EXT_ID` | Dashboard URL |
| `CLIENT_ID` | GCP OAuth client |
| `CLIENT_SECRET` | GCP OAuth client |
| `REFRESH_TOKEN` | Run OAuth flow once |

Full GitHub Actions pipeline: [references/ci-cd-automation.md](references/ci-cd-automation.md)

### Plasmo Built-in Publishing

Plasmo has integrated browser store submission (https://docs.plasmo.com/):
```bash
plasmo build           # Build for production
plasmo package         # Create store-ready zip
```

---

## Reference Files

| File | Content |
|------|---------|
| [submission-checklist.md](references/submission-checklist.md) | Complete pre-submission checklist with assets, manifest, privacy |
| [store-listing-optimization.md](references/store-listing-optimization.md) | Title, description, screenshots, keywords, localization |
| [common-rejections.md](references/common-rejections.md) | Top rejections with fixes, appeal process |
| [ci-cd-automation.md](references/ci-cd-automation.md) | GitHub Actions, versioning, build pipeline |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [quangpl](https://github.com/quangpl)
- **Source:** [quangpl/browser-extension-skills](https://github.com/quangpl/browser-extension-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-quangpl-browser-extension-skills-extension-publish
- Seller: https://agentstack.voostack.com/s/quangpl
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
