# MVP (doc-first) ## Obiettivo Eseguibile C# a riga di comando che inoltra un prompt a Claude Code (`claude`) lanciandolo nella directory dell'eseguibile, e ne mostra l'output. ## Uso ``` llmrun.exe "spiega questo progetto" ``` Tutti gli argomenti sono uniti in un unico prompt. ## Comportamento 1. Se non ci sono argomenti: stampa l'uso ed esce con codice 2. 2. Avvia `claude -p ` (modalità non interattiva) con `WorkingDirectory = AppContext.BaseDirectory`. 3. Ritrasmette stdout e stderr del processo figlio in tempo reale. 4. Esce con lo stesso exit code di `claude`. 5. Se `claude` non è trovato: messaggio chiaro ed exit code 127. ## Scelte tecniche - .NET 8+, un solo `Program.cs`, nessuna dipendenza esterna. - `ProcessStartInfo.ArgumentList` per passare il prompt (niente problemi di quoting). - Windows: `claude` è `claude.cmd`, quindi si avvia `cmd.exe /c claude ...`. - Working dir: `AppContext.BaseDirectory`, non la cwd del chiamante. ## Fuori scope (MVP) Modalità interattiva, sessioni/`--resume`, config file, logging su file, test automatici, supporto Linux/macOS. ## Criteri di accettazione - [ ] Eseguito da un'altra cartella, `claude` parte nella cartella dell'exe (verificabile chiedendo "pwd"). - [ ] L'output appare in streaming, non solo alla fine. - [ ] L'exit code è propagato. - [ ] Un prompt con virgolette e spazi arriva intatto. ## Domande aperte - Permessi: serve `--allowedTools` o `--permission-mode` per l'uso non interattivo? - Formato output: testo semplice o `--output-format stream-json`?