Release Publisher skill

Prepares and publishes an explicitly requested tagged GitHub release.

by levnikolaevich·MIT license·★ 568 Stars on the repo·GitHub ↗

Use now

Files of Release Publisher

levnikolaevich/master1 file shown
SKILL.md
Show the full text123 lines

Release Publisher

Goal: Prepare a reproducible release and publish it only after the user approves the exact tag and notes.

Execution contract: The checklist defines completion. Track each item internally as PENDING, PROVEN with evidence, CLEARED with evidence its condition is absent, or UNPROVEN with a gap; reading, delegation, tool failure, a zero exit status, or a self-reported success is not proof; only the observed outcome is. Reconcile after each section. Before returning, resolve all PENDING, count only PROVEN and CLEARED, and apply verdict and approval rules to every gap. Preserve intent, scope, and existing authorization. Continue authorized work; ask only for consequential unresolved choices or required external approval. When no one can answer during the run, state the exact question and apply the skill's verdict for the remaining gap instead of waiting or guessing. Scale depth to material risk without skipping checks. Preserve dependency and safety order; otherwise choose an appropriate verification method. Accept equivalent user or repository evidence; no other skill, named artifact, or complete lifecycle is required. Preserve source requirement and decision IDs. Bind reused evidence to relevant source versions, dirty changes, configuration, and environment; invalidate only affected claims. On continuation, reconcile task, authorization, current state, and unresolved evidence. For long work, return a compact continuation record or update an already authorized artifact; read-only skills do not persist it. Distinguish artifact readiness, verified behavior, and external-action authority. Prepare authorized work before required approval. If blocked by an instruction, cite its exact source and unresolved boundary; do not invent approval gates from caution.

Tool Routing

Need Preferred capability Fallback
Release boundary and commit evidence Git history, tags, and diffs Hosting API commit comparison
Existing release style and state Authenticated GitHub CLI or connector Public GitHub API for read-only evidence
Release identity and version scope Repository policy, prior tags, and canonical version files when present Stop only when the release identity remains ambiguous
Release validation Repository-native gates and clean checkout Manual structural checks with reduced confidence
Tag and GitHub Release creation Git plus an authenticated GitHub release capability BLOCKED; do not emulate release state in files
Installation verification Isolated environment against the documented distribution source Clean source validation without install proof

When publishing through a shell, use a temporary notes file so Markdown, quotes, and code blocks are not reinterpreted. Keep credentials in the host credential store and never echo them.

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.

Checklist

Establish scope and evidence
  • Confirm the user explicitly requested a release and identify the repository, release target, and intended audience.
  • Read repository release rules before selecting a version, tag shape, files, or publication sequence.
  • Verify an authenticated GitHub release capability, repository access, and permission to create releases.
  • Require a clean worktree or explicitly exclude unrelated changes before release preparation.
  • Fetch tags and the target branch; confirm local HEAD is synchronized with the remote release branch.
  • Resolve the prior release boundary for this release line; for a first release, use the agreed initial history boundary and label it explicitly.
  • Inspect commits and full commit bodies from the previous release boundary to the proposed release commit.
  • Read the affected manifests, authoritative documentation, installation instructions, configured catalogs, and user-facing migration notes when present.
  • Treat commits and source diffs as evidence; use existing release notes only as secondary context.
Version and Scope
  • Use the repository's declared versioning policy; do not impose CalVer, SemVer, or a shared catalog version when none is specified.
  • If the release target or tag is ambiguous, stop and ask instead of inventing a convention.
  • Check the proposed tag locally and remotely. For a resumed approved release, verify its exact target and existing release state before continuing; otherwise treat a collision as a blocker, never overwrite it.
  • Prepare version changes only in canonical fields identified by repository instructions; keep them local and reviewable until proposal approval.
  • Update only packages, plugins, or components included in the release; do not bump unrelated manifests for visual consistency.
  • Keep a new distribution unit at its approved initial version unless this release explicitly advances it.
  • Ensure the tag, release title, and notes describe the same release unit; require manifest-version alignment only for versioned manifests included in that unit.
  • Document breaking installation or behavior changes in the repository's required migration surface.
