Skip to main content
OrchestKit v7.0.3 — 70 skills, 38 agents, 98 hooks with Opus 4.6 support
OrchestKit
Skills

Release Notebook

Creates a versioned NotebookLM notebook for the current OrchestKit release. Reads version from package.json, extracts the matching CHANGELOG section, uploads CHANGELOG + CLAUDE.md + manifests/ork.json as sources, generates an audio overview, and shares the notebook. Use when cutting a release to create the Release KB.

Reference medium

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:

  1. nlm login --check — confirm an active session (~20 min TTL)
  2. If session expired: nlm login (re-authenticates via browser)
  3. 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__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__source_add(
    notebook_id=notebook_id,
    type="text",
    title="CHANGELOG v{FULL_VERSION}",
    content=CHANGELOG_SECTION
)

# Source 2: project instructions
mcp__notebooklm__source_add(
    notebook_id=notebook_id,
    type="text",
    title="CLAUDE.md — Project Instructions",
    content=CLAUDE_CONTENT
)

# Source 3: plugin manifest
mcp__notebooklm__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__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__studio_create(
    notebook_id=notebook_id,
    type="audio_overview"
)

# Poll (check every ~30s; generation takes 2-5 min)
status = mcp__notebooklm__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__notebook_share_status(notebook_id=notebook_id)

# Invite project owner as writer
mcp__notebooklm__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

ErrorAction
nlm login session expiredHalt. Print: "Run nlm login to re-authenticate, then retry."
notebook_create failsHalt. Print MCP error. Check nlm login --check.
source_add fails on one sourceLog warning, continue with remaining sources.
CHANGELOG section missingHalt before notebook_create. Report missing entry.
studio_create failsLog warning, continue — notebook is still valid.
studio_status = "failed"Log warning with artifact ID, continue.
  • ork:notebooklm — Full NotebookLM MCP tool reference and workflow patterns
  • ork:release-checklist — Pre-release gates (run before this skill)
  • ork:release-management — GitHub release creation with gh CLI
Edit on GitHub

Last updated on