From carbon-claude-brain
Registra erro resolvido em global/errors-solved.md. Use quando resolver erro não óbvio para evitar repetição.
How this skill is triggered — by the user, by Claude, or both
Slash command
/carbon-claude-brain:carbon-brain-errorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Registra um erro resolvido em `_claude-brain/global/errors-solved.md`.
Registra um erro resolvido em _claude-brain/global/errors-solved.md.
Use quando resolver erro não óbvio:
❌ Não use para:
#!/usr/bin/env bash
source ~/.claude/hooks/lib-carbon-brain.sh
load_config
# Função: save_error_solved(date, title, context, error_msg, solution, prevention)
DATE="$(date '+%Y-%m-%d')"
echo "📝 Documentar Erro Resolvido"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
read -p "Título do erro: " TITLE
read -p "Contexto (o que estava fazendo): " CONTEXT
read -p "Mensagem de erro: " ERROR_MSG
read -p "Solução encontrada: " SOLUTION
read -p "Como prevenir no futuro: " PREVENTION
if save_error_solved "$DATE" "$TITLE" "$CONTEXT" "$ERROR_MSG" "$SOLUTION" "$PREVENTION"; then
echo ""
echo "✅ Erro documentado em global/errors-solved.md"
else
echo ""
echo "❌ Erro ao documentar"
exit 1
fi
/brain-error
# Entrada:
Título: NullPointerException ao acessar user.profile
Contexto: Fazendo update de perfil do usuário após login
Mensagem de erro: Cannot read property 'name' of null
Solução: Adicionar verificação: if (user.profile) antes de acessar
Prevenção: Sempre validar que objetos nested existem antes de acessar propriedades
/brain-error
# Entrada:
Título: Docker build failing com EACCES
Contexto: Tentando build imagem Node.js no CI
Mensagem de erro: EACCES: permission denied, mkdir '/app/node_modules'
Solução: Adicionar USER node antes de RUN npm install no Dockerfile
Prevenção: Nunca rodar npm install como root em containers
/brain-error
# Entrada:
Título: Race condition em testes com setTimeout
Contexto: Testes falhando aleatoriamente em CI
Mensagem de erro: Expected value to be 'complete', received 'pending'
Solução: Substituir setTimeout por waitFor() do testing-library
Prevenção: Usar helpers de espera (waitFor, waitForElement) ao invés de timers fixos
---
updated: 2026-03-22
tags: [errors, troubleshooting]
---
# Erros Resolvidos
## 2026-03-22 — NullPointerException ao acessar user.profile
**Contexto:**
Fazendo update de perfil do usuário após login
**Erro:**
Cannot read property 'name' of null
**Solução:**
Adicionar verificação: `if (user.profile)` antes de acessar
**Como prevenir:**
Sempre validar que objetos nested existem antes de acessar propriedades
---
## 2026-03-21 — Docker build failing com EACCES
**Contexto:**
Tentando build imagem Node.js no CI
**Erro:**
EACCES: permission denied, mkdir '/app/node_modules'
**Solução:**
Adicionar `USER node` antes de `RUN npm install` no Dockerfile
**Como prevenir:**
Nunca rodar npm install como root em containers
---
## 2026-03-20 — Race condition em testes
**Contexto:**
Testes falhando aleatoriamente em CI
**Erro:**
Expected value to be 'complete', received 'pending'
**Solução:**
Substituir `setTimeout` por `waitFor()` do testing-library
**Como prevenir:**
Usar helpers de espera (waitFor, waitForElement) ao invés de timers fixos
/brain-error → Erro específico resolvido (errors-solved.md)/brain-learn → Aprendizado geral e reutilizável (learnings.md)/brain-save → Resumo da sessão atual (journals/)Use /brain-search-patterns para buscar erros similares:
/brain-search-patterns "NullPointerException"
/brain-search-patterns "EACCES"
/brain-search-patterns "race condition"
Definida em lib-carbon-brain.sh:
save_error_solved() {
local date="$1"
local title="$2"
local context="$3"
local error_msg="$4"
local solution="$5"
local prevention="$6"
local file="$OBSIDIAN_VAULT/_claude-brain/global/errors-solved.md"
# Criar arquivo se não existir
if [ ! -f "$file" ]; then
cat > "$file" << 'EOF'
---
updated: {{DATE}}
tags: [errors, troubleshooting]
---
# Erros Resolvidos
EOF
sed -i.bak "s/{{DATE}}/$date/" "$file"
rm "$file.bak" 2>/dev/null
fi
# Adicionar erro
cat >> "$file" << EOF
## $date — $title
**Contexto:**
$context
**Erro:**
\`\`\`
$error_msg
\`\`\`
**Solução:**
$solution
**Como prevenir:**
$prevention
---
EOF
# Atualizar data
sed -i.bak "s/^updated: .*/updated: $date/" "$file"
rm "$file.bak" 2>/dev/null
return 0
}
Cole no terminal para documentar rapidamente:
/brain-error << 'INPUT'
Título: [descrição do erro]
Contexto: [o que estava fazendo]
Erro: [mensagem exata]
Solução: [como resolveu]
Prevenção: [como evitar]
INPUT
npx claudepluginhub marcoscarbonera/carbon-claude-brain --plugin carbon-claude-brainMaintains project-specific known-issues.md mapping recurring errors to solutions. Auto-consulted by systematic-debugging before investigations; triggers on 'save this fix', 'remember this error', or known issues phrases.
Captures verified solutions to non-trivial problems as categorized markdown files with YAML frontmatter in symptom directories for grep-searchable knowledge base. Auto-triggers on phrases like 'that worked' or /doc-fix command.
Recognizes development errors from bash, Playwright, builds, APIs, logs; searches past solutions via scripts; applies fixes and logs new ones for future reference. Activates on error mentions or debug requests.