Files
agent-wiki-ui/docs/MVP.md
T

42 lines
2.2 KiB
Markdown
Raw Normal View History

2026-10-08 11:29:42 +02:00
# 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.
## GUI
Senza argomenti si apre una finestra WinForms (prompt, pulsante, output) che usa lo stesso lancio di `claude -p`. Con argomenti resta la CLI.
La GUI ha una barra impostazioni con due menu: **Modello** (predefinito, Fable 5.1, Opus 5.5, Sonnet 5.5, Haiku 5.5: ogni voce mostra versione e ID completo, che è ciò che viene passato a `claude`; oppure ID digitato a mano) e **Effort** (predefinito, low, medium, high, xhigh, max). Passati a `claude` come `--model` / `--effort`; con "predefinito" il flag viene omesso. Solo GUI: la CLI non li espone ancora.
La finestra si apre a 1000x700 e output e prompt si ridimensionano con essa.
2026-10-08 11:29:42 +02:00
## Scelte tecniche
- .NET 8+, un solo `Program.cs`, nessuna dipendenza esterna.
- `ProcessStartInfo.ArgumentList` per passare il prompt (niente problemi di quoting).
- `claude` è un .exe nativo (`~/.local/bin`): si avvia direttamente, senza `cmd /c`. Lo stdin è chiuso subito per evitare l'attesa di 3s di claude.
2026-10-08 11:29:42 +02:00
- Working dir: `AppContext.BaseDirectory`, non la cwd del chiamante.
## Fuori scope (MVP)
Modalità interattiva (chat), sessioni/`--resume`, config file, logging su file, test automatici, supporto Linux/macOS.
2026-10-08 11:29:42 +02:00
## 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`?