mcpField
R
release-sync

release-sync

github.com/yonatangross生産性29972 回インストール今日更新
リポジトリ

release-sync について

OrchestKit のリリース内容を外部ナレッジシステムへ同期するスキルです。リリース情報とプロジェクト資料を読み込み、NotebookLM や HQ Knowledge Base の更新、またはポッドキャスト生成を任意で行います。

主な機能

  1. 01変更履歴とプロジェクト資料の読み込み
  2. 02NotebookLM へのリリースソース追加
  3. 03HQ Knowledge Base への任意取り込み
  4. 04同期先の明示的な選択
  5. 05ポッドキャストの任意生成

活用シーン

  1. 01リリース情報の NotebookLM ノートブックへの登録
  2. 02リリースノートの HQ Knowledge Base への取り込み
  3. 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 を参照してください。

この機能について

  1. 最新の CHANGELOG エントリ、CLAUDE.md、フックの README を読み込みます
  2. OrchestKit の NotebookLM ナレッジベースノートブックに最新のソースを追加します
  3. リリースの概要を HQ Knowledge Base に取り込みます(利用可能な場合)
  4. 更新したノートブックから新しいポッドキャストを生成します(任意)

前提条件

  • 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)

コメント