Sistec · adozione IA · principi & ciclo di lavoro

Imparare lo strumento e strutturare la condivisione della conoscenza AI e tramite AI in azienda

Proposta operativa per adottare Claude e Claude Code in Sistec appoggiandosi a due canali di condivisione già noti e collaudati: il marketplace di plugin per le skill e la wiki-LLM per la conoscenza — più graphify per mappare e indicizzare ogni singolo progetto di codice.

Fondamento · il ciclo agentico zero infrastruttura custom wiki-LLM · pattern Karpathy graphify · mappa per-progetto 2026-07-07
Autore
Marco Manfrin · Sistec · AI expert and early adopter, Developer
Versione
1.1 · indice di revisione, incrementato a ogni revisione
Ultima revisione
2026-08-05 · revisionato da Marco Manfrin @Sistec

Documenti a monte — questa è la terza tappa

Questo documento operativo segue e presuppone due documenti già prodotti. Leggili prima, in ordine:

Video: «Come io uso Claude Code» (Marco Manfrin).

Claude e Claude Code sono già progettati per essere usati e condivisi in un modo preciso: le skill si condividono tramite il marketplace di plugin, la conoscenza tramite la wiki-LLM — il pattern di Karpathy, di cui esiste già una demo funzionante in sistec-llm-wiki. A questi due canali si aggiunge un terzo strumento, graphify — una skill che mappa e indicizza un repository in un knowledge graph persistente in graphify-out/: la mappa del singolo progetto di codice. Le autorità di riferimento sono la documentazione ufficiale di Claude Code per la parte strumento, il pattern LLM-wiki di Karpathy per la condivisione della conoscenza e graphify per l'indicizzazione del codice.

Rispetto alla proposta shared-ai (il modello collector / lease Graph-ETag / Orchestrator), questa proposta non introduce un'infrastruttura nuova: si appoggia a due canali già esistenti e collaudati, più graphify come mappa per-progetto del codice.

§1

Il ciclo agentico — il fondamento

Claude Code non è una chat. È un agente che gira un ciclo. Dato un PROMPT, Claude (1) raccoglie il contesto che gli serve, (2) agisce — modifica un file, esegue un comando — e (3) verifica i risultati: controlla se ciò che ha fatto soddisfa il prompt. Se non è completo, ripete il ciclo; quando lo è, termina. In qualsiasi momento puoi interromperlo, correggerlo o aggiungere contesto. Tutto il resto di questo documento discende da qui.

Fig 1Il ciclo agentico: PROMPT → [ raccogli contesto → agisci → verifica ] → DONE.
PROMPT l'obiettivo IL CICLO — ripete finché i risultati non sono verificati 1 · Raccogli contesto 2 · Agisci modifica · esegue 3 · Verifica i risultati risultati non completi → ripeti verificato DONE consegna puoi interrompere · correggere · aggiungere contesto in qualsiasi momento
passi del ciclo ripetizione uscita verificata

Il passo che conta è la verifica

Il ciclo si chiude solo quando i risultati sono verificabili. Da qui tutto il resto: se dai a Claude un modo di verificare (test, build, criteri di successo espliciti), lavora da agente e chiude il ciclo da solo. Se non glielo dai, resta una chat travestita che ti restituisce codice plausibile ma non provato. Dare a Claude come verificare è la singola scelta che rende utile tutto il resto.

§2

Claude Code vive nel repository, in git

Claude Code dà il meglio dentro il repository dell'app. È pensato per quello. Nel repo ha il contesto — il codice, la struttura, le dipendenze, le convenzioni — e soprattutto ha gli strumenti per chiudere il passo di verifica del ciclo: può fare build, eseguire i test, lanciare i comandi e leggerne l'output. Fuori dal repo diventa una chat che indovina; dentro il repo diventa un agente che prova.

Si lavora in git: un branch per feature, commit piccoli e verificabili, review prima del merge. Git non è un dettaglio di processo — è la rete di sicurezza che rende accettabile lasciare agire l'agente: ogni sua azione è un diff su un branch, ispezionabile e reversibile, mai una scrittura cieca e definitiva.

Git è il contenimento

Le modalità meno prudenti (auto-accept dei file) diventano ragionevoli perché si lavora in git: se qualcosa va storto è un git diff e un git restore, non un danno. Nessun repo, nessuna rete di sicurezza — ed è lì che nascono le paure che portano a inventare infrastruttura al posto di usare lo strumento.

§3

Il contesto e il context rot

Il contesto è la memoria di lavoro dell'agente: il tuo prompt, i file che legge, l'output dei comandi che esegue — tutto occupa spazio nella finestra di contesto, che è finita — ampia (circa 200.000 token, ~500 pagine di testo; fino a 1M su alcuni piani e modelli) ma non infinita. Quando si riempie, Claude Code compatta (riassume e scarta il superfluo per liberare spazio) — e la compattazione può perdere dettagli.