Release Notes
  • Read the most recent comparable releases and preserve useful house style without copying stale structure.
  • Group changes by user outcome, not by file list or internal implementation chronology.
  • Lead with why the release matters, then state the concrete behavior users receive.
  • Include exact install or update commands only after verifying them against the current authoritative documentation and applicable distribution metadata.
  • Include migration steps for every confirmed breaking change, with old and new behavior clearly separated.
  • Mention removed behavior plainly; do not disguise removal as simplification.
  • Credit external contributors by verified handle and omit a contributors section for solo work.
  • Link to canonical documentation and repository paths that exist at the release commit.
  • Exclude claims about adoption, performance, compatibility, or counts that cannot be reproduced.
  • Distinguish measured facts from interpretation and future intent.
Validation and Approval
  • Run every repository release gate and the relevant product, package, plugin, skill, or marketplace checks for surfaces that exist.
  • When multiple host catalogs exist and repository policy requires parity, confirm they remain aligned; preserve every stable distribution identifier unless migration was approved.
  • When installation surfaces change, validate an isolated snapshot of the exact proposed tree before approval and identify its baseline and patch; after committing, verify that the release commit contains that validated tree.
  • Record commands, versions, exit codes, and skipped checks without exposing secrets.
  • Present the exact version changes, tag, title, full notes, validation evidence, and planned commands.
  • Wait for explicit user approval of that exact proposal before committing version changes, tagging, or publishing.
  • Reuse approval while version changes, target, tag, title, and notes remain exactly as approved; present changed publication content for renewed approval before publishing.
Publication
  • Reconcile prepared metadata and documentation with the approved proposal; apply any outstanding approved edits and exclude unrelated changes.
  • Confirm required release gates cover the final approved tree; rerun only checks invalidated by final edits or unresolved failures.
  • Commit and push the release commit using the authorized branch workflow.
  • Confirm required CI succeeds on the release commit before creating the tag.
  • Create an annotated or repository-standard tag pointing at the verified commit and push it without force.
  • Create the GitHub Release from a file containing the approved notes to preserve Markdown and shell safety.
  • Bind the published release to the checked commit, exact tag, and approved notes; do not infer application deployment or operational health from a GitHub Release.
  • Verify the published tag, target commit, title, body, and release URL through the hosting API.
  • Test documented installation or update from the repository's documented release or distribution source when the release changes an installation surface.
  • Do not publish npm, PyPI, NuGet, container, or other packages unless separately authorized.
  • Do not create a community announcement as an implicit side effect.
Failure Handling
  • Before public tagging, diagnose failures and correct bounded preparation defects within scope; reuse approval only if the proposal is unchanged. Stop on unresolved prerequisites and preserve the exact state.
  • If tag publication or release creation returns an uncertain result, inspect remote tag and release identity before retrying. Report partial state and resume only the missing approved operation; never create a duplicate or overwrite conflicting content.
  • Never delete or move a published tag without explicit approval.
  • Never overwrite an existing release or use force to conceal a bad release commit.

Verdict

  • RELEASED — tag and GitHub Release point to the verified commit and remote checks pass.
  • PREPARED — proposal and evidence are complete but publication awaits approval.
  • PARTIAL — externally visible release state exists but verification or a later step failed.
  • BLOCKED — release cannot proceed safely.

Self-Check

  • Reconcile before returning. Check item-level evidence, requirement coverage, contradictions, scope, verdict, and applicable cleanup. Correct the report or authorized artifacts. Reuse valid evidence; do not automatically rescan the repository or rerun successful commands. Repeat checks only for relevant changes, failures, or unresolved evidence. Disclose remaining gaps.

Output Contract

