Seu primeiro backend
Pré-requisitos: Git e .NET SDK 10. Os exemplos de shell usam Bash. O feed público ainda não está definido; use os pacotes do checkout.
1. Compile e empacote
Seção intitulada “1. Compile e empacote”Na raiz do repositório:
dotnet build Sil.Builder.slnx -c Releasefor p in Sil.Builder.Sdk Sil.Builder.Analyzers Sil.Builder.Generators Sil.Builder.Runtime Sil.Builder.Runtime.Data Sil.Builder.Testing dotnet-builder Sil.Builder.Mcp; do dotnet pack "src/$p/$p.csproj" --no-build -c Release -o artifacts done2. Gere fora do repositório
Seção intitulada “2. Gere fora do repositório”BUILDER_REPO="$PWD"BUILDER_FEED="$BUILDER_REPO/artifacts"mkdir -p ../builder-democd ../builder-demodotnet "$BUILDER_REPO/src/dotnet-builder/bin/Release/net10.0/dotnet-builder.dll" new satellite Yardcd Yard# Cache isolado: builds locais podem usar a mesma versão de pacote.export NUGET_PACKAGES="$(mktemp -d)"dotnet nuget add source "$BUILDER_FEED" --name builder-local --configfile NuGet.Configdotnet restoredotnet tool restore --add-source "$BUILDER_FEED"dotnet build --no-restoredotnet builder inspectO template usa Dock como placeholder e o renomeia para Yard neste exemplo: módulo, entidade e id da spec acompanham o nome. Ele já traz cinco projetos por módulo, testes, spec, configuração e governança. A fonte local fica no NuGet.Config do consumidor para os restores seguintes; ajuste o caminho em outra máquina. A versão da ferramenta deve acompanhar SilBuilderVersion.
Para um satélite que consome o SDK Mono, informe uma versão publicada em new satellite Yard --sdkmono-version <versão> e acrescente o feed do pacote ao NuGet. No CI do backend, defina SIL_SDKMONO_FEED. A dependência é adicionada ao host e às cinco camadas do módulo; o uso de AddSilMono e dos Contracts do Core depende da API real dessa versão.
O host já habilita SilGenerateProgram: o SDK gera Main, registros dos módulos e pipeline HTTP no build. O Program.cs do template contém somente hooks opcionais do consumidor; o projeto também compila sem esse arquivo. Ao executar new module, os novos registros vêm das referências do projeto. Veja como ativar em um projeto existente.
3. Explore antes de alterar
Seção intitulada “3. Explore antes de alterar”dotnet builder spec lintdotnet builder spec plan features/yard/2026-10-03-yard-docasdotnet builder check --staticPara criar outra feature, use new feature, complete o bloco builder: e siga lint → plan → apply → check. new entity cria somente a entidade-base; uma fatia completa vem da spec.
4. Valide o que você vai entregar
Seção intitulada “4. Valide o que você vai entregar”dotnet builder spec sync features/yard/2026-10-03-yard-docasdotnet builder check --cicheck --ci pode retornar incomplete por dependências pendentes. Inspecione os diagnósticos; não transforme exit 2 em aprovação. Para rodar o host de um produto, configure conexão PostgreSQL, autenticação confiável e autorização conforme o runtime.
A validação completa de pacotes e consumidores do próprio builder é python3 eng/build/verify_delivery.py --configuration Release na raiz do checkout.