timsimpsonjr/researcher/researcher-setup
Claude Code and agent skill by timsimpsonjr/researcher
- community
Checking that the SKILL.md file is still in the repository.
Setup wizard for the research pipeline. Detects infrastructure, configures vault, installs optional tools. Run once per vault, re-run to update.
Install
npx vskill@latest install timsimpsonjr/researcher/researcher-setupSKILL.md
Research Setup Wizard
You are an interactive setup wizard. Walk the user through configuring the research pipeline step by step. Use AskUserQuestion at every decision point. Never install or modify anything without explicit user confirmation.
Plugin root: REPO = the directory two levels above this skill's base directory (Claude Code prints the base directory, ending in skills/researcher-setup, when the skill loads). Write that absolute path wherever REPO appears below, inside the quotes.
All Python runs as one line through uv: uv run --frozen --project "REPO" "REPO/scripts/rw.py" <subcommand> [flags]. Never invoke the Python interpreter directly or write inline Python blocks. rw.py prints JSON; on failure it prints ERROR: ... on stderr and exits 1. During setup always pass --vault "VAULT_ROOT": the vault has no config yet, so rw.py cannot find it on its own.
Step 0: Check uv and Prepare the Environment
Before starting the wizard, check that uv is installed. Use Bash:
If it is not found, stop and tell the user to install uv, then re-run /researcher-setup:
Then build the plugin's Python environment once:
This creates REPO/.venv from REPO/uv.lock (downloading Python 3.12 if needed). If it fails, report the error and attempt to continue — the Python environment may need troubleshooting.
Step 1: Vault Path
Ask the user for their Obsidian vault path.
Use AskUserQuestion:
If the user provides a path:
- Verify it exists using Bash:
test -d "USER_PATH" && echo "EXISTS" || echo "NOT_FOUND" - If not found, ask again
- Store as
VAULT_ROOT
If the user wants a template vault:
- Ask where to create it (AskUserQuestion for a parent directory path)
- Create the template structure using Bash:
- Create a starter MOC at
PARENT/Research Vault/_Index.md:
- Store
PARENT/Research VaultasVAULT_ROOT
Check for existing config:
Use Bash:
It prints the config JSON, or null when the vault has none.
If existing config is found, show the user its contents and ask:
If updating, skip steps where the user is happy with the current value. If starting fresh, proceed through all steps.
Step 2: Scan Vault Conventions
Run a vault scan to detect existing note patterns. Use Bash:
It prints total_notes, top_folders, tag_format_counts, dominant_tag_format, frontmatter_fields, moc_files and moc_pattern (the first 50 non-hidden notes are sampled).
Present the findings to the user:
Wait for acknowledgment via AskUserQuestion before proceeding.
Step 3: Detect Platform
Use Bash:
Report to user:
Store platform_info for later steps.
Step 4: Ollama
Check if Ollama is installed. Use Bash:
If installed and running:
- Report:
Ollama is installed and running. Models available: {models} - Set
ollama_installed = True - Skip to Step 5
If installed but not running:
- Report:
Ollama is installed but the server is not running. - Ask user:
Would you like to start Ollama? (Run "ollama serve" in a separate terminal, then tell me when it's ready) - Set
ollama_installed = True
If not installed:
Use AskUserQuestion:
If the user says yes:
- Linux or WSL: Ask for confirmation, then run:
curl -fsSL https://ollama.com/install.sh | sh - macOS: Ask for confirmation, then run:
curl -fsSL https://ollama.com/install.sh | sh - Windows (not WSL): Tell the user:
Download and install Ollama from https://ollama.com/download. Run the installer, then tell me when it's done.
After installation, re-run the Ollama check to verify.
If the user declines, set ollama_installed = False and note that base tier will be used.
Step 5: Hardware Check and Model Recommendation
Gather hardware info. Use Bash:
Parse the hardware info and get a model recommendation. Use Bash:
Replace RAM_GB and VRAM_GB with the values from the hardware check.
Present to user:
If Ollama is available and a model is recommended:
Use AskUserQuestion:
If yes, pull the model via Bash:
After pull completes, offer a quick benchmark:
If yes, run via Bash:
Report the result and store ollama_benchmark_ms.
Step 6: yt-dlp
Check availability. Use Bash:
If installed: Report yt-dlp is available. and set ytdlp_available = True.
If not installed:
Use AskUserQuestion:
If yes, run via Bash:
If check ytdlp still reports it missing afterwards, uv's tool directory is not on PATH: run uv tool update-shell and restart the terminal.
Re-check after install. If the user declines, set ytdlp_available = False.
Step 7: Whisper
Check availability. Use Bash:
If installed: Report Whisper is available (backend: {backend}). and set whisper_available = True.
If not installed: Report:
Set whisper_available = False. Do not offer to auto-install — it's heavy.
Step 8: SearXNG
Use AskUserQuestion:
If the user provides a URL:
Test connectivity via Bash:
If reachable: SearXNG is reachable at {url}. Set searxng_url. If not reachable: Could not connect to SearXNG at {url}. Check that the server is running. Ask user to retry or skip.
If skip: Set searxng_url = None.
Step 9: Generate Config and Vault Rules
9a. Determine tier
Use Bash:
Drop --searxng-url "SEARXNG_URL" when SearXNG was skipped. It prints the tier as a JSON string ("base", "mid" or "full").
9b. Save config
Write the config to VAULT_ROOT/.researcher/setup_config.json with the Write tool:
Replace all placeholders with the actual values collected during the wizard. Use the detected values from Step 2 for inbox (default "Inbox" if an "Inbox" folder exists, otherwise the first folder that looks like an inbox), assets, moc_pattern, tag_format, and frontmatter_fields.
Use JSON values: true / false, null for none, a JSON list for frontmatter_fields. Write vault_root with forward slashes (or doubled backslashes) so the JSON stays valid. Then save it:
It writes VAULT_ROOT/.researcher/config.json and prints the saved config. Once saved, .researcher/setup_config.json can be deleted.
9c. Generate vault_rules.txt
Create REPO/scripts/prompts/vault_rules.txt using the Write tool. Base the content on the detected conventions:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/researcher-setup/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/timsimpsonjr/researcher/researcher-setup)