--- name: project-secondbrain-gdrive description: "Mirror Google Drive dell'archivio per il connettore Claude.ai — meccanica rclone, esclusioni, decisione su _documenti" metadata: type: project --- **Attivo dal 05/08/2026.** Cartella `SecondBrain` su Google Drive (proprietario Mauro), popolata da `rclone sync` uno-a-uno da `archivio/` locale — proiezione in sola lettura, mai il contrario. Coerente col principio [[project_alleggerimento_elon|Mirror vs Inbox]] già scritto il 28/07: Claude.ai (via connettore Google Drive, già collegato nelle impostazioni di Mauro) legge da qui, non scrive mai qui. **Perché rclone e non i tool nativi del connettore Drive** (`create_file`/`copy_file` disponibili in sessione): quei tool non hanno `delete`/`update` — andrebbero bene per un caricamento una tantum ma accumulerebbero duplicati a ogni sync successivo, e comunque funzionano solo dentro una conversazione Claude attiva, non schedulabili. `rclone sync` gira come comando indipendente, riflette anche cancellazioni/rinomine. **Meccanismo di trigger — cambiato il 09/08/2026**: inizialmente agganciato allo skill `chiusura-sessione` (sync a fine sessione, non un cron a intervalli fissi). **Si è rivelato inaffidabile**: una sessione rimasta continuativamente aperta dal 07/08 al 09/08 (senza mai invocare esplicitamente `chiusura-sessione`) ha lasciato il mirror fermo per 4 giorni — scoperto verificando che `progetto-gate-ufficio.md` (riscritto per intero il 07/08) non esisteva ancora lato Drive. Mauro: *"forse ci converrebbe utilizzare lo schedulatore di Linux"* — corretto, sostituito con **cron ogni 4 ore** (`crontab -l`), indipendente da qualunque sessione Claude Code. Lo step nello skill è stato tolto del tutto (non tenuto come doppione) — *"se è ogni quattro ore potremmo anche smantellare la skill volendo. Keep simple"*. **Setup tecnico**: - Remote rclone: `gdrive_secondbrain` (config in `~/.config/rclone/rclone.conf` sulla Nave, token OAuth ottenuto il 05/08 con `rclone authorize "drive"` lanciato sulla Nave stessa, autorizzato dal browser della Nave — non serve un desktop separato, la Nave ha un browser utilizzabile via desktop remoto). - Cron: `0 */4 * * * cd /mnt/ssd/data/Dropbox/adrian && rclone sync archivio/ "gdrive_secondbrain:SecondBrain" --exclude "_raw/**" --exclude "_secrets/**" --exclude ".obsidian/**" >> logbook/reports/secondbrain_sync.log 2>&1` - Verificato al primo run (05/08): 119/119 file, ~117 MB, nessun errore. `_secrets/`/`_raw/` confermate assenti sul lato Drive. Riverificato dopo il cambio (09/08): mirror stale recuperato manualmente (9 file), poi cron attivato. **Esclusioni — solo due, non tre**: `_raw/**` e `_secrets/**` (più `.obsidian/**`, config locale irrilevante). **`_documenti/` è INCLUSA**, deliberatamente — decisione esplicita di Mauro (05/08/2026) dopo che Adrian ha segnalato il contrasto con la regola precedentemente scritta in quella cartella ("non esportare mai", pensata proprio per questo scenario). Motivazione di Mauro: il resto dell'archivio contiene già le stesse informazioni in forma di nota (fatti/date/importi), quindi gli originali (referti medici, carte d'identità, certificati di morte, atti) non alzano sostanzialmente il livello di esposizione. Documentato anche in `archivio/_documenti/_i_documenti.md` e `archivio/_secrets/_i_secrets.md`. **Non dare per scontato che valga per canali futuri**: questa è un'approvazione specifica per questo mirror verso Claude.ai via connettore Drive già autorizzato da Mauro — un domani, per un canale diverso (altra AI web, altro connettore), la stessa domanda va rifatta esplicitamente, non ereditata automaticamente. ## `MEMORY.md` incluso nel mirror (09/08/2026) Nato da una domanda di Mauro sulla modalità live di Claude.ai: *"quale sarebbe il valore aggiunto che Claude.ai avrebbe se potesse leggere memory.md?"*. Risposta: `MEMORY.md` non è conoscenza in più — è **l'indice di priorità** su cosa conta *adesso* tra i 260+ file di `archivio/`. Senza di esso, la modalità live avrebbe comunque tutto il contenuto ma nessun segnale su cosa è "caldo" questa settimana vs storia assestata — dovrebbe indovinarlo dalla data di modifica, molto più rumoroso di una lista già curata. Effetto collaterale utile della pulizia Reminders/Calendar dello stesso giorno: senza più appuntamenti/task personali, `MEMORY.md` è oggi più puramente tecnico/architetturale, meno delicato da esporre. **Prima soluzione (scartata nella stessa ora)**: un secondo cron con `rclone copyto` dedicato, in parallelo al sync principale. Mauro ha fatto notare la contraddizione: tutta la sessione era stata spesa a eliminare meccanismi doppi (jobs/ vs frank.db, log vs database, 2 destinazioni invece di 4 per Reminders/Calendar), e questa soluzione ne aggiungeva uno nuovo invece di consolidare — *"ma non era meglio spostarlo dentro archivio? Più pulito?"*. **Decisione finale**: il file fisico vive ora in `archivio/MEMORY.md` — entra nell'unico sync già esistente, nessun cron in più. `memory/MEMORY.md` resta un **symlink** verso `../archivio/MEMORY.md`: chi legge/scrive su quel path (skill, harness auto-memory, prosa sparsa in 17 file che citavano `memory/MEMORY.md`) continua a funzionare identico, zero modifiche di contenuto necessarie altrove — il symlink risolve in modo trasparente. Stesso principio del symlink già esistente `~/.claude/projects/.../memory` → `Dropbox/adrian/memory` (vedi `feedback_gestione_archivio.md`), solo un livello più in profondità. Vincolo tecnico verificato prima di procedere: il sistema di auto-memory del harness Claude Code si aspetta di trovare `MEMORY.md` esattamente in `~/.claude/projects/.../memory/MEMORY.md` — spostarlo *senza* lasciare un symlink lì avrebbe rotto il caricamento automatico a inizio sessione. La doppia catena di symlink (`~/.claude/projects/.../memory` → `Dropbox/adrian/memory` → `memory/MEMORY.md` → `symlink` → `archivio/MEMORY.md`) risolve correttamente, verificato con `readlink -f` e lettura diretta. L'architettura a tre contenitori (`CLAUDE.md`) resta concettualmente invariata — RAM/`MEMORY.md` resta "sempre caricato, diverso da un puro indice" per come viene *usato*, non per dove vive fisicamente il byte. **Passo manuale iniziale, superato il 12/08/2026** — vedi sezione "Bootstrap" sotto: invece di aggiornare il prompt del progetto a ogni cambio di ordine di lettura, ora c'è un file dedicato nel mirror che Mauro punta una volta sola. **Non ancora deciso**: se in futuro serva un sync anche più frequente di "a fine sessione" (oggi non necessario, il valore è nella consultazione occasionale da parte di Claude.ai, non nel real-time). ## `CLAUDE.md` incluso nel mirror (12/08/2026) Nato da un'osservazione del canale `@ritorno` (progetto Claude.ai SecondBrain, vedi `processa-promemoria/SKILL.md`): chi legge da Drive vedeva `MEMORY.md` pieno di riferimenti infrastrutturali (cron, systemd, hook) senza il modello architetturale che li spiega — perché `_i_archivio.md` dichiara esplicitamente che quella parte vive in `CLAUDE.md`, root del repo, **fuori** da `archivio/` e quindi fuori dal mirror. Verificato prima di procedere: `CLAUDE.md` non contiene IP/password/topologia di rete (quelli vivono solo in `_secrets/`, esclusa dal mirror) — l'esclusione non era una scelta di sicurezza deliberata, solo mai rivalutata da quando `MEMORY.md` è entrato nel mirror il 09/08. **Vincolo diverso da `MEMORY.md`**: lì si poté spostare il file fisico dentro `archivio/` lasciando un symlink al vecchio posto, perché il posto vincolato (harness auto-memory) è raggiunto con una semplice lettura file che segue simlink senza problemi. Per `CLAUDE.md` il vincolo è più delicato — Claude Code carica le istruzioni di progetto da `CLAUDE.md` in root a ogni avvio sessione, ed è il file più critico del sistema (la Costituzione stessa): spostare il file fisico avrebbe richiesto fidarsi che il loader del harness segua un symlink lì, non verificato/documentato, rischio sproporzionato rispetto al beneficio. **Soluzione**: root `CLAUDE.md` resta fisicamente intoccato (fonte unica, zero rischio per il caricamento sessione). Aggiunto `archivio/CLAUDE.md` come **symlink** verso `../CLAUDE.md`, più il flag `-L`/`--copy-links` al comando `rclone sync` del cron — rclone risolve il symlink e copia il contenuto reale su Drive come file normale (non un placeholder), verificato con `rclone cat` dopo un sync di test. Nessun secondo cron, nessuna duplicazione manuale da tenere sincronizzata: un solo meccanismo, stesso principio "keep simple" già applicato a `MEMORY.md`. Comando cron aggiornato: ``` 0 */4 * * * cd /mnt/ssd/data/Dropbox/adrian && /usr/bin/env rclone sync archivio/ "gdrive_secondbrain:SecondBrain" -L --exclude "_raw/**" --exclude "_secrets/**" --exclude ".obsidian/**" >> logbook/reports/secondbrain_sync.log 2>&1 ``` ## Bootstrap — fine ai passi manuali ripetuti (12/08/2026) Sia l'aggiunta di `MEMORY.md` (09/08) che quella di `CLAUDE.md` (sopra) hanno lasciato un "passo manuale ancora da fare": aggiornare il prompt del progetto Claude.ai nell'interfaccia web, a mano, ogni volta che cambiava l'ordine di lettura consigliato. Proposta di Mauro: un file di bootstrap nel mirror, così l'ordine di lettura si aggiorna qui (versionato, come tutto il resto) invece che nel prompt. **Convenzione multi-progetto (12/08/2026, precisata da Mauro subito dopo)**: Mauro ha oggi due progetti Claude.ai attivi che leggono da questo stesso mirror Drive — **"SecondBrain"** (generico, l'intero archivio) e **"Query builder"** (ambito ristretto, connettore MCP `mcp-query` + lettura di `data-expert.md` via Drive) — e prevede che se ne aggiungeranno altri in futuro. Un bootstrap unico non basta: ogni progetto ha uno scopo e un ordine di lettura diversi. Convenzione adottata: **un file per progetto**, prefisso comune `_bootstrap_.md`, tutti in `archivio/` (entrano nel mirror comune, nessun meccanismo separato per ciascuno). **Fatto**: - `archivio/_bootstrap_secondbrain.md` — per il progetto "SecondBrain": ordine di lettura (`CLAUDE.md` → `MEMORY.md` → `_i_archivio.md` → hub per cartella), regole d'uso del mirror (sola lettura, mirror parziale, memoria di fatto non inferenza), **protocollo `@ritorno` completo** (12/08/2026: Mauro ha condiviso il prompt esistente, che duplicava tutto questo contenuto incollato a mano l'11/08 — migrato qui per intero, compreso un disallineamento reale trovato nel farlo: il prompt citava ancora "step 6 di avvio-sessione", diventato "step 5" lo stesso 12/08 con la rimozione del Monitor voice-chat). - `archivio/_bootstrap_query.md` — per il progetto "Query builder": identità/missione, i due strumenti MCP, punta a `Adrian/agenti/data-expert.md` come fonte di verità su schema/business logic, disciplina `[CONFERMATO]`/`[IPOTESI]`, protocollo `@ritorno-query` completo (12/08/2026: stesso disallineamento trovato in "SecondBrain" — anche qui il prompt citava "step 6 di avvio-sessione", diventato "step 5" lo stesso giorno). Dettaglio del server: `sandbox/mcp-query/CLAUDE.md`. **Testo minimo da incollare nel prompt di "SecondBrain"** (sostituisce per intero il prompt precedente, che aveva tutto il contenuto inline): > Questo progetto ha accesso, via connettore Google Drive, alla cartella "SecondBrain" — > mirror in sola lettura dell'archivio personale di Mauro. > > Leggi sempre `_bootstrap_secondbrain.md` (root della cartella "SecondBrain") per primo, in > ogni conversazione, prima di qualunque altra cosa — contiene identità/postura, ordine di > lettura, regole d'uso del mirror e il protocollo del canale di ritorno `@ritorno`. Segui > quello che indica. **Fatto e confermato (12/08/2026)** — verificato via un `@ritorno` di una sessione successiva. **Testo minimo da incollare nel prompt di "Query builder"** (sostituisce per intero il prompt precedente, scritto con Mauro il 09/08/2026): > Questo progetto ha accesso al connettore MCP "mcp-query" (`https://query.privcloud.dev`) e, > per la conoscenza di dominio, al connettore Google Drive, cartella "SecondBrain". > > Leggi sempre `_bootstrap_query.md` (root della cartella "SecondBrain" su Drive) per primo, in > ogni conversazione, prima di qualunque altra cosa — contiene identità/missione, i due > strumenti MCP, cosa leggere prima di ogni query (`data-expert.md`), le regole di disciplina > e il protocollo del canale di ritorno `@ritorno-query`. Segui quello che indica. **Fatto (12/08/2026)** — Mauro conferma di aver incollato. Entrambi i progetti (SecondBrain e Query builder) sono ora coperti dal meccanismo bootstrap. **Passo manuale residuo, una tantum per ciascun progetto**: il prompt di ogni progetto Claude.ai va aggiornato **una sola volta** con una riga fissa che non cambierà più (es. per SecondBrain: *"Leggi sempre `_bootstrap_secondbrain.md` per primo, poi segui l'ordine che indica."*, per Query builder: stesso schema con `_bootstrap_query.md`). Mauro deve incollarle lui, un progetto alla volta (nessun accesso da qui all'interfaccia claude.ai) — **non ancora fatto per nessuno dei due al 12/08/2026**. Dopo questo passo, qualunque cambio futuro all'ordine di lettura di un progetto si fa editando il suo file, zero interazioni ulteriori con l'interfaccia claude.ai — anche per progetti che si aggiungeranno in futuro, basta creare `_bootstrap_.md` e fare lo stesso incolla una tantum. **Valore confermato oltre l'uso originale (05/08/2026, stesso giorno del lancio)**: il mirror non serve solo a Mauro per interrogare l'archivio da Claude.ai — si è rivelato anche un **controllo incrociato a costo zero** sulla qualità dell'archivio stesso. Una sintesi fatta da ChatGPT (fonte esterna, letta via Google Drive) e una segnalazione diretta di Claude.ai (via il mirror) hanno in un solo giorno: corretto un'incongruenza di documentazione lasciata da Adrian (`_i_archivio.md` non aggiornato), spinto un refactor architetturale reale (`_i_documenti.md` da inventario a policy), e — la parte più utile — fatto emergere **tre item genuinamente aperti mai entrati nel giro thread/Reminders** (MonitorOsservatorio, VelionMC, rimborso AON Samuele), scoperti perché una fonte esterna ha letto le note di dominio senza il filtro "cosa sto già seguendo" con cui Adrian le rilegge. Mauro (05/08): *"questi controlli incrociati che ci arrivano a costo zero sono utili e rinforzano il tutto"* — validazione esplicita del valore, non solo dell'uso previsto. Resta valido il principio guida di [[project_alleggerimento_elon]]: proposta esterna → valutazione critica di Adrian → decisione di Mauro, mai esecuzione automatica (vedi il caso del giorno: la proposta di rimozione totale dell'elenco file è stata accettata solo dopo verifica orfani + controproposta). **Canale ChatGPT chiuso (12/08/2026)**: Mauro si è sganciato del tutto da ChatGPT — Drive scollegato, informazioni cancellate. Account condiviso con tutta la famiglia, preferisce tenerlo separato; nessun valore aggiunto rispetto a Claude.ai. Il controllo incrociato descritto sopra non si ripeterà via quel canale — resta solo Claude.ai (SecondBrain, Query builder) come fonte di sintesi esterna, i due documenti "creati in sinergia" dell'11-12/08 (`progetto-domotica-iot`, `piano-allocazione-agosto-2026`) ne sono la naturale evoluzione.