| name | release-sync |
| compatibility | Claude Code 2.1.220+ |
| description | Syncs latest release content to NotebookLM and HQ Knowledge Base after version tagging. Reads CHANGELOG, CLAUDE.md, and hook README, updates notebook sources, and ingests release digest. Optionally generates podcast from updated knowledge base. Use after tagging a new version to propagate release knowledge. |
| version | 1.0.0 |
| author | OrchestKit |
| tags | ["release","notebooklm","knowledge-base","content-sync","automation"] |
| user-invocable | true |
| argument-hint | [version] |
| complexity | low |
| context | inherit |
| agent | release-engineer |
| persuasion-type | collaborative |
| triggers | {"keywords":["release-sync","sync release","update notebooklm","sync kb","push release content"],"examples":["sync the latest release to notebooklm","update the knowledge base with v7.27.0 changes","push release notes to notebooklm and hq"],"anti-triggers":["create a release","tag a version","bump version"]} |
Release Content Sync
Sync the latest OrchestKit release to external knowledge systems.
CC ≥ 2.1.118 (M122): Sync triggers on the new claude plugin tag annotated tag (in addition to plain git tag). The tag's annotation embeds the plugin manifest version, which release-sync uses as the canonical source-of-truth for the version being synced. See src/skills/chain-patterns/references/plugin-tag.md.
What This Does
- Reads the latest CHANGELOG entry, CLAUDE.md, and hook README
- Updates the OrchestKit NotebookLM KB notebook with fresh sources
- Ingests the release digest into HQ Knowledge Base (if available)
- Optionally generates a new podcast from the updated notebook
Prerequisites
- MCP servers:
notebooklm-mcp and/or hq-content
- NotebookLM notebook ID stored in
.claude/release-sync-config.json
Step 1: Detect Version and Read Sources
version = Grep(pattern="Current.*\\d+\\.\\d+\\.\\d+", path="CLAUDE.md")
changelog = Read("CHANGELOG.md", limit=80)
hook_readme = Read("src/hooks/README.md", limit=100)
claude_md = Read("CLAUDE.md")
Step 2: Load Config
config = Read(".claude/release-sync-config.json")
If config doesn't exist, prompt user:
AskUserQuestion(questions=[{
"question": "NotebookLM notebook ID for OrchestKit KB?",
: ,
: [
{: , : },
{: , : }
]
}])