Configuración paso a paso del MacBook Air M2 (8GB, macOS Sequoia 15.6). Marcá cada step cuando lo completés, el progreso se guarda automáticamente en este browser.
Tu MacBook está configurado para Atelier Noelia. Próximo paso: Welcome App Tutorial →
Avisá a Michel que terminaste 💛
Abrir menú Apple (esquina superior izquierda) → Acerca de esta Mac.
Apple menu → Acerca de esta Mac → Almacenamiento. Tu Mac tiene 123GB libres de 245GB, espacio de sobra: el clone + install completo pesa ~5,5GB y entra cómodo.
Apple ID configurado, iCloud Drive activado para backup automático.
Tenés a mano la contraseña de tu Mac (la necesitás para instalar cosas).
Permite instalar herramientas con un solo comando, sin descargar .dmg manualmente.
Abrir Terminal (Spotlight → "Terminal" → Enter) y pegar:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Cuando pida contraseña, escribirla (no se ve mientras tipeás, es normal). ~5-10 min (15-20 min con CLT primer install)
brew --versionDebería decir Homebrew 4.x.x.
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
brew --versionGit para versionar código, Node runtime, Bun como runtime moderno principal Sharkcode, pnpm necesario para Wedding-Templates sibling repo (stack distinto).
brew install git node
curl -fsSL https://bun.sh/install | bash
npm install -g pnpmpnpm (monorepo workspace con pnpm-workspace.yaml), NO Bun. Day 1 lei clone Wedding-Templates + pnpm install + pnpm dev:maira. Sharkcode main resta su Bun. Convivenza pacifica.
.mjs de Claude Code (protected-paths, auto-retrieval, ecc.) corren con node, no con Bun. Si node --version NO devuelve v20.x o v22.x, instalalo: brew install node. Sin Node los hooks fallan silenciosos y pueden bloquear cada Edit/Write.
git --version
node --version
bun --version
pnpm --versionecho 'export BUN_INSTALL="$HOME/.bun"' >> ~/.zshrc
echo 'export PATH="$BUN_INSTALL/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcDonde vas a editar archivos. Como Word pero para código.
brew install --cask visual-studio-codeSi pide contraseña → la tuya del Mac.
code en PATHAbrir VSCode. Dentro: Cmd + Shift + P → buscar "shell command: Install 'code' command in PATH" → Enter.
code en PATH (arriba). NADA MÁS.
Los 2 bloques de abajo (extensiones + settings.json) hacen cd ~/Code/sharkcode, pero esa carpeta NO existe hasta el Step 7 (clone del repo). Si los corrés ahora dan no such file or directory. Marcá el Step 3 como hecho con solo VSCode + code en PATH, y seguí al Step 4.
Cuando ya clonaste el repo (Step 7), volvé acá y corré este comando UNO:
cd ~/Code/sharkcode
cat .planning/business/atelier-noelia/dotfiles/vscode-extensions.txt | grep -v "^#" | grep -v "^$" | xargs -L1 code --install-extensionInstalla 5 essenziali (GitLens + Tailwind + Astro + Volar + spell-checker EN/ES/IT) + skip commenti. ~30 sec.
setup-mac-user-scope.sh, su paso 6). No corras ningún cp de settings.json acá: te lo hace el script más adelante (lightweight 8GB + claudeCode.defaultLanguage: es).
Asistente Claude para terminal/VSCode. Tu compañero en cada tarea.
npm install -g @anthropic-ai/claude-codeSi "permission denied":
sudo npm install -g @anthropic-ai/claude-codeMichel te guía esto. Usás credenciales sub Michel Max plan.
claude auth loginclaude --version
claudeDentro del chat: "Hola, ¿podés decirme qué herramientas tenés disponibles?" Debería responder en español. Si no, decirle "Por favor responde en español".
Cuenta GitHub propia separada de Michel. Después Michel te invita como Collaborator a sus repos (sync automático, audit trail limpio).
Browser → https://github.com/signup:
noelia-sharkcode o noelia-[tu-apellido]ssh-keygen -t ed25519 -C "tu-email-github@example.com"Donde guardar → Enter (default). Passphrase → opcional.
pbcopy < ~/.ssh/id_ed25519.pubMacBook NoeliaCmd + Vssh -T git@github.comDebería decir: "Hi noelia-sharkcode! You've successfully authenticated..."
Configurar tu nombre/email para que aparezcan en cada commit.
git config --global user.name "Noelia [tu nombre]"
git config --global user.email "tu-email-github@example.com"
git config --global init.defaultBranch main
git config --global pull.rebase falsegit config --global --listClonar = bajar copia del código al Mac. Sharkcode via sparse-checkout (sin la carpeta clients/ de otros clientes). Wedding-Templates completo. Mismo URL upstream que Michel (vos sos Collaborator).
bun install Sharkcode (~500MB deps) + pnpm install Wedding-Templates (~700MB deps) son pesanti su Mac M2 8GB. PRIMA di lanciare install:
mkdir -p ~/Code
cd ~/Code
# Sharkcode: sparse-checkout SIN clients/ (datos de otros clientes, NO los necesitas)
# Se mantiene solo clients/noelia-etsy/ (tu workspace Etsy)
git clone --no-checkout git@github.com:Michel9329/sharkcode.git
cd sharkcode
git sparse-checkout set --no-cone '/*' '!/clients/*' '/clients/noelia-etsy/'
git checkout main
cd ..
# Wedding-Templates: clone completo (master ya listo)
git clone git@github.com:Michel9329/Wedding-Templates.gitclients/ con datos de otros clientes (Mary, Valerio, Lindorug: preventivi, propuestas, contactos de terceros). Por GDPR no deben estar en tu Mac y no los necesitas. El sparse-checkout baja todo MENOS clients/, manteniendo solo clients/noelia-etsy/ (tuyo). Verifica con ls clients/: debe mostrar solo noelia-etsy.
cd ~/Code/sharkcode
bun installInstall ~500MB deps + 1500+ packages (~2-3 min). Include picomatch + js-yaml necessari per hooks Mac auto-retrieval + protected-paths.
bun install: sin node_modules el hook de seguridad protected-paths-block.mjs crashea y puede bloquear CADA Edit/Write de Claude. Tampoco arrancan los servers MCP locales sharkcode-core (knowledge graph, dashboard events). Es el paso que hace que Claude funcione perfecto Day 1.
cd ~/Code/sharkcode
bun run build-graphGenera tools/dashboard/apps/server/data/knowledge-graph.json. Ese archivo está gitignored (no viene con el clone): sin él, la tool query_knowledge_graph que usa Claude falla. ~10-20 seg.
cd ~/Code/Wedding-Templates
pnpm installWedding-Templates usa pnpm (stack React 19 + Vite 6 + Tailwind 4 + Supabase + Resend + Vercel), NO bun. ~700MB deps (~2-3 min). Cerrá Chrome antes (ver warning memory pressure arriba).
cd ~/Code/sharkcode && ls
cd ~/Code/Wedding-Templates && lscd ~/Code/sharkcode
code .Day 1 crear cuenta Canva free. Decisión Pro upgrade DEFERRED post-Welcome Tutorial T1-T5 (D5 audit mattina 2026-05-24).
El brand kit Sharkcode para los trabajos Wedding (colores, fuentes, logo) está en el repo, en templates/brand/, no en Canva. Cuando armes un diseño Wedding, tomás los valores de ahí (o Claude te los pasa). No necesitás importar nada a Canva Day 1.
Post Welcome Tutorial T1-T5, evaluación: ¿necesitás magic resize / background remover / brand kit unlimited / 100GB storage? Si SI → upgrade Pro 11,99 EUR/mes o 109,99 EUR/año (a tu nombre, tu tarjeta). Si NO → mantener free. Para Etsy alcanza con Pro, NO hace falta Business.
Browser separado solo para trabajo, no mezclado con tabs personales.
Si no tenés Chrome:
brew install --cask google-chromeExtension recomendada: OneTab (Chrome Web Store) → convierte tabs en lista, libera RAM.
Aliases zshrc + multi-root VSCode workspace + hooks essential Claude Code (auto-retrieval + protected-paths + ecc) + TAVILY API + markitdown-mcp Mac override + verifica deps.
cd ~/Code/sharkcode
cp .planning/business/atelier-noelia/dotfiles/zshrc-noelia ~/.zshrc-noelia
echo 'source ~/.zshrc-noelia' >> ~/.zshrc
source ~/.zshrcWorkspace 5-folder (Sharkcode + Wedding-Templates + Pinna + Etsy Noelia + Atelier docs):
cp ~/Code/sharkcode/.planning/business/atelier-noelia/dotfiles/noelia.code-workspace ~/Code/noelia.code-workspace
code ~/Code/noelia.code-workspaceScript lancia automatic: copy 10 hook Mac-friendly in ~/.claude/hooks/ + register ~/.claude/settings.json 4 hook events + TAVILY_API_KEY setup info + markitdown-mcp Win override Mac + verify Node deps (picomatch + js-yaml):
bash ~/Code/sharkcode/tools/atelier-noelia/setup-mac-user-scope.shHook registrati in ~/.claude/settings.json richiedono Claude Code restart per essere triggered:
# Quit Claude Code: Cmd+Q
# Riapri: type "claude" in nuovo terminal OR via VSCode integrated terminalSHARKCODE_MEMORY_DIR=~/Code/sharkcode/memory-shared y ~90 memorie cross-cliente sincronizadas desde Win Michel via PowerShell weekly Sunday 21:00. Pero ojo (ver 10.5): Claude Code nativo NO lee esa env var para cargar las memorias, hay que hacer un symlink.
SHARKCODE_MEMORY_DIR NO es una env var real de Anthropic, Claude Code nativo NO la lee. Claude busca las memorias en su carpeta nativa ~/.claude/projects/<hash-del-proyecto>/memory/. El <hash> depende del path absoluto del repo en el Mac, así que se crea recién al abrir Claude la primera vez dentro del repo. Por eso primero abrimos Claude, después hacemos el symlink.
Paso 1: abrir Claude UNA vez dentro del repo para que cree la carpeta del proyecto:
cd ~/Code/sharkcode
claude "hola" # con esto Claude crea ~/.claude/projects/<hash>/
# Salí del chat: escribí /exit o Ctrl+CPaso 2: encontrar la carpeta del proyecto creada (suele ser la más reciente) y enlazar su subcarpeta memory a memory-shared:
# Ver la carpeta del proyecto (la que contiene "sharkcode" en el nombre)
ls -dt ~/.claude/projects/*sharkcode* 2>/dev/null
# Guardar ese path en una variable (toma la más reciente)
PROJ=$(ls -dt ~/.claude/projects/*sharkcode* 2>/dev/null | head -1)
echo "Proyecto detectado: $PROJ"
# Crear el symlink memory -> memory-shared (borra primero si ya existe vacío)
rm -rf "$PROJ/memory"
ln -s ~/Code/sharkcode/memory-shared "$PROJ/memory"
# Verificar
ls -la "$PROJ/memory" | head -3cdsc + claude) y preguntale: "cita la memoria del perfil ansioso de Mary". Si te describe el contenido (Mary cliente ansioso, batch 1 respuesta/día, frase-tappo), el symlink funciona. Si dice que no encuentra ninguna memoria, repetí Paso 2.
markitdown-mcp usa un comando Windows (cmd/.exe), crashea al arrancar en Mac.sharkcode-local-llm necesita Ollama, que NO está en el Mac de Noelia.python send_event.py fallan: en Sequoia NO existe el comando python (solo python3), y además la dashboard no corre en tu Mac..mcp.json.local NO sirve: Claude Code NO lo lee automáticamente (lanzarlo con claude --mcp-config es frágil y hay que recordarlo cada vez). La vía correcta es disabledMcpjsonServers dentro de un settings.local.json Mac (gitignored, específico de este Mac).
Crear el settings local Mac (deshabilita los 2 MCP problemáticos). Pegá este comando tal cual:
cd ~/Code/sharkcode
cat > .claude/settings.local.json <<'JSON'
{
"disabledMcpjsonServers": ["markitdown-mcp", "sharkcode-local-llm"]
}
JSON
echo "settings.local.json creado:"
cat .claude/settings.local.jsonNeutralizar los hooks Windows-only (los que llaman python send_event.py) en tu user settings Mac, así no dan error en cada tool use. Si el script de 10.3 ya registró hooks, sacá de ~/.claude/settings.json cualquier entry que invoque python ... send_event.py (la dashboard no corre en tu Mac, no perdés nada). Revisá con:
cat ~/.claude/settings.json | grep -n "send_event"Si aparece alguna línea con send_event, abrí el archivo en VSCode (code ~/.claude/settings.json) y borrá ese bloque de hook, o cambiá python por python3 si querés conservarlo (no necesario Day 1). Después Cmd+Q + reabrir Claude.
| Alias | Comando |
|---|---|
gs | git status |
gp | git pull |
gc | git commit -m |
cdsc | cd ~/Code/sharkcode |
cdwt | cd ~/Code/Wedding-Templates |
dev | bun dev |
c | claude |
7 verifiche che ambient è perfetto: zsh + alias + Sharkcode + Claude ES + memory-shared + hooks attivi + workspace + Wedding-Templates.
# Vedi prompt Sharkcode (linea blu/magenta con shark logo)
cdsc # alias = cd ~/Code/sharkcode
gs # alias = git status (deve mostrare branch main + clean)
gl # alias = git log oneline -10✓ Se alias funzionano + prompt mostra brand Sharkcode = zshrc-noelia attivo OK.
cdsc
claude "Hola Claude, soy Noelia. Listame los archivos en este directorio y citá la memoria del perfil ansioso de Mary."✓ Atteso: risposta ES + lista file + descrizione corretta della memoria (Mary cliente ansioso, batch 1 respuesta/día). Se risponde EN = settings.json non attivo, re-run Step 3 + restart. Se dice che NON trova memorie = manca il symlink, re-fai Step 10.5.
# Lista hook installati
ls ~/.claude/hooks/
# Atteso: 10 file (auto-retrieval-preload.mjs + protected-paths-block + desktop-notification + ecc.)
# Verify settings.json registra hook
cat ~/.claude/settings.json | grep -E "UserPromptSubmit|PreToolUse|Stop|PostToolUse"✓ Atteso: 10 file + 4 hook events registrati. Se settings.json vuoto, re-run Step 10.3 setup-mac-user-scope.sh.
VSCode dovrebbe mostrare sidebar left con 5 folder colorati: 🦈 Sharkcode OS + 💍 Wedding-Templates + 🪶 Pinna + 🛍️ Etsy Noelia + 📋 Atelier Noelia docs. Se solo 1 folder → re-run Step 10.2 code ~/Code/noelia.code-workspace.
cdwt
git checkout master # NO main, master è branch default
ls templates/ # vedi 5 templates production + 1 draft
pnpm --version # verify pnpm installato Step 2cdsc
ls memory-shared/ | wc -l # ~90 file memorie cross-cliente
ls .claude/agents/*.md | wc -l # ~47 agenti Sharkcode OS
ls .claude/skills/ | wc -l # ~83 project skill (inclusi cluster Phase 106.7 mandatory)
ls .claude/commands/*.md | wc -l # ~24 slash commands OS✓ Tutti numeri devono essere > 0. Garantisce Claude main session ha accesso a agenti + skill + commands Sharkcode OS via project scope.
claude "Dime cuáles son las decisiones cementadas sobre el setup de Noelia."✓ Atteso: risposta Claude cita le decisioni del setup (Bitwarden free, Mac dedicato, Canva free Day 1, ecc.) da reference_noelia_setup_choices.md. Se NON le trova = manca il symlink Step 10.5 OPPURE l'hook auto-retrieval non è attivo (re-run Step 10.3 + Cmd+Q restart).
Apple menu → Acerca de esta Mac → Almacenamiento. Con 123GB libres de partida y un setup que pesa ~5,5GB, vas a quedar cómodamente arriba de 110GB libres. No hay problema de espacio.
Estrategia decidida Michel sera tardi 7: dual layer para resiliencia (Mac muere → recuperación garantizada).
~/Code) NUNCA en iCloud sync.Para gestionar 10+ credenciales (GitHub + Etsy + PayPal + Canva + Cloudflare + Apple ID + Bitwarden master + etc).
brew install --cask bitwardenEl tutorial es 2-3h, autónoma. Con Claude vas a hacer 5 ejercicios reales (Etsy research + ideas + traducción + git commit via Claude). NO aprendés código, aprendés a usar Claude conversacional.
command not found: brewecho 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrcPermission denied (publickey) al clonarSSH key no agregada bien. Repetir Step 5.2-5.5 carefully (OR verifica Day 0 prep TUTORIAL-GITHUB-DAY-0 done + Michel ti ha invitato Collaborator).
command not found: bun OR pnpm# Bun PATH manuale
echo 'export BUN_INSTALL="$HOME/.bun"' >> ~/.zshrc
echo 'export PATH="$BUN_INSTALL/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# pnpm install via npm
npm install -g pnpm8GB RAM tight. Cerrar Chrome tabs no necesarias. Cerrar otras apps. Reiniciar Mac. Verificar que ningún dev server quedó en background:
ps aux | grep -E "astro|vite|bun|pnpm" | grep -v grep
# Per kill: kill -9 [PID]Verifica registrazione hook + restart Claude Code:
# 1. Verifica hook installato
ls ~/.claude/hooks/auto-retrieval-preload.mjs
# 2. Verifica settings.json registra hook
cat ~/.claude/settings.json | grep -A 5 "UserPromptSubmit"
# 3. Verifica env attivo
echo $SHARKCODE_AUTO_RETRIEVAL # deve restituire "1"
# 4. Restart Claude Code (Cmd+Q + riapri)
# 5. Test prompt + check Topic Matches iniettaSe ancora fail: re-run bash ~/Code/sharkcode/tools/atelier-noelia/setup-mac-user-scope.sh.
TAVILY_API_KEY undefinedAPI key non settata. Signup free tier + setup .env:
# 1. Signup https://tavily.com (free tier 1000 req/mese)
# 2. Dashboard → API Keys → Create → copy key
# 3. Aggiungi a ~/.zshrc (uncomment riga template):
echo 'export TAVILY_API_KEY="tvly-YOUR-KEY-HERE"' >> ~/.zshrc
source ~/.zshrc
# 4. Restart Claude Code per pick up env varStep 10.2 workspace copy mancante:
cp ~/Code/sharkcode/.planning/business/atelier-noelia/dotfiles/noelia.code-workspace ~/Code/noelia.code-workspace
code ~/Code/noelia.code-workspaceVSCode chiede "Open workspace?" → click Yes. Sidebar mostra 5 folder.
Errore log noisy. La via correcta es deshabilitarlos via disabledMcpjsonServers en settings.local.json (NO .mcp.json.local, que Claude Code no lee). Ver Step 10.6. Quick fix:
cd ~/Code/sharkcode
cat > .claude/settings.local.json <<'JSON'
{
"disabledMcpjsonServers": ["markitdown-mcp", "sharkcode-local-llm"]
}
JSON
# Cmd+Q + reabrir ClaudeVerifica permissions ~/.claude/ + retry:
mkdir -p ~/.claude/hooks
chmod 755 ~/.claude ~/.claude/hooks
bash ~/Code/sharkcode/tools/atelier-noelia/setup-mac-user-scope.shFile copy fallito OR conflict. Overwrite manuale:
cp ~/Code/sharkcode/.planning/business/atelier-noelia/dotfiles/vscode-settings.json "$HOME/Library/Application Support/Code/User/settings.json"
# Restart VSCode (Cmd+Q + riapri)Quota weekly Max shared. Esperar 1-2 min OR coordinar con Michel (lui pausa work tuo). Se persistente: Guest Pass option (Michel genera /passes command in suo Claude Code).
Causa real: falta el symlink nativo del Step 10.5. SHARKCODE_MEMORY_DIR por sí sola NO carga las memorias en Claude Code nativo. Verifica el symlink:
# 1. Confirmar que la carpeta de memorias existe y tiene ~90 archivos
ls ~/Code/sharkcode/memory-shared | wc -l # ~90
# 2. Ver el proyecto nativo de Claude y su symlink memory
PROJ=$(ls -dt ~/.claude/projects/*sharkcode* 2>/dev/null | head -1)
ls -la "$PROJ/memory" # debe ser un symlink -> .../memory-shared
# 3. Si NO es symlink (o no existe), rehacerlo:
rm -rf "$PROJ/memory"
ln -s ~/Code/sharkcode/memory-shared "$PROJ/memory"
# 4. Test: claude "cita la memoria del perfil ansioso de Mary"