Cut an IPTVnator release — bump the version, generate release notes from .changes/, scaffold the website post, tag, and verify the draft. Use when asked to release, cut a version, prepare release notes, or publish a new version.
74
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
The pipeline turns accumulated .changes/*.md notes into all three release
surfaces. Order matters: the tag build extracts the CHANGELOG section into
the GitHub release body and fails if it is missing, so the changelog step
is not optional.
Pick the version — deliberate choice, edit version in the root
package.json. Bare semver only: any suffix flips electron-updater into
prerelease mode and leaks into installer version fields.
Review the notes — read every file in .changes/. Fix wording (user
language, not reviewer language), then:
pnpm run release:notes:validateGenerate the changelog section (idempotent per version — rerunning replaces the section, so regenerate freely until it reads well):
pnpm run release:notes:changelogScaffold the website post:
pnpm run release:notes:blogOutput is apps/website/src/content/blog/v0-XX-release-notes.mdx with
draft: true. The narrative intro, headlines, and description are
editorial — fill every TODO by hand. One post per minor version:
for a patch release, edit the existing post (the scaffold refuses to
overwrite without --force).
Screenshots — only from the fail-closed capture script against the mock servers, never from a real playlist or account: real streams, logos, and TMDB artwork are copyrighted, and credentials must never reach a published image.
pnpm nx run electron-backend:build-e2e # once
pnpm run release:screenshots # all manifest shots, dark+lightOutput goes to apps/website/public/blog/v0-XX/screenshots/. New feature
to showcase = new entry in tools/release/screenshots.manifest.json
(slug must match the note's screenshot: field). The run aborts and
deletes its frames on any guard violation (real-DB touch, external
request, credential-shaped text in frame, TMDB active).
Consume the notes (the only destructive step):
node tools/release/build-release-notes.mjs --consumeCommit, tag, push:
git add CHANGELOG.md .changes apps/website package.json
git commit -m "chore(release): v0.XX.0"
git tag v0.XX.0 && git push && git push --tagsVerify the draft release once build-and-make.yaml finishes: authored
notes on top, GitHub's generated commit list below, all platform assets
present (.dmg/.zip + latest-mac.yml, .exe/.msi + latest.yml,
.deb/.rpm/.AppImage/.snap/.flatpak + latest-linux*.yml,
blockmaps). Publish manually; flip the blog post to draft: false.
publish-snap.yaml).pnpm run i18n:check),
update the website v0-XX blog assets, announce in Telegram.deae0a2
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.