<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Documentationascode on GeppettoBarbuto - Wiki</title><link>https://blog.carrubanet.duckdns.org/tags/documentationascode/</link><description>Recent content in Documentationascode on GeppettoBarbuto - Wiki</description><generator>Hugo -- gohugo.io</generator><language>it-it</language><lastBuildDate>Mon, 23 Mar 2026 12:44:36 +0000</lastBuildDate><atom:link href="https://blog.carrubanet.duckdns.org/tags/documentationascode/index.xml" rel="self" type="application/rss+xml"/><item><title>Documentation as Code: AI-Driven Governance</title><link>https://blog.carrubanet.duckdns.org/wiki/programmazione-ai-automated-docs/</link><pubDate>Mon, 23 Mar 2026 12:23:34 +0000</pubDate><guid>https://blog.carrubanet.duckdns.org/wiki/programmazione-ai-automated-docs/</guid><description>&lt;h1 id="-documentation-as-code-ai-driven-governance"&gt;📚 Documentation as Code: AI-Driven Governance
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Assioma:&lt;/strong&gt; &amp;ldquo;Code explains the HOW; Documentation explains the WHY. AI synchronizes BOTH.&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;::: info OBIETTIVO
Automatizzare la stesura e il mantenimento della documentazione tecnica. Utilizzeremo l&amp;rsquo;IA per generare docstrings professionali e integreremo strumenti di build (Sphinx per Python, Doxygen per C++) per produrre siti web di documentazione che si aggiornano ad ogni modifica del codice.
:::&lt;/p&gt;
&lt;h2 id="1-il-paradigma-scribe"&gt;1. Il Paradigma &amp;ldquo;Scribe&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;In questo workflow, l&amp;rsquo;ingegnere scrive la logica, mentre l&amp;rsquo;IA (lo &lt;em&gt;Scribe&lt;/em&gt;) si occupa della forma documentale.&lt;/p&gt;
&lt;h3 id="strategia-di-prompting-per-lo-scribe"&gt;Strategia di Prompting per lo Scribe
&lt;/h3&gt;&lt;p&gt;Non chiedere &amp;ldquo;scrivimi i commenti&amp;rdquo;. Chiedi conformità agli standard:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python:&lt;/strong&gt; &lt;em&gt;&amp;ldquo;Agisci come un Senior Python Developer. Genera docstrings conformi al &lt;strong&gt;Google Style&lt;/strong&gt; (PEP 257). Includi sezioni Args, Returns e Raises.&amp;rdquo;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;C++:&lt;/strong&gt; &lt;em&gt;&amp;ldquo;Genera commenti compatibili con &lt;strong&gt;Doxygen&lt;/strong&gt; in stile Javadoc. Spiega i vincoli di thread-safety e la gestione della memoria (ownership) degli argomenti.&amp;rdquo;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2-automazione-per-python-sphinx"&gt;2. Automazione per Python (Sphinx)
&lt;/h2&gt;&lt;p&gt;Sphinx è lo standard per l&amp;rsquo;ecosistema Python. Grazie all&amp;rsquo;estensione &lt;code&gt;autodoc&lt;/code&gt;, legge le docstrings generate dall&amp;rsquo;IA e le trasforma in un portale web.&lt;/p&gt;
&lt;h3 id="workflow-operativo"&gt;Workflow Operativo:
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Generazione:&lt;/strong&gt; Usa Copilot Edits per popolare i file &lt;code&gt;.py&lt;/code&gt; con docstrings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Build:&lt;/strong&gt; Esegui Sphinx per generare l&amp;rsquo;HTML.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify:&lt;/strong&gt; Controlla che le descrizioni riflettano correttamente la logica modificata.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="3-automazione-per-c-doxygen"&gt;3. Automazione per C++ (Doxygen)
&lt;/h2&gt;&lt;p&gt;Doxygen è indispensabile per visualizzare graficamente le gerarchie di classi e i grafi di chiamata nel codice C++.&lt;/p&gt;
&lt;h3 id="integrazione-ia"&gt;Integrazione IA:
&lt;/h3&gt;&lt;p&gt;Chiedi a Claude/GPT di analizzare un file &lt;code&gt;.hpp&lt;/code&gt; e aggiungere i tag &lt;code&gt;@brief&lt;/code&gt;, &lt;code&gt;@param&lt;/code&gt;, &lt;code&gt;@return&lt;/code&gt; e &lt;code&gt;@note&lt;/code&gt;. L&amp;rsquo;IA è particolarmente brava a identificare possibili eccezioni (&lt;code&gt;@exception&lt;/code&gt;) che lo sviluppatore potrebbe aver omesso.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-workflow-della-documentazione-mermaid-882"&gt;📉 Workflow della Documentazione (Mermaid 8.8.2)
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 A["Codice Sorgente (.py / .cpp)"] --&gt; B["AI Agent: Docstring Generator"]
 B --&gt; C["Codice Documentato (Git Commit)"]
 
 subgraph Build_Pipeline
 C --&gt; D{"Tipo Progetto?"}
 D --&gt;|Python| E["Sphinx Build"]
 D --&gt;|C++| F["Doxygen Build"]
 end
 
 E --&gt; G["Portale Documentazione (HTML)"]
 F --&gt; G
 
 G --&gt; H["Wiki.js Integration / Static Hosting"]&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="4-cicd-il-guardiano-della-documentazione"&gt;4. CI/CD: Il Guardiano della Documentazione
&lt;/h2&gt;&lt;p&gt;Per un progetto di grado enterprise, la documentazione deve essere un &amp;ldquo;gate&amp;rdquo; della pipeline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Doc-Linting:&lt;/strong&gt; Usa tool come &lt;code&gt;interrogate&lt;/code&gt; (Python) per verificare che la percentuale di codice documentato non scenda sotto una certa soglia (es. 80%).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto-Update:&lt;/strong&gt; Configura una GitHub Action che esegua il build della documentazione e la pubblichi automaticamente dopo ogni merge nel branch &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="5-esempio-di-automazione-nella-documentazione"&gt;5. Esempio di automazione nella documentazione
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.carrubanet.duckdns.org/programmazione/ai/automated-docs/esempio" &gt;Documentation as Code: Il Protocollo LV_Sync_Doc&lt;/a&gt; Uno strumento di automazione progettato per sincronizzare istantaneamente il codice sorgente con la documentazione narrativa, il log delle modifiche e i manuali utente bilingue.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-note-dellarchitetto-the-golden-rule"&gt;💡 Note dell&amp;rsquo;Architetto: &amp;ldquo;The Golden Rule&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;L&amp;rsquo;IA non deve solo descrivere cosa fa il codice (lo leggiamo già dal codice), ma deve spiegare l&amp;rsquo;intento.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;❌ &lt;em&gt;Cattiva documentazione:&lt;/em&gt; &lt;code&gt;def add(a, b): # Aggiunge a e b&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;✅ &lt;em&gt;Buona documentazione (AI-Enhanced):&lt;/em&gt; &lt;code&gt;def add(a, b): # Implementa l'algoritmo di somma per il calcolo del budget fiscale, gestendo l'arrotondamento secondo la norma ISO-XXX.&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Tags: #DocumentationAsCode #Sphinx #Doxygen #AI #TechnicalWriting #Governance*&lt;/p&gt;</description></item></channel></rss>