Report in the user's language, in this order; label all five fields and state each fact once. Use controlled plain language: one fact per sentence, usually under 20 words, active voice, and one term per concept, with no synonyms for verdicts, IDs, or states. Small results may use one line per field; omit empty tables and do not copy linked artifacts:

  1. Result: The exact skill-specific verdict token first, then the supported outcome.
  2. Scope: Reviewed/changed scope, exclusions, baseline, and material assumptions.
  3. Evidence: Skill-specific fields below; distinguish facts, inferences, and unverified claims. Link artifacts; use tables when useful.
  4. Verification: Checks/results, unavailable evidence, and applicable cleanup/external state.
  5. Completion: Checklist: X/Y complete; Incomplete: None or each UNPROVEN item's reason, outcome impact, and exact next action; residual risks and required decisions.

Skill-specific evidence: Release scope, canonical version changes, tag/commit, title, full proposed notes before approval or release URL afterward, validation evidence, and publication state. For PARTIAL, enumerate every externally visible object and the approval needed before deleting, moving, or replacing it.

1---
2name: ln-62-release-publisher
3description: "Prepares and publishes an explicitly requested tagged GitHub release; does not deploy applications."
4---
5 
6# Release Publisher
7 
8**Goal:** Prepare a reproducible release and publish it only after the user approves the exact tag and notes.
9 
10**Execution contract:** The checklist defines completion. Track each item internally as `PENDING`, `PROVEN` with evidence, `CLEARED` with evidence its condition is absent, or `UNPROVEN` with a gap; reading, delegation, tool failure, a zero exit status, or a self-reported success is not proof; only the observed outcome is. Reconcile after each section. Before returning, resolve all `PENDING`, count only `PROVEN` and `CLEARED`, and apply verdict and approval rules to every gap.
11Preserve intent, scope, and existing authorization. Continue authorized work; ask only for consequential unresolved choices or required external approval. When no one can answer during the run, state the exact question and apply the skill's verdict for the remaining gap instead of waiting or guessing. Scale depth to material risk without skipping checks. Preserve dependency and safety order; otherwise choose an appropriate verification method.
12Accept equivalent user or repository evidence; no other skill, named artifact, or complete lifecycle is required. Preserve source requirement and decision IDs. Bind reused evidence to relevant source versions, dirty changes, configuration, and environment; invalidate only affected claims.
13On continuation, reconcile task, authorization, current state, and unresolved evidence. For long work, return a compact continuation record or update an already authorized artifact; read-only skills do not persist it. Distinguish artifact readiness, verified behavior, and external-action authority.
14Prepare authorized work before required approval. If blocked by an instruction, cite its exact source and unresolved boundary; do not invent approval gates from caution.
15 
16 
17## Tool Routing
18 
19| Need | Preferred capability | Fallback |
20|---|---|---|
21| Release boundary and commit evidence | Git history, tags, and diffs | Hosting API commit comparison |
22| Existing release style and state | Authenticated GitHub CLI or connector | Public GitHub API for read-only evidence |
23| Release identity and version scope | Repository policy, prior tags, and canonical version files when present | Stop only when the release identity remains ambiguous |
24| Release validation | Repository-native gates and clean checkout | Manual structural checks with reduced confidence |
25| Tag and GitHub Release creation | Git plus an authenticated GitHub release capability | `BLOCKED`; do not emulate release state in files |
26| Installation verification | Isolated environment against the documented distribution source | Clean source validation without install proof |
27 
28When publishing through a shell, use a temporary notes file so Markdown, quotes, and code blocks are not reinterpreted. Keep credentials in the host credential store and never echo them.
29 
30Do 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.
31 
32## Checklist
33 
34### Establish scope and evidence
35 
36- [ ] Confirm the user explicitly requested a release and identify the repository, release target, and intended audience.
37- [ ] Read repository release rules before selecting a version, tag shape, files, or publication sequence.
38- [ ] Verify an authenticated GitHub release capability, repository access, and permission to create releases.
39- [ ] Require a clean worktree or explicitly exclude unrelated changes before release preparation.
40- [ ] Fetch tags and the target branch; confirm local HEAD is synchronized with the remote release branch.
41- [ ] Resolve the prior release boundary for this release line; for a first release, use the agreed initial history boundary and label it explicitly.
42- [ ] Inspect commits and full commit bodies from the previous release boundary to the proposed release commit.
43- [ ] Read the affected manifests, authoritative documentation, installation instructions, configured catalogs, and user-facing migration notes when present.
44- [ ] Treat commits and source diffs as evidence; use existing release notes only as secondary context.
45 
46### Version and Scope
47 
48- [ ] Use the repository's declared versioning policy; do not impose CalVer, SemVer, or a shared catalog version when none is specified.
49- [ ] If the release target or tag is ambiguous, stop and ask instead of inventing a convention.
50- [ ] Check the proposed tag locally and remotely. For a resumed approved release, verify its exact target and existing release state before continuing; otherwise treat a collision as a blocker, never overwrite it.
51- [ ] Prepare version changes only in canonical fields identified by repository instructions; keep them local and reviewable until proposal approval.
52- [ ] Update only packages, plugins, or components included in the release; do not bump unrelated manifests for visual consistency.
53- [ ] Keep a new distribution unit at its approved initial version unless this release explicitly advances it.
54- [ ] Ensure the tag, release title, and notes describe the same release unit; require manifest-version alignment only for versioned manifests included in that unit.
55- [ ] Document breaking installation or behavior changes in the repository's required migration surface.
56 
57### Release Notes
58 
59- [ ] Read the most recent comparable releases and preserve useful house style without copying stale structure.
60- [ ] Group changes by user outcome, not by file list or internal implementation chronology.
61- [ ] Lead with why the release matters, then state the concrete behavior users receive.
62- [ ] Include exact install or update commands only after verifying them against the current authoritative documentation and applicable distribution metadata.
63- [ ] Include migration steps for every confirmed breaking change, with old and new behavior clearly separated.
64- [ ] Mention removed behavior plainly; do not disguise removal as simplification.
65- [ ] Credit external contributors by verified handle and omit a contributors section for solo work.
66- [ ] Link to canonical documentation and repository paths that exist at the release commit.
67- [ ] Exclude claims about adoption, performance, compatibility, or counts that cannot be reproduced.
68- [ ] Distinguish measured facts from interpretation and future intent.
69 
70### Validation and Approval
71 
72- [ ] Run every repository release gate and the relevant product, package, plugin, skill, or marketplace checks for surfaces that exist.
73- [ ] When multiple host catalogs exist and repository policy requires parity, confirm they remain aligned; preserve every stable distribution identifier unless migration was approved.
74- [ ] When installation surfaces change, validate an isolated snapshot of the exact proposed tree before approval and identify its baseline and patch; after committing, verify that the release commit contains that validated tree.
75- [ ] Record commands, versions, exit codes, and skipped checks without exposing secrets.
76- [ ] Present the exact version changes, tag, title, full notes, validation evidence, and planned commands.
77- [ ] Wait for explicit user approval of that exact proposal before committing version changes, tagging, or publishing.
78- [ ] Reuse approval while version changes, target, tag, title, and notes remain exactly as approved; present changed publication content for renewed approval before publishing.
79 
80### Publication
81 
82- [ ] Reconcile prepared metadata and documentation with the approved proposal; apply any outstanding approved edits and exclude unrelated changes.
83- [ ] Confirm required release gates cover the final approved tree; rerun only checks invalidated by final edits or unresolved failures.
84- [ ] Commit and push the release commit using the authorized branch workflow.
85- [ ] Confirm required CI succeeds on the release commit before creating the tag.
86- [ ] Create an annotated or repository-standard tag pointing at the verified commit and push it without force.
87- [ ] Create the GitHub Release from a file containing the approved notes to preserve Markdown and shell safety.
88- [ ] Bind the published release to the checked commit, exact tag, and approved notes; do not infer application deployment or operational health from a GitHub Release.
89- [ ] Verify the published tag, target commit, title, body, and release URL through the hosting API.
90- [ ] Test documented installation or update from the repository's documented release or distribution source when the release changes an installation surface.
91- [ ] Do not publish npm, PyPI, NuGet, container, or other packages unless separately authorized.
92- [ ] Do not create a community announcement as an implicit side effect.
93 
94### Failure Handling
95 
96- [ ] Before public tagging, diagnose failures and correct bounded preparation defects within scope; reuse approval only if the proposal is unchanged. Stop on unresolved prerequisites and preserve the exact state.
97- [ ] If tag publication or release creation returns an uncertain result, inspect remote tag and release identity before retrying. Report partial state and resume only the missing approved operation; never create a duplicate or overwrite conflicting content.
98- [ ] Never delete or move a published tag without explicit approval.
99- [ ] Never overwrite an existing release or use force to conceal a bad release commit.
100 
101## Verdict
102 
103- `RELEASED` — tag and GitHub Release point to the verified commit and remote checks pass.
104- `PREPARED` — proposal and evidence are complete but publication awaits approval.
105- `PARTIAL` — externally visible release state exists but verification or a later step failed.
106- `BLOCKED` — release cannot proceed safely.
107 
108## Self-Check
109 
110- [ ] **Reconcile before returning.** Check item-level evidence, requirement coverage, contradictions, scope, verdict, and applicable cleanup. Correct the report or authorized artifacts. Reuse valid evidence; do not automatically rescan the repository or rerun successful commands. Repeat checks only for relevant changes, failures, or unresolved evidence. Disclose remaining gaps.
111 
112## Output Contract
113 
114Report in the user's language, in this order; label all five fields and state each fact once. Use controlled plain language: one fact per sentence, usually under 20 words, active voice, and one term per concept, with no synonyms for verdicts, IDs, or states. Small results may use one line per field; omit empty tables and do not copy linked artifacts:
115 
1161. **Result:** The exact skill-specific verdict token first, then the supported outcome.
1172. **Scope:** Reviewed/changed scope, exclusions, baseline, and material assumptions.
1183. **Evidence:** Skill-specific fields below; distinguish facts, inferences, and unverified claims. Link artifacts; use tables when useful.
1194. **Verification:** Checks/results, unavailable evidence, and applicable cleanup/external state.
1205. **Completion:** `Checklist: X/Y complete`; `Incomplete: None` or each `UNPROVEN` item's reason, outcome impact, and exact next action; residual risks and required decisions.
121 
122**Skill-specific evidence:** Release scope, canonical version changes, tag/commit, title, full proposed notes before approval or release URL afterward, validation evidence, and publication state. For `PARTIAL`, enumerate every externally visible object and the approval needed before deleting, moving, or replacing it.
123 

