release-visual · git:20261104.7d687ca · 2026-11-04 · sha256 974d4da689591e60
release-visual git:20261104.7d687caA
Immutable. This exact content never changes and is served at /api/v1/blob/974d4da689591e60.
--- name: release-visual description: Generate the self-host release announcement visual when preparing a release or announcing newly added Apps. Discover added Apps between refs and render the approved Logo hub with pulses, rather than inventing a new layout. --- # Release visual Read `docs/releasing.md` for publication and `video/reel/release/README.md` for renderer requirements. This skill prepares assets; publishing a release still requires the user's approval. ## Discover Confirm the release version, target ref and previous published stable CLI tag with `gh release list` and `git log`. Use the highest stable CLI release with binary archives, not the legacy skill-pack tags or the `new-cli-` twin. Fetch the refs before comparing them. From the repository root, run: ```bash jq -r '.apps[].id' site/src/data/catalog.json | grep -Fx -f - <(bash scripts/release-new-apps.sh <previous-tag> <target-ref>) ``` The script also lists Apps hidden from the Catalog; the filter keeps only Catalog Apps, which the renderer requires. Use exactly the filtered App ids and their count. An empty result means no new-Apps visual: report that and continue with ordinary release notes. Do not substitute sample Apps or announce existing Apps as new. ## Render Work from the target ref so the Catalog and release agree. Read the renderer's README for its existing dependencies; reuse the installed toolchain. For 1 to 24 new Apps, run from `video/reel`: ```bash npm run release-visual -- --apps <comma-separated-ids> --version X.Y.Z --out <absolute-output-directory> ``` Up to six Apps render as one column; 7 to 24 render as a grid of up to six rows and four columns. Only for more than 24, split the ids into groups of at most 24 in separate output directories and rename each pair with a group suffix. Keep all Apps represented once. Keep renders outside tracked source files, except the SVG committed for embedding below. Check that the PNG and animated SVG exist, show the correct version and every selected App, and have readable labels. Preview the SVG through a local server when visual verification is authorized; check its reduced-motion fallback. Stop on a missing icon or unknown App rather than replacing it silently; add the icon to `video/reel/assets/icons/` from the Dashboard Icons commit pinned in `site/src/lib/catalog.ts`, and run the web gate because the site's share images use the same folder. The approved design is the Logo hub, with pulses to the new Apps and along each grid row. ## Embed Release assets download as `application/octet-stream`, so an uploaded SVG never animates in the notes. Commit the SVG to `docs/assets/releases/` in a PR and, after it merges, embed it from `raw.githubusercontent.com` pinned to that commit, linked to the PNG uploaded as a release asset. The renderer README has the exact Markdown. Use descriptive alt text listing the new Apps and preserve the rest of the release notes. Private repository assets require an authorized viewer; do not claim anonymous availability. Download the uploaded files and compare them with the originals before publishing, following `docs/releasing.md`. Finish with the App ids, generated file paths, release link if published, and any presentation check that could not be completed.