Commit iniziale

This commit is contained in:
2026-07-15 18:06:21 +02:00
commit 671bd9d460
18 changed files with 264 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
# stato locale dell'app llm-wiki (hash/timestamp di sync, non contenuto)
# la cartella resta nel repo (.gitkeep) cosi' un clone fresco la ritrova gia' pronta
.llm-wiki/*
!.llm-wiki/.gitkeep
# preferenze Obsidian locali (workspace, plugin UI, non contenuto della wiki)
.obsidian/*
!.obsidian/.gitkeep
# scarti tipici di un output MinerU non ancora ripulito prima dell'ingest
# (vedi CLAUDE.md: da non copiare in raw/sources/, ma per sicurezza li ignoriamo
# nel caso finiscano nel repo prima della pulizia)
*_layout.pdf
*_span.pdf
*_middle.json
*_model.json
**/auto/
# OS / editor
.DS_Store
Thumbs.db
*.tmp
~$*
View File
View File
+5
View File
@@ -0,0 +1,5 @@
# AGENTS.md
Le istruzioni operative per questo repository sono in [CLAUDE.md](./CLAUDE.md) — leggilo prima di lavorare qui.
Questo file esiste solo perché alcuni agent (es. Codex CLI) cercano `AGENTS.md` invece di `CLAUDE.md`; il contenuto è identico, tenuto in un solo posto per evitare che i due file divergano.
+84
View File
@@ -0,0 +1,84 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Cos'è questo repository
Non è un progetto software: è un vault Obsidian gestito con il pattern **llm-wiki** (raw → wiki, sorgenti immutabili → pagine sintetizzate), applicato a un dominio di ingegneria meccanica. Non ci sono build/lint/test: l'unico "lavoro" è ingest di documenti grezzi e mantenimento delle pagine wiki.
Il layer `.llm-wiki/` (project.json, file-snapshot.json, file-change-queue.json, history/) è gestito da un'app esterna che traccia le modifiche a `purpose.md`, `schema.md` e `wiki/*.md`. Non modificare questi file JSON a mano: si aggiornano da soli quando l'app rileva un cambiamento.
## I tre livelli
1. **`raw/`** — sorgenti immutabili. Non modificare mai un file dentro `raw/` dopo l'ingest: se un dato è sbagliato o mal estratto, la correzione va fatta nella pagina wiki (con nota sul problema), non nel raw.
- `raw/sources/` — un sottocartella per documento sorgente (vedi convenzione sotto)
- `raw/assets/` — immagini/scan/figure autonome non legate a un output MinerU
2. **`wiki/`** — pagine generate/curate da Claude, organizzate per tipo secondo `schema.md` (`entities/`, `concepts/`, `sources/`, `queries/`, `comparisons/`, `synthesis/`, più `index.md`, `log.md`, `overview.md`).
3. **`purpose.md` / `schema.md`** — regole. `purpose.md` definisce l'ambito e le domande guida del progetto; `schema.md` definisce come sono strutturate le pagine e le convenzioni di naming/frontmatter. Leggi entrambi prima di ogni sessione di ingest.
## Convenzione per `raw/sources/`
Ogni documento sorgente vive in `raw/sources/<slug-documento>/`, dove `<slug-documento>` è un kebab-case descrittivo (es. `iso-6336-gear-rating`, `catalogo-skf-cuscinetti-2024`). Dentro:
- l'output originale così com'è (markdown + eventuali `images/`, `*_content_list.json`, ecc.) — **non spostare o rinominare i file interni** prodotti dal parser, altrimenti si rompono i link relativi alle immagini
- se il documento arriva come PDF puro senza markdown, il PDF stesso
Questa cartella è la unità minima di provenienza: ogni claim scritto in `wiki/` deve poter essere ricondotto a uno slug in `raw/sources/`.
## Ingest di un nuovo documento in `raw/`
Quando trovi materiale nuovo (o non ancora processato) in `raw/sources/`:
1. **Identifica il tipo di documento**: norma/standard (ISO, UNI, DIN...), datasheet/catalogo produttore, paper/articolo tecnico, capitolo di libro, report interno, manuale. Il tipo guida quali pagine wiki creare (uno standard e un datasheet produttore, per esempio, diventano entity diverse con campi diversi).
2. **Valuta la qualità dell'estrazione** prima di fidarti del testo (vedi sezione MinerU sotto). Se il documento è scansionato o processato in modalità pipeline, non trattare l'OCR come verità assoluta senza controllo.
3. **Estrai entità e concetti**: componenti/materiali/norme/produttori → `wiki/entities/`; fenomeni, metodi di calcolo, teorie → `wiki/concepts/`; il documento stesso → una pagina in `wiki/sources/`.
4. **Segui `schema.md`** per frontmatter, naming e wikilink `[[slug]]`. Non inventare tipi di pagina o convenzioni diverse.
5. **Aggiorna `wiki/index.md`** (nuove voci) e **`wiki/log.md`** (una riga sotto la data odierna che descrive cosa hai ingerito e le pagine toccate). Questi due si aggiornano **ad ogni ingest**, senza bisogno che l'utente lo chieda.
6. Se il documento contraddice materiale già presente, segui la sezione "Contradiction Handling" di `schema.md` (nota sulla pagina concept/entity coinvolta, crea/aggiorna una query page, risolvi con una synthesis solo quando hai abbastanza evidenza).
**`wiki/overview.md` non si aggiorna ad ogni ingest** (diventerebbe rumoroso e incoerente riscritto un documento alla volta). Aggiornalo solo a checkpoint più ampi:
- l'utente lo chiede esplicitamente ("aggiorna l'overview"),
- dopo un batch di più documenti correlati appena ingeriti,
- quando emerge un cambiamento reale nella thesis/scope del progetto (vedi `purpose.md`).
In quei casi riscrivi `overview.md` come sintesi corrente dello stato della wiki (cosa copre, cosa manca, thesis aggiornata), non come changelog — quello è il ruolo di `log.md`.
## Note su MinerU (backend "pipeline")
Molti documenti in `raw/sources/` arrivano pre-processati con **MinerU in modalità pipeline** (parsing layout+OCR tradizionale, non VLM). Questo backend è più leggero ma ha limiti noti di cui tenere conto durante l'ingest:
- **Ordine di lettura**: su layout multi-colonna o tabelle complesse l'ordine dei blocchi estratti può essere sbagliato. Se un paragrafo non ha senso nel punto in cui compare, verifica se appartiene a una colonna/sezione diversa prima di citarlo.
- **Formule**: convertite in LaTeX via OCR, possono contenere simboli sbagliati (es. confusione tra `l`/`1`/`I`, apici/pedici persi, segni persi). Non riportare una formula tecnica in una pagina wiki senza controllo visivo minimo di plausibilità (unità di misura coerenti, termini noti).
- **Tabelle**: rese come markdown/HTML, possono avere celle disallineate o merge di celle perse. Trattare i valori numerici tabellari come "da verificare" se la tabella sembra irregolare.
- **Header/footer/note a piè di pagina**: a volte finiscono interfogliati nel corpo del testo. Non trattarli come parte del discorso principale.
- **Immagini**: estratte come crop in `images/` e referenziate con path relativi nel `.md` — non toccare i path.
Regola pratica: quando una pagina wiki riporta un dato numerico, una formula o una specifica tecnica presa da un documento in pipeline mode, se il punto è dubbio aggiungi una nota inline tipo `(da verificare: OCR pipeline mode, layout tabellare irregolare)` invece di ometterla silenziosamente o presentarla come certa.
### Checklist import da output MinerU grezzo
Un output MinerU tipico (cartella `<nome>/auto/`) contiene molti file: solo una parte va copiata in `raw/sources/<slug>/`.
**Tenere:**
- `<nome>.md` — testo
- `<nome>_content_list.json` (o `_v2`, sceglierne **uno solo**) — blocchi strutturati con `page_idx`/`img_path`, utile per citare pagine
- `images/` — cartella intera, referenziata dal `.md` con path relativi tipo `images/<hash>.jpg`
- `<nome>_origin.pdf` — opzionale, solo se vuoi poter riaprire il PDF originale per verificare formule/tabelle dubbie (spesso decine di MB: valuta se vale lo spazio)
**Scartare** (debug/intermedi della pipeline, senza valore per la wiki, spesso centinaia di MB in totale):
- `_layout.pdf`, `_span.pdf` — PDF di debug con overlay dei bounding box
- `_middle.json` — struttura intermedia pre-assemblaggio, ridondante rispetto a `content_list.json`
- `_model.json` — output grezzo dei modelli di detection
**Passaggi:**
1. Crea `raw/sources/<slug-kebab-case>/` (lo slug identifica il documento, es. `costruzioni-di-macchine-9` — non serve rispecchiare il nome file originale)
2. Copia dentro solo i file "da tenere", eliminando il livello intermedio `auto/`
3. **Non rinominare** `images/` né i file interni copiati: i path relativi (`images/<hash>.jpg`) non dipendono dal nome della cartella padre, quindi rinominare la cartella-slug è sicuro, rinominare i singoli file è inutile e rischioso se non si aggiornano anche i riferimenti nel `.md`/`.json`.
## Regole generali
- Non modificare mai i file dentro `raw/`.
- Non modificare i file JSON dentro `.llm-wiki/`.
- Ogni pagina wiki nuova va aggiunta a `wiki/index.md`; ogni sessione di lavoro va loggata in `wiki/log.md`.
- Usa `[[wikilink]]` per collegare le pagine tra loro, non link markdown relativi.
- Lingua di default per le pagine wiki: italiano (i nomi di tipo/frontmatter restano in inglese come da `schema.md`, es. `type: entity`).
+33
View File
@@ -0,0 +1,33 @@
# Project Purpose
## Goal
<!-- Cosa stai cercando di capire o costruire, in ambito ingegneria meccanica? Es: "Costruire una base di conoscenza su dimensionamento di ingranaggi e cuscinetti per un progetto di riduttore" -->
## Key Questions
<!-- Le domande concrete che guidano l'ingest: cosa deve poter rispondere questa wiki? Es: "Quali norme ISO si applicano al calcolo di durata di un cuscinetto a rulli?" -->
1.
2.
3.
## Scope
**In scope:**
- <!-- es. componenti/norme/materiali/fenomeni specifici da coprire -->
**Out of scope:**
- <!-- es. argomenti adiacenti volutamente esclusi, per non disperdere l'ingest -->
## Domain conventions
- **Lingua pagine wiki:** italiano (default, vedi CLAUDE.md)
- **Fonti tipiche:** norme (ISO/UNI/DIN...), datasheet/cataloghi produttore, paper, manuali — spesso pre-processate con MinerU in modalità pipeline (vedi CLAUDE.md per i limiti di questo backend)
- **Unità di misura:** <!-- es. SI, salvo dove la fonte usa unità imperiali -->
## Thesis
<!-- La tua ipotesi/conclusione corrente, da aggiornare man mano che l'ingest procede -->
> TBD
View File
View File
+91
View File
@@ -0,0 +1,91 @@
# Wiki Schema
## Raw Layer
- `raw/sources/<slug-documento>/` — one subfolder per source document, kebab-case slug (e.g. `iso-6336-gear-rating`, `catalogo-skf-cuscinetti-2024`). Contains the document as produced by ingestion (MinerU markdown output + `images/` + json sidecars, or a bare PDF). Never rename or move files inside a source folder — relative image links depend on the original layout.
- `raw/assets/` — standalone images/scans/figures not tied to a specific ingested document.
- Files under `raw/` are immutable once ingested. If extracted content is wrong (OCR error, bad table), fix it in the wiki page with a note — never edit the raw file.
- Every claim in `wiki/` must be traceable to a slug in `raw/sources/`.
## Page Types
| Type | Directory | Purpose |
|------|-----------|---------|
| entity | wiki/entities/ | Named things (people, tools, organizations, datasets) |
| concept | wiki/concepts/ | Ideas, techniques, phenomena, frameworks |
| source | wiki/sources/ | Papers, articles, talks, books, blog posts |
| query | wiki/queries/ | Open questions under active investigation |
| comparison | wiki/comparisons/ | Side-by-side analysis of related entities |
| synthesis | wiki/synthesis/ | Cross-cutting summaries and conclusions |
| overview | wiki/ | High-level project summary (one per project) |
## Naming Conventions
- Files: `kebab-case.md`
- Entities: match official name where possible (e.g., `openai.md`, `gpt-4.md`)
- Concepts: descriptive noun phrases (e.g., `chain-of-thought.md`)
- Sources: `author-year-slug.md` (e.g., `wei-2022-cot.md`)
- Queries: question as slug (e.g., `does-scale-improve-reasoning.md`)
## Frontmatter
All pages must include YAML frontmatter:
```yaml
---
type: entity | concept | source | query | comparison | synthesis | overview
title: Human-readable title
tags: []
related: []
created: YYYY-MM-DD
updated: YYYY-MM-DD
---
```
Source pages also include:
```yaml
authors: []
year: YYYY
url: ""
venue: ""
```
Any page that draws on a source processed via OCR/layout extraction (e.g. MinerU pipeline mode) should reference it and, where a specific fact is uncertain (garbled formula, misaligned table, ambiguous reading order), mark it inline rather than presenting it as verified:
```yaml
raw_source: raw-slug # slug in raw/sources/ this page is derived from
confidence: high | medium | low
```
Use `confidence: low` or `medium` for any numeric value, formula, or spec pulled from a document with known extraction issues, until it's been cross-checked.
## Index Format
`wiki/index.md` lists all pages grouped by type. Each entry:
```
- [[page-slug]] — one-line description
```
## Log Format
`wiki/log.md` records activity in reverse chronological order:
```
## YYYY-MM-DD
- Action taken / finding noted
```
## Cross-referencing Rules
- Use `[[page-slug]]` syntax to link between wiki pages
- Every entity and concept should appear in `wiki/index.md`
- Queries link to the sources and concepts they draw on
- Synthesis pages cite all contributing sources via `related:`
## Contradiction Handling
When sources contradict each other:
1. Note the contradiction in the relevant concept or entity page
2. Create or update a query page to track the open question
3. Link both sources from the query page
4. Resolve in a synthesis page once sufficient evidence exists
View File
View File
View File
+13
View File
@@ -0,0 +1,13 @@
# Wiki Index
## Entities
## Concepts
## Sources
## Queries
## Comparisons
## Synthesis
+5
View File
@@ -0,0 +1,5 @@
# Research Log
## 2026-07-15
- Project created
+10
View File
@@ -0,0 +1,10 @@
---
type: overview
title: Project Overview
tags: []
related: []
---
# Overview
<!-- Provide a high-level summary of what this wiki covers and its current state. Update regularly as understanding deepens. -->
View File
View File
View File