Files

133 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CLAUDE.md — Schema della LLM Wiki
Schema: struttura, convenzioni, workflow. Leggilo all'inizio di ogni sessione. Utente e LLM lo fanno evolvere insieme; ogni modifica va registrata in `log.md`.
## Ruoli
- **Utente**: sceglie cosa ingerire, pone le domande, decide cosa conta.
- **LLM**: scrive e mantiene la wiki (pagine, link, indice, log, coerenza). L'utente non modifica `wiki/` a mano.
- Lingua: **italiano**. Titoli di fonti e termini tecnici restano nella lingua originale (l'Abstract della tesi è in inglese).
## Dominio
Tesi magistrale in Chimica Industriale (Università di Bologna, Dipartimento "Toso Montanari"), a.a. 2025-2026: **"Sintesi e caratterizzazione di copolimeri bottle brush foto-elettro attivi"**. Candidata: Aurora Luzi. Relatore: Dr. Stefano Scurti.
- **Tema:** semiconduttori polimerici emissivi π-coniugati con architettura bottle brush: scheletro DPP-3HT (polimerizzazione ossidativa con Fe(III)) e catene laterali di PCL ottenute per ROP dell'ε-caprolattone da gruppi OH pendenti.
- **Research question** (dall'Abstract e dal cap. 2): una architettura bottle brush può superare l'ACQ (Aggregation-Caused Quenching) allo stato solido, mantenendo l'integrità elettrochimica del core DPP?
- Risultati dichiarati nell'Abstract: il PCL agisce da spaziatore sterico e mantiene emissione nel rosso allo stato solido; l'Abstract riporta una correlazione tra % di DPP e allargamento del bandgap elettrochimico (le Conclusioni e §4.4.3 parlano di dipendenza non lineare con plateau; r.1228 dice «lineare»: vedi `difetti-dati`).
## Fonti (`raw/`, SOLA LETTURA — mai modificare, rinominare o cancellare, salvo riallineamento richiesto dall'utente)
| Percorso | Contenuto |
|---|---|
| `raw/tesi.docx` | Versione Word da cui `tesi.md` è stato riallineato il 2026-10-15 |
| `raw/tesi.md` | Sorgente canonico (1446 righe). Cap. 1 Introduzione (r.66), 2 Scopo (r.543), 3 Procedure sperimentali (r.560), 4 Discussione dei risultati (r.709), 5 Conclusioni (r.1306); bibliografia (Bibliografia, r.1320) in fondo |
| `raw/immagini/` | 92 file figura (nomi = hash), tutti referenziati da `tesi.md` o dal riassunto |
| `raw/immagini.json` | Catalogo di 80 figure logiche (76 numerate + 4 schemi di §3.2 senza numero): pannelli, didascalia stampata e generata, testo visibile, composti, concetti, contesto, qualità. La chiave `riassunto` cataloga le 11 figure del riassunto (`ris-fig-NN`): non entra in `stats`, ma `gen_figures.py` ne genera le note |
| `raw/riassunto_tesi.docx`, `raw/riassunto_tesi.md` | Riassunto di tesi, ingerito il 2026-10-20 (`wiki/riassunto-tesi.md`); il docx è la versione dell'utente, il md ne è l'allineamento. Le sue 11 figure (12 file, uno in comune con la tesi: fig-076) sono in `raw/immagini/` e catalogate in `immagini.json` (chiave `riassunto`) |
| `raw/bibliografia.json` | 63 riferimenti parsati con righe e sezioni di citazione; `text` è la fonte di verità, gli altri campi sono euristici |
| `raw/fonti/NN-cognome-anno.md` | Una scheda per riferimento (citazione verificata, DOI, abstract, frasi della tesi in cui è citato) |
I numeri di riga (`md_line`, `cited_in_md_lines`…) riferiscono `raw/tesi.md` e sono stabili finché `raw/` non viene riallineato a una nuova versione della tesi: sono il localizzatore standard. Dopo ogni riallineamento vanno rimappati insieme a numeri di figura, tabella e riferimento (vedi «Riallineamento a una nuova versione»).
Convenzioni di `tesi.md`: decimali con la virgola nelle tabelle e in gran parte del testo, ma con il punto in vari passi della versione del 2026-10-15 (dati NMR, concentrazioni, condizioni CV: si copia come sta); codici composto con il punto (`3.1b`); formule in `$...$`; citazioni `<sup>[N](#ref-N)</sup>`; apici/pedici in HTML. Anchor `#ref-N` e `#_TocNNN` non funzionano in Obsidian: nella wiki si traducono in wikilink.
## Architettura
```
CLAUDE.md index.md log.md
raw/ immutabile (vedi sopra)
scripts/gen_figures.py genera wiki/figures/ e wiki/figure-indice.md da raw/immagini.json
scripts/gen_bibliografia.py genera wiki/bibliografia.md da raw/bibliografia.json
scripts/lint.py controlli meccanici (link, orfane, frontmatter, numeri non in tesi.md)
wiki/
overview.md sintesi evolutiva, research question, risultati
tesi.md mappa capitolo/sezione → pagine wiki (unica pagina "source" della tesi)
riassunto-tesi.md mappa del riassunto di tesi (seconda fonte) → pagine wiki, figure e bibliografia
dati.md indice «grandezza → pagina» con intervalli di valori
campioni.md matrice campioni × tecniche (solo rimandi, nessun valore)
percorso-sintetico.md i quattro passi di sintesi con schemi, pagine e concetti
glossario.md sigle e simboli con rimando alla pagina pertinente
tabelle-indice.md le 15 tabelle e 12 equazioni → pagina dove stanno
figure-indice.md le figure per sezione (GENERATA dallo script)
bibliografia.md i 63 riferimenti (GENERATA dallo script), con link alle schede raw/fonti/
concepts/ meccanismi e concetti (ROP, grafting-from, ACQ, aggregati H/J, band gap, irreversibilità EC, P3HT, fluorescenza…)
compounds/ un file per composto numerato o polimero/campione, spezzato per argomento (dpp-2, dpp-2-voltammetria, copolimeri-*, bottle-brush-*)
techniques/ NMR, FT-IR, GPC, UV-Vis, fluorescenza, DSC, CV (hub + cv-teoria, cv-analisi-onset, cv-risultati)
figures/ note GENERATE dallo script (una per figura, non modificare a mano)
analyses/ query salvate; difetti-noti (hub) e sottopagine difetti-*; verifica-citazioni, riassunto-vs-tesi
```
Niente pagine `source` per capitolo (duplicherebbero la tesi) e niente `entities/` generica. Le pagine **hub** (es. `copolimeri-3a-3b-3c`, `fluorescenza`) hanno una sezione `## Struttura` con le **sottopagine**, che iniziano con «_Parte di [[hub]]_» e hanno un proprio `tesi_loc`. Le pagine di navigazione (`campioni`, `percorso-sintetico`, `glossario`, indici) contengono rimandi, non dati.
## Convenzioni pagine
- File `kebab-case.md`. Composti: `composto-32.md` con `aliases` (nome, codice come `3.1b`). Figure: `fig-026.md`.
- Link: wikilink `[[nome-file]]`, `[[nome|testo]]` per alias. Riferimenti bibliografici: `[[01-bao-2020|1]]` (link alla scheda in `raw/fonti/`; usare il numero della tesi).
- Frontmatter YAML:
```yaml
---
title: Titolo leggibile
type: concept | compound | technique | analysis | overview | figure
tags: [tag1, tag2]
created: YYYY-MM-DD
updated: YYYY-MM-DD
tesi_loc: "§4.2 r.812-840" # dove la tesi sostiene il contenuto
refs: [3, 12] # numeri della bibliografia citati (opzionale)
figures: ["fig-026"] # opzionale
status: draft | stable
---
```
- **Ogni affermazione non banale cita la posizione**: `(§4.2, Fig. 27, r.812)` e, se serve, il riferimento `[[01-bao-2020|1]]`. Niente affermazioni non riconducibili a `raw/`.
- Inferenze dell'LLM marcate _(inferenza)_. Se non sai, dillo; non inventare fonti o dati.
- Ogni pagina termina con `## Collegamenti`. Nessuna pagina orfana. Crea una pagina concetto solo se serve a ≥2 sezioni/figure o è centrale.
## Regole sui dati scientifici
- **Copia alla lettera**: valori, unità, condizioni (T, P, solvente, tempo, carico, resa/conversione), formule LaTeX, formule chimiche, nomi di composti e sigle (DPP, 3HT, ROP, PCL, ACQ, CV, GPC…) restano come nella tesi. Non tradurre, riassumere, convertire o arrotondare dati sperimentali. Decimali con la virgola come in `tesi.md`; eccezioni: Abstract, dati NMR, liste, DOI.
- **Procedure sperimentali (cap. 3):** non riscriverle; la wiki rimanda al paragrafo (`tesi_loc`) e riporta solo i dati necessari alla pagina.
- **Sospetti errori di estrazione** (formula, tabella, valore): confronta con la fonte originale se disponibile, **segnala e non correggere**. Valori da condizioni diverse non vanno confrontati senza dirlo.
- **Sicurezza:** niente procedure di sintesi pericolose oltre quanto riporta la tesi; riporta i pericoli noti dei reagenti se citati.
## Figure
- `wiki/figures/*.md`, `wiki/figure-indice.md` e `wiki/bibliografia.md` sono **derivate**: `python scripts/gen_figures.py` (figure e indice) e `python scripts/gen_bibliografia.py` le rigenerano da `raw/immagini.json`, riportando ogni campo (didascalie, descrizioni e testo visibile per pannello, composti, concetti, contesto, righe di citazione, note di revisione) e, in fondo a ogni nota, le pagine che la usano (link o embed) senza riassumere. Eccezione alla regola "solo l'LLM scrive in `wiki/`"; non modificarle a mano, correggi `raw/immagini.json` solo se l'utente lo chiede e poi rigenera.
- **Attendibilità:** solo `caption_printed` è testo della tesi. Descrizioni, `visible_text` e didascalia generata derivano dall'immagine e non sono verificati: valori letti da grafici o schemi (rese, picchi, potenziali) vanno confermati sull'immagine/tesi prima di riusarli.
- Le pagine concept/compound/technique richiamano le figure con `[[fig-026]]` o con l'embed `![[immagini/<file>]]` (da `panels[].embed`). Le figure con `flags` o `review_notes` (Figure 26, 27, 29, 58, 66, 67, 69 hanno discrepanze didascalia/testo; anche la 62, la 76, la 52 e lo schema `fig-x-94f3f4` hanno note) vanno citate con l'avvertenza.
- `compounds` nel catalogo sono numeri della tesi; `concepts` sono slug candidati, non nomi definitivi: crea la pagina solo se la regola dei ≥2 usi è soddisfatta.
## Regole di organizzazione dei dati
- Pagine sopra ~1.500 parole vanno spezzate per argomento in hub + sottopagine (es. `ciclovoltammetria` = procedura, `cv-teoria`, `cv-analisi-onset`; i risultati in `cv-risultati`); i link in entrata puntano alla sottopagina che contiene la tabella o l'equazione.
- Una tabella o un dato sta in **una sola pagina**: quella dove la tesi lo discute (per es. Tab. 5 in `dpp-2`, Tab. 14-15 in `cv-risultati`). Le altre pagine rimandano con wikilink; fanno eccezione i riepiloghi comparativi (es. in `uv-vis-fluorescenza`), che citano la tabella di origine.
- Le pagine riorganizzano per argomento, non per capitolo, senza eliminare informazioni: procedure con quantità in tabella, condizioni, assegnazioni e ragionamenti della tesi restano, con `tesi_loc` e righe.
- Composti sperimentali: `dpp-1`, `dpp-2`, `copolimeri-3a-3b-3c`, `bottle-brush-3-x`. La numerazione dei composti del cap. 1 (1-48) è un'altra: non confonderle.
## Difetti noti della tesi
Raccolti in `wiki/analyses/difetti-noti.md` (hub) e nelle sottopagine `difetti-bibliografia`, `difetti-figure`, `difetti-dati` (le altre pagine rimandano all'hub o alla sottopagina): bibliografia con voce 44 duplicata della 1; voci 20, 22, 36, 54 incomplete o con testo spurio; voce 55 in formato RIS grezzo (e citata per dati del P3HT); DOI errati nelle voci 47, 48 (corretto 10.1080/15583720802231833) e 49; voci 47, 49, 54 non identificabili; PDI di 3b (Tab. 9) incoerente con Mw/Mn; % DPP di 3c (35 vs 36); bandgap delle Conclusioni (3,42-4,30 eV) incoerente con Tab. 14; tre riferimenti incrociati rotti in §3.3; discrepanze figura/testo (anche Fig. 62, 76). Il segnaposto «paragrafo XX (XX)» e altri difetti della versione precedente non risultano più presenti.
## Workflow
### Ingest (per capitolo, non per fonte)
Ordine: Abstract/Introduzione/Scopo (concepts, research question) → Procedure sperimentali (compounds, techniques) → Discussione (dati, overview) → Conclusioni → bibliografia.
1. Leggi per intero il capitolo/sezione in `raw/tesi.md` e le figure collegate (`sections[].figure_ids`).
2. Dopo il primo capitolo, discuti 3–5 takeaway e chiedi cosa enfatizzare; poi procedi a blocchi senza chiedere ogni volta.
3. Crea/aggiorna `concepts/`, `compounds/`, `techniques/`; segnala discrepanze in `analyses/difetti-noti.md`.
4. Aggiorna `wiki/tesi.md` (mappa), `overview.md` se la sintesi cambia, `bibliografia.md` se tocchi riferimenti.
5. Rigenera le figure se `raw/immagini.json` è cambiato.
6. Aggiorna `index.md` e appendi a `log.md`.
### Riallineamento a una nuova versione della tesi
Su richiesta dell'utente, quando `raw/` riceve una nuova versione (docx):
1. Converti il docx in `raw/tesi.md` con le stesse convenzioni (anchor `_Toc`, citazioni `<sup>[N](#ref-N)</sup>`, tabelle pipe, immagini `immagini/<hash>`), riusando il markup esistente dove il testo è invariato. Le figure vettoriali del docx si rendono (es. LibreOffice) e si confrontano con i file esistenti: i file invariati restano, solo i nuovi si aggiungono, con nome = hash del file.
1b. Verifica le immagini contro il docx, non solo il testo: converti il docx in PDF (LibreOffice), estrai le figure e confrontale con `raw/immagini/`; per i grafici Excel/Word nativi confronta i dati di `word/charts/chartN.xml` con quelli dell'immagine (una figura può restare vecchia anche se testo e tabelle sono aggiornati: caso Fig. 72-74, 46, 54, 63).
2. Aggiorna `raw/immagini.json` (numerazione, righe, nuove figure con descrizioni non verificate), `raw/bibliografia.json` e le schede in `raw/fonti/` (rinomina `NN-…`, righe di citazione; nuove voci da Crossref); rigenera `wiki/figures/` e `wiki/bibliografia.md`.
3. Rimappa nella wiki righe, numeri di figura, tabella e riferimento, poi rivedi pagina per pagina i contenuti cambiati (valori, tabelle, formule) e aggiorna `difetti-noti`, `dati.md`, `tesi.md`, `index.md`, `log.md`. Pagine derivate obsolete si cancellano solo con conferma.
### Query
Leggi `index.md` e le pagine rilevanti (non rileggere `raw/` se la wiki basta); rispondi in italiano con citazioni `[[...]]` e `tesi_loc`; proponi di salvare in `analyses/` le risposte durevoli; log `query`.
### Lint (su richiesta o ogni ~10 ingest)
Esegui `python scripts/lint.py` (link rotti, pagine orfane, frontmatter, coerenza `figures`/`refs` con il corpo, figure citate per numero senza link né embed, figure senza pagina tematica, numeri non presenti in `raw/tesi.md`, slug concetto candidati). Poi controlli semantici a mano: contraddizioni, valori che non tornano con `raw/tesi.md`, pagine oltre ~1.500 parole da spezzare. Riporta; le correzioni meccaniche (spaziatura, frontmatter) si applicano subito, il resto dopo conferma. Log `lint`.
## index.md e log.md
- `index.md`: catalogo per categoria (Overview e navigazione, Tesi e bibliografia, Concetti, Composti, Tecniche, Figure, Analisi), voci `- [[pagina]] — riga di sintesi`; le sottopagine sono annidate sotto il loro hub; conteggi aggiornati. Le figure (80 della tesi e 11 del riassunto) non si elencano una per una: una riga con link alla cartella e il conteggio per tipo.
- `log.md`: append-only, mai riscrivere le voci vecchie. Prefisso `## [YYYY-MM-DD] tipo | titolo` con tipo ∈ `setup, ingest, query, lint, schema`. Parsing: `grep "^## \[" log.md | tail -5`.
## Regole d'oro
- Mai modificare `raw/`. Mai inventare dati, fonti o citazioni.
- Prima di cancellare o rinominare pagine chiedi conferma e aggiorna i link in entrata.
- Cambi allo schema: proponi, attendi ok, poi registra in `log.md` (tipo `schema`).
- Lavoro proporzionato: nessuna pagina "per dopo".