Files
davideandClaude Sonnet 5.5 f2086de31d ADR-0007: schema di una wiki interrogabile con immagini; documentazione generale
- Nuovo ADR-0007: convenzione in tre parti (indice con gli id delle figure,
  catalogo JSON con campi minimi, istruzioni solo-query) e ripartizione dei
  compiti tra wiki, motore e app. Nessuna cartella o formato imposti dall'app.
- ADR-0006, README, ROADMAP, PROJECT_STATE, TESTING: esempi resi generici
  (nessun riferimento a una wiki specifica) e nota sull'assenza di uno standard.
- Test delle immagini con struttura e testi neutri.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 16:11:00 +02:00

6.0 KiB

Roadmap

Dettagli dell'MVP in MVP.md. Stadio attuale e debiti: PROJECT_STATE.md (siamo in fase di MVP).

Fase 0 — Doc-first

  • 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

  • GUI a chat: conversazione markdown in alto, input in basso, sessione con --session-id/--resume

Fase 2 — Robustezza

  • Input del prompt da stdin e da file
  • Timeout e cancellazione (Ctrl+C propagato al figlio)
  • GUI: scelta di modello (--model) ed effort (--effort)
  • CLI: stesse opzioni; inoltre --allowedTools, --output-format

Fase 3 — Oltre

  • GUI: cronologia chat (salvataggio JSON, barra laterale, riapertura con --resume, eliminazione)
  • GUI: streaming della risposta (--output-format stream-json), stop, rinomina/ricerca chat
  • GUI: immagini nel markdown da percorso locale, con ripiego sul testo alternativo (ADR-0006; test MD-14, MD-19…MD-30); immagini remote rimandate
  • Schema di una wiki interrogabile con immagini: convenzione per le istruzioni solo-query, l'indice e il catalogo (ADR-0007); da provare con la chat reale su una wiki di esempio
  • Config file accanto all'exe
  • Test automatici e CI (vedi Fase 6)

Fase 4 — Più motori (Claude Code, Codex, Antigravity)

Decisione, tabella dei comandi e rischi: ADR-0002. Qui solo i passi. Il punto unico di avvio processo l'ha estratto la Fase 5.

  • Verificare i flag reali di codex (provati su Linux/WSL, ADR-0002 accettata per Claude Code e Codex); agy e Windows da verificare
  • Astrazione "motore" in C# (Core/Engine.cs, Core/EngineRunner.cs)
  • Rilevamento dei motori nel PATH; motori assenti disabilitati, messaggio chiaro
  • Il JSON di ogni chat memorizza il motore e l'id di sessione; cambiare motore apre una nuova chat
  • GUI: interruttore CLI nel riquadro Impostazioni; modelli ed effort in base al motore; motore della chat indicato nell'interfaccia
  • Impostazioni (motore, modello, effort) persistite su disco
  • Motore Codex: lettura dell'id di sessione dall'output (thread_id) per la ripresa
  • Motore Antigravity: gestione del blocco con output rediretto (timeout, errore chiaro)
  • Permessi di Codex in sola lettura (nessun flag che salta i controlli)
  • Opzione esplicita per concedere permessi di scrittura
  • CLI: opzione --engine, coerente con la GUI
  • Aggiornamento dei CLI dalle Impostazioni, un pulsante per CLI con update ufficiale ed esito leggibile (ADR-0004)
  • Controllo preventivo della versione più recente (sorgenti ufficiali, cache di 5 minuti); pulsante Aggiorna evidenziato e puntino sul pulsante Impostazioni solo se c'è una versione nuova
  • Provare gli aggiornamenti reali (finora provati solo con CLI finti, e rilevamento del metodo di installazione sui percorsi reali) su Linux e Windows (installazione nativa e npm) e portare l'ADR-0004 ad "Accettata"

Fase 5 — Multipiattaforma (Windows + Linux), GUI in solo C#

Decisione e motivazioni: ADR-0001. Qui solo i passi.

  • Chiudere le verifiche dell'ADR-0001 con un prototipo e portarlo a "Accettata" (restano due verifiche indicate nell'ADR)
  • Nome dell'app in un solo punto: AssemblyName nel csproj, letto da Core/AppInfo.cs; la rinomina segue la checklist di docs/README.md
  • Rinomina in agent-wiki-ui (csproj, namespace) e migrazione automatica della cartella dati LlmRun → agent-wiki-ui
  • Target net10.0 (non più net10.0-windows); rimossi WinForms e WebView2
  • Estrarre in un solo punto la logica di avvio dei motori (Core/EngineRunner.cs: cartella dell'exe, stdin chiuso), prima duplicata tra Program.cs e Gui.cs
  • Cronologia in Environment.SpecialFolder.LocalApplicationData (stesso formato JSON, chat esistenti ancora leggibili)
  • GUI Avalonia: finestra, barra laterale delle chat, conversazione, composer con modello ed effort
  • Rendering markdown in Avalonia (titoli, liste, tabelle, citazioni, codice), pulsante Copia, link nel browser di sistema
  • Tema chiaro/scuro che segue il sistema, con i token di MVP.md → "Design (UI/UX)" (da provare su un desktop Linux reale)
  • Eliminare ui.html e il protocollo WebMessage
  • Windows: eseguibile senza finestra di console, la CLI riaggancia il terminale padre (ADR-0005); da provare su Windows nativo
  • Publish single-file self-contained win-x64 e linux-x64: compilano e partono (Linux: CLI e GUI su WSLg; Windows: solo CLI, via WSL); da provare la GUI su Windows nativo e su una distribuzione Linux pulita
  • Aggiornare README.md e AGENT.md (già CLAUDE.md: comandi, architettura, vincoli) a migrazione conclusa

Fase 6 — Test e copertura completa

Decisione: ADR-0003. Piano, soglie e matrice: TESTING.md. Da questa fase in poi vale la regola: ogni nuova funzione arriva con i suoi test.

  • Verificare le compatibilità dell'ADR-0003 (xUnit, Avalonia.Headless, coverlet, dotnet test) e portarlo ad "Accettata"
  • Ristrutturare in src/ e tests/ con soluzione unica e InternalsVisibleTo
  • Predisposizioni di testabilità: ChatStore a istanza, IClaudeRunner
  • FakeClaude: eseguibile finto per i test di processo (tests/FakeClaude, prove FK-01…FK-05)
  • Test Core/ (CL, ST) e MainViewModel (VM)
  • Test del renderer markdown (MD) e della GUI headless (UI)
  • Test end-to-end e smoke di publish per win-x64 e linux-x64 (PUB)
  • Soglie di copertura che fanno fallire la build
  • CI con matrice Windows + Linux (fornitore da scegliere)
  • Batteria di contratto per ogni motore (EN), insieme alla Fase 4