Il context rot è la conseguenza da conoscere: man mano che il contesto si riempie di roba irrilevante — lunghe esplorazioni, output verbosi, pezzi di feature diverse — la qualità delle risposte degrada. Non perché il modello peggiori, ma perché il segnale annega nel rumore. È il fallimento più comune, e non si cura con un prompt più elaborato: si cura tenendo il contesto pulito.

GraficoCome la qualità dell'output degrada man mano che la finestra di contesto si riempie: zona sana, zona di context rot, zona di auto-compattazione.
Grafico: la qualità dell'output resta alta nella zona sana (0–40% di riempimento), cala nella zona di context rot (40–80%) e crolla nella zona di auto-compattazione (oltre l'80%)
LevaQuandoEffetto sul contesto
/clearinizio di una nuova featureazzera tutto — niente bias dalla sessione precedente
/compactstessa feature, contesto quasi pieno, devi continuareriassume mantenendo la memoria del lavoro in corso
/contextvuoi ispezionaremostra cosa sta occupando spazio
essere specificisempre, nel promptun prompt vago costa più contesto: costringe Claude a esplorare
subagent (§8)esplorazioni, ricerche, reviewil lavoro sporco avviene in un contesto separato; torna solo il risultato
spegnere gli MCP non pertinentiserver non usati nel progettogli MCP caricano tutti i loro tool nel contesto anche se inutilizzati

Context rot — il vero collo di bottiglia quotidiano

La causa numero uno di risposte scadenti non è il modello che sbaglia: è la sessione lasciata correre troppo a lungo su troppi argomenti. Un /clear all'inizio di ogni feature vale più di qualsiasi prompt elaborato. Tratta il contesto come una risorsa scarsa da spendere bene, non da riempire.

InterattivoEsplora la finestra di contesto: cosa entra e quanto costa, in una sessione simulata. Premi e avanza; passa il mouse sugli eventi per i dettagli. Numeri illustrativi — fonte: documentazione ufficiale di Claude Code.
Esplora la finestra di contesto
Sessione simulata: cosa entra nel contesto e quanto costa
~0token
/ 200K · illustrativo
0%
§4

Prompting: preparare il terreno, descrivere il compito, fornire le regole

Un buon prompt ha tre parti. (1) Preparare il terreno: dai il contesto e lo scopo — dove siamo, cosa c'è già. (2) Descrivere il compito: cosa fare, concretamente. (3) Fornire le regole: i vincoli e il criterio di qualità con cui misurare il risultato. Le tre parti insieme fanno la differenza tra un agente che centra il bersaglio e uno che va corretto tre volte.

Esempio — un prompt completo

«My app needs a dark mode implemented across the entire app. Can you create a toggle switch on the header that allows a user to toggle between light mode and dark mode? I need you to find a good contrast color that works based on my existing light theme.»

ParteNel prompt d'esempioCosa fa
1 · Prepara il terreno«My app needs a dark mode implemented across the entire app»fissa scopo e ambito: contesto prima del compito
2 · Descrivi il compito«create a toggle switch on the header that allows a user to toggle…»azione concreta e localizzata, non un desiderio vago
3 · Fornisci le regole«find a good contrast color that works based on my existing light theme»vincolo + criterio di qualità: come dev'essere fatto bene
§5

Il ciclo di vita: Explore → Plan → Code → Commit

È il flusso di lavoro da cui parte tutto. Chi salta a «scrivimi il codice» paga dopo in correzioni. La sequenza corretta di una modifica è quattro passi:

  1. Explore. In plan mode (sola lettura) Claude legge i file e capisce dove intervenire. Nessuna modifica: solo raccolta di contesto. Puoi anche usare il subagent Explore per una panoramica senza intenzione di modificare.
  2. Plan. Claude produce un piano d'azione. È qui che si corregge la rotta — prima che una sola riga sia scritta, quando costa meno. Definisci i criteri di successo: cosa vuol dire «fatto bene».
  3. Code. Approvato il piano, l'agente lavora la lista. È un botta-e-risposta fino al risultato. Dai a Claude una suite di test come fonte di verità: è il modo con cui verifica sé stesso (vedi §1).
  4. Commit. Prima del commit, fai girare un subagent reviewer: occhi freschi, senza il bias accumulato nella sessione. Poi genera il commit nel tuo stile e fai push. Ripeti.

Correggi nel piano, non nel codice

Il posto più economico per cambiare direzione è il piano, prima della scrittura. Un minuto di revisione del piano risparmia mezz'ora di codice da rifare. Plan mode esiste apposta.

§6

La directory .claude, i comandi (deprecati) e le skill

