# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Stato del progetto Repository vuoto (nessun codice, nessun git). Obiettivo: MVP di un eseguibile C# che, "sotto il cofano", invoca Claude Code (CLI `claude`) da terminale. ## Approccio doc-first Prima si aggiorna la documentazione, poi il codice. Specifica e criteri di accettazione: [docs/MVP.md](docs/MVP.md). Fasi e stato: [docs/ROADMAP.md](docs/ROADMAP.md). Se il codice diverge dall'MVP, aggiornare prima i doc. Design deciso: un solo `Program.cs`, nessuna dipendenza, lancio di `claude -p ` con `ProcessStartInfo.ArgumentList`, output in streaming, exit code propagato. ## Requisito chiave Claude Code deve essere lanciato con working directory = la directory in cui risiede l'eseguibile, non la current directory del chiamante. In C# usare `AppContext.BaseDirectory` (non `Environment.CurrentDirectory`) come `ProcessStartInfo.WorkingDirectory`. Nota: con single-file publish `Assembly.Location` è vuoto, quindi `AppContext.BaseDirectory` è la scelta corretta. ## Comandi (da .NET SDK, una volta creato il progetto) - Build: `dotnet build` - Run: `dotnet run` - Publish single-file: `dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=true` Aggiornare questa sezione quando esisteranno il `.csproj` e i test. ## Ambiente Windows. `claude` è installato come script npm (`claude.cmd`): con `Process.Start` e `UseShellExecute=false` può servire lanciare via `cmd.exe /c claude ...` oppure risolvere il percorso completo, altrimenti il processo non viene trovato.