---
name: second-brain-init
description: One-shot setup do Second Brain. Cria a estrutura de pastas inicial, README explicativo na raiz, MEMORY.md esqueleto, e prepara o workspace pra primeira memória ser adicionada. Segura por design, NUNCA toca conteúdo existente. Dry-run obrigatório antes de qualquer write.
---

# second-brain-init

Skill de inicialização. Cria toda a estrutura de pastas e arquivos meta do Second Brain em um único passo.

**Princípio de segurança:** esta skill é segura por design. Ela detecta automaticamente se o workspace já tem conteúdo, mostra um plano detalhado do que vai fazer, exige confirmação humana antes de qualquer escrita, e jamais sobrescreve, move ou modifica arquivo que você já tem.

## Quando usar

- Primeira instalação do plugin, no workspace folder vazio ou quase vazio.
- Migração de uma pasta antiga pra estrutura padrão (a skill cria as pastas que faltam, sem mover arquivos existentes).
- Reset depois de experimentação que bagunçou a estrutura.

NÃO usar se você já tem Second Brain configurado e está só atualizando o plugin. Use `memory-init` ou `memory-add` pra ações pontuais.

## Inputs

A skill recebe (opcionais):

1. **Workspace path:** caminho da pasta raiz do Second Brain. Se omitido, pergunta ao usuário e sugere `~/Documents/Claude/Projects/Second Brain/`. SEMPRE confirma o path final antes de prosseguir.
2. **Owner name:** seu nome (pra preencher templates). Se omitido, pega do Settings → Customize.
3. **Owner role:** seu cargo (opcional, pra contextualizar a memória user).
4. **`--apply`** flag (booleana, default `false`): exige confirmação explícita do usuário antes de qualquer write. Sem essa flag, a skill roda em modo dry-run e só mostra o plano.

## Output

A skill cria as seguintes pastas no workspace path (se ainda não existirem):

```
<workspace>/
├── 00_Dashboard.html       (placeholder, pra você customizar depois)
├── _Decisoes_Abertas.md    (template vazio com instrução)
├── README.md               (mapa do território, gerado a partir do template)
├── MEMORY.md               (índice de memórias, gerado vazio)
│
├── Conhecimento/
├── _Briefings/
│   ├── Sintese_Mensal/
│   └── _Arquivo/
├── _Inbox/
│   ├── Processados/
│   └── Reunioes/
├── _Logs/
├── Deliverables/
├── Drafts/
├── _Templates/
├── memory/                 (onde memórias do MEMORY.md vão morar)
│   ├── user_<owner>.md     (pré-preenchido com placeholders, SÓ se memory/ vazio)
│   ├── project_<exemplo>.md (template vazio, SÓ se memory/ vazio)
│   ├── feedback_<exemplo>.md (template vazio, SÓ se memory/ vazio)
│   └── reference_<exemplo>.md (template vazio, SÓ se memory/ vazio)
└── skills/                 (placeholder pra skills custom suas)
```

## Fluxo de execução (com guardrails de segurança)

### Passo 0: confirmação do workspace path

Mostrar ao usuário o path que vai ser usado:

```
Workspace path detectado: <path>
Origem: <Settings → Cowork | input direto | sugestão default>

Confirma que esse é o path certo? (s/N)
```

Se o usuário não confirmar EXPLICITAMENTE com "s" ou "sim", parar e perguntar de novo. Default é NÃO prosseguir.

### Passo 1: detectar estado do workspace

Inspecionar `<workspace>/` antes de qualquer ação:

- Pastas que já existem (do plano acima)
- Pastas que NÃO existem (do plano acima)
- Arquivos meta que já existem (README.md, MEMORY.md, 00_Dashboard.html, _Decisoes_Abertas.md)
- Conteúdo de `memory/`: vazio, ou tem N arquivos
- Conteúdo de `Conhecimento/`: vazio, ou tem N arquivos
- Conteúdo de `MEMORY.md`: vazio, ou tem N entradas

Classificar workspace em uma de 3 categorias:

| Estado | Critério | Comportamento da skill |
|---|---|---|
| **Vazio** | Workspace existe, sem nenhuma das pastas/arquivos do plano | Cria tudo do plano, incluindo memórias placeholder |
| **Parcial** | Algumas pastas existem, mas `memory/` vazio e MEMORY.md vazio ou ausente | Cria o que falta, inclui memórias placeholder |
| **Populado** | `memory/` tem 1+ arquivo OU MEMORY.md tem entradas além de placeholder OU Conhecimento/ tem 1+ arquivo | Modo incremental: cria APENAS pastas/arquivos faltantes, **PULA criação de memórias placeholder e PULA edição do MEMORY.md** |

