Verificando acesso...

MODULO 6.2

🏗️ Construindo ~/.memory/ do zero

Passo a passo: estrutura de pastas, seed files, hooks, primeira sessao validada. 45 minutos para sistema funcional.

6
Topicos
35
Minutos
Pratico
Nivel
Setup
Tipo
1

📁 Estrutura de pastas

Seis pastas, cada uma com proposito claro. Estrutura enxuta evita poluicao.

📐 Layout padrao

~/.memory/
├── prime.md               (identidade, injetado SessionStart)
├── context.md             (contexto critico, injetado SessionStart+PreCompact)
├── knowledge/             (long-term pesquisado)
│   ├── facts/
│   ├── decisions/
│   ├── patterns/
│   └── preferences/
├── archive/               (memorias arquivadas por decay)
│   └── 2026-Q1/
├── hooks/                 (scripts executaveis)
│   ├── session_start.sh
│   ├── pre_compact.sh
│   ├── user_prompt.sh
│   └── session_end.sh
├── scripts/               (manutencao, nao hooks)
│   ├── promote.py
│   ├── decay.py
│   └── health_check.py
└── CLAUDE.md              (regras promovidas)

# Comando de criacao
mkdir -p ~/.memory/{knowledge/{facts,decisions,patterns,preferences},archive,hooks,scripts}
touch ~/.memory/{prime.md,context.md,CLAUDE.md}

💡 Nomes importam

Use os nomes do curso. Quando voce compartilha com colega que tambem conhece o padrao, ele entende em segundos.

2

🌱 Arquivos-semente

Sistema vazio nao ajuda ninguem. Preencha prime.md e context.md com dados reais ANTES de testar.

📐 Seeds obrigatorios

# prime.md (copie template do modulo 4.2, edite valores)
Role: Backend engineer
Stack: Python, FastAPI, Postgres
Timezone: America/Sao_Paulo
Style: PRs pequenos, test-first
Team: Payments

# Diretrizes para Claude
- Responder em PT-BR
- Checar context.md antes de sugerir

# context.md (copie template do modulo 4.4, edite)
## Projeto ativo
payments-v2

## Foco atual
Implementar retry logic no webhook da Stripe

## Bloqueios
- Aguardando API key de staging

## Ultima decisao
Escolhemos FastAPI (2026-04-20)

## Proximo passo
Teste de integracao para webhook chunked

💡 Use dados reais

Nao invente 'projeto-teste'. Use o projeto ATUAL. Primeira sessao com dados reais prova o sistema.

3

🪝 Hooks em settings.json

Wire os 4 hooks principais. User-level: ~/.claude/settings.json.

📐 settings.json completo

{
  "hooks": {
    "SessionStart": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "$HOME/.memory/hooks/session_start.sh"
      }]
    }],
    "PreCompact": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "$HOME/.memory/hooks/pre_compact.sh"
      }]
    }],
    "UserPromptSubmit": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "$HOME/.memory/hooks/user_prompt.sh"
      }]
    }],
    "SessionEnd": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "nohup $HOME/.memory/hooks/session_end.sh &"
      }]
    }]
  }
}

💡 SessionEnd com nohup &

Ele roda em background. Proxima sessao nao espera. Resumo via Gemini acontece sem voce notar.

4

✅ Teste de integracao

Antes de confiar, golden question test. Abra sessao, pergunte algo que so seu prime.md sabe.

1

Defina golden question

Algo especifico seu. Ex: 'qual meu projeto ativo?' — resposta esperada: 'payments-v2'.

2

Feche TODAS sessoes anteriores

Para garantir que e sessao fresh.

3

Abra nova sessao em diretorio neutro

Claude Code em $HOME para evitar vies de cwd.

4

Faca a golden question

Antes de qualquer outra coisa.

5

Valide resposta literal

Bateu com o que esta no prime/context? Sistema funciona.

6

Repita 5 vezes

5/5 acertos = deterministico. <5/5 = debugar.

💡 Automatize depois

Script que abre Claude Code headless, faz pergunta, valida resposta. CI para seu sistema de memoria.

5

🎁 Git: versione o sistema

Seu ~/.memory/ e ativo valioso. Tratar como repo.

📐 Git setup

cd ~/.memory
git init
git add .
git commit -m 'initial memory system'

# Remote privado (GitHub/GitLab/Codeberg)
git remote add origin git@github.com:SEU_USER/private-memory.git
git push -u origin main

# .gitignore
cat > .gitignore <<EOF
.log
.cache/
*.tmp
EOF

# Commit automatico semanal (cron)
# 0 3 * * 0  cd ~/.memory && git add -A && git commit -m 'weekly snapshot' && git push

📊 Beneficios do git

  • Rollback: se editar context.md errado, reverte
  • Audit: 'quando adicionei essa regra?' → git blame
  • Multi-device: clone em laptop + desktop
  • Backup offsite: GitHub tem SLA melhor que sua maquina
6

📦 Backup e portabilidade

Alem de git, segundo backup local via tar. Paranoia compensa.

📐 Backup dual

# 1. Git remote (ja configurado acima)

# 2. Tar local diario via cron
#    Roda 2h da manha, mantem 30 dias
0 2 * * * tar -czf ~/backup/memory-$(date +\%Y\%m\%d).tgz ~/.memory && find ~/backup -name 'memory-*' -mtime +30 -delete

# 3. Sync opcional para cloud (rclone)
0 3 * * * rclone copy ~/backup/ remote:memory-backups/ --max-age 31d

# Verificar integridade
$ ls -lah ~/backup/
# -rw-r--r-- 2026-04-23 memory-20260423.tgz  5.2M
# -rw-r--r-- 2026-04-22 memory-20260422.tgz  5.1M
# ...

💡 Disaster recovery

Laptop morreu? git clone → sistema funcionando em 5 minutos. Sem git? tar -xzf → igual.

📝 Resumo do Modulo

Estrutura de 6 pastas — padrao versionavel.
Seeds com conteudo real — sistema vazio nao ajuda.
Hooks wire com settings.json — testar cada um isoladamente.
E2E valida antes de confiar — golden questions.

Proximo:

6.3 — Scripts: promote.py e decay.py