Rapport structure depuis n'importe quelle source (PDF, page web, code, image, notebook, donnees). Auto-detecte le type et produit une analyse detaillee.
Genere un rapport complet et structure a partir de n'importe quelle source.
$0 : chemin local (fichier ou dossier) ou URL (http/https)Determiner le type de source :
Si URL ($0 commence par http) :
.pdf → telecharger avec curl -sL -o /tmp/_content_report.pdf "$0", traiter comme PDFWebFetch pour recuperer le contenu HTML converti en markdownSi chemin local :
.pdf → traiter comme PDF (voir etape 2a).ipynb → utiliser Read natif (support notebooks).png, .jpg, .jpeg, .gif, .svg, .webp → utiliser natif (vision multimodale)Read.py → utiliser Read + analyse structure (voir etape 2c).md, .txt, .rst, .tex → utiliser Read natif.yaml, .yml, .json, .toml → utiliser Read natif.csv, .tsv → utiliser Read + head pour aperculs -la + Glob pour inventaire, puis Read sur les fichiers clesfile --mime-type "$0" pour identifier, puis ReadMeme procedure que le skill /pdf-read :
/home/infres/tandriam-25/fil_rouge/venv/bin/python << 'PYEOF'
import fitz, json, sys
PDF_PATH = sys.argv[1]
doc = fitz.open(PDF_PATH)
meta = doc.metadata
toc = doc.get_toc()
print(json.dumps({
"title": meta.get("title", ""),
"author": meta.get("author", ""),
"pages": doc.page_count,
"toc": [{"level": t[0], "title": t[1], "page": t[2]} for t in toc[:30]]
}, indent=2, ensure_ascii=False))
# Extraire les 40 premieres pages
for i in range(min(40, doc.page_count)):
page = doc[i]
text = page.get_text()
images = page.get_images(full=True)
drawings = page.get_drawings()
has_visual = len(images) > 0 or len(drawings) > 5
if has_visual:
pix = page.get_pixmap(dpi=150)
pix.save(f"/tmp/_cr_page_{i}.png")
tables_md = []
try:
for t in page.find_tables().tables:
md = t.to_markdown()
if any(c for row in t.extract() for c in row if c and c.strip()):
tables_md.append(md)
except Exception:
pass
print(json.dumps({
"page": i+1, "text": text[:2000],
"images": len(images), "tables": tables_md,
"rendered": has_visual
}, ensure_ascii=False))
doc.close()
PYEOF
Pour les pages rendues, utiliser Read sur /tmp/_cr_page_N.png pour vision.
Utiliser WebFetch avec le prompt :
"Extraire le contenu complet de cette page en preservant la structure : titres, paragraphes, listes, code, tableaux, liens. Ne pas resumer."
Read le fichier entierementgrep -n "^class \|^def \|^import \|^from " "$0"
wc -l "$0"grep -c '\"\"\"' "$0"Utiliser Read sur le fichier image. Claude voit l'image visuellement et peut la decrire.
ls -la "$0" pour lister le contenuGlob pour trouver les fichiers par pattern (**/*.py, **/*.md, etc.)Produire TOUJOURS ce format :
# Content Report: [nom du fichier ou URL]
## Source Info
| Propriete | Valeur |
|-----------|--------|
| Type | PDF / Web / Python / Image / Notebook / ... |
| Source | [chemin ou URL] |
| Taille | [taille du fichier si local] |
| Date | [date de modification si local] |
## Summary
[2-5 phrases resumant le contenu principal]
## Key Content
[Contenu principal organise par sections/chapitres]
## Figures & Diagrams
[Description des elements visuels, ou "Aucun detecte"]
## Tables
[Tableaux en markdown, ou "Aucun detecte"]
## Structure
[Pour PDF: TOC. Pour code: hierarchie classes/fonctions. Pour web: structure des headings. Pour dossier: arborescence]
## References
[Liens, citations, imports, dependances trouves dans le contenu]
## Notes
[Observations : qualite, problemes, contenu manquant, encodage]
rm -f /tmp/_content_report.pdf /tmp/_cr_page_*.png