Discussion

Alternatives

CI/CD and AutomationAutomates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test runners in CI, or establish deployment strategies.Infrastructure & ops · MITVersion Bump & Release WorkflowAutomated semantic versioning and release workflow for Claude Code plugins. Handles version increments across package.json, marketplace.json, plugin.json manifests, build verification, git tagging, GitHub releases, and changelog generation. NPM publishing is the final human-required handoff because the maintainer raised npm security.Infrastructure & ops · Apache-2.0Orca CLIOperate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser through the `orca` CLI. Use when the user says "$orca-cli", "Orca worktree", "child worktree", "spawn codex/claude in a worktree", "read/wait/send Orca terminal", "handoff" / "handover" / "give this to another agent", "Orca browser", "orca artifacts", or "share skills". Prefer it over raw git worktree, ad hoc PTYs, or Computer Use when Orca state is involved. Use Computer Use only when a visible window needs GUI control that a CLI, filesystem, or API cannot do.Infrastructure & ops · MITOrca OrchestrationCoordinate supervised Orca workers: threaded messages, blocking ask/reply, task dispatch, worker_done/escalation waits, task DAGs, decision gates, coordinator loops, and decomposing work across agents. Use `orca-cli` for full ownership handoffs — "hand off", "handoff", "handover", "give this to another agent", "another worktree" — unless asked to supervise, monitor, or coordinate a DAG, and for terminal control, lightweight terminal prompts, shell commands, Orca worktree management, and reading or waiting on terminals.Infrastructure & ops · MIT