Capturar com evidência
Separe o que aconteceu, a hipótese de causa e a melhoria proposta. Cada aprendizado aponta para sua ocorrência.
Seu agente registra e propõe. Você decide o que permanece. O SIL acompanha prazos, mudanças e evidências.
CLI, skill e templates para projetos que trabalham com agentes de código. Sem servidor, conta ou chamadas de API.
Separe o que aconteceu, a hipótese de causa e a melhoria proposta. Cada aprendizado aponta para sua ocorrência.
Adote, experimente, adie com data ou rejeite. A frequência é ajustável e cada decisão fica no histórico.
O tempo e as mudanças sinalizam possíveis regras obsoletas. Uma pessoa decide manter, revisar ou retirar.
A captura pode ser feita pelo agente durante o trabalho autorizado. Tornar uma regra permanente exige uma decisão explícita.
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.
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.
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.
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.
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.
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.
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.
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.
A falta de citações é um sinal para investigar. Regras que protegem contra eventos raros podem continuar necessárias.
Revisões periódicas perguntam se o problema e o escopo ainda existem. Citar uma regra não adia essa revisão.
Use --watch ao propor uma lição. Uma mudança de conteúdo ou arquivo ausente sinaliza uma nova avaliação.
Manter, revisar ou retirar exige justificativa. O histórico permanece e alterações invalidam a verificação anterior quando aplicável.
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.
Quebrar a regra numa sessão que nunca consulta o SIL causa dano real? Se sim, marque com enforce --binding yes.
Registre se a regra é só texto, checklist, teste, sonda, hook ou regra no servidor, e como ela pode ser contornada.
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
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 skillO 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.
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.