🪝 Hook SessionStart
O caminho "sempre ativo, sem pensar": o script inject-playbook.sh injeta o playbook como
additionalContext a cada sessão. Você o aponta no evento SessionStart do settings.json.
E é fail-open: se o arquivo do playbook não existir, a sessão segue normal — nada quebra.
// ~/.claude/settings.json
{
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{ "type": "command",
"command": "bash ~/projetos/fablelite/hooks/inject-playbook.sh" }
]
}
]
}
}
✓ O que o hook faz
- ✓Lê o
.mde devolve viaadditionalContext. - ✓Dispara no
startupde cada sessão. - ✓Aponta para outro arquivo via
FABLE_PLAYBOOK=.
🔎 Fail-open na prática
Se o playbook não existir, o script imprime {"continue":true} e sai com código 0 — a sessão começa normalmente. Injeção é um bônus, nunca um ponto de falha.
🧩 Virar skill
Nem sempre você quer o playbook em TODA sessão. A skill fable-mindset carrega o playbook
sob demanda e ainda traz os scripts junto (debloat, extract, compare, make_playbook). É o canal de quando você prefere
invocar explicitamente em vez de injetar sempre.
Sob demanda
O modelo consulta o playbook quando a tarefa é de código — não em toda conversa. Você controla o quando.
Scripts incluídos
A skill traz o pipeline inteiro: dá para re-medir e regenerar o playbook a partir da própria invocação.
💡 Dica prática
A skill fable-mindset mora em ~/.claude/skills/fable-mindset/. Use-a quando quiser o playbook E as ferramentas na mão, sem deixá-lo ativo o tempo todo.
📄 CLAUDE.md — o caminho mais simples
O mínimo esforço: cole o conteúdo do playbook (ou um link para ele) no CLAUDE.md — global ou de projeto. Ele já é
auto-injetado em toda sessão, versionado junto do repo, sem nenhuma configuração de hook. Três canais, três trade-offs — escolha pelo que você precisa:
| Canal | Quando ativa | Escolha se… |
|---|---|---|
| 🪝 Hook | sempre ativo (todo SessionStart) | quer sem pensar, em toda sessão |
| 🧩 Skill | sob demanda + os scripts | quer invocar explicitamente |
| 📄 CLAUDE.md | auto-injetado, versionado | quer mínimo esforço |
📊 Resumo da decisão
- Sempre ativo, sem pensar → hook
SessionStart. - Sob demanda + os scripts juntos → skill.
- Mínimo esforço →
CLAUDE.md.
🤗 Sem dados do Fable? Os traces abertos
E se você mal teve tempo de conversar com o Fable e não tem sessões dele para minerar? Pessoas abriram as próprias sessões no Hugging Face:
Glint-Research/Fable-5-traces. O import_hf_traces.py baixa o dataset e roda o
MESMO exercício comportamental sobre dados de terceiros — mesma leitura de ferramentas/turno, raciocínio e ordem de trabalho.
pip install datasets # Glint-Research/Fable-5-traces (default): python import_hf_traces.py # inspeciona o schema do dataset: python import_hf_traces.py --peek # escreve stats.json num corpus: python import_hf_traces.py --out corpus_fable_hf
💡 Dica prática
O importador é defensivo: tenta mapear formatos comuns (chat, JSONL embutido, transcrição crua). Se a contagem sair estranha, abra um registro com --peek e ajuste record_to_events(). Depois, make_playbook.py --from-json vira playbook (lado a = estes dados).
Fable-5-traces (HF)
pip install datasets
import_hf_traces.py
mesmo exercício
🎚️ O que transfere e o que NÃO
A expectativa honesta: você imita o RITMO (pensar antes, ler antes de editar, fechar o loop), não clona o modelo. O poder do Fable está nos pesos — e isso o playbook não atravessa. O que ele faz é melhorar a execução do modelo-alvo; ele não vira Fable.
✓ TRANSFERE (o ritmo)
- ✓Pensar antes de agir no não-trivial.
- ✓Ler antes de editar; ferramenta com propósito.
- ✓Fechar o loop com teste/build.
✗ NÃO transfere
- ✗Os pesos do modelo — onde mora o poder.
- ✗Virar Fable: a identidade não muda.
- ✗O conteúdo do raciocínio (vem cifrado nos logs).
🔎 A leitura honesta
O playbook é uma melhoria de processo, não um transplante de capacidade. Ele dá ao modelo-alvo o ritmo bom medido no Fable — ganho real, sem promessa mágica de "transformar Opus em Fable".
⚖️ Ética e generalização
Para fechar o loop com responsabilidade: rode no SEU histórico; trate o corpus como sensível — ele tem seu código e seus dados. O método não é exclusivo do par Fable/Opus: aplica a Opus, Codex e modelos open-source. E mantenha o playbook vivo: itere com novos dados conforme você acumula sessões.
⚠️ O corpus é sensível
Seus logs contêm código, caminhos e possivelmente segredos. Trate-os como dado pessoal: redija antes de compartilhar e não os exponha. O ouro é o ritmo, não os dados — e o ritmo você pode publicar; os dados, não.
seu histórico
trate como sensível
Opus/Codex/open-source
iterando com novos dados
💉 Resumo do Módulo
SessionStart — injeta como additionalContext, fail-open.fable-mindset — sob demanda, com os scripts juntos.CLAUDE.md — auto-injetado, mínimo esforço.import_hf_traces.py — Glint-Research/Fable-5-traces no HF.Fim da trilha:
Do log ao playbook injetado — o método é seu. Rode no seu histórico e itere.