claude-skills/research/notebooklm/README.md
Claude 7405298b4b
fix: resolve the actionable reported issues (#954, #949, #933, #931, #969, #968, #924, #885)
- #954: strip non-spec source/attribution keys from all 39 plugin.json
  manifests so Claude Code's validator accepts them; metadata preserved in
  new .claude-plugin/authoring-notes.json sidecars; check_plugin_json.py now
  hard-fails manifests carrying those keys and sanity-checks the sidecar;
  CLAUDE.md ClawHub schema section updated to the new rule.
- #949: move the c-level-agents plugin out of c-level-advisor/ to a
  top-level directory so the two marketplace sources no longer overlap;
  updated marketplace.json source, homepage, descriptions, all
  cross-references, docs, harness manifest, mirror-tree symlinks/indexes,
  and rebased the moved files' relative links; domain counters trued up
  (18 -> 19 domains).
- #933: replace dead links to the gitignored maintainer-local megaprompts/
  tree with annotated plain-text references (44 files: SKILL.md, READMEs,
  agents, commands).
- #931: DynamoDB on-demand pricing updated to post-Nov-2024 rates
  ($0.625/M writes, $0.125/M strongly consistent reads).
- #969: skill_security_auditor.py and the three dossier scripts reconfigure
  stdout/stderr to UTF-8 (errors=replace) so legacy Windows codepages no
  longer crash at print time; PYTHONUTF8=1 documented.
- #968: Windows Notes section in INSTALLATION.md + README pointer for the
  core.symlinks mirror-tree checkout caveat.
- #924/#885 residuals: hook commands quote "${CLAUDE_PLUGIN_ROOT}" paths in
  all plugin hooks.json/settings.json (space-safe roots); removed the stale
  pre-rename status/review mirror symlinks and index entries left over from
  the memory-status/memory-review rename.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
2026-08-21 05:47:37 +00:00

69 lines
3.3 KiB
Markdown

# notebooklm
Browser-automation skill for controlling Google's NotebookLM (https://notebooklm.google.com). The only **browser-automation shape** in the v2 collection — distinct from the research-pack convention.
## Critical Portability Notice
> **Requires:** A browser automation environment (Claude Code CLI with computer-use, Claude Chrome Extension, or equivalent). Skill will gracefully fail in non-automation contexts with a clear "not supported" message.
This skill cannot run in Claude.ai web (no browser automation). It detects environment at Step 0 and exits cleanly if unsupported.
## What this skill does
Four core actions controlled via the grill-me action-routing intake:
| Action | Q1 picks | UI flow |
|---|---|---|
| **Read/Extract** | 1 | Ask the notebook's chat a question, return clean response |
| **Add Sources** | 2 | Push URL / text / file / Google Doc / synthesized content into a notebook |
| **Generate Studio Outputs** | 3 | Audio Overview, Study Guide, Briefing Doc, Timeline, FAQ, Table of Contents, Infographic, Slides, Mind Map |
| **Create New Notebook** | 4 | Initialize with title + initial sources |
## Domain folder — research (semantic) vs shape difference
This skill lives in `research/` (with pulse/litreview/grants/dossier/patent/syllabus) because its **user-facing semantic domain** is research — users automate NotebookLM as part of their research workflow.
But the **technical shape** is completely different from the research-pack:
- No Consensus / Agent Integrity Rules
- No 1 q/sec rate limits (browser automation has different constraints)
- No DOCX generation (NotebookLM outputs come from NotebookLM itself)
- No three-count tracking
- Async discipline is fundamentally different (UI generation can take 5-10 min)
Users find it where they expect (research/), but it's the only research-domain skill with this shape.
## Source spec
`megaprompts/03-notebooklm-megaprompt.md` (maintainer-local draft spec — gitignored, not in the public repo) (PR #657).
## Plugin layout
```
research/notebooklm/
├── .claude-plugin/plugin.json
├── README.md
├── agents/cs-notebooklm.md ← browser-automation persona, async-discipline enforcer
├── commands/cs-notebooklm.md ← /cs:notebooklm (or auto-triggers on phrases)
└── skills/notebooklm/
├── SKILL.md
├── references/
│ ├── browser_automation_canon.md ← screenshot-first / find-before-click (7+ sources)
│ ├── studio_output_custom_prompts.md ← why default prompts mediocre + per-type templates (7+ sources)
│ └── async_action_discipline.md ← fire-and-notify pattern for slow UI ops (7+ sources)
└── scripts/
├── action_router.py ← stdlib: Q1-Q4 answers → action plan + UI flow
├── custom_prompt_template_generator.py ← stdlib: studio output type + audience → custom prompt starter
└── async_action_classifier.py ← stdlib: action → wait-or-notify-and-move-on
```
## Dependencies
- **Browser automation tool** — Required. Examples:
- Claude Code CLI with computer-use
- Claude Chrome Extension
- Playwright / Puppeteer with screenshot + click tools
- **NotebookLM account** (Google) — User-provided, never auto-login
## License
MIT.