[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CV1S1E8PHE264SC5SWGJ5D":3,"skill-same:01M6CV1S1E8PHE264SC5SWGJ5D":151},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M6CV1S1E8PHE264SC5SWGJ5D","notebooklm",null,"Interact with Google NotebookLM to query documentation with Gemini's source-grounded answers. Each question opens a fresh browser session, retrieves the answer exclusively from your uploaded documents, and closes.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28],"google","gemini","documentation","documents","browser","question","session","community","query","browser session","2026-11-10 10:12:30",false,"---\nname: notebooklm\ndescription: \"Interact with Google NotebookLM to query documentation with Gemini's source-grounded answers. Each question opens a fresh browser session, retrieves the answer exclusively from your uploaded documents, and closes.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# NotebookLM Research Assistant Skill\n\nInteract with Google NotebookLM to query documentation with Gemini's source-grounded answers. Each question opens a fresh browser session, retrieves the answer exclusively from your uploaded documents, and closes.\n\n## When to Use This Skill\n\nTrigger when user:\n- Mentions NotebookLM explicitly\n- Shares NotebookLM URL (`https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...`)\n- Asks to query their notebooks\u002Fdocumentation\n- Wants to add documentation to NotebookLM library\n- Uses phrases like \"ask my NotebookLM\", \"check my docs\", \"query my notebook\"\n\n## ⚠️ CRITICAL: Add Command - Smart Discovery\n\nWhen user wants to add a notebook without providing details:\n\n**SMART ADD (Recommended)**: Query the notebook first to discover its content:\n```bash\n# Step 1: Query the notebook about its content\npython scripts\u002Frun.py ask_question.py --question \"What is the content of this notebook? What topics are covered? Provide a complete overview briefly and concisely\" --notebook-url \"[URL]\"\n\n# Step 2: Use the discovered information to add it\npython scripts\u002Frun.py notebook_manager.py add --url \"[URL]\" --name \"[Based on content]\" --description \"[Based on content]\" --topics \"[Based on content]\"\n```\n\n**MANUAL ADD**: If user provides all details:\n- `--url` - The NotebookLM URL\n- `--name` - A descriptive name\n- `--description` - What the notebook contains (REQUIRED!)\n- `--topics` - Comma-separated topics (REQUIRED!)\n\nNEVER guess or use generic descriptions! If details missing, use Smart Add to discover them.\n\n## Critical: Always Use run.py Wrapper\n\n**NEVER call scripts directly. ALWAYS use `python scripts\u002Frun.py [script]`:**\n\n```bash\n# ✅ CORRECT - Always use run.py:\npython scripts\u002Frun.py auth_manager.py status\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py ask_question.py --question \"...\"\n\n# ❌ WRONG - Never call directly:\npython scripts\u002Fauth_manager.py status  # Fails without venv!\n```\n\nThe `run.py` wrapper automatically:\n1. Creates `.venv` if needed\n2. Installs all dependencies\n3. Activates environment\n4. Executes script properly\n\n## Core Workflow\n\n### Step 1: Check Authentication Status\n```bash\npython scripts\u002Frun.py auth_manager.py status\n```\n\nIf not authenticated, proceed to setup.\n\n### Step 2: Authenticate (One-Time Setup)\n```bash\n# Browser MUST be visible for manual Google login\npython scripts\u002Frun.py auth_manager.py setup\n```\n\n**Important:**\n- Browser is VISIBLE for authentication\n- Browser window opens automatically\n- User must manually log in to Google\n- Tell user: \"A browser window will open for Google login\"\n\n### Step 3: Manage Notebook Library\n\n```bash\n# List all notebooks\npython scripts\u002Frun.py notebook_manager.py list\n\n# BEFORE ADDING: Ask user for metadata if unknown!\n# \"What does this notebook contain?\"\n# \"What topics should I tag it with?\"\n\n# Add notebook to library (ALL parameters are REQUIRED!)\npython scripts\u002Frun.py notebook_manager.py add \\\n  --url \"https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...\" \\\n  --name \"Descriptive Name\" \\\n  --description \"What this notebook contains\" \\  # REQUIRED - ASK USER IF UNKNOWN!\n  --topics \"topic1,topic2,topic3\"  # REQUIRED - ASK USER IF UNKNOWN!\n\n# Search notebooks by topic\npython scripts\u002Frun.py notebook_manager.py search --query \"keyword\"\n\n# Set active notebook\npython scripts\u002Frun.py notebook_manager.py activate --id notebook-id\n\n# Remove notebook\npython scripts\u002Frun.py notebook_manager.py remove --id notebook-id\n```\n\n### Quick Workflow\n1. Check library: `python scripts\u002Frun.py notebook_manager.py list`\n2. Ask question: `python scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id ID`\n\n### Step 4: Ask Questions\n\n```bash\n# Basic query (uses active notebook if set)\npython scripts\u002Frun.py ask_question.py --question \"Your question here\"\n\n# Query specific notebook\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id notebook-id\n\n# Query with notebook URL directly\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-url \"https:\u002F\u002F...\"\n\n# Show browser for debugging\npython scripts\u002Frun.py ask_question.py --question \"...\" --show-browser\n```\n\n## Follow-Up Mechanism (CRITICAL)\n\nEvery NotebookLM answer ends with: **\"EXTREMELY IMPORTANT: Is that ALL you need to know?\"**\n\n**Required Claude Behavior:**\n1. **STOP** - Do not immediately respond to user\n2. **ANALYZE** - Compare answer to user's original request\n3. **IDENTIFY GAPS** - Determine if more information needed\n4. **ASK FOLLOW-UP** - If gaps exist, immediately ask:\n   ```bash\n   python scripts\u002Frun.py ask_question.py --question \"Follow-up with context...\"\n   ```\n5. **REPEAT** - Continue until information is complete\n6. **SYNTHESIZE** - Combine all answers before responding to user\n\n## Script Reference\n\n### Authentication Management (`auth_manager.py`)\n```bash\npython scripts\u002Frun.py auth_manager.py setup    # Initial setup (browser visible)\npython scripts\u002Frun.py auth_manager.py status   # Check authentication\npython scripts\u002Frun.py auth_manager.py reauth   # Re-authenticate (browser visible)\npython scripts\u002Frun.py auth_manager.py clear    # Clear authentication\n```\n\n### Notebook Management (`notebook_manager.py`)\n```bash\npython scripts\u002Frun.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py notebook_manager.py search --query QUERY\npython scripts\u002Frun.py notebook_manager.py activate --id ID\npython scripts\u002Frun.py notebook_manager.py remove --id ID\npython scripts\u002Frun.py notebook_manager.py stats\n```\n\n### Question Interface (`ask_question.py`)\n```bash\npython scripts\u002Frun.py ask_question.py --question \"...\" [--notebook-id ID] [--notebook-url URL] [--show-browser]\n```\n\n### Data Cleanup (`cleanup_manager.py`)\n```bash\npython scripts\u002Frun.py cleanup_manager.py                    # Preview cleanup\npython scripts\u002Frun.py cleanup_manager.py --confirm          # Execute cleanup\npython scripts\u002Frun.py cleanup_manager.py --preserve-library # Keep notebooks\n```\n\n## Environment Management\n\nThe virtual environment is automatically managed:\n- First run creates `.venv` automatically\n- Dependencies install automatically\n- Chromium browser installs automatically\n- Everything isolated in skill directory\n\nManual setup (only if automatic fails):\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate  # Linux\u002FMac\npip install -r requirements.txt\npython -m patchright install chromium\n```\n\n## Data Storage\n\nAll data stored in `~\u002F.claude\u002Fskills\u002Fnotebooklm\u002Fdata\u002F`:\n- `library.json` - Notebook metadata\n- `auth_info.json` - Authentication status\n- `browser_state\u002F` - Browser cookies and session\n\n**Security:** Protected by `.gitignore`, never commit to git.\n\n## Configuration\n\nOptional `.env` file in skill directory:\n```env\nHEADLESS=false           # Browser visibility\nSHOW_BROWSER=false       # Default browser display\nSTEALTH_ENABLED=true     # Human-like behavior\nTYPING_WPM_MIN=160       # Typing speed\nTYPING_WPM_MAX=240\nDEFAULT_NOTEBOOK_ID=     # Default notebook\n```\n\n## Decision Flow\n\n```\nUser mentions NotebookLM\n    ↓\nCheck auth → python scripts\u002Frun.py auth_manager.py status\n    ↓\nIf not authenticated → python scripts\u002Frun.py auth_manager.py setup\n    ↓\nCheck\u002FAdd notebook → python scripts\u002Frun.py notebook_manager.py list\u002Fadd (with --description)\n    ↓\nActivate notebook → python scripts\u002Frun.py notebook_manager.py activate --id ID\n    ↓\nAsk question → python scripts\u002Frun.py ask_question.py --question \"...\"\n    ↓\nSee \"Is that ALL you need?\" → Ask follow-ups until complete\n    ↓\nSynthesize and respond to user\n```\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| ModuleNotFoundError | Use `run.py` wrapper |\n| Authentication fails | Browser must be visible for setup! --show-browser |\n| Rate limit (50\u002Fday) | Wait or switch Google account |\n| Browser crashes | `python scripts\u002Frun.py cleanup_manager.py --preserve-library` |\n| Notebook not found | Check with `notebook_manager.py list` |\n\n## Best Practices\n\n1. **Always use run.py** - Handles environment automatically\n2. **Check auth first** - Before any operations\n3. **Follow-up questions** - Don't stop at first answer\n4. **Browser visible for auth** - Required for manual login\n5. **Include context** - Each question is independent\n6. **Synthesize answers** - Combine multiple responses\n\n## Limitations\n\n- No session persistence (each question = new browser)\n- Rate limits on free Google accounts (50 queries\u002Fday)\n- Manual upload required (user must add docs to NotebookLM)\n- Browser overhead (few seconds per question)\n\n## Resources (Skill Structure)\n\n**Important directories and files:**\n\n- `scripts\u002F` - All automation scripts (ask_question.py, notebook_manager.py, etc.)\n- `data\u002F` - Local storage for authentication and notebook library\n- `references\u002F` - Extended documentation:\n  - `api_reference.md` - Detailed API documentation for all scripts\n  - `troubleshooting.md` - Common issues and solutions\n  - `usage_patterns.md` - Best practices and workflow examples\n- `.venv\u002F` - Isolated Python environment (auto-created on first run)\n- `.gitignore` - Protects sensitive data from being committed\n","# NotebookLM Research Assistant Skill\n\nInteract with Google NotebookLM to query documentation with Gemini's source-grounded answers. Each question opens a fresh browser session, retrieves the answer exclusively from your uploaded documents, and closes.\n\n## When to Use This Skill\n\nTrigger when user:\n- Mentions NotebookLM explicitly\n- Shares NotebookLM URL (`https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...`)\n- Asks to query their notebooks\u002Fdocumentation\n- Wants to add documentation to NotebookLM library\n- Uses phrases like \"ask my NotebookLM\", \"check my docs\", \"query my notebook\"\n\n## ⚠️ CRITICAL: Add Command - Smart Discovery\n\nWhen user wants to add a notebook without providing details:\n\n**SMART ADD (Recommended)**: Query the notebook first to discover its content:\n```bash\n# Step 1: Query the notebook about its content\npython scripts\u002Frun.py ask_question.py --question \"What is the content of this notebook? What topics are covered? Provide a complete overview briefly and concisely\" --notebook-url \"[URL]\"\n\n# Step 2: Use the discovered information to add it\npython scripts\u002Frun.py notebook_manager.py add --url \"[URL]\" --name \"[Based on content]\" --description \"[Based on content]\" --topics \"[Based on content]\"\n```\n\n**MANUAL ADD**: If user provides all details:\n- `--url` - The NotebookLM URL\n- `--name` - A descriptive name\n- `--description` - What the notebook contains (REQUIRED!)\n- `--topics` - Comma-separated topics (REQUIRED!)\n\nNEVER guess or use generic descriptions! If details missing, use Smart Add to discover them.\n\n## Critical: Always Use run.py Wrapper\n\n**NEVER call scripts directly. ALWAYS use `python scripts\u002Frun.py [script]`:**\n\n```bash\n# ✅ CORRECT - Always use run.py:\npython scripts\u002Frun.py auth_manager.py status\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py ask_question.py --question \"...\"\n\n# ❌ WRONG - Never call directly:\npython scripts\u002Fauth_manager.py status  # Fails without venv!\n```\n\nThe `run.py` wrapper automatically:\n1. Creates `.venv` if needed\n2. Installs all dependencies\n3. Activates environment\n4. Executes script properly\n\n## Core Workflow\n\n### Step 1: Check Authentication Status\n```bash\npython scripts\u002Frun.py auth_manager.py status\n```\n\nIf not authenticated, proceed to setup.\n\n### Step 2: Authenticate (One-Time Setup)\n```bash\n# Browser MUST be visible for manual Google login\npython scripts\u002Frun.py auth_manager.py setup\n```\n\n**Important:**\n- Browser is VISIBLE for authentication\n- Browser window opens automatically\n- User must manually log in to Google\n- Tell user: \"A browser window will open for Google login\"\n\n### Step 3: Manage Notebook Library\n\n```bash\n# List all notebooks\npython scripts\u002Frun.py notebook_manager.py list\n\n# BEFORE ADDING: Ask user for metadata if unknown!\n# \"What does this notebook contain?\"\n# \"What topics should I tag it with?\"\n\n# Add notebook to library (ALL parameters are REQUIRED!)\npython scripts\u002Frun.py notebook_manager.py add \\\n  --url \"https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...\" \\\n  --name \"Descriptive Name\" \\\n  --description \"What this notebook contains\" \\  # REQUIRED - ASK USER IF UNKNOWN!\n  --topics \"topic1,topic2,topic3\"  # REQUIRED - ASK USER IF UNKNOWN!\n\n# Search notebooks by topic\npython scripts\u002Frun.py notebook_manager.py search --query \"keyword\"\n\n# Set active notebook\npython scripts\u002Frun.py notebook_manager.py activate --id notebook-id\n\n# Remove notebook\npython scripts\u002Frun.py notebook_manager.py remove --id notebook-id\n```\n\n### Quick Workflow\n1. Check library: `python scripts\u002Frun.py notebook_manager.py list`\n2. Ask question: `python scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id ID`\n\n### Step 4: Ask Questions\n\n```bash\n# Basic query (uses active notebook if set)\npython scripts\u002Frun.py ask_question.py --question \"Your question here\"\n\n# Query specific notebook\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id notebook-id\n\n# Query with notebook URL directly\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-url \"https:\u002F\u002F...\"\n\n# Show browser for debugging\npython scripts\u002Frun.py ask_question.py --question \"...\" --show-browser\n```\n\n## Follow-Up Mechanism (CRITICAL)\n\nEvery NotebookLM answer ends with: **\"EXTREMELY IMPORTANT: Is that ALL you need to know?\"**\n\n**Required Claude Behavior:**\n1. **STOP** - Do not immediately respond to user\n2. **ANALYZE** - Compare answer to user's original request\n3. **IDENTIFY GAPS** - Determine if more information needed\n4. **ASK FOLLOW-UP** - If gaps exist, immediately ask:\n   ```bash\n   python scripts\u002Frun.py ask_question.py --question \"Follow-up with context...\"\n   ```\n5. **REPEAT** - Continue until information is complete\n6. **SYNTHESIZE** - Combine all answers before responding to user\n\n## Script Reference\n\n### Authentication Management (`auth_manager.py`)\n```bash\npython scripts\u002Frun.py auth_manager.py setup    # Initial setup (browser visible)\npython scripts\u002Frun.py auth_manager.py status   # Check authentication\npython scripts\u002Frun.py auth_manager.py reauth   # Re-authenticate (browser visible)\npython scripts\u002Frun.py auth_manager.py clear    # Clear authentication\n```\n\n### Notebook Management (`notebook_manager.py`)\n```bash\npython scripts\u002Frun.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py notebook_manager.py search --query QUERY\npython scripts\u002Frun.py notebook_manager.py activate --id ID\npython scripts\u002Frun.py notebook_manager.py remove --id ID\npython scripts\u002Frun.py notebook_manager.py stats\n```\n\n### Question Interface (`ask_question.py`)\n```bash\npython scripts\u002Frun.py ask_question.py --question \"...\" [--notebook-id ID] [--notebook-url URL] [--show-browser]\n```\n\n### Data Cleanup (`cleanup_manager.py`)\n```bash\npython scripts\u002Frun.py cleanup_manager.py                    # Preview cleanup\npython scripts\u002Frun.py cleanup_manager.py --confirm          # Execute cleanup\npython scripts\u002Frun.py cleanup_manager.py --preserve-library # Keep notebooks\n```\n\n## Environment Management\n\nThe virtual environment is automatically managed:\n- First run creates `.venv` automatically\n- Dependencies install automatically\n- Chromium browser installs automatically\n- Everything isolated in skill directory\n\nManual setup (only if automatic fails):\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate  # Linux\u002FMac\npip install -r requirements.txt\npython -m patchright install chromium\n```\n\n## Data Storage\n\nAll data stored in `~\u002F.claude\u002Fskills\u002Fnotebooklm\u002Fdata\u002F`:\n- `library.json` - Notebook metadata\n- `auth_info.json` - Authentication status\n- `browser_state\u002F` - Browser cookies and session\n\n**Security:** Protected by `.gitignore`, never commit to git.\n\n## Configuration\n\nOptional `.env` file in skill directory:\n```env\nHEADLESS=false           # Browser visibility\nSHOW_BROWSER=false       # Default browser display\nSTEALTH_ENABLED=true     # Human-like behavior\nTYPING_WPM_MIN=160       # Typing speed\nTYPING_WPM_MAX=240\nDEFAULT_NOTEBOOK_ID=     # Default notebook\n```\n\n## Decision Flow\n\n```\nUser mentions NotebookLM\n    ↓\nCheck auth → python scripts\u002Frun.py auth_manager.py status\n    ↓\nIf not authenticated → python scripts\u002Frun.py auth_manager.py setup\n    ↓\nCheck\u002FAdd notebook → python scripts\u002Frun.py notebook_manager.py list\u002Fadd (with --description)\n    ↓\nActivate notebook → python scripts\u002Frun.py notebook_manager.py activate --id ID\n    ↓\nAsk question → python scripts\u002Frun.py ask_question.py --question \"...\"\n    ↓\nSee \"Is that ALL you need?\" → Ask follow-ups until complete\n    ↓\nSynthesize and respond to user\n```\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| ModuleNotFoundError | Use `run.py` wrapper |\n| Authentication fails | Browser must be visible for setup! --show-browser |\n| Rate limit (50\u002Fday) | Wait or switch Google account |\n| Browser crashes | `python scripts\u002Frun.py cleanup_manager.py --preserve-library` |\n| Notebook not found | Check with `notebook_manager.py list` |\n\n## Best Practices\n\n1. **Always use run.py** - Handles environment automatically\n2. **Check auth first** - Before any operations\n3. **Follow-up questions** - Don't stop at first answer\n4. **Browser visible for auth** - Required for manual login\n5. **Include context** - Each question is independent\n6. **Synthesize answers** - Combine multiple responses\n\n## Limitations\n\n- No session persistence (each question = new browser)\n- Rate limits on free Google accounts (50 queries\u002Fday)\n- Manual upload required (user must add docs to NotebookLM)\n- Browser overhead (few seconds per question)\n\n## Resources (Skill Structure)\n\n**Important directories and files:**\n\n- `scripts\u002F` - All automation scripts (ask_question.py, notebook_manager.py, etc.)\n- `data\u002F` - Local storage for authentication and notebook library\n- `references\u002F` - Extended documentation:\n  - `api_reference.md` - Detailed API documentation for all scripts\n  - `troubleshooting.md` - Common issues and solutions\n  - `usage_patterns.md` - Best practices and workflow examples\n- `.venv\u002F` - Isolated Python environment (auto-created on first run)\n- `.gitignore` - Protects sensitive data from being committed\n",{"name":5,"risk":34,"source":26,"date_added":35,"description":7},"unknown","2026-02-27","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill notebooklm",{"tool":50,"command":51},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill notebooklm",{"tool":53,"command":54},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill notebooklm","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002FSKILL.md",true,[58,64,70,74,78,84,89,93,97,101,105,109,115,119,123,127,131,135,139,143,147],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},".gitignore","OTHER","其他",723,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002F.gitignore",{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"AUTHENTICATION.md","REFERENCE","参考文档",5729,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002FAUTHENTICATION.md",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"bmad-skill-manifest.yaml",951,"https:\u002F\u002Fgithub.com\u002Fcodeasice\u002Fagentcore-presentation\u002Fblob\u002Fmaster\u002F_bmad\u002Fgds\u002Fagents\u002Fgds-agent-game-architect\u002Fbmad-skill-manifest.yaml",{"path":75,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":76,"sourceHtmlUrl":77},"CHANGELOG.md",1774,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002FCHANGELOG.md",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"images\u002Fexample_notebookchat.png","ASSET","资产文件",137552,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fimages\u002Fexample_notebookchat.png",{"path":85,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"LICENSE","许可证",1072,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002FLICENSE",{"path":90,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":91,"sourceHtmlUrl":92},"README.md",15901,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002FREADME.md",{"path":94,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fapi_reference.md",7630,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Freferences\u002Fapi_reference.md",{"path":98,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Ftroubleshooting.md",8994,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Freferences\u002Ftroubleshooting.md",{"path":102,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fusage_patterns.md",9574,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Freferences\u002Fusage_patterns.md",{"path":106,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":107,"sourceHtmlUrl":108},"requirements.txt",325,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Frequirements.txt",{"path":110,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":113,"sourceHtmlUrl":114},"scripts\u002F__init__.py","SCRIPT","脚本",2627,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002F__init__.py",{"path":116,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":117,"sourceHtmlUrl":118},"scripts\u002Fask_question.py",8196,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fask_question.py",{"path":120,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":121,"sourceHtmlUrl":122},"scripts\u002Fauth_manager.py",11903,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fauth_manager.py",{"path":124,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":125,"sourceHtmlUrl":126},"scripts\u002Fbrowser_session.py",8969,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fbrowser_session.py",{"path":128,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":129,"sourceHtmlUrl":130},"scripts\u002Fbrowser_utils.py",3491,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fbrowser_utils.py",{"path":132,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":133,"sourceHtmlUrl":134},"scripts\u002Fcleanup_manager.py",9777,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fcleanup_manager.py",{"path":136,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":137,"sourceHtmlUrl":138},"scripts\u002Fconfig.py",1228,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fconfig.py",{"path":140,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":141,"sourceHtmlUrl":142},"scripts\u002Fnotebook_manager.py",13843,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fnotebook_manager.py",{"path":144,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":145,"sourceHtmlUrl":146},"scripts\u002Frun.py",2967,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Frun.py",{"path":148,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":149,"sourceHtmlUrl":150},"scripts\u002Fsetup_environment.py",7168,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fnotebooklm\u002Fscripts\u002Fsetup_environment.py",[152,165,181,208,227,254],{"skillNo":153,"name":154,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":162,"publishedAt":29},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[157],{"categoryNo":158,"categoryName":159,"taxonomyType":160,"taxonomyTypeDesc":161},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[163,164],"Test Skill","test",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":29},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[172,173,174,175,176,177,178,26,179,180],"zustand store ts","zustand","store","with","types","middleware","patterns","create","typescript",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":190,"publishedAt":29},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[187],{"categoryNo":188,"categoryName":189,"taxonomyType":160,"taxonomyTypeDesc":161},"01JBSEEDCAT000000000000023","Skill与智能体开发",[191,192,193,194,195,196,197,198,199,200,201,202,203,204,26,205,206,207],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","management","tracking",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":29},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[214],{"categoryNo":188,"categoryName":189,"taxonomyType":160,"taxonomyTypeDesc":161},[216,191,217,218,219,220,221,26,196,222,204,223,201,200,195,224,179,225,197,226],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":231,"categories":232,"keywords":236,"publishedAt":29},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[233],{"categoryNo":234,"categoryName":235,"taxonomyType":160,"taxonomyTypeDesc":161},"01JBSEEDCAT000000000000009","前端开发",[237,238,239,240,241,180,242,243,244,245,246,247,175,248,249,250,251,26,252,253],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":255,"name":256,"nameZh":6,"description":257,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":258,"categories":259,"keywords":261,"publishedAt":29},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[260],{"categoryNo":188,"categoryName":189,"taxonomyType":160,"taxonomyTypeDesc":161},[262,263,264,265,266,267,268,269,26,270,271,272,273,274,275,276,277,278,279,197],"zeroize audit","audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","data","flow","verification","code","rust"]