release-sync について
OrchestKit のリリース内容を外部ナレッジシステムへ同期するスキルです。リリース情報とプロジェクト資料を読み込み、NotebookLM や HQ Knowledge Base の更新、またはポッドキャスト生成を任意で行います。
主な機能
- 01変更履歴とプロジェクト資料の読み込み
- 02NotebookLM へのリリースソース追加
- 03HQ Knowledge Base への任意取り込み
- 04同期先の明示的な選択
- 05ポッドキャストの任意生成
活用シーン
- 01リリース情報の NotebookLM ノートブックへの登録
- 02リリースノートの HQ Knowledge Base への取り込み
- 03更新資料を基にしたポッドキャストの生成
MCP 対応
利用可能な場合、notebooklm-mcp と hq-content MCP サーバーを使ってリリース内容を追加または取り込みます。どちらも任意で、明示的な選択が必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ yonatangross/ orchestkit --skill release-syncインストール後、Claude Code で/release-syncを入力して読み込まれたか確認します。
詳細
リリースコンテンツの同期
OrchestKit の最新リリースを外部のナレッジシステムに同期します。
CC ≥ 2.1.118 (M122): 同期は通常の
git tagに加えて、新しいclaude plugin tag注釈付きタグでもトリガーされます。タグの注釈にはプラグインマニフェストのバージョンが埋め込まれており、release-sync は同期するバージョンの正式な情報源としてこれを使用します。src/skills/chain-patterns/references/plugin-tag.mdを参照してください。
この機能について
- 最新の CHANGELOG エントリ、CLAUDE.md、フックの README を読み込みます
- OrchestKit の NotebookLM ナレッジベースノートブックに最新のソースを追加します
- リリースの概要を HQ Knowledge Base に取り込みます(利用可能な場合)
- 更新したノートブックから新しいポッドキャストを生成します(任意)
前提条件
- MCP サーバー:
notebooklm-mcpおよび/またはhq-content - NotebookLM ノートブック ID が
.claude/release-sync-config.jsonに保存されていること
Step 1: バージョンを検出してソースを読み込む
# Read current version from CLAUDE.md
version = Grep(pattern="Current.*\\d+\\.\\d+\\.\\d+", path="CLAUDE.md")
# Read CHANGELOG — extract latest release section
changelog = Read("CHANGELOG.md", limit=80)
# Read hook architecture summary
hook_readme = Read("src/hooks/README.md", limit=100)
# Read CLAUDE.md for project overview
claude_md = Read("CLAUDE.md")
Step 2: 設定を読み込む
config = Read(".claude/release-sync-config.json")
# Expected format:
# {
# "notebooklm_notebook_id": "0a05e680-e33b-4d8c-94b2-5df26a1af329",
# "hq_kb_project": "orchestkit"
# }
設定が存在しない場合は、ユーザーに確認します。
AskUserQuestion(questions=[{
"question": "NotebookLM notebook ID for OrchestKit KB?",
"header": "Configuration",
"options": [
{"label": "Use default", "description": "OrchestKit v7 — Complete KB (0a05e680...)"},
{"label": "I'll provide", "description": "Enter a custom notebook ID"}
]
}])
Step 2b: 同期先を選択する
4 つの同期先の値(notebooklm、hq_kb、slack、notes)を確認します。
# Skip the form when targets are explicit:
# release-sync --targets=notebooklm,slack → skip, use those
#
# Otherwise ask. This used to prefer an ork-elicit MCP form and fall back to
# AskUserQuestion; the server was retired (EPIC C mechanism 11) because
# AskUserQuestion is the CC-native surface for this and a permanent MCP tool
# slot to restate it was the parallel mechanism. One path now.
#
# ALL targets default to False — OrchestKit is open-source and these targets
# (notebook IDs, HQ KB, Slack) are user-private infrastructure the plugin
# cannot assume is configured. The user explicitly opts in.
targets = {
"notebooklm": ask_yn("Push to NotebookLM?", default=False),
"hq_kb": ask_yn("Push to HQ KB?", default=False),
"slack": ask_yn("Announce in Slack?", default=False),
"notes": ""
}
AskUserQuestion を 3 回実行します。このスキルの残りの処理では、設定元にかかわらず targets["notebooklm"]、targets["hq_kb"]、targets["slack"]、targets["notes"] を読み取ります。
プライバシーに関する注意: すべての同期先はオプトイン(デフォルトは false)です。NotebookLM のノートブック ID と HQ のナレッジベースはユーザー専用です。オープンソースプラグインは、それらが存在すると想定したり、暗黙的に情報を送信したりしてはいけません。
Step 3: NotebookLM のソースを更新する
# Probe MCP availability
ToolSearch(query="select:mcp__notebooklm-mcp__source_add")
# Add release digest as new source
mcp__notebooklm-mcp__source_add(
notebook_id=config.notebooklm_notebook_id,
source_type="text",
title=f"Release {version} — {date}",
text=release_digest,
wait=True
)
Step 4: HQ Knowledge Base に取り込む(任意)
# Probe HQ content MCP
ToolSearch(query="select:mcp__hq-content__knowledge_ingest")
# If available, ingest
mcp__hq-content__knowledge_ingest(
title=f"OrchestKit {version} Release Notes",
content=release_digest,
project="orchestkit",
content_type="release-notes"
)
Step 5: ポッドキャストを生成する(任意)
AskUserQuestion(questions=[{
"question": "Generate a podcast from the updated notebook?",
"header": "Podcast",
"options": [
{"label": "Yes — deep dive", "description": "~10 min podcast covering all changes"},
{"label": "Yes — brief", "description": "~3 min summary"},
{"label": "No", "description": "Skip podcast generation"}
]
}])
if podcast_requested:
mcp__notebooklm-mcp__studio_create(
notebook_id=config.notebooklm_notebook_id,
artifact_type="audio",
audio_format=selected_format,
confirm=True
)
出力
同期した内容を報告します。
Release Sync Complete — v{version}
NotebookLM: source added to {notebook_title}
HQ KB: ingested as release-notes/{version}
Podcast: generating (poll with studio_status)