O SemanaIA é um motor de geração de XML de NFS-e (Nota Fiscal de Serviços Eletrônica) orientado por schema XSD. Em vez de manter serializadores manuais para cada município, a engine analisa os XSDs dos providers em runtime, aplica regras tipadas e produz XML válido automaticamente. Isso elimina a necessidade de código específico por prefeitura e permite onboarding de novos providers sem intervenção de desenvolvedor.
O projeto foi construído inteiramente com assistência de IA (Claude Code com Opus 4.6) ao longo de 34 commits, passando por 6 fases de evolução — do serializer manual ao MVP com API, persistência MongoDB e 727 testes automatizados. A arquitetura segue o padrão Onion com 5 camadas bem definidas.
- .NET 10 SDK
- Docker (para MongoDB)
docker compose up -dcd src/SemanaIA.ServiceInvoice.Api
dotnet runA API estará disponível em http://localhost:5211 e o Swagger em http://localhost:5211/swagger.
dotnet test611 testes unitários + 116 testes de integração = 727 testes, todos passando.
A documentação completa do projeto está na wiki:
| Camada | Tecnologia |
|---|---|
| Runtime | .NET 10 / C# |
| API | ASP.NET Core Minimal API |
| Banco de dados | MongoDB 7 |
| Testes | xUnit, Shouldly, Bogus, Moq |
| Containers | Docker Compose |
| Engine XML | XSD analysis em runtime, XElement-based serialization |
| IA | Claude Code (Opus 4.6) via OpenSpec workflow |
src/
├── SemanaIA.ServiceInvoice.Api/ # Endpoints e configuração
├── SemanaIA.ServiceInvoice.Application/ # Casos de uso
├── SemanaIA.ServiceInvoice.Domain/ # Modelos de domínio
├── SemanaIA.ServiceInvoice.Infrastructure/ # Integrações e persistência
└── SemanaIA.ServiceInvoice.XmlGeneration/ # Engine de geração XML
providers/ # XSDs, regras e configs por provider
tests/ # Testes unitários e de integração
docs/wiki/ # Documentação completa
Este projeto é de uso interno. Licença a ser definida.