release-notebook
Release Notebook
Creates a dedicated NotebookLM notebook for the current OrchestKit release, preserving changelog details, project instructions, and the plugin manifest as a queryable knowledge base.
See rules/workflow-versioned-notebooks.md in the notebooklm skill for the canonical versioned-notebook pattern this skill implements.
Preconditions
Before running:
nlm login --check— confirm an active session (~20 min TTL)- If session expired:
nlm login(re-authenticates via browser) - If notebooklm-mcp-cli is not installed:
uv tool install notebooklm-mcp-cli
Workflow
Execute all steps in order. Stop and report if any MCP call fails.
Step 1 — Read Release Metadata
# Read version (e.g. "7.0.1")
Read: package.json → extract .version
Derive notebook title and major.minor label:
FULL_VERSION = package.json .version # e.g. "7.0.1"
MINOR_LABEL = MAJOR.MINOR of FULL_VERSION # e.g. "7.0"
NOTEBOOK_TITLE = "OrchestKit v{MINOR_LABEL} — Release KB"
Patch releases (x.y.Z where Z > 0) append to the existing minor notebook when it already exists. If this is the first patch of a minor series, create a new notebook.
Step 2 — Extract CHANGELOG Section
Read: CHANGELOG.md
Extract the section that starts with ## [7.0.1] (or whichever FULL_VERSION is current) up to — but not including — the next ## [ heading. Store as CHANGELOG_SECTION.
If the version section is not found, halt and report: "CHANGELOG.md has no entry for v{FULL_VERSION}. Add one before creating the Release KB."
Step 3 — Read Project Sources
Read: CLAUDE.md → CLAUDE_CONTENT
Read: manifests/ork.json → MANIFEST_CONTENT
Step 4 — Create Notebook
notebook = mcp__notebooklm-mcp__notebook_create(
title="OrchestKit v{MINOR_LABEL} — Release KB"
)
# Save: notebook_id = notebook.id
Step 5 — Add Sources
Add each source separately for better retrieval chunking:
# Source 1: changelog section
mcp__notebooklm-mcp__source_add(
notebook_id=notebook_id,
type="text",
title="CHANGELOG v{FULL_VERSION}",
content=CHANGELOG_SECTION
)
# Source 2: project instructions
mcp__notebooklm-mcp__source_add(
notebook_id=notebook_id,
type="text",
title="CLAUDE.md — Project Instructions",
content=CLAUDE_CONTENT
)
# Source 3: plugin manifest
mcp__notebooklm-mcp__source_add(
notebook_id=notebook_id,
type="text",
title="manifests/ork.json — Plugin Manifest",
content=MANIFEST_CONTENT
)
Step 6 — Add Release Summary Note
mcp__notebooklm-mcp__note(
notebook_id=notebook_id,
action="create",
content="Release KB for OrchestKit v{FULL_VERSION}. Sources: CHANGELOG section, CLAUDE.md, manifests/ork.json."
)
Step 7 — Generate Audio Overview
Audio generation is async. Create, then poll until complete or failed.
# Trigger generation
artifact = mcp__notebooklm-mcp__studio_create(
notebook_id=notebook_id,
type="audio_overview"
)
# Poll (check every ~30s; generation takes 2-5 min)
status = mcp__notebooklm-mcp__studio_status(artifact_id=artifact.id)
# Repeat until status in ("completed", "failed")
# Inform user: "Generating audio overview... (status: {status})"
If generation fails, log the failure but do not halt — the notebook is still useful without audio.
Step 8 — Share Notebook
# Check current sharing status first
share_status = mcp__notebooklm-mcp__notebook_share_status(notebook_id=notebook_id)
# Invite project owner as writer
mcp__notebooklm-mcp__notebook_share_invite(
notebook_id=notebook_id,
email="yonatan2gross@gmail.com",
role="writer"
)
Do not enable public link unless the user explicitly requests it — release notebooks may contain pre-release details.
Step 9 — Output Summary
Print a structured summary:
Release KB created for OrchestKit v{FULL_VERSION}
Notebook : OrchestKit v{MINOR_LABEL} — Release KB
ID : {notebook_id}
Sources : CHANGELOG v{FULL_VERSION} | CLAUDE.md | manifests/ork.json
Audio : {completed | failed | pending}
Shared : yonatan2gross@gmail.com (writer)
Query this notebook with:
notebook_query(notebook_id="{notebook_id}", query="What changed in v{FULL_VERSION}?")
Error Handling
| Error | Action |
|---|---|
nlm login session expired |
Halt. Print: "Run nlm login to re-authenticate, then retry." |
| notebook_create fails | Halt. Print MCP error. Check nlm login --check. |
| source_add fails on one source | Log warning, continue with remaining sources. |
| CHANGELOG section missing | Halt before notebook_create. Report missing entry. |
| studio_create fails | Log warning, continue — notebook is still valid. |
| studio_status = "failed" | Log warning with artifact ID, continue. |
Related Skills
ork:notebooklm— Full NotebookLM MCP tool reference and workflow patternsork:release-checklist— Pre-release gates (run before this skill)ork:release-management— GitHub release creation with gh CLI