docs: in fiera ci va anche la V2, e il grafo si compone con un editor a nodi

Decisione A chiusa il 14/09, e revoca la revoca del 09/08: allora il
committente era Trafilo e voleva misurare profilati, adesso il modulo e
un investimento e allo stand guarda chi deve immaginarci il proprio pezzo.
Il taglio per la fiera arriva fino alla misura vera; expected_json resta
dopo. La V3, che e cio che Trafilo ha pagato, scala indietro.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JyL1sTGpFxx7Qw3xP58eoZ
This commit is contained in:
Adriano
2026-09-14 10:29:26 +02:00
parent 4adad9ab9b
commit 401457d21f
@@ -180,21 +180,30 @@ di algoritmo entra in questo repository.
`POST /api/vision/preview` su un'immagine caricata, e restituisce le uscite attese. Senza camera, senza
interfaccia. E `test_vision_boundary.py` continua a passare.
### V2 — L'authoring nel Maker
### V2 — L'authoring nel Maker — **in fiera** (decisa il 14/09)
La schermata che oggi non esiste. Il Maker, alla scrivania:
La schermata che oggi non esiste. Si compone con un **editor visuale a nodi** (decisione A, chiusa il
14/09). Il Maker, alla scrivania:
- carica o sceglie un'**immagine di riferimento** per il task (l'API esiste già);
- compone il grafo — e qui va deciso *come*, vedi il capitolo 7, decisione A;
- compone il grafo collegando gli strumenti — l'immagine entra, `MatchPattern` dà la posa, da lì scendono
le quote e il `CompareDXF`;
- preme **prova** e vede le uscite (`/preview` esiste già);
- **aggancia** ciascuna uscita a una quota della ricetta, scrivendo `vision_output` sulla subtask (il
campo esiste già), e su quella quota mette nominale e tolleranze come su qualunque altra;
- **promuove le uscite della prova a `expected_json`**, che è ciò che accende la prova di non regressione
(lacuna 4) e chiude una promessa che la spec di agosto ha fatto e non ha mantenuto.
**Il taglio per la fiera** (deciso il 14/09): ci va tutto **fino alla misura vera** — comporre, provare,
agganciare alle quote, e il ciclo dell'operatore che misura e riceve OK/warning/fail con le tolleranze
applicate. È la storia che vende: il confronto DXF **dentro il flusso di produzione**, non un tool a sé.
Restano fuori dalla fiera, e si fanno dopo, la promozione a `expected_json` e la prova di non regressione:
valgono per la robustezza, ma allo stand non si mostrano.
*Fatto quando:* una ricetta con un task di visione si compone interamente dall'interfaccia, senza scrivere
JSON a mano, e rieseguendo l'intero parco ricette su immagini di riferimento si vede quali quote si sono
mosse.
JSON a mano, e un operatore la esegue ottenendo un esito vero. La prova di non regressione — rieseguire
l'intero parco ricette su immagini di riferimento e vedere quali quote si sono mosse — è il criterio della
parte differita.
### V3 — L'agente di stazione, i device, la camera
@@ -232,12 +241,25 @@ dal confronto (scarto massimo, numero di zone fuori tolleranza) trattate come mi
Nessuna di queste si può dedurre dal codice: vanno chiuse da Adriano, alcune con il cliente.
**A. Come si compone un grafo.** L'editor visuale a nodi (TieWorkflow) è stato **revocato il 09/08** con
una motivazione che vale ancora: un editor ha senso solo se a comporre le pipeline è qualcuno che non
programma, e il cliente aveva chiesto misure, non un editor. Ma qualcosa deve pur esserci, perché scrivere
JSON a mano non è un prodotto. Le tre strade: un modulo per tipo di task con i soli parametri in chiaro
(il minimo che funziona); una libreria di grafi preconfezionati che il Maker sceglie e tara; l'editor,
che è la strada cara. **Questa decisione decide la fase V2 per intero.**
**A. Come si compone un grafo — chiusa il 14/09/2026: un editor visuale a nodi.** Adriano lo ha rimesso
nel perimetro, e la scelta **revoca la revoca del 09/08**. Allora TieWorkflow era uscito perché *«un editor
ha senso solo se a comporre le pipeline è qualcuno che non programma, e il cliente aveva chiesto misure,
non un editor»*: motivazione giusta quando il committente era Tràfilo, che vuole misurare profilati.
Adesso il modulo è un investimento per prendere lavori futuri (decisione F), e il pubblico dello stand non
è l'operatore di Tràfilo — è chi allo stand deve immaginarci il **proprio** pezzo, e a quello un form fisso
non parla.
Le altre due strade restano scritte qui perché sono la via d'uscita, non perché siano state scelte: un
**modulo per tipo di task** con i parametri in chiaro (il minimo che funziona) e una **libreria di grafi
preconfezionati** che il Maker sceglie e tara.
⚠️⚠️ **È la più cara delle tre, su un cammino critico già pieno.** Ad agosto l'editor era stimato **12-18
ore su un perimetro più piccolo** — senza `MatchPattern`, senza `CompareDXF`, senza l'aggancio quota→uscita
— ed è l'ordine di grandezza che aveva fatto sfondare il budget del piano ferie. Quelle ore ora si sommano
alla V1, anch'essa obbligatoria per la fiera, dentro 43 giorni. **Il ripiego va deciso adesso, non il 20
ottobre:** se a metà ottobre l'editor non regge, si espone il modulo per tipo di task, che mostra le stesse
misure con meno scena.
**B. La scala: pixel o millimetri.** Il 09/08 si era deciso che le quote potessero restare **in pixel**, e
che per il DXF compare servisse un fattore di scala ricavato da una quota nota misurata col calibro. Va
@@ -294,13 +316,16 @@ prodotto no. Deciderlo prima cambia l'ampiezza della V1.
## 9. Il calendario, per capire le priorità
La catena è **Tielogic produce → Ricerca e Misure (Menoncin) rivende → Tràfilo usa**, venti postazioni.
Due scadenze esterne, entrambe vicine:
Due scadenze esterne, e dal 14/09 non pesano più allo stesso modo.
- **Installazione a Tràfilo**, attesa per settembre. La serve la fase V3, ed è la ragione per cui l'agente
di stazione non può aspettare la fiera.
- **Fiera del 27-29 ottobre**, banchetto Tielogic nella zona Opto Engineering. La serve la fase V1, perché
è lì che si mostrano il confronto DXF e il pattern matching, cioè le due cose che a Menoncin interessano
commercialmente.
- **Fiera del 27-29 ottobre**, banchetto Tielogic nella zona Opto Engineering. Le servono **V1 e V2
insieme**, perché allo stand si mostra il prodotto e non una demo: comporre una ricetta di visione
dall'interfaccia, misurare un pezzo, vedere l'esito. È l'unica data del percorso visione, ed è il posto
dove l'investimento della decisione F si trasforma in lavori.
- **Installazione a Tràfilo**, attesa per settembre. Le serve la **V3**, ed è **ciò che è stato
fatturato**. ⚠️ Con V1 e V2 entrambe prima della fiera, la V3 resta indietro: è una scelta consapevole,
ma la tempistica dell'installazione era stata data a Menoncin, quindi va **detta a lui** invece di
scoperta da lui.
Se le due si contendono le stesse ore, la V1 è quella che non ha alternative: un'installazione può
slittare di due settimane, una fiera no.
⚠️ Il rischio non è che manchi una delle due: è che l'editor a nodi si prenda le ore della V1. Il ripiego
è scritto nella decisione A, e va guardato a **metà ottobre**, quando cambiare strada costa ancora poco.