La configurazione di Claude Code vive nella directory .claude del progetto: settings, skill, subagent, hook. I comandi (gli slash-command scriptati) sono deprecati a favore delle skill; al più si conserva una skill con l'invocazione automatica disattivata (model-invocation=false) per i pochi casi che devono restare a scatenamento esplicito.

InterattivoEsplora la cartella .claude: cosa vive nel progetto (condiviso, committato) e cosa vive in ~/.claude (personale, mai committato). Clicca un file o una cartella per i dettagli. Struttura secondo la documentazione ufficiale di Claude Code.
Esplora la cartella .claude
Configurazione di progetto (condivisa col team) vs. globale (personale)

6.1 Cosa è una skill

Una skill non è un comando da terminale — non è git merge. È un comportamento atteso. La sua description dichiara quando va usata, e Claude la richiama da solo quando la situazione combacia. Esempio: Claude sta per scrivere nuovo codice → scatta la skill «come scrivere i commenti del codice». Non la invochi tu a mano: la descrivi bene e lei si attiva al momento giusto.

---
name: commenti-codice
description: Come scrivere i commenti del codice in questo progetto.
             Usare QUANDO Claude sta per scrivere o modificare codice sorgente.   // <- il "quando" è la parte che conta
---
  ... corpo della skill: le istruzioni vere e proprie ...

6.2 Skills sbagliate — cosa NON sono

Se pensi a una skill come a un comando — «quando invoco /deploy esegue il deploy» — c'è un problema alla base. Una skill non incapsula comandi deterministici. Se una procedura è sempre uguale — build, copia, incolla — scrivi uno script bash o Python, o ancora meglio una GitHub Action. Non serve una skill: è un'azione meccanica che si risolve con uno script, non un comportamento che Claude deve interpretare.

Allo stesso modo, una skill che «analizza tutto il repo, cerca i metodi definiti e vede se sono chiamati da qualche parte» non ha senso. Non serve una skill per questo: scrivi mezza riga di prompt — «builda ed elimina tutti i warning di codice morto» — e se vuoi rigore, usa un linter, che esiste da quarant'anni. La skill non è un contenitore per rimediare alla mancanza di tooling: è un comportamento atteso per situazioni che richiedono giudizio, non automazione lineare.

Il test infallibile

Se la procedura che stai descrivendo si può scrivere in 30 righe di bash, non è una skill: è uno script. Mettilo in scripts/ o in una GitHub Action. La skill serve quando c'è una decisione da prendere, non un'istruzione da eseguire.

6.3 Come si invoca una skill — l'interfaccia è il linguaggio naturale

Conseguenza diretta: una skill non si invoca per nome. Non esiste un comando /analyze-log da ricordare. Se la skill è scritta bene — con una description che descrive quando scatta — basta scrivere «analizza i log e cerca il problema X» e il modello sceglie da solo la skill giusta. L'interfaccia con l'utente è il linguaggio naturale, non un vocabolario di comandi da imparare. Non serve sapere il nome esatto della skill né i suoi parametri: è il modello che decide se attivarla, in base alla descrizione e al contesto.

Tradotto: se qualcuno chiede «come si chiama la skill per analizzare i log?» la domanda è già sbagliata. La risposta giusta è «descrivi cosa vuoi fare e la skill scatterà da sola».

6.4 Regole delle skill

§7

CLAUDE.md è la memoria di progetto — e cosa viene caricato nel contesto

«Le memorie di Claude» come le si immagina non esistono. Ciò che esiste è CLAUDE.md: la memoria del progetto. Viene letto e appeso al prompt a ogni sessione. Deve chiamarsi esattamente CLAUDE.md — è quel file a essere caricato nel contesto, non un AGENTS.md o un QUALSIASI.md. Il suo contenuto descrive il progetto: «questo è la commessa X di ACME S.p.A., fa Y; stack; comandi di build e test».

Qui sta la distinzione che governa tutto — cosa viene caricato nel contesto e quando:

Fig 2Cosa occupa il contesto e quando: CLAUDE.md per intero e sempre; delle skill solo la description (corpo on-demand); le rules solo sui file che combaciano col glob paths.
FINESTRA DI CONTESTO DELLA SESSIONE MODALITÀ COSA OCCUPA IL CONTESTO QUANDO CLAUDE.md memoria di progetto tutto il file, per intero sempre Skill comportamenti (§6) description corpo — solo quando scatta descr. sempre corpo on-demand Rules convenzioni (§7.3) solo se il path combacia col glob paths: per path (senza paths: sempre)
CLAUDE.md — per intero, sempre skill — description sempre, corpo on-demand rules — solo sui file che combaciano (paths)

7.1 Le direttive vanno nelle skill, non in CLAUDE.md