A detecção de "populado" é regra dura. Se o workspace tem qualquer sinal de uso anterior, NÃO mexe em `memory/` nem em `MEMORY.md`.

### Passo 2: montar plano

Gerar lista do que VAI fazer baseada no estado detectado:

```
Plano de execução para workspace <path> (estado: <vazio|parcial|populado>):

Pastas a criar:
- <lista de pastas que faltam>

Arquivos meta a criar (se não existirem):
- <lista>

Memórias placeholder a criar:
- <lista se vazio/parcial, ou "PULADO, workspace já tem memórias" se populado>

Arquivos que serão MANTIDOS sem alteração:
- <lista de tudo que já existe>

Ações destrutivas: NENHUMA (esta skill nunca sobrescreve, nunca deleta, nunca move).
```

### Passo 3: pedir confirmação explícita pra aplicar

Mostrar o plano e perguntar:

```
Esse plano vai criar X pastas, Y arquivos. Nada existente será modificado.

Confirma aplicar agora? (s/N)
```

Se resposta diferente de "s" ou "sim", parar e responder "Cancelado pelo usuário, nenhuma ação foi tomada".

### Passo 4: aplicar (só depois da confirmação)

Executar SOMENTE o que estava no plano confirmado. Pra cada ação:

- Cria pasta: verificar uma última vez se não existe, criar.
- Cria arquivo meta: verificar uma última vez se não existe, copiar do template substituindo placeholders.
- Cria memória placeholder (só se workspace classificado como vazio/parcial): copiar do template.
- Atualizar MEMORY.md (só se vazio/ausente): gerar a partir do template.

### Passo 5: log e relatório

Append em `<workspace>/_Logs/init_<YYYY-MM-DD_HH-MM>.md`:

```
# second-brain-init em YYYY-MM-DD HH:MM
Workspace: <path>
Estado detectado: <vazio|parcial|populado>
Pastas criadas: <lista>
Arquivos criados: <lista>
Memórias placeholder criadas: <lista ou "nenhuma">
Ações puladas: <lista>
```

Reportar ao usuário com link `computer://` pro `<workspace>/README.md` e mensagem final.

## Restrições absolutas

- **NUNCA sobrescrever arquivo existente.** Idempotência é regra dura. Mesmo em modo --apply, se arquivo existe, mantém intacto.
- **NUNCA deletar arquivo ou pasta.** A skill só cria.
- **NUNCA mover arquivos do usuário entre pastas.** A skill só cria.
- **NUNCA escrever em path fora do workspace folder definido.** Validação de path antes de qualquer write.
- **NUNCA criar pasta com nome que conflite com sistema operacional** (ex: `~`, `/`, etc).
- **NUNCA prosseguir sem confirmação humana explícita do plano.** Default é parar.
- **NUNCA criar memórias placeholder em workspace populado.** Detectar e pular.

## Como debugar

- **Dry-run (default):** rodar `roda o second-brain-init` SEM a flag `--apply` mostra só o plano, não escreve nada.
- **Executar de verdade:** rodar `roda o second-brain-init --apply` (ou confirmar "s" quando perguntado).
- Log de cada execução: `<workspace>/_Logs/init_<timestamp>.md`.

## Mensagem final ao usuário

```
✅ Second Brain inicializado em <workspace>

Resumo:
- Pastas criadas: <N>
- Arquivos criados: <N>
- Memórias placeholder: <N ou "nenhuma, workspace já tinha memórias">
- Arquivos preservados: <N>

Próximos passos:
1. Abra MEMORY.md e ajuste o índice se quiser.
2. Edite memory/user_<seu_nome>.md com seu perfil real (se foi criada).
3. Rode 'memory-add' pra adicionar suas primeiras memórias.
4. Volte ao Cookbook Second Brain pra Pílula 3 e siga o hands-on.

Log da execução: <workspace>/_Logs/init_<timestamp>.md
```

## Origem da v0.1.1

A v0.1.0 inicial não tinha confirmação explícita nem detecção de workspace populado. Risco real de poluir memória existente com placeholders. v0.1.1 corrige adicionando dry-run default, confirmação obrigatória, e detecção de estado.
