Multi-IDE Folder Organization Guide — claude
Multi-IDE Folder Organization Guide

Organizing your development environment for VS Code, Cursor, Windsurf & Antigravity

The Problem

When working across multiple AI-powered IDEs (VS Code, Cursor, Windsurf, Google Antigravity) and CLI tools (Claude Code), each tool creates its own configuration folders.

Without a clear structure, you end up with:

  • Project context bleeding between unrelated projects
  • AI assistants mixing up information from different clients/projects
  • Branding files scattered in Downloads and random folders
  • No templates to quickly start new projects
  • Confusion about which version of a project is "current"
📁

How Each IDE Stores Configuration

Tool Global Config Location Project Config Location
Claude Code ~/.claude/ <project>/.claude/ + CLAUDE.md
Cursor User Settings (in-app) <project>/.cursor/rules/*.mdc
Windsurf global_rules.md (in-app) <project>/.windsurf/rules/*.md
Antigravity ~/.gemini/antigravity/skills/ <project>/.agent/skills/
VS Code ~/.vscode/ <project>/.vscode/
🔑

The Key Insight: CLAUDE.md Hierarchy

Claude Code reads CLAUDE.md files by walking UP the directory tree from your project folder. This is powerful but dangerous:

Loading Order
~/.claude/CLAUDE.md              ← Always loaded (global)
       
~/projects/CLAUDE.md             ← Loaded if exists (applies to ALL projects!)
       
~/projects/my-app/CLAUDE.md      ← Loaded (project-specific)
⚠️ The Danger

If you put a CLAUDE.md in a parent folder, ALL child projects inherit it. This causes context leakage between unrelated projects.

🏗️

Recommended Folder Structure

Complete Structure
C:\Users\YourName\                    # Or /Users/YourName on Mac
│
├── .claude\                          # GLOBAL Claude Code config
│   ├── CLAUDE.md                     # Universal coding standards
│   ├── settings.json
│   └── commands\                     # Shared slash commands
│       ├── review.md                 # /review command
│       ├── document.md               # /document command
│       └── test.md                   # /test command
│
├── .gemini\                          # GLOBAL Antigravity config
│   ├── GEMINI.md                     # Universal Gemini context
│   └── antigravity\
│       └── skills\                   # Global skills (all projects)
│           ├── code-review\
│           │   └── skill.md
│           └── documentation\
│               └── skill.md
│
├── .cursor\                          # Cursor config (managed by Cursor)
├── .vscode\                          # VS Code config
│
│
├── Dev\                              # ALL DEVELOPMENT WORK
│   │                                 ⚠️ NO CLAUDE.md HERE!
│   │
│   ├── _config\                      # Shared configuration
│   │   ├── env-templates\            # .env templates by project type
│   │   │   ├── nextjs.env.example
│   │   │   ├── python-api.env.example
│   │   │   └── n8n.env.example
│   │   └── snippets\                 # Reusable code snippets
│   │
│   ├── _templates\                   # Project starter templates
│   │   │                             ⚠️ NO CLAUDE.md HERE!
│   │   ├── README.md                 # How to use templates
│   │   │
│   │   ├── nextjs-starter\
│   │   │   ├── CLAUDE.md             # "Use placeholders, keep generic"
│   │   │   ├── TEMPLATE-CONFIG.md    # Customization checklist
│   │   │   ├── _brand\               # Placeholder brand files
│   │   │   ├── .cursor\rules\
│   │   │   ├── .windsurf\rules\
│   │   │   ├── .agent\skills\
│   │   │   └── src\
│   │   │
│   │   ├── python-api\
│   │   │   └── [same structure]
│   │   │
│   │   └── electron-app\
│   │       └── [same structure]
│   │
│   ├── _brand-library\               # ALL branding files
│   │   │                             ⚠️ NO CLAUDE.md HERE!
│   │   ├── README.md                 # How to use brand files
│   │   ├── my-company\
│   │   │   ├── brand-guidelines.json
│   │   │   ├── colors.json
│   │   │   └── tone-of-voice.md
│   │   ├── client-a\
│   │   │   └── brand-guidelines.json
│   │   └── client-b\
│   │       └── brand-guidelines.json
│   │
│   │
│   ├── active\                       # ACTIVE PROJECTS
│   │   │                             ⚠️ NO CLAUDE.md HERE!
│   │   │
│   │   ├── project-one\              # Each project is ISOLATED
│   │   │   ├── CLAUDE.md             ✅ Project-specific context
│   │   │   ├── GEMINI.md             # For Antigravity
│   │   │   ├── .claude\
│   │   │   │   ├── settings.json
│   │   │   │   └── commands\         # Project-specific commands
│   │   │   ├── .cursor\
│   │   │   │   └── rules\
│   │   │   │       └── project.mdc
│   │   │   ├── .windsurf\
│   │   │   │   └── rules\
│   │   │   │       └── project.md
│   │   │   ├── .agent\               # Antigravity project skills
│   │   │   │   └── skills\
│   │   │   ├── .vscode\
│   │   │   │   └── settings.json
│   │   │   ├── _brand\               # Copy/symlink from _brand-library
│   │   │   ├── src\
│   │   │   ├── venv\                 # Python virtual environment
│   │   │   ├── .env                  # Environment variables
│   │   │   ├── .gitignore
│   │   │   └── README.md
│   │   │
│   │   ├── project-two\
│   │   │   └── [same structure]
│   │   │
│   │   └── project-three\
│   │       └── [same structure]
│   │
│   │
│   ├── learning\                     # TUTORIALS & EXPERIMENTS
│   │   │                             ⚠️ NO CLAUDE.md HERE!
│   │   ├── course-name\
│   │   │   ├── CLAUDE.md
│   │   │   └── ...
│   │   └── experiment-topic\
│   │       ├── CLAUDE.md
│   │       └── ...
│   │
│   │
│   └── hackathons\                   # HACKATHON PROJECTS
│       │                             ⚠️ NO CLAUDE.md HERE!
│       ├── 2025-12-hackathon-name\
│       │   ├── CLAUDE.md
│       │   ├── _brand\
│       │   └── ...
│       └── 2025-10-hackathon-name\
│           └── ...
│
│
├── Clients\                          # CLIENT WORK (if applicable)
│   │                                 ⚠️ NO CLAUDE.md HERE!
│   │
│   ├── client-a\                     # One folder per client
│   │   ├── CLAUDE.md                 # Client standards & branding refs
│   │   ├── _brand\                   # Copy from _brand-library
│   │   ├── _specs\                   # Client specifications
│   │   │
│   │   ├── project-one\              # Client's projects
│   │   │   ├── CLAUDE.md             # Project-specific
│   │   │   └── ...
│   │   │
│   │   └── project-two\
│   │       └── ...
│   │
│   └── client-b\
│       └── [same structure]
│
│
├── Archive\                          # ARCHIVED/ABANDONED PROJECTS
│   │                                 ⚠️ NO CLAUDE.md ANYWHERE IN ARCHIVE!
│   ├── README.md                     # Index of what's here
│   ├── 2025-Q4\
│   │   ├── old-project-one\
│   │   └── old-project-two\
│   └── 2025-Q3\
│       └── ...
│
│
├── Content\                          # CONTENT CREATION (YouTube, etc.)
│   ├── CLAUDE.md                     # Content creation standards
│   ├── _assets\
│   ├── _templates\
│   └── channel-name\
│       ├── CLAUDE.md                 # Channel-specific voice
│       ├── scripts\
│       └── research\
│
│
└── Documents\                        # Keep Windows/Mac defaults as-is
📋

The Critical Rules

1 No CLAUDE.md in "Container" Folders
❌ WRONG
Dev\CLAUDE.md                # Affects ALL projects!
Dev\active\CLAUDE.md         # Affects all active!
✅ CORRECT
Dev\active\my-project\CLAUDE.md
# Only affects this project
2 CLAUDE.md Only at Project Level

The hierarchy should have nothing between global and project:

~/.claude/CLAUDE.md              # Global (coding standards, env info)
        
          (NOTHING in between!)
        
project\CLAUDE.md                # Project-specific context
3 Branding Lives in a Library, Not Scattered

Instead of branding files in Downloads or random project folders:

Dev\_brand-library\
├── my-company\brand-guidelines.json
├── client-a\brand-guidelines.json
└── client-b\brand-guidelines.json

Then copy or symlink to projects that need it:

PowerShell (Windows)
# Create symlink to brand folder
mklink /D "C:\path\to\project\_brand" "C:\Users\Name\Dev\_brand-library\client-a"
4 Templates Have Their Own CLAUDE.md

Templates should tell the AI "you're building a template, use placeholders":

Template CLAUDE.md Example
# Template: NextJS Starter

## IMPORTANT
This is a TEMPLATE, not a client project.
- Use placeholder values for branding
- Use CSS variables: var(--color-primary)
- Use config files for client-specific values
- Document all customization points in TEMPLATE-CONFIG.md

## Placeholder Conventions
- Colors: #PLACEHOLDER_PRIMARY
- Client name: {{CLIENT_NAME}}
- Logo: placeholder.svg
5 Archive Has No AI Config

When archiving projects, the AI config becomes irrelevant. No need for CLAUDE.md in Archive folders — this also prevents accidentally loading old context.

👁️

What Each IDE Sees

When you open a project in any IDE, here's what gets loaded:

Claude Code (in Dev\active\my-project\)
✅ ~/.claude/CLAUDE.md               (global standards)
✅ Dev\active\my-project\CLAUDE.md   (project context)
❌ Dev\CLAUDE.md                      (doesn't exist - correct!)
❌ Dev\active\CLAUDE.md               (doesn't exist - correct!)
Cursor (same project)
✅ User Rules (from Settings)
✅ Dev\active\my-project\.cursor\rules\*.mdc
Antigravity (same project)
✅ ~/.gemini/GEMINI.md
✅ ~/.gemini/antigravity/skills\*
✅ Dev\active\my-project\GEMINI.md
✅ Dev\active\my-project\.agent\skills\*
Windsurf (same project)
✅ global_rules.md (from Settings)
✅ Dev\active\my-project\.windsurf\rules\*.md
📚

Quick Reference: Skills/Commands Locations

Tool Global (all projects) Project-specific
Claude Code ~/.claude/commands/*.md <project>/.claude/commands/*.md
Antigravity ~/.gemini/antigravity/skills/*/skill.md <project>/.agent/skills/*/skill.md
Cursor User Rules (in-app) <project>/.cursor/rules/*.mdc
Windsurf global_rules.md (in-app) <project>/.windsurf/rules/*.md
💡 Key Takeaway

The most important rule is: CLAUDE.md files only at the global level (~/.claude/) and individual project level. Never in container folders like Dev\, active\, or Clients\. This ensures complete isolation between projects.