MODULO 6.6

πŸ“Š Metricas e evolucao continua

Como saber se esta funcionando. Dashboard simples, revisao mensal, quando mudar backend. Plano de 30 dias pos-curso.

6
Topicos
35
Minutos
Operacional
Nivel
Governanca
Tipo
1

🎯 KPIs do sistema de memoria

Quatro metricas capturam o essencial. Meca semanal.

πŸ“Š Os 4 KPIs

Cada um responde uma pergunta:

  • β€’Consistencia (%): mesma pergunta, mesma resposta? Alvo: >95%
  • β€’Hit rate das buscas (%): top-3 contem a resposta certa? Alvo: >80%
  • β€’Tokens economizados (M/mes): vs bulk-load. Alvo: tendencia positiva
  • β€’Regras promovidas (n): observacoes virando sabedoria. Alvo: 2-5 por mes

⚠️ Consistencia <80% = falha grave

Se nao atinge, hooks nao estao disparando ou memoria nao e deterministica. Debug prioritario.

2

πŸ“ˆ Dashboard simples

30 linhas de Python. Sem SaaS, sem dependencias externas.

πŸ“ dashboard.py

#!/usr/bin/env python3
import os, json, glob
from pathlib import Path
from collections import Counter

MEMORY = Path('~/.memory').expanduser()

def hook_fires_per_event():
    log = (MEMORY / 'hook.log').read_text()
    return Counter(line.split('[')[1].split(']')[0] for line in log.splitlines() if '[' in line)

def knowledge_stats():
    types = Counter(md.parent.name for md in (MEMORY/'knowledge').rglob('*.md'))
    return dict(types)

def promotion_count():
    promoted = (MEMORY/'archive/promoted').rglob('*.md')
    return sum(1 for _ in promoted)

def access_distribution():
    accesses = []
    for md in (MEMORY/'knowledge').rglob('*.md'):
        for line in md.read_text().splitlines()[:10]:
            if line.startswith('access_count:'):
                accesses.append(int(line.split(':')[1].strip()))
    return {'zero': accesses.count(0),
            'low (1-3)': sum(1 for a in accesses if 1 <= a <= 3),
            'high (4+)': sum(1 for a in accesses if a >= 4)}

if __name__ == '__main__':
    print('=== Memory System Dashboard ===\n')
    print('Hook fires (last run):', dict(hook_fires_per_event()))
    print('Knowledge by type:    ', knowledge_stats())
    print('Total promoted rules: ', promotion_count())
    print('Access distribution:  ', access_distribution())

πŸ’‘ Rode toda segunda-feira

Cinco minutos. Tendencias aparecem em 4 semanas.

3

πŸ“… Revisao mensal

Ritual de 30 minutos, uma vez por mes. Como manutencao em carro.

1

Minuto 0-5: rode dashboard

Numero de consistencia, hit rate. Compare com mes anterior.

2

Minuto 5-15: revise archive

Veja o que foi decaido. Algo importante que nao deveria sumir? Salience errada?

3

Minuto 15-25: promotions pending

Revise proposals. Aprove as boas, edite as ambiguas, rejeite as ruins.

4

Minuto 25-30: ajustes

Identity inflou? Context.md bagunΓ§ou? Decay muito agressivo? Uma correcao por mes e suficiente.

πŸ’‘ Calendar recurring

Segunda-feira do primeiro dia util do mes, 10h. Block no calendario. Sem esse ritmo, sistema apodrece.

4

πŸšͺ Quando mudar de backend

Criterios claros evitam migrar por modinha.

πŸ“ Triggers de migracao

MARKDOWN β†’ SQLite + FTS5
  Trigger: busca grep > 500ms consistente
  Sinal: 500+ memorias, grep fica lento

SQLite β†’ sqlite-vec (adicionar semantica)
  Trigger: hit rate < 75% por 2 meses
  Sinal: keyword nao captura variacoes de vocabulario

LOCAL β†’ CLOUD (Supabase/Turso)
  Trigger: trabalho serio em multi-device
  Sinal: sincronizacao git fica pesada e conflitante

Regra inversa: NAO migre se os criterios nao bateram.
Complexidade adicional sem ganho real.

πŸ’‘ Meca antes de migrar

Antes de 'vou pra SQLite porque ta lento', meΓ§a. Rode dashboard 3 meses antes de decidir. Dado > hype.

5

πŸŽ“ Post-mortem: quando da errado

Sistemas falham. Checklist evita que voce perca confianca e desista.

βœ“ Sintomas β†’ causas

  • βœ“Claude ignora regra: ver se CLAUDE.md nao ficou no CLAUDE.md vs hook
  • βœ“Contexto sumiu pos-compactacao: checar PreCompact disparou
  • βœ“Hit rate baixa: revisar pesos do multi-sinal
  • βœ“Memoria obsoleta: executar decay.py

βœ— Nao fazer

  • βœ—Reescrever tudo ao primeiro bug
  • βœ—Adicionar mais hooks sem entender o existente
  • βœ—Migrar backend antes de medir
  • βœ—Copiar sistema de outra pessoa sem adaptar
6

πŸŽ‰ Curso concluido β€” proximos 30 dias

Curso acabou. Aplicacao comeca. Plano de 30 dias para transformar conhecimento em habito.

1

Semana 1: usar

Instalar hooks, popular prime + context, usar Claude Code normalmente. Nao otimizar. Sentir o comportamento novo.

2

Semana 2: medir

Rodar dashboard. Anotar KPIs. Identificar onde hit rate e baixa. Escrever golden questions para testar consistencia.

3

Semana 3: ajustar

Uma mudanca por vez: ajustar prime.md inflado, add layer faltante, tune decay. Medir depois de cada ajuste.

4

Semana 4: compartilhar

Documentar seu setup em README interno. Apresentar para time se aplicavel. Ensinar e a forma mais rapida de dominar.

5

Dia 30: review

Rode dashboard final. Compare com baseline da semana 1. Voce tem dado concreto do ganho.

πŸ’‘ Voce terminou o curso

Mas memoria e jogo infinito. Volte em /memory-architect com advisor mode quando necessidade mudar. Esse sistema evolui com voce.

πŸ“ Resumo do Modulo

βœ“
4 KPIs essenciais β€” consistencia, hit rate, tokens, promocoes.
βœ“
Dashboard em script Python β€” nao precisa de SaaS.
βœ“
Revisao mensal de 30 minutos β€” manutencao continua.
βœ“
Plano de 30 dias β€” usa, mede, ajusta, compartilha.

Proximo:

πŸŽ‰ Curso concluido β€” aplique nos proximos 30 dias