deep-research — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited deep-research (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Free Perplexity/Gemini-level deep research for any AI coding agent. Combines NotebookLM's Gemini-powered research engine with iterative web search, domain-aware routing, and post-research artifact generation.
Triggered by /deep-research "topic" or intent detection ("research this", "deep dive into", "investigate").
"topic" — required, the research query--domain maritime|legal|academic — optional domain boost--continue — resume previous research session--compare "X vs Y" — structured comparison modeIf no arguments provided, ask: "What topic should I research?"
Before starting, determine available capabilities:
notebooklm status first. If command not found, try python3 -m notebooklm status or python -m notebooklm status. Use whichever works for all subsequent notebooklm commands."NotebookLM not detected. Running in web-search-only mode. For full features (deep research, podcast, video, slides, quiz), install: pip install notebooklm-py && notebooklm login"Present this prompt and WAIT for user response before proceeding:
Research Topic: "{topic}"
Depth:
1 = Quick (fast mode, 5-10 sources, ~1 min)
2 = Moderate (fast + 1 WebSearch round, 10-15 sources)
3 = Standard (deep mode, 20+ sources, ~3 min) [default]
4 = Deep (deep + 1 WebSearch round, 30+ sources)
5 = Exhaustive (deep + 2 WebSearch rounds, 40+ sources)
Source focus:
A = Everything (web + your notebooks) [default]
B = Academic only (papers, journals, research)
C = News & current events (last 12 months)
D = Technical docs & specs
E = Custom (tell me what to focus on)
Enter choices (e.g. "3, A") or press Enter for defaults:Parse response:
Run: notebooklm list --json
Search results for notebooks with titles matching the topic. If found, ask user: "Found existing notebook '{title}' with {n} sources. Use it? (y/n)"
notebooklm use {id}, skip to Step 3Run: notebooklm create "Research: {topic}" --json Parse notebook ID from output. Run: notebooklm use {id}
If existing notebook was selected, run: notebooklm ask "What information do you have about {topic}?" --json Store response as baseline context.
Determine mode from depth:
--mode fast--mode deepRun: notebooklm source add-research "{topic_query}" --mode {fast|deep} --no-wait
Show progress: [2/5] Starting deep research... (mode: {mode})
Run: notebooklm research wait --import-all --timeout 300
Show progress: [3/5] Waiting for sources... (processing...)
When complete, run: notebooklm source list --json Report: [3/5] {n} sources imported and ready.
If depth >= 4, run 1 WebSearch round:
notebooklm source add "{url}"If depth = 5, run a second WebSearch round:
notebooklm source wait {id}Show progress: [4/5] Running additional searches... ({n} extra sources)
Run domain-specific searches from the Domain Boost section below. Add discovered URLs as sources to the notebook.
Run structured synthesis query:
notebooklm ask "Based on ALL sources in this notebook, provide a comprehensive research report on '{topic}'.
Structure your response as:
1. EXECUTIVE SUMMARY (3-5 sentences, key takeaways)
2. MAIN FINDINGS (organized by theme, each finding citing specific sources)
3. KEY FINDINGS (bullet list of most important discoveries)
4. CONTRADICTIONS & OPEN QUESTIONS (where sources disagree or gaps exist)
5. For each claim, note which source(s) support it.
Be thorough, analytical, and cite sources precisely." --jsonParse response and extract references. Format into the Report Format below.
Used when NotebookLM is not available. Iterative WebSearch + WebFetch.
Generate 5 search queries from the topic (different angles). For each query:
Show progress: [1/{total_rounds}] Broad search... ({n} sources found)
For each round (up to depth-1 additional rounds):
Show progress: [{round}/{total_rounds}] Deep dive round {n}... ({total} sources)
Same domain-specific queries as full mode, but results stay in-memory instead of being added to a NotebookLM notebook.
Compile all findings into the Report Format below. Synthesis is done by the agent directly from collected findings.
Post-research actions NOT available without NotebookLM:
Available actions in fallback:
When --domain is specified, add these targeted searches to the pipeline.
--domain maritime)Additional search queries:
"{topic}" site:imo.org"{topic}" SOLAS regulation"{topic}" STCW code"{topic}" ISM Code"{topic}" site:iacs.org.uk"{topic}" Maritime Safety Committee MSC circular"{topic}" class society guidelinesSource priority (highest to lowest):
Citation format: include regulation references when available. Example: "SOLAS Ch. III, Reg. 19.3.3" or "STCW Code Table A-VI/1"
--domain legal)Additional search queries:
"{topic}" legislation regulation"{topic}" official journal law"{topic}" court decision ruling"{topic}" regulatory framework directive"{topic}" compliance requirementsSource priority:
--domain academic)Additional search queries:
"{topic}" research paper study"{topic}" peer-reviewed journal"{topic}" systematic review meta-analysis"{topic}" site:arxiv.org"{topic}" site:researchgate.net"{topic}" IEEE conference proceedingsSource priority:
Format the final output as a Gemini Deep Research-style report:
# {Topic} — Deep Research Report
**Generated:** {date} | **Sources:** {count} | **Depth:** {depth_label} | **Domain:** {domain or "General"}
## Executive Summary
{3-5 sentence overview of the most important findings. Lead with the answer,
not the process. What does the user need to know?}
## 1. {First Major Theme}
{Detailed analysis. Every factual claim includes a footnote reference.^1
When sources disagree, note the disagreement explicitly.^2,3}
## 2. {Second Major Theme}
{Continue with thematic sections. Number of sections scales with depth:
depth 1-2 = 2-3 sections, depth 3 = 3-5 sections, depth 4-5 = 5-8 sections.}
## Key Findings
- {Most important finding — with practical implication}
- {Second finding — actionable takeaway}
- {Third finding — what this means for the user}
## Contradictions & Open Questions
- {Where Source A says X but Source B says Y — explain why}
- {Gaps in current research or knowledge}
- {Areas where no consensus exists}
---
### Sources
^1 {Title} — {URL} — [{credibility_tag}]
^2 {Title} — {URL} — [{credibility_tag}]
^3 {Title} — {URL} — [{credibility_tag}]Assign one tag to each source based on its origin:
| Tag | Criteria |
|---|---|
official | Government body, regulatory org, international org (IMO, EU, WHO) |
academic | Peer-reviewed journal, university publication, .edu domain |
industry | Professional association, established trade publication |
news | Major news outlet, established journalist |
blog | Personal site, forum, social media, unverified source |
Display format in sources list: ^1 Title — URL — [official]
After displaying the report, present this menu:
Research complete! What next?
[S] Save as .md file
[P] Generate podcast from findings
[V] Generate video explainer
[D] Generate slide deck
[Q] Generate quiz/flashcards
[F] Ask follow-up questions
[+] Go deeper on a specific section
[C] Compare with another topic
[X] Done
Choose (or multiple, e.g. "S, P"):In fallback mode, only show: S, F (as new search), +, C, X.
Ask: "Where should I save the report?" Wait for path. Default suggestion: ./research/{topic-slug}.md Write the report to the specified path.
notebooklm generate audio "Create an engaging podcast discussion about the research findings. Focus on the most important and surprising discoveries. Make it conversational and accessible." --jsonNote the artifact ID. Inform user: "Podcast generating (~10-20 min). I'll download it when ready." Spawn background agent to wait + download: notebooklm artifact wait {id} && notebooklm download audio ./research/{topic-slug}-podcast.mp3
notebooklm generate video "Create an explainer video covering the key findings of this research." --jsonSame pattern: note artifact ID, spawn background agent for wait + download to ./research/{topic-slug}-video.mp4
notebooklm generate slide-deck --format detailed --jsonDownload as .pptx when ready: notebooklm download slide-deck ./research/{topic-slug}-slides.pptx --format pptx
Ask: "Quiz or flashcards?"
Quiz:
notebooklm generate quiz --difficulty medium --jsonDownload: notebooklm download quiz ./research/{topic-slug}-quiz.md --format markdown
Flashcards:
notebooklm generate flashcards --difficulty medium --jsonDownload: notebooklm download flashcards ./research/{topic-slug}-cards.md --format markdown
Ask: "What would you like to know more about?"
notebooklm ask "{follow-up question}" --jsonDisplay answer, then show the menu again.
Ask: "Which section should I investigate further? (enter number)" Take the section topic, run an additional research round:
notebooklm source add-research "{section topic details}" --mode deepRe-synthesize the specific section with new sources. Display updated section. Show menu again.
Ask: "Compare '{topic}' with what?" Transition to compare mode with current topic as side A. Run full research pipeline on side B. Generate comparison report (see Compare Mode section).
--continue)When invoked with --continue:
notebooklm list --jsonPrevious research sessions:
1. "Research: ballast water treatment" (24 sources)
2. "Research: enclosed space regulations" (18 sources)
3. "Research: AI in maritime training" (12 sources)
Pick a session to continue (or 0 for new research):notebooklm use {id}In fallback mode, --continue is not available (no persistent notebooks). Inform user: "Continue mode requires NotebookLM. Install with: pip install notebooklm-py && notebooklm login"
--compare "X vs Y")When invoked with --compare:
notebooklm create "Research: {X} vs {Y}" --jsonnotebooklm source add-research "{X}" --mode deepnotebooklm source add-research "{Y}" --mode deepnotebooklm ask "Compare {X} and {Y} based on all sources. Structure as:
1. OVERVIEW: What is X? What is Y? (2-3 sentences each)
2. COMPARISON TABLE: Side-by-side comparison of key dimensions
| Dimension | X | Y |
3. STRENGTHS: What X does better, what Y does better
4. WEAKNESSES: Limitations of each
5. USE CASES: When to choose X, when to choose Y
6. VERDICT: Your recommendation with reasoning
Cite sources for all claims." --jsonIn fallback mode, compare runs two separate WebSearch pipelines and synthesizes both.
Display real-time status throughout the pipeline. Update after each step:
[1/6] Checking existing notebooks...
[2/6] Creating research notebook...
[3/6] Running deep research... (mode: deep)
[4/6] Waiting for sources... (18 found, processing...)
[5/6] Running domain-specific searches... (+3 sources)
[6/6] Synthesizing findings...
Done — 24 sources analyzed. Report below.Step count adjusts based on pipeline:
[{round}/{total_rounds}] format| Error | Detection | Action |
|---|---|---|
| NotebookLM not authenticated | notebooklm status fails with auth error | Show: "Run notebooklm login to authenticate" |
| NotebookLM not installed | notebooklm command not found | Switch to fallback mode, inform user |
| Research timeout | research wait returns exit code 2 | "Research timed out. Showing partial results from {n} sources found so far." |
| Rate limit on generation | generate returns exit code 1 with rate limit | "Rate limited. Try again in 5-10 minutes, or use NotebookLM web UI." |
| No sources found | Research returns 0 sources | "No sources found via NotebookLM. Falling back to web search." Then run fallback pipeline. |
| WebSearch returns no results | All queries return empty | "Could not find relevant sources. Try rephrasing your topic or using a broader query." |
| Source processing stuck | Sources stay in "processing" > 5 min | Proceed with ready sources, note incomplete ones |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.