Regola forte: le direttive — «fai così, non cosà» — non vanno in CLAUDE.md, né in AGENTS.md, né in un qualunque *.md. Vanno in una skill/<nome-skill>/SKILL.md. CLAUDE.md descrive il progetto; le skill portano i comportamenti, e si caricano solo quando servono.

# Progetto
Commessa 141414 — sistema HMI per ACME S.p.A.  Stack: .NET / WPF.
# Comandi
build: msbuild ...   ·   test: dotnet test
// le regole di stile / "fai così" → NON qui, ma in skill/<nome>/SKILL.md

7.2 Le specifiche redatte da Claude vivono nel repo — ma non sono memoria

Lavorando a progetti di sviluppo si possono tenere specifiche redatte da Claude in file .md — «perché ho creato questa classe», «come funziona questo modulo» — committate nel repo: tutti gli sviluppatori le vedono. Ma attenzione: non sono una memoria di Claude. Se lavoro alla feature A, a Claude non serve la feature B — precaricarla sarebbe solo inquinamento del contesto (il context rot del §3). Le spec stanno nel repo per gli umani e vengono lette da Claude on-demand, quando servono, non appese al contesto di ogni sessione.

CLAUDE.md non è una discarica

Ogni riga in CLAUDE.md è contesto pagato a ogni sessione, per ogni feature. Direttive → skill. Documentazione di una feature → .md nel repo, letto quando serve. Se CLAUDE.md cresce, stai riempiendo il contesto di tutti con roba che serve a pochi.

7.3 Le rules: convenzioni di scrittura del codice, attivate per path

Esiste una terza modalità di caricamento, tra CLAUDE.md (sempre, per intero) e le skill (solo la description): le rules. Vivono in .claude/rules/ — un file .md per regola — e portano le convenzioni di scrittura del codice: «i nomi delle classi in PascalCase», «commento XML su ogni membro pubblico». Sono l'eccezione mirata alla regola del §7.1: direttive in un .md sì, ma solo perché caricate chirurgicamente, non a ogni sessione.

La chiave è il campo paths nel frontmatter: un pattern glob sui file — una «regex» sullo scopo interessato — che decide quando la regola entra nel contesto.

// .claude/rules/dotnet-convenzioni.md
---
paths:
  - "**/*.cs"          // <- il glob: attiva la regola SOLO sui file .cs
  - "src/backend/**"
---
# Convenzioni C#
- Nomi delle classi in PascalCase.
- Commento XML su ogni membro pubblico.
  ... le regole vere e proprie ...

