fnin-framework
v1.0.7
Published
FNIN - Framework de agentes para engenharia de software (Projetos Novos e Legados).
Downloads
1,092
Maintainers
Readme
FNIN Framework (Framework New Idea Node)
Um framework em Node.js projetado para criar e orquestrar equipes de agentes de IA especialistas em todas as fases da Engenharia de Software.
O grande diferencial do FNIN é a sua capacidade de ler o contexto do ambiente. Ele sabe se você está começando uma ideia do zero ou se está rodando o comando dentro de um projeto legado, orientando os agentes de acordo com a situação.
Funcionalidades
- Identificação de Contexto (Novos vs Legados): Lê o diretório atual em busca de arquivos comuns (package.json, pom.xml, .git) e avisa os agentes para respeitarem as estruturas de projetos já existentes, ou aplicarem novas arquiteturas do zero.
- Equipe Especializada Nomeada:
- Alice (Engenheira de Requisitos)
- Bob (Arquiteto de Software)
- Charlie (Desenvolvedor Full-Stack)
- Diana (Engenheira de QA)
- Eve (Engenheira DevOps)
- Orientação via Markdown: Os prompts dos agentes são os arquivos
.mdna pastaagents/. - Pipeline Contínuo: A saída de Alice alimenta Bob, que alimenta Charlie, e assim por diante.
- Ferramentas Adicionais: O framework agora suporta agentes de análise, clarificação, constituição, checklist, planejamento, geração de tasks e integração com Git.
- Avaliação de Requisitos Existentes: Capacidade de importar arquivos (ex:
.txt,.md) para a Alice avaliar o escopo antes de gerar a arquitetura. - Exportação Progressiva de Artefatos: O framework gera e atualiza (via append) uma pasta local
.fnin_outputcontendo subdiretórios para cada fase do ciclo de software.
Estrutura de Saída Gerada
Sempre que o framework rodar, ele incrementará os arquivos na seguinte estrutura no diretório de execução:
.fnin_output/
├── 00-project-context.md (Leitura inicial do projeto e inputs cumulativos do usuário)
├── 01-requirements/
│ └── artifact-requirements.md
├── 02-architecture/
│ └── artifact-architecture.md
├── 03-development/
│ └── artifact-development.md
├── 04-testing/
│ └── artifact-testing.md
└── 05-deployment/
└── artifact-deployment.mdComo instalar via NPX e executar
O FNIN já possui o binário fnin configurado.
Para testar localmente:
# 1. Instale as dependências
npm install
# 2. Linke o pacote localmente para poder usar como CLI global
npm link
# 3. Dê permissão de execução (sistemas unix)
chmod +x bin/cli.js
# 4. Verifique a ativação do framework
fnin
# 5. Execute a orquestração de uma tarefa
fnin run "Criar um endpoint para atualizar a senha do usuário"
# 6. Execute importando um documento de requisitos existente
fnin run "Analisar as regras de negócio deste documento" -f "meus-requisitos.md"
# 7. Execute iterativamente. O arquivo será incrementado, e não sobrescrito.
fnin run "Agora adicione disparo de email na recuperação de senha"Como estender para uso de uma LLM real
Abra o arquivo src/agent.js e implemente sua chamada de API para OpenAI/Anthropic/Gemini dentro do método process(). O framework já monta todo o contexto consolidado (Legado/Novo + Prompt do usuário + Fase atual) na variável input, bastando passar como User Message, e o this.systemPrompt como System Message.
Instalar no NPM para rodar via npx
Para que qualquer pessoa (ou você mesmo em outra máquina) possa rodar o seu framework direto da web usando apenas o comando npx, você precisa publicar o seu pacote em um Registry de Pacotes, como o NPM (Node Package Manager) público ou o GitHub Packages. O comando npx funciona da seguinte forma: quando você digita npx nome-do-pacote, ele baixa o pacote temporariamente do registro online, lê a propriedade "bin" do package.json e executa o binário definido lá, sem precisar instalar nada globalmente na máquina de forma permanente. Aqui está o passo a passo de como publicar o seu framework no NPM público para ser usado com npx:
- Ajuste o nome do pacote no package.json
O nome do pacote precisa ser único no registro do NPM. Talvez fnin-framework já exista ou você queira colocar o seu nome/empresa.
Abra o seu package.json e verifique/ajuste:
Dica: Se o nome estiver em uso no npm, você pode mudar para algo como @seu-usuario/fnin-framework.{ "name": "fnin-framework", "version": "1.0.0", "bin": { "fnin": "./bin/cli.js" } } - Crie uma conta no NPM Se você ainda não tem, vá até npmjs.com e crie uma conta gratuita.
- Faça login via terminal
No terminal, dentro da pasta do seu projeto, faça login com a sua conta do NPM:
Ele pedirá seu usuário, senha e email.npm login - Publique o pacote
Ainda na raiz do seu projeto (onde está o package.json), rode o comando:
Se você estiver usando um nome com @seu-usuario/..., você precisa publicar indicando que é público: npm publish --access public.npm publish - Pronto! Como as pessoas usarão o seu framework?
Assim que a publicação terminar (pode levar alguns segundos), qualquer pessoa do mundo que tenha o Node instalado poderá abrir um terminal em qualquer pasta vazia ou projeto legado e rodar:
(Substitua fnin-framework pelo nome exato que você colocou no package.json) O que o npx vai fazer nos bastidores:npx fnin-framework run "Criar um sistema de autenticação" - Vai até a web e faz o download silencioso do seu fnin-framework.
- Lê o package.json e vê que o executável associado é o ./bin/cli.js rodando o comando fnin.
- Executa a sua aplicação CLI localmente.
- O seu framework lê a pasta local do usuário, cria a .fnin_output/ com todos os markdowns e termina o processo.
Publicando via GitHub (Alternativa Privada)
Se você não quer expor seu framework publicamente no NPM, você pode publicá-lo no GitHub Packages. Nesse caso, você precisará adicionar no package.json:
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
"repository": {
"type": "git",
"url": "https://github.com/SEU_USUARIO/SEU_REPOSITORIO.git"
}E as pessoas do seu time precisarão estar autenticadas no npm usando um token do GitHub para poder rodar o comando npx @seu-usuario/seu-repositorio run "tarefa".
