Cline CLI Release Publisher
cline/cline
Walks through releasing the Cline CLI package to npm: release notes, version bump, matching git tag, and either the GitHub workflow or a local publish.
Walks the canonical CalVer release flow for senpi, from a clean main checkout through changelog audit, checks, tag push, GitHub Release and npm publishing.
$ npx skills add code-yeongyu/senpi --skill release-publish -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install code-yeongyu/senpi release-publish --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/agent/skills/release-publish .claude/skills/release-publish && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "release-publish" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.github/agent/skills/release-publish into .claude/skills/release-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-publish", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/code-yeongyu/senpi/tree/main/.github/agent/skills/release-publishType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add code-yeongyu/senpi --skill release-publish -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install code-yeongyu/senpi release-publish --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/agent/skills/release-publish .agents/skills/release-publish && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-publish" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.github/agent/skills/release-publish into .agents/skills/release-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-publish", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add code-yeongyu/senpi --skill release-publish -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install code-yeongyu/senpi release-publish --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/agent/skills/release-publish .cursor/skills/release-publish && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release-publish" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.github/agent/skills/release-publish into .cursor/skills/release-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-publish", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/code-yeongyu/senpi.git --path .github/agent/skills/release-publish--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add code-yeongyu/senpi --skill release-publish -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install code-yeongyu/senpi release-publish --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/agent/skills/release-publish .gemini/skills/release-publish && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release-publish" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.github/agent/skills/release-publish into .gemini/skills/release-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-publish", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install code-yeongyu/senpi release-publishInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add code-yeongyu/senpi --skill release-publish -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/agent/skills/release-publish .github/skills/release-publish && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release-publish" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.github/agent/skills/release-publish into .github/skills/release-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-publish", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add code-yeongyu/senpi --skill release-publish -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install code-yeongyu/senpi release-publish --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/code-yeongyu/senpi.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/agent/skills/release-publish .opencode/skills/release-publish && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release-publish" agent skill from https://github.com/code-yeongyu/senpi/tree/main/.github/agent/skills/release-publish into .opencode/skills/release-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-publish", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release-publishWalks the canonical CalVer release flow for senpi, from a clean main checkout through changelog audit, checks, tag push, GitHub Release and npm publishing.
A checklist for releasing the senpi project. From a clean main checkout, scripts/release.mjs runs after confirming the branch and worktree, validating the CalVer version, auditing the changelog and writing product-facing release notes with scripts/release-notes.mjs. It then runs npm run check, npm run build and CI=1 npm test, creates the release commit and tag, adds a next-cycle changelog commit and pushes main and the tag.
Pre-flight rules include using a clean dedicated clone when the main checkout has foreign state, never disturbing other people's work, and never rerunning release.mjs after the tag is pushed. npm publishing is delegated: the tag pipeline dispatches a publish-npm.yml workflow in publish-only mode, which is what npm's trusted publisher matches, and the public GitHub Release waits for that run. After the push, the build-binaries workflow run is watched.
Read from SKILL.md and the folder at commit 0fa9139. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmghnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
UPSTREAM_AUTOMATION_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Senpi Release Publishing loads about 1.7k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 834 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from code-yeongyu/senpi at commit 0fa9139, republished under its MIT licence (© code-yeongyu). 834 words, ~1,670 tokens.
.claude/skills/release-publish/SKILL.md (or your agent's skills folder).Use this skill when releasing senpi with the canonical CalVer flow, pushing a release tag, publishing the GitHub Release, or publishing packages to npm.
Run scripts/release.mjs from a clean main checkout.
main.packages/coding-agent/CHANGELOG.md via scripts/release-notes.mjs.npm run check.npm run build.CI=1 npm test.main and the tag.AGENTS.md and scripts/AGENTS.md.UPSTREAM_AUTOMATION_TOKEN exists for authenticated protected-main pushes.publish-npm job no longer publishes — it dispatches publish-npm.yml in publish-only mode (the proven route from the v2026.7.28-x and v2026.8.4 recoveries) and gates the public GitHub Release on that run's success. npm's trusted publisher matches the publish-npm.yml workflow identity only; never reintroduce a direct publish or an environment: on the publish path (the environment subject is what npm rejects).scripts/release.mjs after the tag has been pushed.E404 noise for @code-yeongyu/senpi-orchestrator as non-fatal.node scripts/release-notes.mjs / the cl.md audit before publishing notes.After tag push, watch the build-binaries workflow run (find the run id via gh run list --workflow=build-binaries.yml --branch main --limit 1 --json databaseId -q '.[0].databaseId').
The publish-npm job dispatches publish-npm.yml in publish-only mode, prints the dispatched run URL, waits up to 60 minutes, and fails if the publish run fails. There is no environment approval gate on the publish path — the old npm-publish environment subject is exactly what npm's trusted-publisher registration rejects.
Never consider the release done before publish-npm and publish-github-release complete and the GitHub Release is non-draft. If the publish job fails, recover with gh workflow run publish-npm.yml -f version=<v> -f publish-only=true, never by rerunning release.mjs.
These are separate controls and must not be conflated:
npm-publish environment subject is what npm rejects); the unused environment may remain in repo settings harmlessly.npm approve-scripts --allow-scripts-pending trust review, which is not publish approval.main, which is distinct from publish approval.UPSTREAM_AUTOMATION_TOKEN for the authenticated release push path.publish-npm.yml identity (see Pre-flight checklist). If npm-side config changes, re-verify with a dry_run dispatch before the next release.scripts/release.mjs after the tag is pushed. If publishing fails, recover from the existing tag workflow.E404 noise for @code-yeongyu/senpi-orchestrator is not a release failure.npm publish can be a false negative: the publish may have landed anyway (observed live on 2026-07-28 with @code-yeongyu/senpi@2026.7.28-2 — the job failed but the version exists). ALWAYS verify with npm view <pkg> versions --json before treating a publish error as real, before rerunning anything, and before declaring a release failed.publish-npm job skips publish-github-release and triggers the draft-cleanup path; check gh release view v<version> before recovering — the release may already be live. Recover only through the existing tag workflow, never by rerunning release.mjs.packages/coding-agent/CHANGELOG.md via scripts/release-notes.mjs.build-binaries is complete.stage-github-release is complete.publish-npm is complete.publish-github-release is complete.scripts/release.mjs from clean main.publish-npm.yml publish-only dispatch (see the known-broken note above), NOT the tag pipeline's environment-gated job.publish-npm fails after stage-github-release succeeded, the cleanup path deletes the draft release; the build assets survive as the run's release-assets-v<tag> artifact — re-create the release with gh release create <tag> --verify-tag --draft --title <tag> --notes-file RELEASE_NOTES.md <assets> and publish with gh release edit <tag> --draft=false after verifying npm view shows every package.© code-yeongyu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/agent/skills/release-publish of code-yeongyu/senpi.
Open the folder on GitHubat commit 0fa9139
Senpi Release Publishing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Senpi Release Publishing this skillcode-yeongyu/senpi | 470 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Cline CLI Release Publishercline/cline | 70k | — | ~3.4k | Automated safety check: Warn | Apache-2.0 | |
| Ccb GitHubSeemSeam/claude_codex_bridge | 3.5k | — | ~4.9k | Automated safety check: Pass | Custom licence | |
| npm Release Via GitHub Actionsjmfederico/pi-web | 861 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Automate npm Releasejd-solanki/slidev-theme-dracula | 161 | — | ~626 | Automated safety check: Pass | None | |
| ClickUp CLI Release Processkrodak/clickup-cli | 120 | — | ~906 | Automated safety check: Warn | MIT |
cline/cline
Walks through releasing the Cline CLI package to npm: release notes, version bump, matching git tag, and either the GitHub workflow or a local publish.
SeemSeam/claude_codex_bridge
Maintain this CCB project's GitHub-facing release and npm publication surface.
jmfederico/pi-web
A skill your agent uses whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or…
jd-solanki/slidev-theme-dracula
Automate npm package publishing via GitHub Actions for single-package repos and independent monorepo packages, including bumpp version tags, GitHub release notes, trusted publishing, provenance, and…
krodak/clickup-cli
Walks through releasing a new version of clickup-cli: pre-release checks, version bump, tagging, CI watch, release notes and the Homebrew update.
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
code-yeongyu/senpi
Checks changes to the senpi coding agent by driving the real CLI from source in an isolated sandbox, over RPC, terminal UI, mock model and CLI smoke channels.
code-yeongyu/senpi
Syncs a fork branch with its upstream remote using a history-preserving merge commit, with no rebase and no force push.
code-yeongyu/senpi
Points the agent at Bun 1.4 built-in APIs before it installs an npm package, so image, browser, markdown, cron, PTY and test work uses what Bun already ships.
code-yeongyu/senpi
Worker brief for implementing one pre-assigned feature in the senpi todotools built-in extension, with strict scope, typing, testing and git-safety rules.
code-yeongyu/senpi
Prompt-crafting guide for gpt-image-2.5: which image tool to call, which model to pick, and how to write prompts, edit with references and refine over turns.
code-yeongyu/senpi
Runs one manual QA scenario for the todo continuation feature in the real ./pi-test.sh CLI inside tmux, captures scrollback and checks a deterministic count marker.
Categories
Walks the canonical CalVer release flow for senpi, from a clean main checkout through changelog audit, checks, tag push, GitHub Release and npm publishing. A checklist for releasing the senpi project.mjs.
Senpi Release Publishing fits situations like: cutting a CalVer release of senpi; pushing a release tag and publishing the GitHub Release; publishing packages to npm through the trusted workflow; recovering a release that failed before the tag push.
Run `npx skills add code-yeongyu/senpi --skill release-publish -a claude-code`. Or copy the skill folder (.github/agent/skills/release-publish in code-yeongyu/senpi) into .claude/skills/release-publish in your project. Claude Code loads it when a task matches its description.
Run `npx skills add code-yeongyu/senpi --skill release-publish -a codex`. Or copy the skill folder (.github/agent/skills/release-publish in code-yeongyu/senpi) into .agents/skills/release-publish in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add code-yeongyu/senpi --skill release-publish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-publish, .gemini/skills/release-publish, .github/skills/release-publish and .opencode/skills/release-publish in your project.
Going by SKILL.md and its folder, Senpi Release Publishing needs the command-line tools its instructions call (npm, gh and node) and credentials named UPSTREAM_AUTOMATION_TOKEN. Our summary lists: A clean main checkout of the senpi repository; Node and npm; The gh CLI, used to watch workflow runs.
SKILL.md contains no URLs. Its commands use npm and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Senpi Release Publishing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Senpi Release Publishing: Cline CLI Release Publisher (cline/cline, 70k stars), Ccb GitHub (SeemSeam/claude_codex_bridge, 3.5k stars), npm Release Via GitHub Actions (jmfederico/pi-web, 861 stars) and Automate npm Release (jd-solanki/slidev-theme-dracula, 161 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
code-yeongyu (a GitHub user) maintains it in code-yeongyu/senpi, which has 470 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.
Source: code-yeongyu/senpi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.