mcpField
R
release-core-test

release-core-test

github.com/cyrusagents開発879718 回インストール今日更新
リポジトリ

release-core-test について

`cyrus-core` を npm のテスト用プレリリースとして公開する開発者向けスキルです。ワークスペース依存関係上必要な場合のみ `claude-runner` も再公開し、バージョン変更はローカルに残して通常のリリース手順を避けます。

主な機能

  1. 01ワークスペースのパッケージをビルド
  2. 02`claude-runner` の再公開要否を確認
  3. 03`cyrus-core` をテスト用プレリリースに更新
  4. 04`test` dist-tag で公開
  5. 05dist-tag を検証してインストールコマンドを表示

活用シーン

  1. 01npm 経由で `cyrus-core` の変更をテスト
  2. 02`latest` を動かさずプレリリースを提供
  3. 03`claude-runner` の再公開要否を判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cyrusagents/cyrus --skill release-core-test

インストール後、Claude Code で/release-core-testを入力して読み込まれたか確認します。

詳細

Core のリリース(テスト)

cyrus-core パッケージのみ(必要な場合は claude-runner も)を、開発・テスト用のプレリリースとして npm の test dist-tag で公開します。これは、正式なリリースフローを経ずに cyrus-core の反復開発を行うための、開発者向けの便宜的なものです。

このスキルで行わないこと

このスキルは意図的に最小限の内容になっています。以下は行いません。

  • CHANGELOG.md または CHANGELOG.internal.md の更新
  • git タグの作成
  • GitHub リリースの作成
  • Linear のイシューの移動
  • プルリクエストの作成
  • バージョンの更新をコミットすること(更新後の package.json はローカルの作業ツリー変更として残します)

また、他のワークスペースパッケージ(edge-worker、cyrus CLI、linear-event-transport など)は公開しません。例外は claude-runner のみで、workspace:* の参照先が未公開のバージョンになってしまう場合に限り、再公開します(下記の手順 3 を参照)。

ワークフロー

1. リポジトリのルートから依存関係をインストールする
pnpm install
2. リポジトリのルートからすべてのパッケージをビルドする
pnpm build

すべてのパッケージをビルドすることで、公開前に workspace:* の依存関係が解決されます。

3. claude-runner の再公開が必要か判断する

cyrus-core は workspace:* を介して claude-runner に依存しています。cyrus-core の公開時に、この workspace:* は packages/claude-runner/package.json に現在記載されているバージョンに書き換えられます。そのバージョンがまだ npm に存在しない場合(前回の公開以降に claude-runner がローカルで変更されている場合など)、cyrus-core@test をインストールするユーザーは依存関係を解決できず、インストールに失敗します。

以下の決定的なチェックを両方実行します。

# (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"

どちらかに該当する場合は claude-runner を再公開します。(a)何も返されない(ローカルのバージョンが npm に存在しない)、または(b)dirty が出力される。両方とも問題がなければ、この手順をスキップします。判断に迷う場合は、ユーザーに確認してください。

再公開する場合:

# 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.N
cd packages/claude-runner
pnpm publish --access public --no-git-checks --tag test
cd ../..
pnpm install   # refresh lockfile so cyrus-core picks up the new claude-runner

それ以外の場合は、この手順全体をスキップします。

4. cyrus-core を次の -test.N プレリリースバージョンに更新する

手順:

  1. packages/core/package.json から現在のバージョンを読み取ります(例:0.1.22)。
  2. パッチバージョンを上げます(例:0.1.23)。
  3. -test.N を付けます。N = 0 から始め、<bumped>-test.N が npm にすでに存在する間は N を増やします(中断された過去の試行や古い試行のものも含みます)。

以下のワンライナーを使って、更新後のパッチバージョンに該当する既存の -test.N バージョンを見つけ、次の N を選びます。

BUMPED=0.1.23   # the patch-bumped base, no suffix
npm 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).

選んだバージョン(例:0.1.23-test.0)を packages/core/package.json に書き戻します。この変更はコミットしないでください。開発者が残すかどうかを決められるよう、ローカルの作業ツリー編集として残します。

5. cyrus-core を test dist-tag で公開する
cd packages/core
pnpm publish --access public --no-git-checks --tag test
cd ../..

--tag test を指定すると、次のようになります。

  • npm install cyrus-core@test でこのバージョンがインストールされます。
  • latest dist-tag は変更されないため、本番用のインストール(npm install cyrus-core)には影響しません。
6. dist-tag が正しく設定されたことを確認する
npm view cyrus-core dist-tags

公開前から latest が変わっておらず、test が今回公開したバージョンを指していることを確認します。latest が移動していた場合は問題があるため、誰かにインストールを勧める前に作業を止めて調査してください。

7. インストール手順を表示する

公開後、開発者がコピーして貼り付けられるよう、両方の形式を表示します。

Published cyrus-core@<version> under dist-tag `test`.

Install with:
  npm install cyrus-core@test
or pinned:
  npm install cyrus-core@<version>

手順 3 で claude-runner も再公開した場合は、そのバージョンも含めてください。

主な注意事項

  • ダーティな作業ツリーのフィーチャーブランチから公開できるよう、必ず --no-git-checks を使用してください。
  • 実際のリリース用の latest dist-tag を維持するため、必ず --tag test を使用してください。
  • -test.0 のように - で終わるサフィックスを含むプレリリースバージョンは、明示的なタグまたはバージョン指定なしでは npm install cyrus-core で自動インストールされないため、繰り返し実行しても安全です。
  • claude-runner を公開した場合は、cyrus-core のビルドおよび公開の前に pnpm install を実行し、ロックファイルに新しい公開バージョンを反映してください。
  • クリーンなツリーでは、ルートでの pnpm install と pnpm build に合計約 3 分かかります。コマンドのタイムアウトを適切に設定してください。

例

  • 「release core test」- cyrus-core の開発用リリースを実行します
  • 「/release-core-test」- このスキルを呼び出します

コメント