Stato live del cantiere: cosa funziona, cosa pende, cosa arriva. Pagina aggiornata ad ogni iterazione (passaggio L*, Iter*, Step*) per non perdere la bussola fra sigle, REPORT, master version.
Stiamo migrando BlumCat (chatbot tecnico in produzione) verso arcocat v2.3.x: piattaforma multi-brand CPQ con interfaccia conversazionale.
7 nodi gia' funzionanti (BlumKnowledge MCP, PIM lite, Supervisor, TQL formale, Eval baseline, Demo chatbot, BlumCat prod), 2 in attesa (R-rule esperto, 2°brand), 3 futuri (Configuration Context, Rule Engine, Mexal MCP).
Tu sei qui: Demo chatbot lato utente chiuso il 2026-05-07 notte (~2.5h, 7/7 test verdi). Pagina HTML chat single-page sopra Supervisor MCP, localhost only, stateless. Plus baseline numeri ancorati invariati: grounding 30% · faithfulness 0.80 · status accuracy Tier 2 91%. Decisione aperta: aspettare R-rule esperto (atteso grounding >50%, ora visibile in chat) e in parallelo Step 5 Configuration Context.
La constellation arcocat v2.3.6 in ASCII. Verde = done, giallo = pendente, grigio = futuro, azzurro = produzione live.
6 nodi done, 2 pendenti, 3 futuri. Plus 1 in produzione live invariato.
Knowledge Tool brand standalone Blum. 8 tool dominio + 3 contratto comune. Pattern definitivo "rule completo cached + hint dinamico" (Iter1) + temperature=0 deterministico (Iter2).
Singleton centralizzato cross-brand. 3 tool MCP (filtra / attributi_per_codice / list_categorie). 363 prodotti popolati read-only da blumcat.db. Schema CategorySchema C001 in MD-Karpathy editabile.
Orchestratore Filter-then-Validate. 1 tool MCP (risolvi_query). Slot filling formale (regex raffinato + sinonimi MD-Karpathy, no LLM). Synthesize pure function in 3 stati distinti.
4 tipi di knowledge editabile dall'esperto Arco senza release Python: schema PIM (C*.md), regole brand (R*.md, BlumCat originale), distinte (D*.md), guide (G*.md), schede famiglia (F*.md), sinonimi TQL (TQL_SINONIMI.md) aggiunto in Step 4.
Misurazione oggettiva del cantiere: 60 query MD-Karpathy in 6 bucket (10 baseline + 10 varianti + 12 prosa libera + 5 codici diretti + 13 borderline + 10 negative), 11 Tier 2 ground truth. Stack Promptfoo (provider Python in-memory + asserzioni Python pure) + RAGAS (faithfulness + context precision con Anthropic Haiku 4.5, NO embeddings) + arcocat custom metrics TypedDict. Stato baseline ancorato: grounding 30%, faithfulness 0.80, status accuracy Tier 2 91%, distribuzione 36 consigliato + 66 compatibile + 21 sconsigliato. RAGAS success 100% (fix max_tokens=4096 vs pilot 73%). Pacchetto standalone (NO MCP server), tooling di sviluppo. Snapshot riproducibile in data/baseline_v2.3.6.json + HTML report Jinja2.
Pagina HTML chat single-page sopra Supervisor MCP. Stateless: 1 query = 1 risposta. Localhost only (127.0.0.1:8765), no auth, no logging persistente. Frontend zero-dipendenze (vanilla JS + DOM API safe, port dimagrito di blumcat/markdown.js). Status badge AA contrast (verde / ambra / rosso), citation pills R*, expandable attributi PIM, copy-to-clipboard codice. Empty/error/loading state + responsive 600px+380px. Plus deploy frontend pubblico statico opzionale (a freddo). Vincoli noti baseline esposti in footer.
Chatbot tecnico Blum su LAN Arco (192.168.100.106:8001). Uptime continuativo dal 2026-05-02 11:29:31 (~120+ ore). 4131 chunks, 5 utenti reali, 32 active sessions. Invariato durante tutto il lavoro arcocat (L1+Iter1+L2+L3+Iter2+Step4+Eval+Demo).
Bozza 5 R-rule (R015..R019) consegnate all'esperto Arco in arcocat/RULE_COVERAGE_ANALYSIS.md. Coprono: carico interno cassetto LEGRABOX (R015), portata MERIVOBOX 70kg (R016), variante METABOX H/M (R017), guida cm vs mm (R018), slot portata vs vincolo (R019). Decisione e edit fuori arcocat (richiede review esperto).
Validazione registry BRAND_CLIENTS della constellation. Da rimandare dopo R-rule edit per non amplificare il rumore (variance + gap × N brand). Onboarding richiede playbook 7 fasi (catalogo PDF nuovo, ~2-4 sett realistiche).
Stato persistito tipizzato della sessione utente (preferenze, scelte precedenti, configurazione progetto). Singolo TypedDict che il Supervisor passa avanti tra interazioni. Sblocca conversazioni multi-turno consulenziali del CPQ.
Constraint cross-brand deterministico. Esempio X-COMPAT-001: "lavastoviglie 60 in cucina con cassetti retrostanti necessita nicchia >560mm". Riceve prodotto + Configuration Context, ritorna ok/motivazione/alternative. Singolo per la piattaforma (a differenza dei Knowledge Tool brand-specifici).
Business layer: prezzo per cliente, disponibilita', sconti, ordini. Integrazione gestionale Mexal/Passepartout via WebAPI. Singleton centralizzato. Plus integrazione con Promo MCP (offerte attive).
2 alternative ortogonali post eval baseline. Plus la pendenza R-rule esperto Arco gira in parallelo (NO blocco). Tutte le decisioni ora hanno ancoraggio quantitativo: grounding 30%, faithfulness 0.80, status accuracy Tier 2 91%, solo 3 R-rule citate (R008/R009/R010 spondine LEGRABOX).
L'esperto Arco edita R015..R019 nel wiki BlumCat (decisione fuori arcocat). Atteso grounding 30% → >50% misurabile via re-run eval baseline. Plus stabilizza i casi borderline post-Iter2. Mitiga anche Eval-OP3 (out-of-scope filter) se R-XX include "blocca contesti non-cassetto".
Sblocca: grounding rate misurabile +66% (30→50%+). Plus delta quantificato pre/post via baseline_v2.3.6.json.
Stato persistito sessione utente. Integra naturalmente con TQL: il Supervisor accumula slot fra turni multi. Sblocca conversazioni consulenziali ("ho gia' scelto LEGRABOX, ora vorrei..."). Pattern stateful CPQ. Beneficio quantificabile: re-run eval baseline post-Step 5 misura quanto migliora la shortlist con contesto persistito.
Sblocca: state cross-turno. Ortogonale a R-rule edit (parallelo).
Validazione registry BRAND_CLIENTS della constellation. Da rimandare DOPO R-rule edit per non amplificare il rumore (variance + gap × N brand). Onboarding richiede playbook 7 fasi (catalogo PDF nuovo, ~2-4 sett realistiche). Plus richiede setup eval baseline 2°brand (replica del pattern arcocat-eval).
Sblocca: grounding rate del KB Blum. NON impedisce di lavorare su altri nodi.
python -m eval.scripts.run_cp4_baseline e confronta i numeri vs baseline_v2.3.6.json: atteso grounding >50%, distribuzione consigliato +50% relativo, status accuracy Tier 2 invariata o migliorata. Senza eval baseline questo confronto sarebbe rimasto qualitativo. Eval baseline e' meta-ROI: ancora ogni iterazione futura.
3 giorni di calendar-time, 7 versioni master, 7 nodi arcocat (incluso demo chatbot lato utente). Pattern Claude end-to-end factor 1-15x sotto-stima master in tutte le iterazioni (demo chatbot factor 1x: stima centrata su scope chirurgico).
Decifratore rapido per quando perdi il filo.
| Sigla | Significato | Esempio |
|---|---|---|
L1 / L2 / L3 | Livello / Step della migration v2.3.x (sequenziale) | L2 = PIM lite |
Iter1 / Iter2 | Iterazione minore di refinement su un nodo gia' done | Iter2 = temperature=0 in BlumKnowledge |
Step 4 | Step master v2.3 (1, 2, 3, 4, 5, 6) numerati — NON uguale a Lx (a volte coincidono, a volte no) | Step 4 = Typed Query Layer formale |
OP1..N | Open Point (punto aperto) di un REPORT_*.md, con priorita' e trigger esplicito | L3-OP2 = non-determinismo LLM |
R001..R019 | Regola tecnica del wiki Blum (frontmatter YAML eseguibile + body MD) | R001 = peso anta vs portata LEGRABOX |
D001..D011 | Distinta canonica per famiglia Blum (composizione codici) | D003 = LEGRABOX standard |
G001..G010 | Guida (decision tree) wiki Blum | G001 = scelta cassetto |
F001..F035 | Scheda narrativa famiglia Blum ("cos'e' X") | F005 = LEGRABOX |
C001 | CategorySchema PIM (schema attributi tipizzati per categoria) | C001 = sistemi_box |
NL_mm | Profondita' cassetto Blum in mm (asse principale di filtro) | NL_mm = 500 |
TQL | Typed Query Layer (livello 1 v2.3.x): slot filling pre-LLM | "LEGRABOX 500mm" → TypedQuery |
CPQ | Configure-Price-Quote (software industriale 30 anni) | arcocat = CPQ con interfaccia conversazionale |
PIM | Product Information Management (singleton attributi tipizzati) | PIM lite L2 (SQLite + JSON1) |
MCP | Model Context Protocol (Anthropic) — "USB-C degli agenti AI" | BlumKnowledge MCP, PIM MCP, Supervisor MCP |
Filter-then-Validate | Pattern centrale Supervisor: PIM filtra (recall) → Knowledge brand valida (precision) | L3 implementation |
3 stati | Output Supervisor: compatibile / consigliato / sconsigliato | Distribuzione L3: 1+7+1 |
Karpathy / MD-Karpathy | Knowledge editabile come MD con frontmatter YAML eseguibile (pattern Andrej Karpathy "LLM Wiki") | R*.md, C*.md, TQL_SINONIMI.md |
RRF k=60 | Reciprocal Rank Fusion: formula 1/(k+rank) per merge BM25 + cosine | Iter1 hybrid retrieval |
cache HIT | Cache prompt Anthropic ephemeral (TTL 5 min): -90% costo sui token cached | BlumKnowledge 95-100% cache HIT |
| Master architetturale | v2.3.6 | stack-agentico-pmi |
| Volume operativo flussi | v1.3 | flussi-agentici-pmi |
| Wiki narrativo AI-maintained | v1.1 | wiki-narrativo-ai-maintained |
| Playbook onboarding catalogo PDF | v1.1 | playbook-onboarding-catalogo-pdf |
| Mappa dello studio | — | mappa-studio.html |
arcocat/)REPORT_L1.md | L1 done, BlumKnowledge MCP standalone | 2026-05-05 |
REPORT_ITERAZIONE_1.md | Iter1 hybrid retrieval, pattern definitivo valida_compatibilita | 2026-05-05 |
REPORT_L2.md | L2 done, PIM lite singleton + sistemi_box | 2026-05-06 |
REPORT_L3.md | L3 done, Supervisor minimale Filter-then-Validate | 2026-05-06 |
REPORT_ITER2_BLUMKNOWLEDGE.md | Iter2 done, temperature=0 + lezione variance vs gap | 2026-05-07 |
REPORT_STEP4_TQL.md | Step 4 done, TQL formale + sinonimi MD-Karpathy | 2026-05-07 |
RULE_COVERAGE_ANALYSIS.md | Bozza R015..R019 per esperto Arco (parallelo) | 2026-05-07 |
REPORT_EVAL_BASELINE.md | Eval baseline done, stato v2.3.6 ancorato (grounding 30% / faith 0.80 / status acc T2 91%) | 2026-05-07 |
arcocat/eval/data/baseline_v2.3.6.json | Snapshot baseline riproducibile (input per delta pre/post iterazioni future) | 2026-05-07 |
arcocat/eval/data/baseline_v2.3.6.html | HTML report Jinja2 navigabile (apri in browser) | 2026-05-07 |
REPORT_DEMO.md | Demo chatbot lato utente done, pagina HTML chat su Supervisor MCP (localhost, stateless, 7/7 test) | 2026-05-07 |
arcocat/demo-chatbot/README.md | Setup + run + endpoint + vincoli noti della demo (`python -m demo_chatbot.server`) | 2026-05-07 |
REPORT_FINAL_BLUMONLY.md | Milestone finale Blum-only chatbot done: M1 ConfigurationContext + M2 backend FastAPI + M3 frontend chat UI + M4 feedback wizard Haiku categorizer + M5 media foto/PDF. 174 test verdi cumulativi, ~$0.13 cost LLM, 6.5h calendar. | 2026-05-07 |
arcocat/chatbot/README.md | Setup LAN + run + endpoint + vincoli (`python -m chatbot.server`, bind 0.0.0.0:8770) | 2026-05-07 |
MAPPA_STUDIO.md | Indice navigabile interno (privato in andreapellizzari/_private/) | vivente |
# Verifica stato BlumCat in produzione (LAN Arco)
$key = (Get-Content $env:USERPROFILE\.blumcat-internal-key).Trim()
Invoke-RestMethod -Uri "http://192.168.100.106:8001/admin/status" -Headers @{'X-Internal-Key'=$key}
# Test suite arcocat (per ogni nodo)
cd C:\Users\pelli\claude\arcocat\blum-knowledge-mcp ; pytest tests -v
cd C:\Users\pelli\claude\arcocat\pim-lite ; pytest tests -v
cd C:\Users\pelli\claude\arcocat\supervisor-mcp ; pytest tests -v
cd C:\Users\pelli\claude\arcocat\eval ; pytest tests -v -m "not slow"
# Boot --check Supervisor (smoke health)
cd C:\Users\pelli\claude\arcocat\supervisor-mcp ; python -m supervisor_mcp.server --check
# Eval baseline re-run (post R-rule edit per misurare delta)
cd C:\Users\pelli\claude\arcocat\eval ; python -m eval.scripts.run_cp4_baseline
# Genera HTML report da baseline_v2.3.6.json
cd C:\Users\pelli\claude\arcocat\eval ; python -m eval.reports.render_html
# Deploy sito (master + dashboard)
cd C:\Users\pelli\claude\andreapellizzari ; npm run build-and-deploy
# BlumCat prod LAN Arco
cd C:\Users\pelli\claude\blumcat ; .\deploy_update.ps1 -Restart