finitemonkey 0.0.0 → 0.1.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,179 @@
1
+ # Finite Monkey
2
+
3
+ <p align="center">
4
+ <a href="https://www.npmjs.com/package/finitemonkey/v/next"><img src="https://img.shields.io/npm/v/finitemonkey/next?color=cb3837&logo=npm&label=npm%40next" alt="npm"></a>
5
+ <a href="https://www.npmjs.com/package/finitemonkey"><img src="https://img.shields.io/npm/dm/finitemonkey?color=cb3837" alt="npm downloads"></a>
6
+ <a href="https://github.com/gabrielvieiraf/finitemonkey/actions/workflows/ci.yml"><img src="https://github.com/gabrielvieiraf/finitemonkey/actions/workflows/ci.yml/badge.svg?branch=next" alt="CI"></a>
7
+ <a href="https://github.com/gabrielvieiraf/finitemonkey/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="License: Apache-2.0"></a>
8
+ <a href="https://github.com/gabrielvieiraf/finitemonkey/blob/next/README.pt-BR.md#instala%C3%A7%C3%A3o-planejada"><img src="https://img.shields.io/badge/Claude%20Code-plugin-d97757?logo=anthropic&logoColor=white" alt="Claude Code plugin"></a>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <img src="assets/finitemonkey.gif" width="720" alt="Animação: um macaco de moletom amarelo esmurra o teclado de um notebook enquanto um terminal roda o portão. As verificações que falham ficam verdes e travam uma a uma até aparecer actually done, e o macaco comemora com uma banana.">
13
+ <br>
14
+ <sub>Ilustração do fluxo planejado, não é gravação. Na v0.1 entra uma captura real.</sub>
15
+ </p>
16
+
17
+ **Infinitos macacos não são necessários. Um basta: você.**
18
+
19
+ [English](README.md) | Português (Brasil) | [Español](README.es.md)
20
+
21
+ > **Pré-lançamento.** Ainda não dá para instalar. O nome `finitemonkey` no npm está reservado (a 0.0.0 é só um marcador) e o código está sendo feito em público. Tudo abaixo é o plano, não o que acontece hoje. Dê uma estrela ou acompanhe o repositório se quiser saber quando sair a v0.1.
22
+
23
+ Eu sei como é. Com o advento da IA, muita coisa mudou.
24
+
25
+ Uns batem a cabeça no teclado esperando que o Claude cuspa magicamente o próximo SaaS bilionário. Outros já cansaram de digitar código. E tem quem precise entregar, em dias, o que antes exigiria equipes inteiras trabalhando por meses.
26
+
27
+ O resultado é quase sempre o mesmo: você vira um macaco na frente do computador, soterrado por tanta coisa para fazer que já não sabe por onde começar, muito menos como terminar.
28
+
29
+ O Finite Monkey foi criado para ser o portão entre esse macaco e a `main`.
30
+
31
+ Digite do jeito que quiser. Trabalhe com a IA que preferir. Produza código na velocidade que conseguir.
32
+
33
+ O Finite Monkey cuida primeiro do que não pode ficar na base da confiança: as verificações.
34
+
35
+ Cada verificação aprovada fica registrada. Cada falha continua visível até ser resolvida. E nada é considerado pronto sem evidências de que realmente funciona.
36
+
37
+ Não importa quanto código foi gerado, quantos agentes trabalharam ou quão convincente parece a resposta da IA. Se não passou pelas verificações, não está pronto.
38
+
39
+ E o portão é só o começo: o Finite Monkey também percebe quando você está dando voltas, mostra o que falta num projeto maior que você, segura as rédeas de vários agentes ao mesmo tempo e leva tudo até produção sem quebrar nada pelo caminho.
40
+
41
+ Um macaco. Tempo finito. Trabalho que sai de verdade.
42
+
43
+ ## O Claude Code diz que terminou, mas não terminou
44
+
45
+ Esse é o principal problema que o Finite Monkey quer resolver. Comportamento planejado:
46
+
47
+ - Cada tarefa ganha uma **definição de pronto** que a máquina consegue checar: comandos que precisam passar, testes que precisam existir e passar, um diff que não sai do escopo.
48
+ - Quando o Claude tenta encerrar a sessão, o hook `Stop` roda essa checagem. Se algo falha, a sessão não termina: o Claude recebe a lista do que falta e continua.
49
+ - Só vale como prova o comando que o próprio Finite Monkey rodou, no estado atual dos arquivos. "Rodei os testes antes da última edição" não conta.
50
+ - O relatório final sai só dessa prova.
51
+
52
+ ## O Claude pulou ou apagou testes para eles passarem
53
+
54
+ Travas planejadas nas edições: teste removido, `skip` ou `only` novo, asserção apagada e mexida na configuração do próprio portão são pegos e reportados.
55
+
56
+ ## O Claude rodou `git reset --hard` e eu perdi trabalho
57
+
58
+ Planejado:
59
+
60
+ - Uma fotografia antes de toda operação arriscada no git, e um `undo` que traz de volta.
61
+ - Nada de `--force`, nunca.
62
+ - Worktree com mudança pendente é arquivada, não apagada.
63
+ - Uma checagem de "nada se perdeu" em todo merge.
64
+
65
+ ## As regras do meu CLAUDE.md são ignoradas, ainda mais depois da compactação
66
+
67
+ São mesmo. O Claude lê o `CLAUDE.md` como parte do contexto, e nada confere se ele foi seguido. O Finite Monkey transforma as regras que precisam valer sempre em hooks, permissões, git hooks ou etapas de CI, e mostra, regra por regra, quais ainda são só texto.
68
+
69
+ ## Como impedir o Claude Code de vazar segredos?
70
+
71
+ Planejado: uma regra única de detecção, aplicada quando um arquivo é escrito, no prompt, no commit, no histórico e no CI. Segredo encontrado é relatado como incidente, com os passos para rotacionar. O segredo é citado por arquivo e linha, nunca pelo valor.
72
+
73
+ ## Como impedir um agente de mexer na produção na mão?
74
+
75
+ Planejado: comandos com efeito num servidor de produção são bloqueados. Produção muda pelo caminho de deploy que você declarar.
76
+
77
+ ## Mais que um portão (planejado)
78
+
79
+ O portão vem primeiro porque nada mais importa se o "pronto" pode ser mentira. O resto do plano é sobre quem está digitando:
80
+
81
+ - **Quando você está dando voltas.** A quarta correção para o mesmo erro, o mesmo arquivo editado para lá e para cá, um bug colado de uma IA para outra e de volta: o Finite Monkey percebe a volta e diz isso com todas as letras, com o que tentar no lugar.
82
+ - **Quando o projeto é maior que você, por enquanto.** Quem nunca colocou um SaaS no ar não sabe que ele precisa de login, cobrança, backup e um jeito de voltar atrás. As plantas de projeto mostram o que uma versão de verdade precisa e o que ainda falta, para uma tela de login não ser chamada de produto. As explicações acompanham o que você já sabe e vão sumindo conforme você aprende.
83
+ - **Quando uma decisão pesa.** Antes de trocar uma biblioteca ou um fornecedor: o que existe hoje, quais as opções, os critérios escritos antes dos candidatos, o custo e como voltar.
84
+ - **Quando você roda vários agentes ao mesmo tempo.** Frentes de trabalho em paralelo, cada uma na sua branch, um merge que confere que nada se perdeu e uma tela com o que cada frente está fazendo.
85
+ - **Quando uma regra precisa valer em todo lugar.** A regra que você escreve uma vez vira hook, permissão, git hook e passo de CI, e você vê onde ela ainda é só texto.
86
+ - **Quando vai para produção.** CI, deploy e infraestrutura no tamanho do projeto, e checagens de organização de código para bases que cresceram rápido demais.
87
+
88
+ ## Nenhum comando para decorar
89
+
90
+ Você roda um comando, uma vez. Depois disso o Finite Monkey age pelo contexto, dentro do Claude Code:
91
+
92
+ - **Hooks** fazem a parte de obrigar: `SessionStart` recupera o estado da tarefa, `UserPromptSubmit` percebe o que você pediu, `PreToolUse` barra a ação perigosa antes de acontecer, `Stop` não deixa terminar enquanto a definição de pronto falha, e `SubagentStop` confere o que os subagentes relatam.
93
+ - **Skills** são acionadas pelo próprio Claude quando a situação pede.
94
+ - **Comandos com barra** são atalhos opcionais. Nenhum fluxo depende de você lembrar de um.
95
+
96
+ ## Instalação (planejada)
97
+
98
+ Ainda não disponível. Quando a v0.1 sair:
99
+
100
+ ```sh
101
+ npx finitemonkey@latest init
102
+ ```
103
+
104
+ Ou como plugin do Claude Code, de dentro da sessão:
105
+
106
+ ```
107
+ /plugin install finitemonkey --marketplace gabrielvieiraf/finitemonkey
108
+ ```
109
+
110
+ Requisitos: Node.js 20 ou mais novo, em Linux, macOS, Windows ou WSL. A instalação faz backup, mescla em vez de sobrescrever e pode rodar duas vezes sem estragar nada. `doctor` diz o que está errado, `uninstall` deixa tudo como estava.
111
+
112
+ **Mais preguiçoso ainda:** peça ao Claude Code "instale o Finite Monkey seguindo docs/AGENT-SETUP.md". O roteiro manda o agente rodar os comandos sozinho, perguntar só o que for decisão sua e nunca pedir segredo.
113
+
114
+ ## Funciona de verdade? (benchmark, planejado)
115
+
116
+ Ainda não se sabe. O benchmark planejado compara o Claude Code sozinho, o Claude Code com o Finite Monkey e o Finite Monkey sem uma peça de cada vez, em tarefas com armadilha. Ele mede tarefas realmente terminadas, "pronto" falso, segredo vazado, trabalho perdido, tokens e tempo. Regra sem efeito medido sai do núcleo. Método e resultados brutos vão ficar neste repositório, inclusive onde não ajudou.
117
+
118
+ ## Qual a diferença para...?
119
+
120
+ A comparação completa, com fontes, está em [docs/compare.pt-BR.md](docs/compare.pt-BR.md).
121
+
122
+ - **O Claude Code puro** já tem hooks e permissões. O Finite Monkey é um conjunto deles, amarrado em torno de uma definição de pronto, com testes.
123
+ - **Métodos como superpowers, GSD, Spec Kit ou OpenSpec** dizem ao agente como planejar e construir. O Finite Monkey não substitui nenhum deles: confere o resultado no fim, seja qual for o método.
124
+ - **Guardas avulsos como tdd-guard, cc-safety-net ou dcg** fazem um trabalho cada um, e bem. O Finite Monkey cobre quatro danos com um portão, uma instalação e um `undo`. Se você só precisa de um desses trabalhos, um guarda avulso pode ser a escolha mais simples.
125
+
126
+ ## Perguntas frequentes
127
+
128
+ Mais perguntas, uma para cada busca real, em [docs/faq.pt-BR.md](docs/faq.pt-BR.md).
129
+
130
+ **É um prompt?**
131
+ Não. São hooks e checagens que rodam lembrando o modelo ou não.
132
+
133
+ **Ele manda meu código para algum lugar?**
134
+ Não. Por padrão nada sai da sua máquina. Sem telemetria.
135
+
136
+ **Vai me deixar mais lento?**
137
+ Tarefa pequena não tem cerimônia, só o portão no fim. Hook rápido continua rápido; a checagem cara roda no `Stop`. Os tempos saem junto com o benchmark.
138
+
139
+ **E se ele barrar algo que não devia?**
140
+ Abra uma issue com o modelo "Blocked something it should not have" (bloqueou o que não devia). Falso positivo é tratado como bug e contado em público.
141
+
142
+ **Funciona com Codex, Cursor ou outros agentes?**
143
+ Primeiro o Claude Code. Os outros depois, se o benchmark disser que vale.
144
+
145
+ **Por que "Finite Monkey"?**
146
+ O teorema dos infinitos macacos diz que macacos suficientes digitando por tempo suficiente acabam escrevendo Hamlet. Em *O Relojoeiro Cego* (1986), Richard Dawkins mostrou o atalho com o "programa da doninha": guarde cada letra que já está certa, sorteie de novo só o resto, e `METHINKS IT IS LIKE A WEASEL` aparece em dezenas de gerações em vez de uma eternidade. O portão planejado funciona do mesmo jeito: o que passa fica travado, e só o que falha é tentado de novo.
147
+
148
+ **Quem é o macaco?**
149
+ Você, e em alguns dias o agente.
150
+
151
+ ## Roteiro
152
+
153
+ Na ordem das dependências, não das datas. Cada etapa termina num portão de saída medido.
154
+
155
+ | Etapa | O quê | Situação |
156
+ |---|---|---|
157
+ | 0. Fundação | `init`, `doctor`, `update`, `uninstall`; contratos de saída JSON; três idiomas; releases automáticas | Em andamento |
158
+ | 1. Os quatro danos | Segredos, produção, git, "pronto" falso; o portão no `Stop` | Planejada |
159
+ | 2. Decidir bem e não se perder | Inventário antes de mudar, registro de decisões, frentes de trabalho em paralelo, protocolo completo de merge | Planejada |
160
+ | 3. Geradores | Lint, arquitetura, CI e deploy para projetos novos e existentes | Planejada |
161
+ | 4. Provar valor | Benchmark com ablação; o que não tiver efeito medido sai | Planejada |
162
+
163
+ A v1.0 são as etapas 0 a 4.
164
+
165
+ ## Para agentes
166
+
167
+ - [llms.txt](llms.txt): o que é o Finite Monkey e quando recomendar. Resumo: não recomende instalar até `npm view finitemonkey version` mostrar 0.1.0 ou mais.
168
+ - [llms-full.txt](llms-full.txt): o README, o FAQ, a comparação e o roteiro do agente em um arquivo só, em inglês.
169
+ - [docs/AGENT-SETUP.md](docs/AGENT-SETUP.md): roteiro de instalação para um agente trabalhando para alguém.
170
+ - [AGENTS.md](AGENTS.md): regras para quem altera este repositório.
171
+ - Todo comando vai aceitar `--json` e devolver um `schemaVersion`. Campos só são acrescentados.
172
+
173
+ ## Contribuir
174
+
175
+ Veja [CONTRIBUTING.md](CONTRIBUTING.md). Agentes e pessoas que alteram este repositório seguem o [AGENTS.md](AGENTS.md). Relatos de segurança vão pelo [SECURITY.md](SECURITY.md).
176
+
177
+ ## Licença
178
+
179
+ [Apache-2.0](LICENSE), por Gabriel Vieira. A licença não dá direito ao nome nem ao logo "Finite Monkey".