parish-release
Release the new farakurim.cz site with `pnpm release` - preview the commits, version and staged uploads, ask the user for an explicit yes, then upload uploads/, tag vX.Y.Z and push, which checks, buil
SKILL.md.claude/skills/parish-release/SKILL.md
GitHubRelease the site
pnpm release does the release: it uploads the staged files, tags and pushes, and the pushed tag is checked, built
and published. pnpm release --local publishes from this machine instead. How and where the site is deployed is the
scripts' business (docs/deployment.md), not this skill's.
Release
Preview: run
pnpm release. Without a terminal it only previews: it checks the tree is clean, onmainand not behindorigin/main, lists the commits since the last tag, picks the version (minor for afeatoutside thecontentscope, patch otherwise) and lists the new files for/uploads/and the new or changed cron scripts (cron-scripts/). If it stops on a dirty tree (oftenAGENTS.mdre-added bynext dev), ask the user to commit or discard it.Ask the user, with the version, the commits, the uploads and any cron scripts from the preview, for example:
Release v1.1.0? (2 commits, 3 new files in /uploads/)
Wait for a clear yes; it publishes the site. Without it, stop: the commits stay as they are.
Release:
pnpm release --yes(add--majoronly when the user asks). It uploads the new files and the cron scripts, makes the commitchore(release): vX.Y.Zand the tag, and pushesmainwith the tag.Stop there: do not query the run (no
gh, no GitHub API). Tell the user the release is pushed and that the repo's Actions tab shows the check, the build, the linked-uploads check, the deploy and the Verify step. A failed run is fixed in a new commit and released with a new version.
Never move or reuse a pushed tag.
Release from this machine
Only when the user asks, e.g. because GitHub Actions is down: pnpm release --local previews more (a minute or two). It
builds with RELEASE_BUILD=1, which stops first unless .env.local sets the Google Calendar key and both Matomo
variables, runs the full check (Prettier, the site tests, lint, types) and a fresh pnpm build, and summarises the sync
of out/ (new, changed, deleted files) with every deleted file outside _next/. Name any deleted page or file outside
_next/ in the question. After the yes, pnpm release --local --yes runs the checks and the build again, uploads the
new files, checks that every linked upload is online, publishes out/, verifies the live site, then commits, tags
and pushes; the commit's trailer Release-Deploy: local keeps the workflow from deploying the tag again. Report the
version and the verify lines. If the run stops after publishing (verify failed), the site is live but untagged: tell the
user, fix it in a new commit and release again.