$npx -y skills add levnikolaevich/claude-code-skills --skill ln-63-release-publisherPrepares and publishes a tagged GitHub release from repository evidence. Use for an explicit release request; not for ordinary commits, packages, or community news.
| 1 | # Release Publisher |
| 2 | |
| 3 | **Goal:** Prepare a reproducible release and publish it only after the user approves the exact tag and notes. |
| 4 | |
| 5 | **Execution contract:** Treat the ordered checkbox workflow below as this skill's Definition of Done. Work through every item in order, and mark it complete only when its action and required evidence are complete. `N/A`, skipped, unavailable, or delegated items remain incomplete. |
| 6 | Before returning, apply this skill's verdict, decision, and approval rules to every incomplete item and prepend **Checklist: X/Y complete**<br>**Incomplete: None | section/item — reason; outcome impact; exact next action**; list every incomplete item. |
| 7 | |
| 8 | ## Tool Routing |
| 9 | |
| 10 | | Need | Preferred capability | Fallback | |
| 11 | |---|---|---| |
| 12 | | Release boundary and commit evidence | Git history, tags, and diffs | Hosting API commit comparison | |
| 13 | | Existing release style and state | Authenticated GitHub CLI or connector | Public GitHub API for read-only evidence | |
| 14 | | Release identity and version scope | Repository policy, prior tags, and canonical version files when present | Stop only when the release identity remains ambiguous | |
| 15 | | Release validation | Repository-native gates and clean checkout | Manual structural checks with reduced confidence | |
| 16 | | Tag and GitHub Release creation | Git plus authenticated GitHub CLI | `BLOCKED`; do not emulate release state in files | |
| 17 | | Installation verification | Isolated environment against the documented distribution source | Clean source validation without install proof | |
| 18 | |
| 19 | Use a temporary notes file for publication so Markdown, quotes, and code blocks are not reinterpreted by the shell. Keep credentials in the host credential store and never echo them. |
| 20 | |
| 21 | Do not browse for generic release advice when repository policy and previous comparable releases answer the question. Use official host documentation only for current API or CLI behavior. |
| 22 | |
| 23 | ## Checklist |
| 24 | |
| 25 | - [ ] Confirm the user explicitly requested a release and identify the repository, release target, and intended audience. |
| 26 | - [ ] Read repository release rules before selecting a version, tag shape, files, or publication sequence. |
| 27 | - [ ] Verify GitHub CLI availability, authentication, repository access, and permission to create releases. |
| 28 | - [ ] Require a clean worktree or explicitly exclude unrelated changes before release preparation. |
| 29 | - [ ] Fetch tags and the target branch; confirm local HEAD is synchronized with the remote release branch. |
| 30 | - [ ] Find the latest relevant tag and GitHub Release rather than assuming the newest tag belongs to this release line. |
| 31 | - [ ] Inspect commits and full commit bodies from the previous release boundary to the proposed release commit. |
| 32 | - [ ] Read the affected manifests, authoritative documentation, installation instructions, configured catalogs, and user-facing migration notes when present. |
| 33 | - [ ] Treat commits and source diffs as evidence; use existing release notes only as secondary context. |
| 34 | |
| 35 | ## Version and Scope |
| 36 | |
| 37 | - [ ] Use the repository's declared versioning policy; do not impose CalVer, SemVer, or a shared catalog version when none is specified. |
| 38 | - [ ] If the release target or tag is ambiguous, stop and ask instead of inventing a convention. |
| 39 | - [ ] Confirm the proposed tag does not already exist locally or remotely. |
| 40 | - [ ] Change versions only in canonical version fields identified by repository instructions. |
| 41 | - [ ] Update only packages, plugins, or components included in the release; do not bump unrelated manifests for visual consistency. |
| 42 | - [ ] Keep a new distribution unit at its approved initial version unless this release explicitly advances it. |
| 43 | - [ ] Ensure the tag, release title, and notes describe the same release unit; require manifest-version alignment only for versioned manifests included in that unit. |
| 44 | - [ ] Document breaking installation or behavior changes in the repository's required migration surface. |
| 45 | - [ ] Do not create a `CHANGELOG.md` when repository policy says release notes and README are sufficient. |
| 46 | |
| 47 | ## Release Notes |
| 48 | |
| 49 | - [ ] Read the most recent comparable releases and preserve useful house style without copying stale structure. |
| 50 | - [ ] Group changes by user outcome, not by file list or internal implementation chronology. |
| 51 | - [ ] Lead with why the release matters, then state the concrete behavior users receive. |
| 52 | - [ ] Include exact install or update commands only after verifying them against the current authoritative documentation and applicable distribution metadata. |
| 53 | - [ ] Include migration steps for every confirmed breaking change, with old and new behavior clearly separated. |
| 54 | - [ ] Mention removed behavior plainly; do not disguise removal as simplification. |
| 55 | - [ ] Credit external contributors by verified handle and omit a contributors section for solo work. |
| 56 | - [ ] Link to canonical |