关于 release-sync
用于 OrchestKit 的发布内容同步技能,可将版本信息整理到外部知识系统。它读取发布记录和项目资料,可选更新 NotebookLM 和 HQ Knowledge Base,或生成播客。
主要功能
- 01读取变更日志和项目资料
- 02向 NotebookLM 添加发布来源
- 03可选摄取内容到 HQ 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 知识库(如果可用)
- 可选:根据更新后的笔记本生成新的播客
前提条件
- 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