- Sostituite 135 occorrenze di clients/{client}/ con {project}/
- Aggiornati parametri: client_path → project_path in 11 skills
- README.md aggiornato con nuova convenzione {project}/
- Struttura cartelle ora agnostica: compatibile con clients/, projects/, o qualsiasi cartella
- Maggiore flessibilità per diversi sistemi e workflow
Vantaggi:
✅ Compatibile con qualsiasi struttura cartelle
✅ Non impone convenzione 'clients/'
✅ Utile per progetti interni, campagne, o clienti
✅ Più generale e riutilizzabile
10 KiB
| name | description |
|---|---|
| agency-archivist | Gestire archivi di risorse (immagini, video, documenti) per progetti agency. Usare quando: (1) cliente invia zip/URL di asset, (2) estrarre e organizzare risorse in {project}/assets/, (3) catalogare risorse con descrizioni e tag, (4) cercare risorse per altre skill, (5) richiedere risorse mancanti in modo proattivo. |
Agency Archivist — Gestione Risorse e Asset
Gestisce upload, estrazione, catalogazione e ricerca di risorse multimediali per i progetti della suite.
Quando Usare
- Upload risorse: Cliente fornisce zip, URL o cartella con asset
- Estrazione archivi: Decomprimere zip/tar in struttura organizzata
- Catalogazione: Creare catalogo descrittivo delle risorse
- Ricerca risorse: Trovare asset specifici per altre skill
- Proattivo: Segnalare risorse mancanti e richiedere integrazione
Struttura Archivio Progetti
Ogni progetto ha una cartella dedicata per le risorse:
{project}/
├── assets/ ← Gestito da agency-archivist
│ ├── archive/ # Archivi originali (zip, tar, rar)
│ ├── images/ # Immagini estratte
│ │ ├── logo/ # Loghi aziendali
│ │ ├── prodotto/ # Foto prodotto
│ │ ├── team/ # Foto team/ufficio
│ │ └── stock/ # Immagini generiche
│ ├── videos/ # Video estratti
│ │ ├── promo/ # Video promozionali
│ │ ├── tutorial/ # Tutorial/dimostrazioni
│ │ └── raw/ # Footage grezzo
│ ├── documents/ # Documenti di riferimento
│ │ ├── brand/ # Linee guida brand
│ │ ├── product/ # Schede prodotto
│ │ └── legal/ # Documenti legali
│ └── catalog.md # Catalogo generato (indice centrale)
├── knowledge/
├── research/
├── strategy/
├── design/
├── content/
├── ops/
└── published/
Processo
Fase 1: Ricezione Archivi
Obiettivo: Accettare input da diverse fonti.
Input Supportati:
| Tipo | Formato | Esempio | Azione |
|---|---|---|---|
| Zip allegato | .zip, .tar.gz, .rar |
brand_assets.zip |
Estrai in assets/archive/ |
| URL HTTP/HTTPS | Link diretto | https://example.com/assets.zip |
Download + estrai |
| URL FTP | FTP server | ftp://server.com/file.zip |
Download + estrai |
| Cartella locale | Path filesystem | /home/user/assets/ |
Copia in assets/ |
Procedura:
- Ricevi input: Path file, URL o allegato
- Valida formato: Verifica estensione supportata
- Crea cartella archive:
{project}/assets/archive/ - Copia/Download: Sposta file in archive/
- Log operazione: Registra in
{project}/ops/run_log.md
Esempio Log:
## 2026-03-10 23:30 — Archivist Upload
- **Input:** `brand_assets.zip` (allegato)
- **Destinazione:** `{project}/assets/archive/`
- **Dimensioni:** 15.4 MB
- **Status:** ✅ Completato
Fase 2: Estrazione Archivi
Obiettivo: Decomprimere e organizzare risorse per tipologia.
Script: scripts/extract_archive.js
Procedura:
- Leggi archivio: Identifica formato (zip, tar, rar)
- Estrai temporaneo: Decomprimi in cartella temporanea
- Analizza contenuti: Per ogni file:
- Rileva tipo (immagine, video, documento)
- Estrai metadata (dimensioni, risoluzione, formato)
- Assegna categoria (logo, prodotto, team, etc.)
- Organizza: Copia file in sottocartelle appropriate
- Pulisci: Elimina archivio originale (opzionale, su conferma)
- Log: Registra file estratti
Categorizzazione Automatica:
| Parola chiave nel nome | Cartella destinazione |
|---|---|
logo, brand, marchio |
images/logo/ |
prodotto, product, item |
images/prodotto/ |
team, staff, ufficio, office |
images/team/ |
sfondo, background, texture |
images/stock/ |
video, promo, reel |
videos/promo/ |
tutorial, howto, demo |
videos/tutorial/ |
brand, guideline, manual |
documents/brand/ |
scheda, datasheet, spec |
documents/product/ |
Fallback: File non categorizzabili → cartella radice (images/, videos/, documents/)
Fase 3: Catalogazione Risorse
Obiettivo: Generare catalogo descrittivo per ricerca futura.
Script: scripts/scan_resources.js + scripts/generate_catalog.js
Due Passate di Analisi:
Passata 1: Metadata Base (Sempre)
Per ogni risorsa, estrai:
- Nome file
- Estensione
- Dimensione (KB/MB)
- Tipo MIME
- Data creazione/modifica
- Risoluzione (per immagini/video)
Passata 2: Analisi Contenuto (Se Modello Supporta Vision)
Per immagini e video:
- Descrizione semantica (cosa raffigura)
- Colori dominanti
- Presenza testo/logo
- Contesto (interno/esterno, prodotto/persone)
- Tag automatici
Output: {project}/assets/catalog.md
Fase 4: Generazione Catalogo
Obiettivo: Creare indice ricercabile delle risorse.
Formato Catalogo:
# Asset Catalog — {Nome Cliente}
_Generato: {data} | Totale: {N} risorse_
## Riepilogo
| Tipo | Count | Dimensione Totale |
|------|-------|-------------------|
| Immagini | 18 | 24.5 MB |
| Video | 3 | 156 MB |
| Documenti | 5 | 2.1 MB |
---
## Immagini ({count})
| File | Tipo | Dimensioni | Risoluzione | Descrizione | Tag | Use Case |
|------|------|------------|-------------|-------------|-----|----------|
| `logo_primary.png` | PNG | 45 KB | 512x512 | Logo aziendale, sfondo trasparente | #logo #brand #trasparente | Header sito, social profile |
| `prodotto_01.jpg` | JPG | 2.3 MB | 3000x2000 | Foto prodotto su sfondo bianco | #prodotto #whitebg #ecommerce | E-commerce, social post |
| `team_photo.jpg` | JPG | 4.1 MB | 4000x3000 | Foto team (8 persone, ufficio luminoso) | #team #ufficio #people | About page, LinkedIn |
---
## Video ({count})
| File | Tipo | Dimensioni | Durata | Risoluzione | Descrizione | Tag | Use Case |
|------|------|------------|--------|-------------|-------------|-----|----------|
| `promo_30sec.mp4` | MP4 | 45 MB | 0:30 | 1920x1080 | Video promozionale prodotto, musica upbeat | #promo #prodotto #video | Social ads, homepage |
---
## Documenti ({count})
| File | Tipo | Dimensioni | Descrizione | Tag | Use Case |
|------|------|------------|-------------|-----|----------|
| `brand_guidelines.pdf` | PDF | 1.2 MB | Linee guida brand (colori, font, logo) | #brand #guidelines #pdf | Design system, coerenza visiva |
---
## Tag Globali
#logo #prodotto #team #brand #ufficio #milano #ecommerce #b2b
---
## Note
- **Ultimo aggiornamento:** {data}
- **Archivi originali:** `assets/archive/`
- **Per richiedere risorse:** Contatta @agency-archivist
Integrazione con Altre Skills
Come le Altre Skill Usano Archivist
Pattern di Ricerca:
**Prima di eseguire task che richiedono asset:**
1. Leggi `{project}/assets/catalog.md`
2. Cerca risorse per tag/tipo/descrizione
3. Se trovi: Usa path completo
4. Se NON trovi: "🔒 Bloccato: servono [descrizione risorse]"
- Tagga: @agency-archivist
- Descrivi: Cosa manca (es. "foto prodotto su sfondo bianco")
- Specifica: Requisiti tecnici (es. "minimo 1000x1000px, JPG")
Comportamento Proattivo di Archivist
Quando una skill segnala risorse mancanti:
- Analizza richiesta: Cosa serve esattamente?
- Verifica catalogo: Conferma che manca davvero
- Risposta strutturata:
⚠️ **Risorse Mancanti** Per eseguire [task], servono: - [ ] Foto prodotto (sfondo bianco, minimo 1000x1000px) - [ ] Logo aziendale (PNG trasparente) - [ ] Brand colors (codici esadecimali) **Vuoi caricare queste risorse ora?** Opzioni: 1. Allega zip/URL con gli asset 2. Descrivi cosa hai a disposizione 3. Salta per ora (usa placeholder) - Dopo upload: Esegui re-scan e aggiorna catalogo
- Sblocca skill: Notifica: "✅ Risorse pronte, puoi procedere"
Script
scripts/extract_archive.js
Input: Path archivio o URL
Output: Risorse estratte in assets/
node scripts/extract_archive.js <path_or_url> --client <client_name>
Opzioni:
--keep-archive: Mantieni file originale (default: elimina dopo estrazione)--verbose: Log dettagliato--dry-run: Simula senza estrazione
scripts/scan_resources.js
Input: Cartella assets/
Output: Metadata JSON in assets/.metadata.json
node scripts/scan_resources.js --client <client_name> --pass 1|2
Opzioni:
--pass 1: Solo metadata base (veloce)--pass 2: Analisi avanzata (richiede ImageMagick/ffprobe)--output: Path output JSON (default: assets/.metadata.json)
scripts/generate_catalog.js
Input: Metadata da scan
Output: catalog.md formattato
node scripts/generate_catalog.js --client <client_name>
Output
| File | Formato | Descrizione |
|---|---|---|
{project}/assets/catalog.md |
Markdown | Catalogo completo risorse |
{project}/ops/run_log.md |
Markdown | Log operazioni archivist |
{project}/assets/archive/ |
Cartella | Archivi originali (opzionale) |
References
- resource_types.md — Tipologie risorse e use case
Edge Cases
Gestione Errori:
- Archivio corrotto: "⚠️ Archivio corrotto o non valido. Richiedi nuovo upload."
- Formato non supportato: "❌ Formato .xyz non supportato. Usa zip, tar.gz, o rar."
- URL non raggiungibile: "❌ URL non accessibile. Verifica link o usa download diretto."
- Nessuna risorsa trovata: "⚠️ Archivio vuoto o solo file non multimediali."
Limitazioni:
- Dimensioni max: 500 MB per archivio (configurabile)
- Formati video: Solo MP4, MOV, AVI (altri richiedono codec aggiuntivi)
- Analisi contenuto: Richiede modello con supporto vision (opzionale)
Agency Skills Suite v1.0