Commit iniziale

This commit is contained in:
davide committed 2026-10-08 11:29:42 +02:00
commit 2718c3d2fb
3 files changed
+89

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
# 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 <prompt>` (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`?
+22
View File
@@ -0,0 +1,22 @@
# Roadmap
Dettagli dell'MVP in [MVP.md](MVP.md).
## Fase 0 — Doc-first
- [x] Scrivere MVP.md e ROADMAP.md
- [ ] Chiudere le domande aperte in MVP.md
## Fase 1 — MVP
- [ ] `dotnet new console`, `Program.cs` unico
- [ ] Lancio di `claude -p` nella cartella dell'exe, streaming, exit code
- [ ] Publish single-file win-x64 e verifica dei criteri di accettazione
## Fase 2 — Robustezza
- [ ] Input del prompt da stdin e da file
- [ ] Timeout e cancellazione (Ctrl+C propagato al figlio)
- [ ] Opzioni passate a `claude` (`--model`, `--allowedTools`, `--output-format`)
## Fase 3 — Oltre
- [ ] Modalità sessione (`--resume` / `--continue`)
- [ ] Config file accanto all'exe
- [ ] Test automatici e CI