Release Core Test

cyrusagents/cyrus/.claude/skills/release-core-test

作者 cyrusagents9cb20212dfb0caec7fc44a4688d41829589087bc無授權條款850 個星標收錄於 2026年10月9日更新於 2026年10月9日儲存庫今天更新

Invoke when dev-testing a Cyrus change that spans CYPACK (edgeworker + CLI) and CYHOST (Vercel-hosted GUI) and the hosted GUI needs to point at an unreleased `cyrus-core` from this repo. Publishes `cyrus-core` (and `claude-runner` if needed) as a `-test.N` prerelease under the npm `test` dist-tag so CYHOST can install it via `cyrus-core@test` without affecting the `latest` dist-tag or shipping a real release.

僅含說明DevOps & Cloud
AI 產生的概覽

將 cyrus-core 套件以 -test.N 前置發行版本發佈到 npm 的 test dist-tag,供開發測試使用。

功能
引導開發者僅將 cyrus-core 套件(以及在 workspace 相依性無法解析時的 claude-runner)以 -test.N 前置發行版本發佈到 npm 的 test dist-tag。流程涵蓋從儲存庫根目錄安裝與建置、判斷是否需要重新發佈 claude-runner、計算下一個 -test.N 版本、使用 --tag test 發佈、驗證 dist-tag,並印出安裝指示。它刻意略過變更記錄、git 標籤、GitHub 發行、Linear 更新、提取要求,以及提交版本號變更。
適用情境
適用於開發測試同時涉及 CYPACK 與 CYHOST 的 Cyrus 變更,且託管 GUI 需要指向此儲存庫中尚未發佈的 cyrus-core 時。其目的是在不走完整發佈流程的情況下迭代 cyrus-core。
執行需求
需要具備儲存庫根目錄存取權的 Node.js 與 pnpm 環境、用於發佈的 npm 登錄憑證,以及存取 npm 的網路。使用 pnpm install、pnpm build、pnpm publish、npm view、git diff、jq 與 node。不附帶指令碼,僅為說明文件。

Release Core (Test)

Publish ONLY the cyrus-core package (and claude-runner if needed) as a dev/test prerelease to npm under the test dist-tag. This is a developer convenience for iterating on cyrus-core without going through the full release flow.

What this skill does NOT do

This skill is intentionally minimal. It does NOT:

  • Update CHANGELOG.md or CHANGELOG.internal.md
  • Create a git tag
  • Create a GitHub release
  • Move any Linear issues
  • Open a pull request
  • Commit the version bump (the bumped package.json is left as a local working-tree change)

It also does NOT publish any other workspace package (no edge-worker, no cyrus CLI, no linear-event-transport, etc.). The only exception is claude-runner, which is republished if and only if its workspace:* reference would otherwise resolve to an unpublished version (see step 3 below).

Workflow

1. Install dependencies from repo root

bash
pnpm install

2. Build all packages from repo root

bash
pnpm build

Building all packages ensures workspace:* dependencies are resolved before publishing.

3. Determine whether claude-runner needs republishing

cyrus-core depends on claude-runner via workspace:*. When cyrus-core is published, that workspace:* is rewritten to the version currently in packages/claude-runner/package.json. If that version isn't actually on npm yet (because claude-runner has local changes since its last publish), consumers installing cyrus-core@test will fail to resolve the dependency.

Run both of these deterministic checks:

bash
# (a) Is the local claude-runner version already on npm?LOCAL_CR=$(node -p "require('./packages/claude-runner/package.json').version")npm view "cyrus-claude-runner@${LOCAL_CR}" version 2>/dev/null
# (b) Does claude-runner have uncommitted/unpushed source changes since its last publish?git diff --quiet HEAD -- packages/claude-runner/src packages/claude-runner/package.json && echo "clean" || echo "dirty"

Republish claude-runner if either: (a) returns nothing (local version is not on npm), or (b) prints dirty. If both pass cleanly, skip this step. If you're unsure, ask the user.

To republish:

bash
# Determine the next -test.N for claude-runner (same algorithm as cyrus-core below)# Bump packages/claude-runner/package.json to e.g. 0.0.X-test.Ncd packages/claude-runnerpnpm publish --access public --no-git-checks --tag testcd ../..pnpm install   # refresh lockfile so cyrus-core picks up the new claude-runner

Otherwise, skip this step entirely.

4. Bump cyrus-core to the next -test.N prerelease version

Algorithm:

  1. Read the current version from packages/core/package.json (e.g. 0.1.22).
  2. Bump the patch (e.g. 0.1.23).
  3. Append -test.N, starting at N = 0 and incrementing while <bumped>-test.N already exists on npm (including aborted/stale prior attempts).

Use this one-liner to find existing -test.N versions for the bumped patch and pick the next N:

bash
BUMPED=0.1.23   # the patch-bumped base, no suffixnpm view cyrus-core versions --json \  | jq -r '.[]' \  | grep -E "^${BUMPED}-test\.[0-9]+$" \  | awk -F'test.' '{print $2}' \  | sort -n | tail -1# If empty, use N=0. Otherwise use (max + 1).

Write the chosen version (e.g. 0.1.23-test.0) back into packages/core/package.json. Do NOT commit this change — leave it as a local working-tree edit so the developer can decide whether to keep it.

5. Publish cyrus-core with the test dist-tag

bash
cd packages/corepnpm publish --access public --no-git-checks --tag testcd ../..

Using --tag test means:

  • npm install cyrus-core@test will install this version.
  • The latest dist-tag is not moved, so production installs (npm install cyrus-core) are unaffected.

6. Verify the dist-tags landed correctly

bash
npm view cyrus-core dist-tags

Confirm that latest is unchanged from before the publish and test now points to the version you just published. If latest moved, something is wrong — stop and investigate before telling anyone to install it.

7. Print install instructions

After publishing, print both forms so the developer can copy/paste:

Published cyrus-core@<version> under dist-tag `test`.
Install with:  npm install cyrus-core@testor pinned:  npm install cyrus-core@<version>

If claude-runner was also republished in step 3, include its version too.

Key Notes

  • Always use --no-git-checks so you can publish from a feature branch with a dirty working tree.
  • Always use --tag test so the latest dist-tag is preserved for real releases.
  • Prerelease versions (anything with a - suffix like -test.0) are never auto-installed by npm install cyrus-core without an explicit tag or version spec, so this is safe to run repeatedly.
  • Run pnpm install after publishing claude-runner (if applicable) so the lockfile reflects the new published version before cyrus-core is built/published.
  • pnpm install + pnpm build from root takes ~3 minutes combined on a clean tree — plan command timeouts accordingly.

Examples

  • "release core test" - Run a dev release of cyrus-core
  • "/release-core-test" - Invoke this skill

來源與署名

來源:cyrusagents/cyrus位於.claude/skills/release-core-test提交9cb2021

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架