mcpField
S
specsfy-release-cli

specsfy-release-cli

github.com/promovawebクラウド・DevOps8759 回インストール1 週間前に更新
リポジトリ

specsfy-release-cli について

公式チェックアウトからSpecsfyを公開するためのリリーススキルです。バージョン準備、検証、レビュー、タグ付け、公開を案内し、push前にリリースノートの確認と明示的な承認を求めます。

主な機能

  1. 01リポジトリとリリース状態の確認
  2. 02バージョンファイルの準備と同期
  3. 03CLIと電子書籍の成果物をビルド
  4. 04リリースノートと変更内容のレビュー
  5. 05タグをpushして公開を検証

活用シーン

  1. 01新しいSpecsfyバージョンの準備
  2. 02未完了リリースの安全な再開
  3. 03公開前のビルド成果物の検証

インストール

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

$npx skills add https://github.com/promovaweb/specsfy --skill specsfy-release-cli

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

同梱ファイルagents/openai.yamlscripts/release_changelog.py

詳細

Specsfy を公開する

公式チェックアウトのルートで実行します。X.Y.Z 形式のバージョン、確定済みのリリースノート、push 前の明示的な承認が必要です。

ルートの VERSION が唯一の情報源です。スキルと専門家には、モノレポのタグのバージョンを割り当てます。独自のバージョンファイルはありません。Hub とウェブサイトはこのバージョン番号の対象外です。

1. 状態を分類する

git remote get-url origin
git branch --show-current
gh auth status
npm whoami
git fetch origin main --tags
git status --porcelain
git rev-parse HEAD
git rev-parse origin/main
git rev-parse --verify refs/tags/vX.Y.Z
gh release view vX.Y.Z --repo promovaweb/specsfy \
  --json tagName,targetCommitish,body

リモートが https://github.com/promovaweb/specsfy であること、ブランチが main であること、同じリポジトリへのアクセス権があること、worktree がクリーンであること、HEAD が origin/main と一致すること、新規公開用のタグとリリースが存在しないことを確認します。

一部のみ完了している場合は、コミット、タグ、バージョンを作り直さないでください。タグ、コミット、成果物、変更履歴のセクションを比較し、未完了の手順だけを再開します。

2. バージョンを準備する

python3 -B \
  cli/.agents/skills/specsfy-release-cli/scripts/release_changelog.py prepare \
  --cli cli --version X.Y.Z --date YYYY-MM-DD \
  --notes-file /caminho/notas.md
cd cli
npm install --package-lock-only --ignore-scripts
npm ci
npm run build:executable
npm run typecheck
npm test
npm run build
node dist/main.js --help
./bin/specsfy --version
npm publish --dry-run
cd ..
make ebook
make verify-ebook
make verify-version
python3 -B \
  cli/.agents/skills/specsfy-release-cli/scripts/release_changelog.py extract \
  --changelog cli/CHANGELOG.md --version X.Y.Z \
  --output /caminho/release-notes.md

VERSION、package.json、src/version.ts、package-lock.json、インストール済み CLI、バイナリ、bin/specsfy.build.json、電子書籍、ebook/build.json に X.Y.Z が指定されていることを確認します。変更履歴では、## [X.Y.Z] - YYYY-MM-DD の下にあるリリースノートを繰り上げます。

3. レビューしてバージョンを付ける

リリースに以下を含めます。

  • VERSION;
  • cli/CHANGELOG.md;
  • cli/package.json;
  • cli/package-lock.json;
  • cli/src/version.ts;
  • cli/bin/specsfy;
  • cli/bin/specsfy.build.json。
  • ebook/build.json と現在のエディションの成果物;
  • リリースで変更されたドキュメント、スキル、専門家。

リリースノートと diff を提示します。承認後:

make verify-version
git add VERSION cli/CHANGELOG.md cli/package.json cli/package-lock.json \
  cli/src/version.ts \
  cli/bin/specsfy cli/bin/specsfy.build.json
git commit -m "chore(release): vX.Y.Z"
git tag -a vX.Y.Z -m "Specsfy CLI vX.Y.Z"
git rev-parse HEAD
git rev-list -n 1 vX.Y.Z

ハッシュが完全に一致している必要があります。タグはモノレポに属します。

4. 公開して確認する

git push --atomic origin main vX.Y.Z
gh run watch --repo promovaweb/specsfy \
  "$(gh run list --repo promovaweb/specsfy --branch vX.Y.Z \
    --workflow Specsfy --limit 1 --json databaseId --jq '.[0].databaseId')"
gh release create vX.Y.Z \
  --repo promovaweb/specsfy --verify-tag \
  --title "Specsfy CLI vX.Y.Z" \
  --notes-file /caminho/release-notes.md
gh release view vX.Y.Z --repo promovaweb/specsfy \
  --json url,tagName,targetCommitish,body
gh release view vX.Y.Z --repo promovaweb/specsfy \
  --json body > /caminho/release-publicado.json
python3 -B \
  cli/.agents/skills/specsfy-release-cli/scripts/release_changelog.py verify \
  --changelog cli/CHANGELOG.md --version X.Y.Z \
  --release-json /caminho/release-publicado.json
git ls-remote origin "refs/tags/vX.Y.Z^{}"
gh run list --repo promovaweb/specsfy --branch vX.Y.Z --workflow Specsfy

リモートのタグ、CI、リリースノートが完全に一致していることを確認します。失敗した場合は状態を維持して再分類します。タグのジョブで @promovaweb/specsfy が npm に公開されます。リポジトリが公開されている場合は、来歴情報が含まれます。補償用のタグは絶対に作成しないでください。

コメント