Help us improve
Share bugs, ideas, or general feedback.
From carrel
This skill should be used when a researcher wants to set up their AI research environment, mentions 'setup', 'get started', 'configure', 'onboard', or when opening a project folder with no .carrel/ directory. Also triggers on 'what tools do I have', 'check my setup', 'add a new tool'.
npx claudepluginhub linxule/carrel --plugin carrelHow this skill is triggered — by the user, by Claude, or both
Slash command
/carrel:environment-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Orchestrates researcher onboarding: interview, hardware audit, tool configuration, Obsidian vault scaffolding, and cheat sheet generation. Detects whether this is a first-time setup, a returning user, or a troubleshooting request.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Orchestrates researcher onboarding: interview, hardware audit, tool configuration, Obsidian vault scaffolding, and cheat sheet generation. Detects whether this is a first-time setup, a returning user, or a troubleshooting request.
Steps in this skill correspond to Phases in commands/carrel-setup.md (Skill Step N = Command Phase N-1 after Step 4).
.carrel/ directory (first-time detection)Check for .carrel/environment.json in the project root, and (if present) .carrel/setup-state.json:
.carrel/environment.json → First-time setup (full interview + scaffold)last_completed_phase >= 9 with completed_at set → Returning user. Read environment.json and offer:
last_completed_phase < 9 and completed_at: null → Setup paused. Recap what was completed, confirm the stopping point, and resume from last_completed_phase + 1. Do NOT re-interview — the profile already exists in environment.json.At Step 2, read audit.platform from carrel env doctor --format json. Use this platform value for every subsequent install recommendation.
Deploy the @setup-interviewer agent for a conversational interview, or follow the protocol in references/interview-protocol.md directly. Both approaches produce the same output.
Key principles: Be warm and curious. Use plain language — never say "MCP", "CLI", or "API" unless the researcher does first. This is a conversation, NOT a form.
Cover these areas naturally:
claude_code_familiarity: new/some/experienced) — drives whether /powerup is offered at handoffcollaborators + team_context) — drives whether /carrel-share is offered at handoffOutput: structured answers for environment.json.
Run carrel env doctor --format json silently. Consult references/hardware-audit.md for output interpretation. It detects:
audit.platform for later install guidanceDo NOT show raw output to the researcher. Translate findings into plain language: "You're on a Mac with Apple Silicon and plenty of storage. I found Python and Node already installed."
Consult references/decision-tree.md to map interview + audit → configuration plan.
Present the plan in plain language: "Based on what you've told me, here's what I'd recommend setting up:
Does this sound right? Anything you'd add or skip?"
Run carrel vault init <path> to create:
.obsidian/ configuration (core plugins, templates setup).carrel/environment.json (structured profile with defaults)_templates/ (paper, meeting, reflection, daily note templates)_meta/cheat_sheet.md (customized reference card)After scaffolding, update .carrel/environment.json with the researcher's profile from the interview.
carrel vault init automatically includes .base database templates based on the researcher's profile preferences. To control which ones are included, set the relevant preference keys before scaffolding (e.g., preferences.qualitative, preferences.many_papers, preferences.writing). reading-progress.base is always included. See references/decision-tree.md → Research Databases for the full mapping:
reading-progress.base — always include (lightweight reading pipeline dashboard)paper-tracker.base — for researchers with many papers or doing literature reviewsinterview-tracker.base — for qualitative researchers with interview datawriting-tracker.base — for researchers actively writing (thesis, paper, dissertation)Present these in plain language: "I set up a paper tracker — open it in Obsidian and you'll see a sortable table of all your papers." Don't say "database" or ".base file" unless the researcher is technically comfortable.
This is critical. Write a CLAUDE.md file in the vault root that encodes the researcher's preferences in natural language. Claude loads this file automatically every session — it's the bridge between the structured profile and Claude's judgment.
Write CLAUDE.md with these sections:
# Research Environment — [Researcher Name]
## About This Researcher
[Field, role, what they're working on, what they care about — from the interview]
## Preferences
- Sensitivity: [HIGH/MEDIUM/LOW] — [what this means for this person]
- Cloud tools: [comfortable/prefer local/local only] — [specific guidance]
- [If cloud comfortable]: Preferred cloud tools: [gemini for YouTube, groq for audio, etc.]
- [If sensitive]: ALWAYS use local tools. Never send data to cloud APIs without explicit permission.
## Available Tools
[List what was installed and configured, in plain language]
- PDF conversion: liteparse (local) [+ mineru if configured]
- Audio: coli (local) [+ groq if configured]
- YouTube: [local captions / Gemini — based on what was set up]
- Web capture: defuddle
- [Zotero, vox, gws — if configured]
## How to Work With [Name]
[Comfort level, explanation preferences, proactiveness level — from interview]
- [beginner]: Explain what you're doing in plain language. Don't assume they know markdown or git.
- [advanced]: Be concise. They know the tools.
## Claude Code Context
- Familiarity: [new / some / experienced — from interview]
- Collaborators: [yes / no, plus team_context if provided]
- [If new]: When natural, mention `/powerup` as a way to learn Claude Code itself (interactive lessons with animated demos).
- [If has collaborators]: When the researcher mentions sharing the vault or onboarding a teammate, suggest `/carrel-share` to generate a vault-specific handbook.
## Session Notes
[Leave empty — Claude can append notes here across sessions about what's working, what the researcher prefers, patterns noticed]
Why Claude writes this, not a script: You just did the interview. You know this person — their field, their concerns, their comfort level. A script can only template. You can write guidance that actually helps future-you work with this specific researcher.
When to update CLAUDE.md: Whenever the researcher's preferences change meaningfully (new tool added, sensitivity changed, new workflow discovered). Read .carrel/environment.json to verify CLAUDE.md is still in sync. If it's stale, update the relevant section.
If the decision tree indicates mineru, zotero, or gws:
.mcp.json (for MCP-based tools like zotero/vox)references/decision-tree.md)references/gws-setup-guide.md — this is a high-friction setup, set expectationsDelegate to model-teammates skill. Record status in model_teammates. Doesn't block setup progression.
Tell the researcher what THEY need to do (Claude can't install GUI apps):
audit.platform:| Platform | Command |
|---|---|
| macOS | brew install --cask obsidian |
| Windows | winget install Obsidian.Obsidian |
| Linux | Download AppImage from https://obsidian.md |
Regenerate the cheat sheet so it reflects the personalized profile and any tools added in Steps 5-7:
carrel vault cheatsheet --vault <path> --force
The CLI reads .carrel/environment.json via Pydantic and writes _meta/cheat_sheet.md. The vault scaffold in Step 4 wrote a starter version with default values; this regenerates against the real profile.
After regeneration, read the cheat sheet and edit it directly to add researcher-specific touches (workflow examples, named projects, custom shortcuts).
Update the researcher's environment dashboard at _meta/my-environment.md (the scaffold wrote a starter version). Fill in:
This dashboard is the researcher's living view of their environment. It grows as they add tools, MCPs, custom trackers, and Obsidian plugins. Claude updates it whenever the environment changes (see skills/self-improve/SKILL.md for the maintenance protocol).
Test one operation end-to-end:
Offer this briefly — it's an opt-in, not a required step:
"Carrel can maintain your vault between sessions — processing new files, checking health, surfacing connections. This uses Claude Desktop's scheduled tasks feature and costs approximately $3-8/month in API usage via Sonnet."
/carrel-automate now to configure it, or note it for later./carrel-automate later to enable it.Don't push. Some researchers prefer manual control. Move on.
_meta/my-environment.md shows everything that's set up and what's available. I'll keep it updated as your setup grows."When a researcher's preferences change:
.carrel/environment.json with the new valuesCLAUDE.md to match_meta/my-environment.md to reflect the change_meta/cheat_sheet.md "Your Setup at a Glance" tablecarrel env doctor to verify availabilityExamples:
_meta/capability-log.md (per self-improve skill)The key principle: environment.json is the structured truth, CLAUDE.md is the narrative truth. Keep them in sync. When in doubt, read environment.json and verify CLAUDE.md matches.
All deterministic operations live in the Python CLI (canonical source of truth):
carrel env doctor — hardware + installed-tools audit (Step 2)carrel vault init <path> — vault scaffold (Step 4)carrel vault cheatsheet --vault <path> --force — regenerate _meta/cheat_sheet.md (Step 8)The legacy skills/environment-setup/scripts/ Node scripts (create-vault.js, generate-cheatsheet.js, plus a check-environment.js distinct from the current hook) were removed in v0.5.2 because the Python CLI had already replaced them and the old scripts had drifted to write invalid Pydantic data.
/carrel-setup triggers this skill@setup-interviewer (optional) provides richer conversational interview; the protocol in references/ works directly without itvault-ops for ongoing vault operations after setup.carrel/ and surfaces researcher profile