mcpField
R
release-sync

release-sync

github.com/yonatangross生产力29972 次安装今天更新
代码仓库

关于 release-sync

用于 OrchestKit 的发布内容同步技能,可将版本信息整理到外部知识系统。它读取发布记录和项目资料,可选更新 NotebookLM 和 HQ Knowledge Base,或生成播客。

主要功能

  1. 01读取变更日志和项目资料
  2. 02向 NotebookLM 添加发布来源
  3. 03可选摄取内容到 HQ 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 知识库(如果可用)
  4. 可选:根据更新后的笔记本生成新的播客

前提条件

  • MCP 服务:notebooklm-mcp 和/或 hq-content
  • NotebookLM 笔记本 ID 存储在 .claude/release-sync-config.json 中

步骤 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")

步骤 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"}
  ]
}])

步骤 2b:选择同步目标

询问四个目标的值: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 往返。此技能的其余部分无论来源如何,都会读取 targets["notebooklm"]、targets["hq_kb"]、targets["slack"]、targets["notes"]。

隐私说明: 所有目标均需选择启用(默认值为 false)。NotebookLM 笔记本 ID 和 HQ 知识库均为用户私有数据;开源插件不得假定它们存在,也不得擅自向其推送内容。

步骤 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
)

步骤 4:导入到 HQ 知识库(可选)

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

步骤 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)

评论

支持 Markdown