<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Project on GeppettoBarbuto - Wiki</title><link>https://blog.carrubanet.duckdns.org/tags/project/</link><description>Recent content in Project on GeppettoBarbuto - Wiki</description><generator>Hugo -- gohugo.io</generator><language>it-it</language><lastBuildDate>Mon, 23 Mar 2026 12:20:29 +0000</lastBuildDate><atom:link href="https://blog.carrubanet.duckdns.org/tags/project/index.xml" rel="self" type="application/rss+xml"/><item><title>Context Management &amp; Project Indexing</title><link>https://blog.carrubanet.duckdns.org/wiki/programmazione-ai-context-management/</link><pubDate>Mon, 23 Mar 2026 12:16:41 +0000</pubDate><guid>https://blog.carrubanet.duckdns.org/wiki/programmazione-ai-context-management/</guid><description>&lt;h1 id="-context-management--project-indexing"&gt;🧠 Context Management &amp;amp; Project Indexing
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Principio:&lt;/strong&gt; &amp;ldquo;Signal-to-Noise Ratio (SNR). Più rumore fornisci all&amp;rsquo;IA, più debole sarà la logica del suggerimento.&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;::: info OBIETTIVO
Imparare a controllare esattamente quali informazioni del tuo repository vengono inviate all&amp;rsquo;LLM. Ottimizzare l&amp;rsquo;indicizzazione semantica permette di ottenere risposte precise, coerenti con l&amp;rsquo;architettura attuale e prive di riferimenti a file obsoleti o temporanei.
:::&lt;/p&gt;
&lt;h2 id="1-il-rumore-nel-contesto-the-noise"&gt;1. Il rumore nel contesto (The Noise)
&lt;/h2&gt;&lt;p&gt;L&amp;rsquo;IA all&amp;rsquo;interno di VS Code scansiona costantemente la cartella di progetto. Se non istruita, leggerà anche:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;File di log (&lt;code&gt;.log&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Cartelle di build o artefatti (&lt;code&gt;/dist&lt;/code&gt;, &lt;code&gt;/build&lt;/code&gt;, &lt;code&gt;.exe&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Ambienti virtuali (&lt;code&gt;.venv&lt;/code&gt;, &lt;code&gt;node_modules&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Vecchie versioni di backup (&lt;code&gt;script_v1_old.py&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Risultato:&lt;/strong&gt; L&amp;rsquo;IA si confonde tra le vecchie implementazioni e quelle nuove, suggerendo import errati o logiche deprecate.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-lo-scudo-copilotignore"&gt;2. Lo scudo: &lt;code&gt;.copilotignore&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Proprio come il &lt;code&gt;.gitignore&lt;/code&gt; impedisce di pushare file inutili, il file &lt;strong&gt;&lt;code&gt;.copilotignore&lt;/code&gt;&lt;/strong&gt; impedisce a Copilot di &amp;ldquo;leggere&amp;rdquo; parti del progetto.&lt;/p&gt;
&lt;h3 id="setup-consigliato"&gt;Setup consigliato
&lt;/h3&gt;&lt;p&gt;Crea un file &lt;code&gt;.copilotignore&lt;/code&gt; nella root del tuo progetto:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Previeni l&amp;#39;indicizzazione di file pesanti o sensibili
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;temp/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vendor/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dist/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# Impedisci all&amp;#39;IA di leggere vecchi esperimenti che potrebbero inquinare la logica
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;notebooks/deprecated_*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;scripts/old_version/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# File di dati che consumerebbero troppi token
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*.sql
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="3-gestione-del-working-set-in-copilot-edits"&gt;3. Gestione del &amp;ldquo;Working Set&amp;rdquo; in Copilot Edits
&lt;/h2&gt;&lt;p&gt;Quando usi &lt;strong&gt;Copilot Edits (&lt;code&gt;Ctrl+Shift+I&lt;/code&gt;)&lt;/strong&gt;, hai il controllo manuale sul contesto.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Non aggiungere tutto:&lt;/strong&gt; Se stai lavorando sul database, aggiungi solo lo schema e il repository layer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context Pinning:&lt;/strong&gt; Usa il comando &lt;code&gt;Add Files&lt;/code&gt; per forzare l&amp;rsquo;attenzione su un file specifico che l&amp;rsquo;IA sembra ignorare.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependency Awareness:&lt;/strong&gt; Se modifichi una funzione in &lt;code&gt;core.py&lt;/code&gt;, aggiungi al contesto anche il file &lt;code&gt;test_core.py&lt;/code&gt;. L&amp;rsquo;IA vedrà come la funzione deve essere usata e scriverà codice più robusto.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-il-ciclo-del-contesto-mermaid"&gt;📉 Il Ciclo del Contesto (Mermaid)
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 A[Codice Sorgente] --&gt; B{Filtro: .copilotignore}
 B --&gt;|File Ammessi| C[Semantic Indexing]
 C --&gt; D[Embedding Locale / Vector DB]
 D --&gt; E[Interfaccia IA]
 
 subgraph Selezione_Manuale
 F["@workspace: Tutto il Progetto"]
 G["#file: File Specifici"]
 H["Working Set: Edits Focus"]
 end
 
 E --&gt; F
 E --&gt; G
 E --&gt; H
 
 F --&gt; I[Prompt Arricchito]
 G --&gt; I
 H --&gt; I
 I --&gt; J[LLM: Claude/GPT]
 J --&gt; K[Codice Preciso]&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="4-troubleshooting-quando-lia-si-perde"&gt;4. Troubleshooting: Quando l&amp;rsquo;IA &amp;ldquo;si perde&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Se l&amp;rsquo;IA continua a suggerire codice vecchio nonostante le modifiche, segui questo protocollo di &lt;strong&gt;Cache Reset&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Forza l&amp;rsquo;Index:&lt;/strong&gt; Digita &lt;code&gt;@workspace /index&lt;/code&gt; nella chat. Questo forzerà VS Code a ricaricare l&amp;rsquo;indice semantico del progetto.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chiudi i Tab:&lt;/strong&gt; Copilot dà priorità ai file aperti nelle schede di VS Code. Se hai vecchi file aperti, l&amp;rsquo;IA li considererà &amp;ldquo;importanti&amp;rdquo;. Chiudi tutto ciò che non è inerente al task corrente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context Variable:&lt;/strong&gt; Usa &lt;code&gt;#codebase&lt;/code&gt; invece di &lt;code&gt;@workspace&lt;/code&gt; se vuoi che l&amp;rsquo;IA cerchi attivamente in tutto il progetto basandosi sulla somiglianza dei contenuti e non solo sulla struttura dei file.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="-note-dellarchitetto"&gt;💡 Note dell&amp;rsquo;Architetto
&lt;/h2&gt;&lt;p&gt;In un workflow professionale, il contesto è &lt;strong&gt;idempotente&lt;/strong&gt;: fornendo gli stessi file e le stesse istruzioni, dovresti ottenere risultati simili. Se il risultato varia troppo, significa che il tuo contesto è troppo vasto (Noise). &lt;strong&gt;Riduci il numero di file nel Working Set finché l&amp;rsquo;IA non torna a essere precisa.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Tags: #AI #ContextManagement #Indexing #Copilot #VSCode #PromptEngineering*&lt;/p&gt;</description></item></channel></rss>