Transforme falhas em aprendizados revisáveis.

Seu agente registra e propõe. Você decide o que permanece. O SIL acompanha prazos, mudanças e evidências.

Um kit local, sob seu controle

CLI, skill e templates para projetos que trabalham com agentes de código. Sem servidor, conta ou chamadas de API.

Capturar com evidência

Separe o que aconteceu, a hipótese de causa e a melhoria proposta. Cada aprendizado aponta para sua ocorrência.

Decidir em lote

Adote, experimente, adie com data ou rejeite. A frequência é ajustável e cada decisão fica no histórico.

Reavaliar a validade

O tempo e as mudanças sinalizam possíveis regras obsoletas. Uma pessoa decide manter, revisar ou retirar.

Do fato à regra, com etapas explícitas

A captura pode ser feita pelo agente durante o trabalho autorizado. Tornar uma regra permanente exige uma decisão explícita.

Ocorrência→Proposta→Decisão→Regra→Promoção→Revisão

O framework não treina modelos nem observa conversas sozinho. A skill orienta o agente a consultar o contexto no início, capturar falhas durante o trabalho e verificar pendências no fechamento.

Experimente antes de integrar

Python 3.10+ e Git são suficientes. A demonstração usa um projeto temporário, com registros fictícios identificados, e o remove ao terminar.

1

Baixe e execute a demonstração

git clone https://github.com/inematds/sil-loop-r.git
cd sil-loop-r
python3 scripts/demo.py
python3 -m unittest discover -s tests -v

A demonstração percorre captura, aprovação fictícia, revisão e retirada. Não modifica seus outros projetos.

2

Escolha o projeto que deseja acompanhar

Substitua o caminho pelo diretório desejado. O comando cria somente o armazenamento local .sil; não altera instruções nem instala hooks.

python3 sil.py --project /caminho/do/projeto init
python3 sil.py --project /caminho/do/projeto occurrence \
  --title "Teste acessou serviço incorreto" \
  --evidence "Log local: a porta já estava ocupada"
python3 sil.py --project /caminho/do/projeto lesson \
  --occurrence O0001 \
  --proposal "Abortar quando a porta estiver ocupada" \
  --scope "Servidor de testes"

Use o ID que o comando anterior retornou. O0001 é apenas o primeiro registro de um projeto vazio.

3

Consulte o lote e registre uma decisão

python3 sil.py --project /caminho/do/projeto status
python3 sil.py --project /caminho/do/projeto request

O agente apresenta as propostas. Execute o próximo comando somente depois de uma aprovação explícita para a lição indicada.

python3 sil.py --project /caminho/do/projeto decide L0001 adopt \
  --approved-by "Responsável" \
  --reason "Aprovado após revisar a evidência"

Também existem reject, defer e trial. Adiamento e teste exigem uma data futura; teste exige um critério verificável. Consulte decide --help.

4

Revise as regras ao longo do tempo

python3 sil.py --project /caminho/do/projeto context
python3 sil.py --project /caminho/do/projeto check
python3 sil.py --project /caminho/do/projeto review R0001 keep \
  --approved-by "Responsável" \
  --reason "Proteção ainda necessária; evidência revisada"

check retorna 0 sem pendências vencidas, 1 quando há decisão ou revisão pendente e 2 em erro. Uma saída 0 não certifica a veracidade das regras.

Escolha quando conversar sobre aprendizados

O primeiro limite atingido pede um lote. A simulação abaixo considera propostas novas, sem lembrete anterior, e não grava dados nem modifica a configuração.

Configuração real da CLI

python3 sil.py --project /caminho/do/projeto config \
  --approval-days 7 \
  --approval-releases 2 \
  --approval-batch 5 \
  --review-days 30 \
  --uncited-releases 5

Um lembrete não aprova nem encerra pendências. Datas vencem no próprio dia. As frequências são avaliadas ao executar a CLI; o kit não instala tarefas agendadas.

Antiga não significa inválida

A falta de citações é um sinal para investigar. Regras que protegem contra eventos raros podem continuar necessárias.

Prazo atingido

Revisões periódicas perguntam se o problema e o escopo ainda existem. Citar uma regra não adia essa revisão.

Arquivo mudou

Use --watch ao propor uma lição. Uma mudança de conteúdo ou arquivo ausente sinaliza uma nova avaliação.

Decisão documentada

Manter, revisar ou retirar exige justificativa. O histórico permanece e alterações invalidam a verificação anterior quando aplicável.

A regra chega à próxima sessão

Uma sessão nova não consulta o banco por conta própria. As regras vinculantes vão para um bloco no AGENTS.md, e o check acusa quando o bloco fica para trás.

Pergunta de promoção

Quebrar a regra numa sessão que nunca consulta o SIL causa dano real? Se sim, marque com enforce --binding yes.

Degrau e vazamento

Registre se a regra é só texto, checklist, teste, sonda, hook ou regra no servidor, e como ela pode ser contornada.

Bloco vigiado

promote mostra o diff; promote --write grava entre marcadores e preserva o resto. Bloco ausente, antigo ou corrompido faz o check retornar 1.

python3 sil.py --project /caminho/do/projeto enforce R0001 --binding yes --rung hook \
  --leak "git push --no-verify" --approved-by "Responsável" --reason "Deploy errado derruba o app"
python3 sil.py --project /caminho/do/projeto promote --write

Leve o método ao seu agente

A skill acompanha o código e pode ser lida diretamente ou instalada voluntariamente no assistente escolhido. Este projeto não a instala por você.

Ler a skill

O agente captura fatos e prepara decisões. Você controla as regras permanentes. Mudanças em instruções, hooks e código precisam de escopo autorizado.

O que a versão 1.1 verifica

A CLI valida estados e referências, calcula prazos e compara arquivos associados. A revisão de significado depende de uma pessoa ou de um agente trabalhando com evidências.

O comando verify guarda resultados de testes já executados. Não executa comandos e não certifica relatos. O nome do aprovador é declarado, não autenticado.

Os dados ficam em .sil/state.sqlite3. Ignore essa pasta no Git do projeto consumidor e revise exportações antes de compartilhar. Não há sincronização em nuvem, interface administrativa ou envio de notificações.

Leia a arquitetura e as decisões · Documentação completa