environment-setup
Skill2 starsChanged 6 days agoMITView on GitHub
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'.
- Installs packages
4 other projects use a version of this.
Adopted by
Most recently taken up by
- 200iqlabs/shared-skillstheir own version, first seen Oct 31, 2026
- Norman-bury/articlewriting-skilltheir own version, first seen Oct 8, 2026
- Norman-bury/research-writing-skilltheir own version, first seen Oct 8, 2026
- aidless/research-writing-skilltheir own version, first seen Oct 4, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- Norman-bury/research-writing-skill★ 3.4ksame name
- Norman-bury/articlewriting-skill★ 3.4ksame name
- 200iqlabs/shared-skills★ 4same name
- aidless/research-writing-skill★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- templates/CLAUDE.mdCLAUDE.md
- automationSkill
- carrelSkill
- collaborator-onboardingSkill
- convertSkill
- env-doctorSkill
- knowledge-wikiSkill
- model-teammatesSkill
- research-partnerSkill
- self-improveSkill
- session-reflectionSkill
- transcribeSkill
- vault-opsSkill
- web-captureSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 12 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Check for .carrel/environment.json in the project root, and (if present) .carrel/setup-state.json:
- Distinctive: line 25
Add new capabilities (e.g., "I want to add Zotero")
- Very specific: line 55
Run carrel env doctor --format json silently.
- Distinctive: line 62
Do NOT show raw output to the researcher.
- Distinctive: line 80
Write the complete interview result to a temporary profile JSON file, then run:
- Very specific: line 94
After confirming that init succeeded and .carrel/environment.json contains the intended profile, remove the temporary profile file.
- Distinctive: line 109
This is critical: Write a CLAUDE.md file in the vault root that encodes the researcher's preferences in natural language.
- Distinctive: line 111
Write CLAUDE.md with these sections:
- Distinctive: line 154
If the decision tree indicates mineru, mistral_ocr, zotero, or gws:
- Very specific: line 155
Add them to the project .mcp.json (for MCP-based tools like zotero/vox)
- Distinctive: line 188
After regeneration, read the cheat sheet and edit it directly to add researcher-specific touches (workflow examples, named projects, custom …
- Very specific: line 190
Update the researcher's environment dashboard at _meta/my-environment.md (the scaffold wrote a starter version).
- Distinctive: line 199
Test one operation end-to-end:
- Distinctive: line 211
Don't push. Some researchers prefer manual control.
- Distinctive: line 222
When a researcher's preferences change:
- Very specific: line 223
Update .carrel/environment.json with the new values
- Distinctive: line 224
Update the relevant section of CLAUDE.md to match
- Very specific: line 225
Update _meta/my-environment.md to reflect the change
- Very specific: line 226
If the change affects a tool's status, also update _meta/cheat_sheet.md "Your Setup at a Glance" table
- Very specific: line 227
If tools changed: run carrel env doctor to verify availability
- Distinctive: line 240
All deterministic operations live in the Python CLI (canonical source of truth):
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
environment-setup
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).
When to Use
- User wants to set up a research environment from scratch
- Project folder has no
.carrel/directory (first-time detection) - User asks about their setup, wants to add tools, or troubleshoot
- User mentions "get started", "configure", "onboard", "set up"
Mode Detection
Check for .carrel/environment.json in the project root, and (if present) .carrel/setup-state.json:
- No
.carrel/environment.json→ First-time setup (full interview + scaffold) - environment.json present, setup-state.json absent or
last_completed_phase >= 9withcompleted_atset → Returning user. Read environment.json and offer:- Status check (what's working, what's missing)
- Add new capabilities (e.g., "I want to add Zotero")
- Troubleshoot issues
- Jump straight into work
- environment.json present, setup-state.json shows
last_completed_phase < 9andcompleted_at: null→ Setup paused. Recap what was completed, confirm the stopping point, and resume fromlast_completed_phase + 1. Do NOT re-interview — the profile already exists in environment.json.
Reading Platform Context
At Step 2, read audit.platform from carrel env doctor --format json. Use this platform value for every subsequent install recommendation.
First-Time Setup Flow
Step 1: Interview (conversational, ~10 min)
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:
- Research field and typical work
- File types they work with
- Sensitivity of data (IRB, unpublished work)
- Existing tools (Zotero, Google Drive, note-taking)
- Comfort level with AI and technology
- Experience with Claude Code specifically (
claude_code_familiarity: new/some/experienced) — drives whether/powerupis offered at handoff - Collaborators (
collaborators+team_context) — drives whether/carrel-shareis offered at handoff
Output: structured answers for environment.json.
Step 2: Hardware & Tools Audit (silent, ~30 sec)
Run carrel env doctor --format json silently. Consult references/hardware-audit.md for output interpretation. It detects:
- OS, architecture, RAM, disk space
- Installed tools (node, python, pandoc, ffmpeg, obsidian)
- Existing tool configurations
- Hardware capability tier (high/medium/low)
- Canonical platform signal in
audit.platformfor later install guidance
Do 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."
Step 3: Decision Tree (~2 min)
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:
- Obsidian for your research vault (it's a note-taking app with a nice interface)
- A document converter so I can read your PDFs and Word files
- [If applicable] A connection to your Zotero library
- [If applicable] Audio transcription for your interview recordings
Does this sound right? Anything you'd add or skip?"
Step 4: Scaffold Vault (~2 min)
Write the complete interview result to a temporary profile JSON file, then run:
carrel vault init <path> --profile-file <profile.json>The CLI validates the whole profile before any vault write. It creates:
- Vault folder structure (inbox, papers, notes, transcripts, drafts, talks, admin)
.obsidian/configuration (core plugins, templates setup).carrel/environment.json(the validated interview profile)_templates/(paper, meeting, reflection, daily note templates)_meta/cheat_sheet.md(customized reference card)- selected
.basetrackers at the vault root
After confirming that init succeeded and .carrel/environment.json contains the intended profile, remove the temporary profile file; do not leave a second copy of researcher metadata in a general temp directory.
Research Database Views
carrel vault init includes .base trackers from the already-validated profile. reading-progress.base is always included. Paper tracking uses many_papers or literature_review; interview tracking uses qualitative or interviews; writing tracking uses writing, thesis, or dissertation. 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.
Step 5: Write Personalized CLAUDE.md
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 or mistral_ocr 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.
Step 6: Configure Optional Tools
If the decision tree indicates mineru, mistral_ocr, zotero, or gws:
- Add them to the project
.mcp.json(for MCP-based tools like zotero/vox) - Guide the researcher through API key setup (see API Key Storage section in
references/decision-tree.md) - For gws: see
references/gws-setup-guide.md— this is a high-friction setup, set expectations - Or note as "available later" if they're not ready
Step 6b: Offer Model Teammates (state-neutral)
Delegate to model-teammates skill. Record status in model_teammates. Doesn't block setup progression.
Step 7: Human Steps
Tell the researcher what THEY need to do (Claude can't install GUI apps):
- Install Obsidian with the command that matches
audit.platform:
| Platform | Command |
| macOS | brew install --cask obsidian |
| Windows | winget install Obsidian.Obsidian |
| Linux | Download AppImage from https://obsidian.md |
- Open Obsidian → "Open folder as vault" → select this project folder
- Install Web Clipper for their browser (Chrome/Firefox/Safari extension store)
Step 8: Verify, Cheat Sheet & Environment Dashboard
Regenerate the cheat sheet so it reflects the personalized profile and any tools added in Steps 5-7:
carrel vault cheatsheet --vault <path> --forceThe CLI reads .carrel/environment.json via Pydantic and writes _meta/cheat_sheet.md. The vault scaffold in Step 4 generated a starter from the validated profile; this refreshes it after tool setup.
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:
- Tool statuses (from the audit in Step 2)
- Which trackers were installed (from Step 4)
- Which cloud services are configured vs. available-but-not-configured (from the interview)
- Vault path and Obsidian setup details
- "Available but Not Configured" table: list tools/services the researcher skipped or deferred (Zotero, mineru, mistral_ocr, gws, groq, vox — whatever was noted as "available later" in environment.json), with a one-line description and how to activate
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:
- "Let's test the setup. Drop a PDF or Word file in here and I'll convert it to your vault."
Step 9: Overnight Maintenance (optional)
Offer this briefly — it's an opt-in, not a required step:
"Carrel can maintain your vault between sessions — processing new files, checking health, and surfacing connections. Claude can schedule this from the Scheduled page (or
/schedulein a conversation). Because Carrel needs your local vault, the folder must be connected and Claude Desktop available when the task needs local access. Scheduled tasks use your paid-plan allocation."
- Interested → Run
/carrel-automatenow to configure it, or note it for later. - Not now → Skip. Mention they can always run
/carrel-automatelater to enable it.
Don't push. Some researchers prefer manual control. Move on.
Step 10: Wrap Up
- Confirm what's installed and working
- Point to the cheat sheet and environment dashboard in Obsidian
- "Your environment dashboard at
_meta/my-environment.mdshows everything that's set up and what's available. I'll keep it updated as your setup grows." - "Next time you open Claude Desktop with this folder, I'll remember everything."
Preference Changes (Mid-Session or Returning User)
When a researcher's preferences change:
- Update
.carrel/environment.jsonwith the new values - Update the relevant section of
CLAUDE.mdto match - Update
_meta/my-environment.mdto reflect the change - If the change affects a tool's status, also update
_meta/cheat_sheet.md"Your Setup at a Glance" table - If tools changed: run
carrel env doctorto verify availability
Examples:
- "I got a Gemini key" → update environment.json cloud_consent + tools_configured, update CLAUDE.md Available Tools, move Gemini from "Available but Not Configured" to "Cloud Services" in my-environment.md
- "My data is more sensitive now" → update sensitivity everywhere, update CLAUDE.md Preferences section to reflect local-only
- "I don't use transcription anymore" → note in CLAUDE.md, don't offer transcription proactively
- "I created a custom tracker for you" → add to "My Custom Trackers" in my-environment.md, log in
_meta/capability-log.md(per self-improve skill) - Researcher installs an Obsidian community plugin → add to "Obsidian Setup > Community plugins" in my-environment.md
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.
Tooling
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.
Related
- Commands:
/carrel-setuptriggers this skill - Agents:
@setup-interviewer(optional) provides richer conversational interview; the protocol in references/ works directly without it - Skills:
vault-opsfor ongoing vault operations after setup - Hooks: SessionStart hook checks for
.carrel/and surfaces researcher profile
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