Rispetto alla skill del §6.1 — che scatta sul comportamento («sto per scrivere codice») — la rule scatta sul path («sto toccando questi file»). Sono complementari: la skill per il comportamento, la rule per la convenzione legata a un tipo di file. Attenzione alla sintassi: è un glob (**/*.cs), non una regex PCRE — stesso spirito, notazione diversa.

Non è il .cursor/rules di Cursor

Il nome coincide, il meccanismo no. In Claude Code le rules stanno in .claude/rules/ con frontmatter paths. Lo stesso campo paths è accettato anche dalle skill (§6): identico formato glob, identica attivazione mirata.

Esempi di rules reali (C#/.NET), distillate dalla codebase della commessa 5309 FAEL: github.com/marc04AM/AiFormation/tree/main/examples/rules.

7.4 Il «perché» di una modifica: dall'archivio post-hoc alle spec

Caso reale: «Andrea vuole sapere perché Marco ha fatto questa modifica.» La risposta deve stare nel repo — non nella testa di Marco, né in una chat perduta. Due approcci: uno legacy, uno da adottare.

Oggi (legacy) — l'archivio post-hoc. Un hook PostToolUse (dopo ogni Edit/Write) inietta un prompt che costringe Claude a scrivere un file di razionale in <repo>/.claude/claude-archive/: «perché ho fatto questa modifica». È committato nel repo e non viene mai letto da Claude, se non su richiesta esplicita — documentazione per gli umani, on-demand (l'applicazione concreta del §7.2). Funziona, ma ha due limiti: dipende da un hook custom, e cattura il perché dopo — archeologia a valle, sulla singola edit, non sul disegno del cambiamento.

Da qui in avanti — spec-driven con openspec. openspec (github) ribalta la direzione: la spec e la proposta si scrivono prima di toccare il codice — «allineare umani e AI sui requisiti prima che inizi la scrittura». Il «perché» non si recupera più a valle: è la proposta, rivista prima, che resta nel repo come documentazione viva in markdown.

.claude/claude-archive/ (legacy)openspec (da adottare)
Direzionerazionale dopo l'editspec/proposta prima del codice
Innescohook PostToolUse customflusso esplicito (/opsx:proposeapplyarchive)
Granularitàla singola modificail cambiamento come unità: proposta + design + task
Dove vive.claude/claude-archive/*.mdopenspec/changes/<nome>/ → poi changes/archive/
Letturasolo su richiesta esplicitaè l'input su cui Claude implementa
// struttura di openspec nel repo
openspec/
├── specs/                    // fonte di verità: come il sistema si comporta ORA
│   └── <dominio>/spec.md
├── changes/                  // una cartella per cambiamento proposto
│   └── <nome-cambiamento>/
│       ├── proposal.md       // <- il "perché", scritto e rivisto PRIMA del codice
│       ├── design.md         // approccio tecnico
│       ├── tasks.md          // checklist di implementazione
│       └── specs/<dominio>/spec.md   // delta: solo ciò che cambia
└── changes/archive/          // i cambiamenti completati finiscono qui

Ciclo: /opsx:propose (crea proposta, design, task, delta-spec) → revisione → /opsx:apply (Claude implementa contro la checklist) → /opsx:sync (fonde i delta nelle spec) → /opsx:archive. Si installa con npm i -g @fission-ai/openspec e openspec init, che genera le skill e i comandi sotto .claude/ — coerente col §6: i comportamenti stanno nel .claude, non nel CLAUDE.md.

Il pattern da adottare

L'archivio claude-archive è legacy: teneva il «perché», ma a valle e via hook custom. Il pattern nuovo è spec-first: con openspec il «perché» si decide prima, si rivede prima, e resta nel repo come spec viva. «Perché Marco ha fatto X?» → sta nella proposta, non in un'autopsia.

§8

Subagent e agent team

Un subagent gira in una finestra di contesto separata e restituisce al thread principale solo il risultato. È perfetto per il lavoro che sporca il contesto: le esplorazioni («dove sono gli endpoint di autenticazione?»), le ricerche, e la review a occhi freschi prima del commit — senza il bias accumulato dalla sessione. Si creano con /agents.

Gli agent team portano l'idea oltre: più agenti coordinati che affrontano sotto-compiti in parallelo, ciascuno nel proprio contesto. La regola resta una: delega ciò che sporca il contesto, tieni nel thread principale solo la conclusione. È la stessa disciplina del §3, applicata su scala.

§9

Condividere le skill: il marketplace di plugin

Una skill nasce nel progetto (§6). Per condividerla si passa dal marketplace di plugin. Il marketplace espone solo main; main ha una regola di protezione e non accetta commit diretti. Per aggiungere una skill si apre una pull request al maintainer. È l'unico modo sicuro di condividere skill: niente copie a mano che divergono, una sola versione canonica e revisionata.

Approfondimento dedicato

Questo § è una panoramica. Il documento Il marketplace di plugin: dalle esigenze alle skill condivise esplora il canale in profondità: cos'è una skill, come nasce da un'esigenza, come si crea e valida con skill-creator (eval, benchmark, variance), come capire se esiste già un tool o una skill, i criteri del marketplace ed esempi reali — per lo sviluppo software e non.

Per il cowork in ufficio valgono le stesse regole, ma su un marketplace diverso (interno). Stesso meccanismo, ambito diverso.

L'analisi completa delle skill già presenti nel marketplace Sistec — 6 integrate, 14 scartate, criteri, pattern e tabella di tracciabilità — è nel documento complementare Skill marketplace — audit e criteri di integrazione.

Perché la PR è l'unico canale

main protetto significa una sola versione canonica, sempre passata da una revisione. Niente drift, niente «quale copia è quella buona?». La condivisione diventa un atto tracciabile — esattamente come un merge in git.

Comportamenti vs conoscenza

Regola utile di Anthropic: «i progetti conservano la conoscenza, le skill eseguono i compiti». Le skill portano il come — la procedura ripetibile (questo §); la conoscenza — il cosa, i fatti e i documenti — vive altrove, nella wiki-LLM (§10, approfondimento dedicato). Due nature, due canali.

§10

Condividere la conoscenza: la wiki-LLM (non reinventare)

Per la conoscenza inter-ufficio non serve inventare nulla: né un collector, né un lease Graph-ETag, né un Orchestrator con un unico scrittore. Esiste un framework universalmente noto — la wiki-LLM, il pattern di Karpathy (gist ufficiale) — e una demo funzionante è già in sistec-llm-wiki.

Approfondimento dedicato

Questo § è una panoramica. Il documento sistec-llm-wiki: specifica, architettura e proposta di sviluppo esplora il pattern in profondità: architettura (sync, ingest, retrieval), le operazioni di ingest e query nel CLAUDE.md, roadmap in tre fasi da demo a produzione e casi d'uso concreti.

Il pattern è semplice: una cartella su OneDrive o NAS che tutti sincronizzano; tutti aggiungono i documenti grezzi in raw/; l'AI fa ingest e retrieval. La sincronizzazione la fa già OneDrive/il NAS. La canonicalizzazione la fa il retrieval dell'AI al momento della domanda — non un maintainer con un mutex distribuito da progettare, costruire e verificare.

Graphify — la mappa del singolo progetto di codice

Marketplace e wiki condividono attraverso i progetti: le skill come comportamenti, la conoscenza come fatti. Ma dentro ogni repository serve anche una mappa del codice — cosa c'è, come si collega, chi chiama chi. Graphify la produce con un comando: /graphify (o graphify install una tantum) estrae il repository — codice, docs, dipendenze — e scrive un knowledge graph persistente in graphify-out/: graph.json, GRAPH_REPORT.md, graph.html. Da lì l'agente interroga la mappa (graphify query "…", path, explain) invece di rincorrere file, e la rigenera quando il codice cambia (graphify update .). È la terza gamba del modello: il canale marketplace dà le skill, la wiki dà la conoscenza, graphify dà l'indice del singolo progetto — per-progetto, versionato in git, mai un servizio da mantenere.

Fig 3I canali di condivisione più graphify: le skill via marketplace (PR); la conoscenza via wiki-LLM (ingest/retrieval); la mappa del singolo progetto via graphify (knowledge graph per-progetto).
COMPORTAMENTI — le skill → marketplace Skill nel progetto .claude/skills · commessa 141414 pull request Marketplace plugin branch main · protetto · revisione install Operatori stessa skill, canonica CONOSCENZA — la wiki-LLM → retrieval raw/ documenti grezzi OneDrive / NAS · sync automatica ingest wiki-LLM (KB) pattern Karpathy · sistec-llm-wiki retrieval Operatori risposte con provenienza CODICE — la mappa del progetto → knowledge graph Repo di codice un progetto · commessa /graphify graphify-out/ knowledge graph · persistente query Agenti mappa navigabile
skill · marketplace conoscenza · wiki-LLM codice · graphify per-progetto consumatori
Fig 4La demo sistec-llm-wiki in funzione: la struttura della cartella e la vista a grafo della conoscenza ingerita.
Vista a grafo della wiki-LLM: nodi CLAUDE, progetto-atlas, persone e documenti collegati

Vista a grafo — entità e collegamenti estratti dai documenti: progetti (progetto-atlas), persone (marco-manfrin, davide-conti…), organizzazioni (sistec, acme-spa), concetti (strangler-fig-pattern) e le fonti che li citano. Il retrieval naviga questi collegamenti.

Struttura della cartella sistec-llm-wiki: raw, wiki (concetti, decisioni, fonti, organizzazioni, persone, progetti, overview), CLAUDE, index, log

Strutturaraw/ i documenti grezzi; wiki/ la conoscenza canonicalizzata per tipo (concetti, decisioni, fonti, organizzazioni, persone, progetti); index e log generati dall'ingest.

Non reinventare l'infrastruttura

Il modello collector / lease Graph-ETag risolve, con un protocollo distribuito custom da costruire e verificare, un problema che OneDrive (sync) + il pattern wiki-LLM (ingest/retrieval) risolvono già. Meno pezzi da mantenere, nessun lease da dimostrare corretto, nessun singolo punto di orchestrazione. Tre nature, tre canali distinti: le skill (comportamenti) passano dal marketplace; la conoscenza (fatti, decisioni, appunti) passa dalla wiki-LLM; la mappa del codice (struttura, relazioni, dipendenze di ogni repository) la genera graphify per-progetto, versionata in git. Nessuno dei tre richiede infrastruttura nuova.

La regola: risultato, non processo

Nella wiki finisce l'output dell'analisi — dati, conclusioni, decisioni — non il racconto di come si è arrivati lì. Se l'operatore fa analizzare un log, la pagina deve contenere i risultati dell'analisi (cosa dicono i dati), non «ho analizzato il log X» né un riassunto compresso del lavoro fatto.

§11

Accesso graduale: chi non ha ancora Claude

L'adozione non deve aspettare che tutti abbiano una licenza. Chi non ha ancora Claude può partire con opencode e modelli più semplici — meno contesto, ma gratuiti — per prendere confidenza con il ciclo agentico (§1) e con il lavoro in git (§2). Il modello mentale è lo stesso; si scala la potenza quando arriva la licenza. Nessuno resta fermo ad aspettare.

§12

Chat, Cowork, Code — un solo motore

La stessa Claude si usa in tre modi. Chat è la conversazione che già conosci: domande, brainstorming, bozze. Code è ciò di cui parla tutto questo documento: costruire software nel repository. Cowork è la modalità agentica per il lavoro d'ufficio non di codice: gli dai un obiettivo, lo colleghi a cartelle e strumenti, e lavora da solo — ricerche, analisi cross-fonte, documenti finiti.

Il punto che conta per Sistec: Cowork e Code girano sullo stesso motore — sotto è Claude Code. Stessa natura agentica, stessi subagent (§8), stessa capacità di sostenere compiti lunghi. Cambia la superficie, non il motore. Chi in ufficio non scrive codice non parte da zero: usa lo stesso modello mentale del ciclo agentico (§1), su cartelle e documenti invece che su un repository.

Il ponte con la wiki-LLM

Cowork legge una cartella del computer, capisce cosa è rilevante e ci risalva il lavoro finito. È esattamente il caso d'uso della wiki-LLM (§10): una cartella su OneDrive/NAS, i documenti grezzi, l'AI che fa ingest e retrieval. Nessuno strumento nuovo da inventare — la modalità c'è già.

§13

Criteri di verifica — chiudere il ciclo

Il ciclo agentico (§1) si chiude solo quando i risultati sono verificabili. Senza un criterio di verifica, Claude non sa se ha finito: indovina, produce codice plausibile ma non provato, e il ciclo si chiude per esaurimento del contesto, non per successo. Il modo più efficace per migliorare la qualità dell'output è dare a Claude un modo eseguibile di verificare sé stesso.

13.1 Cosa rende un criterio di verifica efficace

Tre caratteristiche, in ordine di potenza:

  1. Eseguibile. Un comando che Claude può lanciare e di cui può leggere l'uscita — npm test, dotnet build, ruff check. La build che passa è la forma più forte di verifica.
  2. Osservabile. Una regola che Claude può controllare leggendo un file — «la funzione accetta numeri negativi?», «tutte le traduzioni hanno il placeholder {name}?». Si verifica con un grep o un read, non con un test.
  3. Descrittivo. Una condizione scritta nel prompt — «il bottone dev'essere blu, non verde» — che Claude valuta a vista. È la forma più debole: funziona, ma non chiude il ciclo da sola.
TabellaEsempi di criteri di verifica — buoni e cattivi.
PromptCriterio di verificaGiudizio
«Implementa login con JWT»nessuno❌ Claude produce codice, non sa se funziona
«Implementa login con JWT»i test auth.test.ts passano✅ ciclo chiuso: npm test dice se è fatto
«Aggiungi validazione email»nessuno❌ plausibile ma non provato
«Aggiungi validazione email»rg "email.*valid" src/routes/ trova il nuovo pattern✅ osservabile con grep
«Rendi il footer responsive»«sembra giusto»❌ Claude non può verificare l'estetica
«Rendi il footer responsive»la build non dà errori CSS + screenshoot con Puppeteer a 3 viewport✅ verificabile con tool

Scrivi il test prima del codice

Il modo più efficace per usare Claude Code è dargli un test che fallisce e dirgli di farlo passare. Il test è il criterio di verifica — e il ciclo agentico si chiude da solo quando il test passa. È la stessa dinamica del TDD, ma eseguita dall'agente invece che da te.

13.2 Verifica nel piano, non nel codice

Il criterio di verifica va stabilito prima di scrivere codice, nel piano (§5). Se aspetti che Claude abbia finito per controllare, scoprirai errori quando costa di più correggerli. In fase di piano chiedi: «come facciamo a sapere che è fatto bene?». La risposta è il criterio di verifica — e va scritto nel prompt, non tenuto in testa.

Esempio — verifica nel piano

«Aggiungi un campo "data di nascita" al form di registrazione. Criterio di verifica: (1) il test form.test.ts passa senza modifiche al test esistente; (2) una validazione client-side rifiuta date future; (3) la build non produce warning TypeScript.»

§14

Quando NON usare Claude Code

Non tutto va delegato a un agente. Claude Code è potente, ma ci sono cose che si fanno meglio e più veloce senza. Saperle riconoscere è parte dell'adozione matura — non è un fallimento dello strumento, è saperlo usare al posto giusto.

14.1 Cosa fare a mano

14.2 Il test del minuto

Regola pratica: se puoi fare la cosa in meno di un minuto a mano, falla a mano. Se ti serve più di un minuto di descrizione, probabilmente Claude è la scelta giusta. Il punto di pareggio è intorno ai 30 secondi di digitazione vs 30 secondi di prompt — ma il prompt richiede verifica, la digitazione no.

14.3 Cosa evitare del tutto

Legge di Hitchens applicata

«Ciò che può essere fatto senza un agente, può essere fatto meglio senza un agente.» Non perché Claude sia scarso — ma perché il giro prompt→attesa→verifica ha un costo che non sempre vale la spesa. Usalo per i problemi, non per le digitazioni.

Cheat sheet — riferimento rapido

Da stampare o tenere aperto in una scheda. Il minimo indispensabile per lavorare con Claude Code.

ComandoQuandoCosa fa
/clearinizio nuova featureazzera contesto — niente bias dalla sessione precedente
/compactcontesto quasi pieno, stessa featureriassume mantenendo la memoria del lavoro in corso
/contextvuoi ispezionaremostra cosa occupa spazio nella finestra
! comandoeseguire in shelllancio un comando e l'output entra nel contesto
Workflow — Explore → Plan → Code → Commit
1. ExploreIn plan mode (sola lettura): Claude legge i file e capisce dove intervenire. Nessuna modifica.
2. PlanClaude produce un piano d'azione. Correggi qui — prima che una riga sia scritta. Definisci i criteri di successo.
3. CodeApprovato il piano, Claude lavora la lista. Dagli un test come fonte di verità — così verifica da solo.
4. CommitPrima del commit, lancia un subagent reviewer. Poi genera il commit e fai push. Ripeti.
Template prompt in 3 parti
1 · Prepara il terrenoContesto e scopo: dove siamo, cosa c'è già. «L'app ha un form di login in Vue, usa Pinia per lo stato»
2 · Descrivi il compitoAzione concreta, non desiderio vago. «Aggiungi validazione email sul campo username»
3 · Fornisci le regoleVincoli + criterio di verifica. «Usa regex RFC 5322; i test esistenti devono ancora passare; la build non deve produrre warning»

La regola che vale per tutte

Se dai a Claude un modo di verificare il risultato (test, build, criterio esplicito), chiude il ciclo da solo. Se non glielo dai, è una chat travestita — codice plausibile, niente garanzie.

corso

AI Fluency

Prima di Claude Code viene Claude. Il corso ufficiale AI fluency — undici lezioni su claude.ai, dai fondamenti all'uso per ruolo — copre chat, progetti, artifact, skill, connettori e la modalità Research. È la base per chi non è sviluppatore, e il ponte verso Claude Code (§12). Disponibile come dispensa a parte: l'elenco delle lezioni a sinistra, il testo completo di ogni lezione a destra.

Dispensa · pagina a parte

Apri il corso AI fluency

11 lezioni con i testi completi · elenco a sinistra · Chat · Progetti · Artifact · Skill · Connettori · Research.

Apri il corso →
corso

Claude Code

Il corso Claude Code — dodici lezioni, dai fondamenti agli hook — è disponibile come dispensa a parte: l'elenco delle pagine sulla sinistra, il testo completo di ogni lezione a destra, una pagina per markdown. Si apre in una pagina dedicata, fuori dal flusso di questo documento.

Dispensa · pagina a parte

Apri il corso Claude Code

12 lezioni con i testi completi · elenco a sinistra · una pagina per markdown.

Apri il corso →
rev

Revisioni

VersioneDataRevisionato daModifiche introdotte
1.12026-08-05Marco Manfrin @Sistec Graphify come terza gamba del modello di condivisione. Aggiunto graphify per mappare e indicizzare ogni singolo progetto di codice (graphify-out/, knowledge graph persistente, interrogabile con graphify query). Aggiornati lede, §10 (paragrafo intro, Fig 3 con terza corsia «CODICE — mappa del progetto», callout «Non reinventare l'infrastruttura»).
1.02026-07-07Marco Manfrin @Sistec Emissione iniziale. Proposta operativa alternativa a shared-ai: il ciclo agentico come fondamento, Claude Code nel repository e in git, contesto e context rot (con grafico qualità/riempimento finestra e widget interattivo «Esplora la finestra di contesto»), prompting in tre parti, il ciclo Explore→Plan→Code→Commit, la directory .claude con comandi deprecati e skill (self-contained, nate nel progetto, con §6.2 «Skills sbagliate — cosa NON sono» e §6.3 «Come si invoca una skill», riferimenti reali a caveman, openspec e graphify), CLAUDE.md come memoria di progetto e cosa viene caricato nel contesto, il ciclo di caricamento a tre modalità in §7 (§7.3 «le rules» — convenzioni di codice attivate per paths/glob, con esempi reali distillati dalla commessa 5309 FAEL — e §7.4 «il perché di una modifica», dall'archivio post-hoc via hook al pattern spec-first openspec), subagent e agent team, il marketplace di plugin per le skill, la wiki-LLM per la conoscenza (pattern Karpathy, no infrastruttura custom, con link al gist ufficiale e Fig 4 screenshot demo sistec-llm-wiki), §12 «Chat, Cowork, Code — un solo motore», §13 «Criteri di verifica — chiudere il ciclo», §14 «Quando NON usare Claude Code», ⚡ Cheat sheet e l'accesso graduale via opencode. Quattro figure SVG (ciclo agentico, caricamento del contesto a tre corsie, due canali di condivisione), un grafico, un widget interattivo e un cheat sheet. Pagine a parte: corsi «Claude 101» e «Claude Code 101». In testa, riferimenti ai due documenti a monte: la proposta (ai-adoption-propose.html, già accolta dalla Direzione) e il piano ad alto livello (ai-adoption-plan.html).