Skip to main content

release

Release Memos Web Clipper to Chrome Web Store and Firefox Add-ons: bump the version, package the extension, upload and submit updates, and replace only changed store assets. Also use to prepare or resume a release for this project.

Source facts

Repository
usememos/web-clipper
Last source activity
October 21, 2026 at 04:51
Detected SKILL.md language
English
Stars
42
Forks
4

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
release
description
Release Memos Web Clipper to Chrome Web Store and Firefox Add-ons: bump the version, package the extension, upload and submit updates, and replace only changed store assets. Also use to prepare or resume a release for this project.
# Release Web Clipper Default targets are the existing Chrome and Firefox listings. Include Edge only when requested and its listing is identified. A release request covers release preparation, a local release commit, package uploads, changed listing assets, and submission for review. Honor narrower requests such as prepare-only or upload-only. Creating or editing this skill does not execute a release. Pushes and GitHub Release publication are separate actions; use `docs/RELEASING.md` when they are requested. Firefox releases include the packaged extension only. Do not prepare or upload a source-code archive or add reviewer build instructions unless the user explicitly requests them. Keep reviewer notes focused on the changes and how to test them. All project paths below are relative to the repository root. Read [stores.md](references/stores.md) for listing identities, asset mappings, store submission details, and release records. ## 1. Establish the release - Inspect repository instructions, Git status, `package.json`, `CHANGELOG.md`, `scripts/package.mjs`, `.github/workflows/release.yml`, and `CHROMEWEBSTORE.md`. Use the project's pinned pnpm and a supported Node version. - Inspect each target dashboard for its published version, highest uploaded version, draft, and pending review. Read existing `docs/releases/` records if present. Local documents saying "prepared" or "submitted" are not live evidence. - Use the requested version. Otherwise use the next patch for fixes, a minor for features, and a major for breaking changes. If the repository already has an unreleased version ahead of the stores, finish that version rather than bumping again. The numeric version must be accepted by both stores and exceed versions already consumed there. Resume an existing matching submission without uploading it again. Never reuse a version for different package bytes. - When resuming uploads, reuse the verified archives and source commit from the incomplete run. Retrieve its exact artifacts if they are no longer local; do not rebuild an already consumed version and assume its bytes are identical. - Preserve unrelated work. Packaging rejects tracked and untracked changes; do not stash, discard, or commit unrelated files to satisfy it. If needed, prepare a clean isolated checkout containing the intended release changes. - Check that the three build values in `.env.example` have real production configuration available locally or through the existing release workflow. Do not ship example values or expose credentials. Preserve the Chromium public manifest key, OAuth application configuration, and Firefox add-on ID. ## 2. Determine changed store assets Compare each store separately with its last verified asset upload, using the source commits and SHA-256 hashes in its release record. Stores may differ even when their package versions match; assets can be updated without a package bump. - Inspect diffs in `assets/store/`, `assets/brand/`, `public/icons/`, `tools/store/`, and the production UI, styles, fonts, or copy rendered by the artboards. An unchanged JPEG can still be stale when its source UI changed. - For affected artwork, follow `tools/store/README.md` to export the relevant artboards with fonts loaded and the documented review-menu state. Run `pnpm brand:generate` when icon/brand inputs require regeneration. Inspect the exported images and dimensions, and refresh the contact sheet and six-file `store-assets.zip` when their constituent images change. - Compare the resulting upload files, not ZIP timestamps or documentation edits. Upload only files whose content changed for that store. Preserve image order, captions, locales, and unrelated listing settings. - If no trustworthy per-store baseline exists, inspect the current dashboard images against the local exports. Git tags are candidates for investigation, not proof of a store upload. Record confirmed matches; replace observed stale images. If equivalence cannot be established, resolve that specific baseline before replacing uncertain assets rather than silently replacing everything. ## 3. Prepare and package 1. Set `package.json` to the chosen version; `manifest.config.ts` reads it. Add accurate release notes at the top of `CHANGELOG.md` as `## [<version>]`. Update the relevant version history and listing information in `CHROMEWEBSTORE.md`, including permission/privacy explanations if behavior changed. Keep preparation status distinct from submission status. 2. Install dependencies with `pnpm install --frozen-lockfile` if needed. Run `pnpm lint` and `pnpm test`. If artwork sources changed, also run the two workspace checks in `tools/store/README.md`. Review `git diff --check`. 3. Commit only the coherent release changes with a Conventional Commit message. Confirm a clean tree and record the exact source commit. 4. Run `pnpm package`. It builds and validates locales/types, packages all four targets, and runs Firefox `web-ext lint`. Use these artifacts rather than hand-zipping `dist/` or the repository. 5. Verify archives and manifests using the checks in `release.yml`: all versions match; manual Chromium retains its key; store builds omit `key`/`update_url`; Firefox retains its add-on ID and uses `background.scripts`; Chrome and Edge packages match. Test ZIP integrity and record SHA-256 hashes of the artifacts. Smoke-test affected behavior in the packaged extension when practical; report any runtime checks that could not be performed. The files are `artifacts/memos-web-clipper-<target>-v<version>.zip`. Upload `chrome` to Chrome and `firefox` to Firefox. `chromium` is for manual installation; `assets/store/store-assets.zip` is an artwork bundle, not an extension package. If GitHub publication is included, follow the existing manual workflow at the exact committed ref, wait for completion, and use its verified artifacts. Do not replace an immutable published release or claim a local package is a GitHub release. ## 4. Upload and submit Follow the relevant store section in [stores.md](references/stores.md). Upload the package to the existing listing, wait for validation, resolve actionable validation errors, and update the changed supported assets before submission. Keep existing distribution settings. Submit a full release for review; stop at the saved draft when that is the requested scope. Prefer a configured store API for supported operations; otherwise use the authenticated browser. Use fresh UI state after uploads, dialogs, and navigation. If gallery scripting is unavailable, use supported native browser controls and file pickers. Recover from stale elements or focus errors by inspecting current state; do not repeat an uncertain submission or deletion blindly. Respect any action-specific confirmation required by the browser tool, reusing approval already given for the same replacements. Do not cancel another pending review, delete a version, or change release visibility to force progress. A matching pending submission is already submitted; a conflicting review may block that store while the other store proceeds. Only hand off steps requiring user input or access; continue independent work. ## 5. Verify and record Reopen the dashboard after saving and submission. Verify the uploaded version, saved image order/previews, and final store status. "Saving" or "Submitting" is not completion. Record Chrome's automatic/deferred publishing choice. Check the public listing when the update is live; pending review does not mean published. Save verification screenshots under ignored `tmp/` when using the browser. Write or update `docs/releases/<version>.md` using the record guidance in [stores.md](references/stores.md). Keep source commit and artifact hashes fixed even if a later documentation commit records store results. Update stale local status statements only from observed evidence. Report the version, release commit, artifact paths, checks performed, changed or already-matching assets per store, and each store's actual status with links. Identify any remaining blocker. Do not wait indefinitely for store review or schedule monitoring unless requested.
View on GitHub