# Code This folder is where the actual project codebase lives, built incrementally by the `dev-team` agent during sprint execution. It starts empty; `process/00_project_onboarding.md` should run before any code is added here. ## Solution `EnvelopeRenderer.slnx` (open with `dotnet` or Visual Studio 2022+): - `src/EnvelopeRenderer.Cli` — the render CLI. Argument/exit-code contract documented in [`CLI_CONTRACT.md`](CLI_CONTRACT.md); text-only template format in [`TEMPLATE_FORMAT.md`](TEMPLATE_FORMAT.md). - `src/EnvelopeRenderer.Debenu` — isolates the vendor-generated Debenu interop wrapper (linked, unmodified) in its own project so its lack of nullable annotations doesn't leak warnings elsewhere. - `src/EnvelopeRenderer.Cli.Tests` — xUnit tests for the CLI (chosen as the test framework in the absence of a project-wide pick; see `project_config.md`), including one integration test that renders through the real Debenu DLL. ``` dotnet build EnvelopeRenderer.slnx dotnet test EnvelopeRenderer.slnx dotnet run --project src/EnvelopeRenderer.Cli -- --help # Rendering needs a Debenu license key — see "Debenu license key" in CLI_CONTRACT.md DEBENU_LICENSE_KEY="$(cat ../key.txt)" dotnet run --project src/EnvelopeRenderer.Cli -- \ --template sample-data/sample-envelope-template.xml \ --csv "sample-data/87700 - 999999 - Wilson Township.csv" \ --output out.pdf ``` ## Seed assets - Sample CSV data lives in `code/sample-data/87700 - 999999 - Wilson Township.csv`. - A representative text-only #10 envelope template lives in `code/sample-data/sample-envelope-template.xml`. - Debenu interop source lives in `code/vendor/debenu/interop/DebenuPDFLibraryDLL1013.cs`. - Debenu 64-bit DLL lives in `code/vendor/debenu/x64/DebenuPDFLibrary64DLL1013.dll`. - Debenu 32-bit DLL lives in `code/vendor/debenu/x86/DebenuPDFLibraryDLL1013.dll`.