with one click
with one click
リリースノートとX投稿ドラフトからMulmoScript(リリースノート動画用)を生成する。/release-xpost 完了後に実行。
X投稿ドラフトから Discord 向けメッセージを生成し webhook で投稿する。/release-xpost 完了後に実行。
リリースノート作成。前回リリース以降の全PRを調査し、PR要約とリリースノートを生成する。
MulmoScript から Zenn 記事を生成する。/release-script 完了後に実行。
QA テストスイートを作成する。Playbook の知見を活用して CDP 経由の Playwright テストを生成。
YouTube アップロード用のメタデータ(タイトル・説明文)を生成する。/release-script 完了後に実行。
| name | release |
| description | リリースワークフロー全体をガイド。ドラフト一括作成 → リリース PR マージ → 公開アクション一括実行 → 後処理の順に進行。 |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash, Task, AskUserQuestion, mcp__electron-playwright__browser_take_screenshot, mcp__electron-playwright__browser_evaluate, mcp__electron-playwright__browser_run_code, mcp__electron-playwright__browser_tabs |
| argument-hint | <version> (例: 1.0.14) |
バージョン $ARGUMENTS のリリースワークフロー全体をオーケストレーションする。各フェーズをユーザー確認しながら順に進行する。
設計思想: 公開アクション(X 投稿、Discord webhook、GitHub Release publish、YouTube/Zenn 公開)は最後にまとめて実行する。先に全てのドラフトを揃えてから、リリース PR マージ後に一気に公開する。これにより順序ミス・差し戻し・部分公開を防ぐ。
Phase 1: リリースノート作成 → /release-notes の手順
Phase 1.5: リリース候補ビルド確認 → RC ブランチ + ビルド版で最終確認
# ── Phase 2: ドラフト一括作成(公開アクションなし) ──
Phase 2a: X 投稿ドラフト + スクショ → /release-xpost
Phase 2b: MulmoScript + 動画生成 → /release-script
Phase 2c: Discord メッセージ draft → /discord-release(webhook 投稿せず保存のみ)
Phase 2d: YouTube メタデータ → /release-youtube
Phase 2e: Zenn 記事 → /release-zenn
Phase 2f: GitHub Release --draft 作成 → /release-tag(--draft 付き)
# ── Phase 3: リリース PR マージ ──
Phase 3: release/<version> → main マージ + main 最新化
# ── Phase 4: 公開アクション一括実行 ──
Phase 4a: X 手動投稿 → URL 控える
Phase 4b: GitHub Release を draft → published に切替
Phase 4c: Discord webhook 投稿(X URL 込み)
Phase 4d: YouTube 動画アップロード(手動)
Phase 4e: Zenn 記事公開(手動)
# ── 後処理 ──
Phase 5: アーカイブ → output を zip 化
Phase 6: リリースノート PR
.claude/skills/release-notes/SKILL.md の手順に従い、以下を作成する:
docs/release_notes/v<version>/release_notes_v<version>_pr_summary.md — PR要約docs/release_notes/v<version>/release_notes_v<version>.md — ユーザー向けリリースノートユーザー確認ポイント:
✅ 確認が取れたら Phase 1.5 へ進む。
リリースノート確認後、ビルド版で新機能の最終確認を行う。
git checkout -b release/<version>-rc-1
package.json の version を <version>-rc-1 に変更する。
リリースノートの新機能から、Win/Mac 両方で確認すべき項目をチェックリストとして提示する:
| # | 確認項目 | Mac | Win |
|---|---------|-----|-----|
| 1 | (新機能から抽出) | | |
| ...| | | |
git add package.json
git commit -m "chore: bump version to <version>-rc-1"
ユーザーに push を依頼する。
release/<version>-rc-N)fix/... PR で別途レビューしてマージし、その後 main から次の RC ブランチを切り直すこと(rc ブランチ上で直接修正を積まない)ビルド確認 OK 後、正式リリースブランチを最終 RC から作成する:
git checkout -b release/<version>
package.json の version を <version>(rc サフィックスなし)に変更する。
git add package.json
git commit -m "chore: bump version to <version>"
ユーザーに push を依頼する。
ユーザーが release/<version> ブランチを push した後、ドラフト PR を作成(またはユーザーが作成済みの PR body を更新)する。
前回のリリース PR(例: #1545)を参考に、以下の雛形で body を設定する:
## Actions
[GitHub Actions が全て完了しているスクリーンショットを貼る]
## Web
[Web ページのアプリダウンロードページで、バージョンが正しいことを確認するスクリーンショットを貼る]
## Version
### Mac
[Mac の About ダイアログのスクリーンショットを貼る]
### Win
[Win の About ダイアログのスクリーンショットを貼る]
## 動作確認
- chat → script
- introduction, 1 beat 生成
- 新機能の確認
- [ ] (リリースノートの新機能から項目を抽出)
- 旧 version から新 version への自動更新
スクリーンショットの貼り付けはユーザーが行うため、プレースホルダーは [説明文] の形式で記述する(HTML コメントは MD で非表示になるため使わない)。
✅ 確認が取れたら Phase 2 へ進む(リリース PR はまだマージしない)。
重要: このフェーズでは 公開アクション(X 投稿、Discord webhook、GitHub Release publish、YouTube/Zenn 公開)を一切実行しない。全てドラフトとして保存・準備するだけ。
依存関係:
.claude/skills/release-xpost/SKILL.md の手順に従い、以下を作成する:
docs/release_notes/v<version>/xpost_v<version>_draft.md — X投稿ドラフトdocs/release_notes/v<version>/images/ — スクリーンショットユーザー確認ポイント:
実投稿はしない(Phase 4a で実行)。
.claude/skills/release-script/SKILL.md の手順に従い、リリースノート動画用 MulmoScript を作成し、PDF・動画を生成する。
問題があればユーザーと修正を繰り返す。
.claude/skills/discord-release/SKILL.md の手順に従い、X投稿ドラフトを Discord 向けに整形する。
重要: メッセージはファイルに保存するのみ。webhook 投稿はしない(Phase 4c で X URL を含めて投稿)。
.claude/skills/release-youtube/SKILL.md の手順に従い、YouTube アップロード用メタデータを作成する。
Phase 2b のタイムスタンプファイルを使用する。
確認不要(アップロードは Phase 4d でユーザーが手動実行)。
.claude/skills/release-zenn/SKILL.md の手順に従い、MulmoScript から Zenn 記事を生成する。
Phase 2b・2d の成果物が必要。
確認不要(公開は Phase 4e でユーザーが手動実行)。
.claude/skills/release-tag/SKILL.md の手順に従い、GitHub Release draft を作成する。
重要: gh release create には --draft フラグを必ず付ける。タグはまだ public にしない。
gh release create v<version> --draft --title "v<version>" --notes-file <release-notes-path>
✅ 全ドラフトが揃ったら Phase 3 へ進む。
GitHub Release の最終 publish が最新の main を指すようにするため、リリース PR をマージしてから Phase 4 へ進む。
release/<version> → main)のマージを依頼するgit checkout main && git pull origin main✅ main が最新になったら Phase 4 へ進む。
重要: ここから公開アクションを順番に実行する。順序を守ること(特に X 投稿 URL を Discord で使うため、X が先)。
ユーザーが X にドラフトの内容を手動で投稿する。
Phase 2f で作成した draft Release を public にする:
gh release edit v<version> --draft=false
タグ名と package.json の version が一致していることを確認してから実行。
Phase 2c で作成した Discord メッセージに、Phase 4a の X 投稿 URL を埋め込んで webhook で投稿する。
.claude/skills/discord-release/SKILL.md の手順に従う(今度は webhook 投稿まで実行する)。
ユーザーが Phase 2b で生成した動画と Phase 2d のメタデータを使って手動でアップロード。
ユーザーが Phase 2e で生成した記事をプレビューして公開。
✅ 全ての公開アクションが完了したら Phase 5 へ進む。
Phase 4 の全アクション完了後、output ディレクトリを zip 化してバックアップする。
.bak ファイル(sed -i.bak の自動バックアップ等)は zip に含めない。
cd docs/release_notes/v<version>
zip -r output/mulmocast_v<version>_output.zip output/ \
-x "output/mulmocast_v<version>_output.zip" \
-x "*.bak"
source .env 2>/dev/null || true
環境変数 RELEASE_ARCHIVE_DIR が設定されている場合:
http:// / https:// で始まらない): zip をコピーする
mkdir -p "$RELEASE_ARCHIVE_DIR"
cp docs/release_notes/v<version>/output/mulmocast_v<version>_output.zip "$RELEASE_ARCHIVE_DIR/"
http で始まる): zip のパスとアップロード先 URL をユーザーに表示し、手動アップロードを案内する未設定の場合: ユーザーに「RELEASE_ARCHIVE_DIR が設定されていないため、zip のコピーをスキップします」と伝える。
✅ 完了したら Phase 6 へ進む。
docs/release_notes/v<version>/ を GitHub にコミット・PR 作成する。
git checkout -b docs/release-notes-v<version>
output/ ディレクトリは .gitignore 済みのため、そのまま git add すればよい。
git add docs/release_notes/v<version>/
git commit -m "docs: add release notes for v<version>"
ユーザーに push を依頼し、push 後に PR を作成する。
PR タイトル: Add release notes for v<version>
PR ベースブランチ: main
✅ 完了。