L'Architect Agent
Chiama architect.validate per ottenere un Blueprint Readiness Score (0–100, voto A–F) sul codice reale. L'Architect Agent revisiona la tua implementazione rispetto ai 10 principi Blueprint, restituisce verdetti per ogni principio CON severità e confidenza numeriche, e persiste il run con un envelope di riproducibilità completo così due chiamanti con lo stesso input possono verificare di aver ottenuto la stessa risposta. Solo piani Pro e Teams.
Membri Pro e Teams. L'Architect Agent è la superficie di revisione autenticata di Blueprint, elabora il tuo codice transitoriamente con una rigorosa politica di no-training, fortifica il confine del prompt contro injection nel codice inviato, e supporta private_session=true per saltare tutto il logging lato server.
Cosa ricevi indietro
Ogni run restituisce una risposta strutturata con: (1) `assessment` — stato generale, sintesi, confidenza E `code_classification` (autonomous_agentic_workflow vs non_agentic_component, con motivazione) così vedi PERCHÉ alcuni principi sono marcati not_applicable; (2) findings per principio — verdetto (aligned, mixed, needs_changes, high_risk, not_applicable), `severity_score` 0–100, `confidence` (low/medium/high), `evidence_quality` (sparse/moderate/strong), evidenza citata dal codice, e una raccomandazione; (3) `readiness` — il Blueprint Readiness Score (0–100), voto (A–F), livello (production_ready / emerging / draft), conteggi per bucket di verdetto, se il voto è stato cappato da un finding high_risk, e la rubric_version; (4) `recommended_examples` con `example_recommendation_status` così il run completa anche se nessun esempio curato corrisponde; (5) `processing` — `llm_latency_ms`, `total_latency_ms`, `timeout_budget_seconds`, `dependency_status`; (6) `reproducibility` — model, seed, system_fingerprint, doctrine_fingerprint, prompt_template_fingerprint, reasoning_effort, e `reproducibility_mode='best_effort'`; (7) `persistence_status` — `saved` o `failed`, con run_id / badge_url / review_url solo quando la scrittura durabile ha avuto successo.
Scoring per severity_class (production_blocker vs hardening_recommended)
Due finding `needs_changes` possono avere impatti molto diversi. Un cap di token come defence-in-depth non e' la stessa cosa di un error path non tipizzato che lascia un utente reale bloccato. Ogni finding ora porta una `severity_class` ortogonale al verdict: `production_blocker` (la trust boundary cede, da correggere prima della produzione, contribuisce 0 credito), `hardening_recommended` (la trust boundary regge, nota di defence-in-depth per la prossima iterazione, credito pieno), `polish` (stilistico, credito pieno). Il voto principale penalizza solo `production_blocker` e il verdict legacy `high_risk`; `hardening_recommended` e `polish` emergono in una lista di next-iteration separata senza trascinare lo score in basso. Questo permette a `production_ready` di significare che le trust boundary reggono invece di 100/100 - inseguire lo score perfetto e' la perfection-loop trap (framing di fitness function di Ford & Parsons). I run vecchi senza severity_class usano l'interpolazione legacy verdict + severity_score e ottengono lo stesso voto di prima.
Envelope di riproducibilità (best-effort, ma auditabile)
Due chiamanti che inviano input identici ottengono lo stesso `seed`, derivato da una canonicalizzazione JSON senza collisioni che copre ogni campo che influenza il prompt. La risposta porta quattro fingerprint così ogni divergenza è diagnosticabile: `system_fingerprint` (backend OpenAI), `doctrine_fingerprint` (le definizioni di principio usate), `prompt_template_fingerprint` (system prompt + scaffolding + JSON schema + modello + reasoning_effort), e il seed stesso. Se un deploy futuro cambia il system prompt o la doctrine, il fingerprint corrispondente cambia — rompere il determinismo silenziosamente è impossibile per costruzione. La modalità è esplicitamente `best_effort`: il seed OpenAI dà campionamento stabile, non replay byte-identico. La `confidence` per finding ti permette di distinguere un disaccordo reale dalla varianza intrinseca dell'LLM.
Memoria trend tra run
Passa repository="<nome-repo>" ad architect.validate e l'Architect Agent raggruppa i run per progetto. Poi chiama me.validation_history per vedere lo score più recente per repository, il delta rispetto al run precedente, e i principi esatti che sono regrediti dall'ultima volta. Gli agenti possono leggere questo contesto prima di ri-validare per concentrare la prossima revisione su cosa sta effettivamente cambiando, invece di ri-segnalare problemi già risolti.
Also in this section