Rimozione agency-publisher: skill inutilizzabile senza integrazioni webhook/API esterne

- Eliminata cartella agency-publisher/
- Aggiornato README: 14 skills (da 15), workflow publish manuale
- Aggiornato agency-orchestrator: publish gate gestiti manualmente
- Rimosso riferimenti da qa_visual.md e resource_types.md
- Aggiunto report analisi in PUBLISHER_REMOVAL_REPORT.md

Publish ora gestito manualmente con:
- APPROVED: YES nel frontmatter
- PUBLISH_APPROVED.md
- publish_log.md per tracciabilità
This commit is contained in:
AgentePotente 2026-03-11 01:19:04 +01:00
parent 4cf13b3e8e
commit 5ef7b67e40
7 changed files with 209 additions and 241 deletions

172
PUBLISHER_REMOVAL_REPORT.md Normal file
View file

@ -0,0 +1,172 @@
# Report: Rimozione agency-publisher
**Data:** 2026-03-11 00:02 GMT+1
**Analisi:** Impatto rimozione skill agency-publisher dalla suite
---
## 📋 Summary Executive
**Raccomandazione:** ✅ **RIMUOVERE** agency-publisher
**Motivazione:** La skill richiede integrazioni esterne complesse (webhook, n8n/Make/Zapier, API social/YouTube) che la rendono inutilizzabile nella maggior parte dei deployment. I gate di approvazione possono essere gestiti manualmente o con workflow semplificati.
---
## 🔍 Analisi Dipendenze
### Riferimenti Attuali (10 occorrenze)
| File | Tipo Riferimento | Contesto |
|------|------------------|----------|
| `README.md` | Tabella skills | Skill #13 nella lista |
| `README.md` | Workflow end-to-end | Step 10: "Publish" |
| `README.md` | Struttura cartelle | Cartella `agency-publisher/` |
| `README.md` | Sezione Publishing Gates | Menzione come skill critica |
| `agency-orchestrator/SKILL.md` | Lista agenti | Agente per publish |
| `agency-orchestrator/SKILL.md` | Fase 4 Publish Gate | "Triggera agency-publisher" |
| `agency-shared-references/references/qa_visual.md` | "Usato da" | Menzione in header |
| `agency-shared-references/references/resource_types.md` | "Skill che usano" | 2 menzioni (images, video) |
| `agency-publisher/SKILL.md` | — | Skill stessa da eliminare |
---
## 🎯 Impatto Funzionale
### Cosa Si Perde
| Funzionalità | Criticità | Workaround |
|--------------|-----------|------------|
| **Publish automatizzato social** | Media | Publish manuale o script separato |
| **Publish automatizzato YouTube** | Media | Upload manuale via browser |
| **Scheduling programmato** | Bassa | Calendar esterno + reminder |
| **Publish log automatico** | Bassa | Log manuale in `publish_log.md` |
| **Idempotency key** | Bassa | Non necessaria per publish manuali |
| **Retry logic** | Bassa | Gestita manualmente |
### Cosa NON Si Perde
| Funzionalità | Stato |
|--------------|-------|
| **Gate di approvazione** | ✅ Gestiti da frontmatter (`APPROVED: YES`) |
| **QA obbligatorio** | ✅ Checklist in `qa_visual.md` |
| **Tracciabilità** | ✅ `PUBLISH_APPROVED.md` + decision log |
| **Audit trail** | ✅ Log manuale in `publish_log.md` |
---
## 🛠️ Modifiche Richieste
### File da Aggiornare (7 file)
1. **`README.md`**
- Rimuovere riga dalla tabella skills (13 → 12 skills)
- Aggiornare workflow end-to-end (step 10 eliminato)
- Rimuovere cartella da struttura
- Semplificare sezione Publishing Gates
2. **`agency-orchestrator/SKILL.md`**
- Rimuovere `agency-publisher` da lista agenti
- Modificare Fase 4: da "Triggera agency-publisher" a "Aggiorna publish log manualmente"
- Rimuovere riferimento dai references
3. **`agency-shared-references/SKILL.md`**
- Rimuovere menzioni di agency-publisher
4. **`agency-shared-references/references/qa_visual.md`**
- Cambiare "Usato da: agency-visual-generator, agency-publisher" → "Usato da: agency-visual-generator"
5. **`agency-shared-references/references/resource_types.md`**
- Rimuovere `agency-publisher` da "Skill che usano" (2 occorrenze)
6. **`agency-publisher/`** (cartella)
- Eliminare intera cartella
---
## 📊 Benefici della Rimozione
| Beneficio | Impatto |
|-----------|---------|
| **Semplificazione** | Suite più lean (12 skills invece di 13) |
| **Usabilità** | Nessuna dipendenza da webhook/integrazioni |
| **Flessibilità** | Publish gestito manualmente o con custom script |
| **Manutenzione** | Meno codice da mantenere e aggiornare |
| **Onboarding** | Curva apprendimento ridotta per nuovi utenti |
---
## ⚠️ Rischi e Mitigazione
| Rischio | Probabilità | Mitigazione |
|---------|-------------|-------------|
| Utenti vogliono automazione | Media | Documentare come creare script custom |
| Publish manuale è lento | Bassa | Template `publish_log.md` semplifica |
| Perdita audit trail | Bassa | Log manuale è sufficiente per audit |
| Confusione su chi pubblica | Bassa | Documentare responsabilità nel workflow |
---
## 📝 Alternative Post-Rimozione
### Opzione A: Publish Manuale (Consigliata)
```markdown
## Workflow Publish Manuale
1. Content approvato (`APPROVED: YES` nel frontmatter)
2. QA compilato e passato
3. Crea `PUBLISH_APPROVED.md` con `YES`
4. Pubblica manualmente (LinkedIn, Instagram, YouTube)
5. Aggiorna `{project}/ops/publish_log.md`:
```markdown
| Data | Platform | Content ID | Status | URL |
|------|----------|------------|--------|-----|
| 2026-03-11 | LinkedIn | post_001 | Published | https://... |
```
```
### Opzione B: Script Custom (Per Utenti Avanzati)
```markdown
## Script Publish Custom
Utenti possono creare script propri:
- `scripts/publish_linkedin.py`
- `scripts/publish_youtube.sh`
Documentare in README che integrazioni sono responsabilità dell'utente.
```
### Opzione C: Integrazione Futura (Opzionale)
```markdown
## Re-integrazione (Se Richiesta)
Se utenti chiedono automazione:
1. Creare skill separata `agency-publisher-pro` (opzionale)
2. Richiedere configurazione esplicita (API key, webhook)
3. Documentare come "advanced feature"
```
---
## 🎯 Conclusione
**Raccomandazione:** ✅ **PROCEDERE CON RIMOZIONE**
**Motivi:**
1. Skill inutilizzabile senza integrazioni complesse
2. Gate di approvazione già gestiti da frontmatter
3. Publish manuale è sufficiente per MVP
4. Suite più semplice e accessibile
**Next Steps:**
1. Eliminare cartella `agency-publisher/`
2. Aggiornare 6 file (vedi sopra)
3. Commit e push
4. Aggiornare documentazione se necessario
---
_Report generato da AgentePotente 💪_

View file

@ -4,7 +4,7 @@ Suite completa di AgentSkills per agenzie digitali e content producer — un sis
## Panoramica
- **Skills:** 15 (14 specialistiche + 1 shared references)
- **Skills:** 14 (13 specialistiche + 1 shared references)
- **References:** 22 (tutte centralizzate in agency-shared-references)
- **Lingua:** Italiano/English
- **Dominio:** Digital Agency / Content Production / Multi-Agent System
@ -17,7 +17,7 @@ Posiziona l'intera cartella `agency-skills-suite` nella directory delle skills d
- **Chiedi all'agente:** Fornisci l'archivio completo e chiedi l'installazione nella cartella skills del tuo software agentico
- **Copia diretta:** Trasferisci manualmente la cartella `agency-skills-suite` nella directory delle skills
**Verifica:** Assicurati che tutte le 15 cartelle siano presenti e che `agency-shared-references/references/` contenga i 22 file reference.
**Verifica:** Assicurati che tutte le 14 cartelle siano presenti e che `agency-shared-references/references/` contenga i 22 file reference.
## Skills Incluse
@ -35,9 +35,8 @@ Posiziona l'intera cartella `agency-skills-suite` nella directory delle skills d
| 10 | **agency-visual-generator** | Asset visuali (card, carousel, thumbnail) | Media |
| 11 | **agency-web-developer** | Siti web statici (HTML/CSS/JS) | Media |
| 12 | **agency-analytics** | Report KPI settimanali, actions | Bassa |
| 13 | **agency-publisher** | Publish gate-based (social/YouTube) | Bassa |
| 14 | **agency-archivist** | Gestione risorse (immagini, video, documenti) | Media |
| 15 | **agency-shared-references** | References condivise (tutte le skills) | — |
| 13 | **agency-archivist** | Gestione risorse (immagini, video, documenti) | Media |
| 14 | **agency-shared-references** | References condivise (tutte le skills) | — |
## References Incluse (in agency-shared-references)
@ -78,6 +77,8 @@ Tutte le references sono centralizzate in un'unica cartella condivisa:
### Resources & Assets
22. `resource_types.md` — Tipologie risorse e use case (immagini, video, documenti)
**Totale:** 22 references
## Workflow Disponibili
La suite supporta 5 workflow principali, attivabili tramite `agency-orchestrator`:
@ -101,7 +102,7 @@ La suite supporta 5 workflow principali, attivabili tramite `agency-orchestrator
7. **Sito Web:** `agency-ux-copy` → sitemap, copy → `agency-web-developer` → sito HTML/CSS/JS (usa immagini da archivist) → `agency-seo` → metadata
8. **Content:** `agency-social` + `agency-youtube` → calendar, script
9. **Visual:** `agency-visual-generator` → asset (usa risorse da archivist)
10. **Publish:** `agency-publisher` → publish (post-approvazione)
10. **Publish:** Manuale o script custom (vedi sezione "Publishing Gates")
11. **Analytics:** `agency-analytics` → report settimanali
## Struttura
@ -148,12 +149,13 @@ agency-skills-suite/
│ └── SKILL.md
├── agency-analytics/
│ └── SKILL.md
├── agency-publisher/
│ └── SKILL.md
└── agency-archivist/
└── SKILL.md
```
**Skills totali:** 14 (13 specialistiche + 1 shared references)
```
**Nota:**
- Nessun symlink necessario. Ogni SKILL.md contiene percorsi diretti verso `../agency-shared-references/references/`.
- Struttura cartelle: le skills usano `{project}/` come path di lavoro (es. `demo_co_srl/`, `campagna_x/`, o qualsiasi cartella progetto).
@ -170,19 +172,26 @@ Invocare agency-orchestrator per iniziare un workflow
## Publishing Gates
**Importante:** Le skills `agency-publisher` e tutte le skills che producono content pubblicabile seguono gate rigorosi:
**Importante:** Il publish è gestito manualmente o con script custom. Tutte le skills che producono content pubblicabile seguono gate rigorosi:
- Mai publish senza `APPROVED: YES` nel frontmatter
- Mai publish senza `PUBLISH_APPROVED.md` = YES
- QA obbligatorio prima di publish
L'approvazione è gestita direttamente nelle skills tramite verifica del frontmatter e file `PUBLISH_APPROVED.md`.
**Workflow manuale:**
1. Content approvato (`APPROVED: YES` nel frontmatter)
2. QA compilato e passato
3. Crea `PUBLISH_APPROVED.md` con `YES`
4. Pubblica manualmente (LinkedIn, Instagram, YouTube, etc.)
5. Aggiorna `{project}/ops/publish_log.md` con URL e data
**Nota:** Non è inclusa una skill di publish automatizzato per evitare dipendenze da webhook/API esterne. Utenti avanzati possono creare script custom se necessario.
## Note
- **Lingua:** Skills in inglese, alcune references bilingue (IT/EN)
- **Dominio:** Agency digitali, content production, multi-agent coordination
- **Complexity:** MEDIUM-HIGH (15 skills, 23 references, workflow coordinati)
- **Complexity:** MEDIUM-HIGH (14 skills, 22 references, workflow coordinati)
- **Architecture:** References centralizzate in agency-shared-references, percorsi diretti da tutte le skills
- **Project Structure:** `{project}/` come cartella di lavoro (agnostico, compatibile con qualsiasi sistema)

View file

@ -224,7 +224,6 @@ L'orchestratore deve leggere il documento ed estrarre tutte le informazioni rile
- `agency-archivist` → upload, estrazione, catalogazione risorse
- `agency-visual-generator` → asset (usa risorse da archivist)
- `agency-social` / `agency-youtube` → content
- `agency-publisher` → publish (post-approvazione)
---
@ -249,17 +248,28 @@ L'orchestratore deve leggere il documento ed estrarre tutte le informazioni rile
### Fase 4: Publish Gate
**Obiettivo:** Gestire approvazione pre-publish.
**Obiettivo:** Gestire approvazione pre-publish e publish manuale.
**Azioni:**
1. Verifica che i file content abbiano `APPROVED: YES` nel frontmatter
2. Verifica che esista `PUBLISH_APPROVED.md` con valore `YES`
3. Verifica che QA sia compilato e passato
4. Triggera `agency-publisher` solo se tutti i gate sono superati
4. **Publish manuale:** Aggiorna `{project}/ops/publish_log.md` dopo publish
5. Aggiorna frontmatter dei content file con `status: published` e `published_at`
**Regola:** Mai publish senza `APPROVED: YES` esplicito.
**Template publish_log.md:**
```markdown
# Publish Log — {Client}
| Data | Platform | Content ID | Status | URL | Note |
|------|----------|------------|--------|-----|------|
| 2026-03-11 | LinkedIn | post_001 | Published | https://... | Engagement buono |
```
---
## Gestione Risorse — Integrazione agency-archivist

View file

@ -1,223 +0,0 @@
---
name: agency-publisher
description: "Pubblicare o programmare post social e video YouTube tramite webhook, solo dopo approvazione. Usare quando: (1) content approvato ready per publish, (2) scheduling programmato, (3) aggiornare publish log. Output: Content pubblicato, publish log aggiornato, status file aggiornato."
---
# Agency Publisher — Publish Gate-Based
Pubblica (o programma) content su social e YouTube solo dopo approvazione esplicita.
## Quando Usare
- **Social publish:** Post approvato ready
- **YouTube publish:** Video metadata approvati
- **Scheduling:** Programmare publish futuro
- **Publish log:** Aggiornare storico
---
## Input
| Input | Tipo | Validazione |
|-------|------|-------------|
| `project_path` | string | Percorso progetto (cartella di lavoro) |
| `content_files` | array | File content da pubblicare |
| `platform` | string | "social" / "youtube" |
| `publish_mode` | string | "immediate" / "scheduled" |
| `scheduled_for` | string | Data/ora (se scheduled) |
---
## Processo
### Fase 1: Verify Approval Gate
**Obiettivo:** Verificare che content sia approvato.
**Azioni:**
1. Per ogni content file, verifica:
- Frontmatter contiene `status: approved`
- Frontmatter contiene `APPROVED: YES`
- `PUBLISH_APPROVED.md` del cliente contiene `YES`
2. Se gate NON superato:
- **STOP:** Non procedere
- Notifica utente che approvazione manca
3. Se gate superato:
- Procedi a Fase 2
**Checklist:**
- [ ] `status: approved` nel frontmatter
- [ ] `APPROVED: YES` presente
- [ ] `PUBLISH_APPROVED.md` = YES
- [ ] QA compilato e passato
---
### Fase 2: Preparazione Payload
**Obiettivo:** Creare payload per webhook.
**Azioni:**
1. Estrai dati dal content file:
- **Social:** Text, asset_path, platform, hashtags
- **YouTube:** Title, description, thumbnail_path, tags, scheduled_for
2. Genera `idempotency_key`:
- Formula: `{project}_{platform}_{post_id}_{version}`
- Esempio: `demo_co_linkedin_post_001_v1`
3. Compila payload:
**Payload Social:**
```json
{
"client": "{client_name}",
"platform": "linkedin",
"text": "{post_copy}",
"asset_paths": ["{path_to_image}"],
"scheduled_for": "2026-03-10T09:00:00Z",
"idempotency_key": "demo_co_linkedin_post_001_v1",
"hashtags": ["#tag1", "#tag2"],
"metadata": {
"post_id": "post_001",
"pillar": "Education"
}
}
```
**Payload YouTube:**
```json
{
"client": "{client_name}",
"platform": "youtube",
"title": "{video_title}",
"description": "{video_description}",
"thumbnail_path": "{path_to_thumbnail}",
"tags": ["tag1", "tag2"],
"scheduled_for": "2026-03-10T14:00:00Z",
"idempotency_key": "demo_co_youtube_ep_001_v1",
"metadata": {
"episode": "001",
"duration": "8:45"
}
}
```
---
### Fase 3: Webhook Call
**Obiettivo:** Inviare payload a webhook di publish.
**Azioni:**
1. Identifica webhook endpoint (configurato in `core/skills/publish_webhook.md` o variabile ambiente)
2. Invia POST request con:
- Headers: `Content-Type: application/json`
- Body: Payload JSON
3. Gestisci risposta:
- **Success (2xx):** Estrai `remote_id` e `post_url`
- **Error (4xx/5xx):** Logga errore, non aggiornare status
4. Implementa retry logic (opzionale):
- Max 3 retry
- Backoff: 30s, 60s, 120s
---
### Fase 4: Update Content File
**Obiettivo:** Aggiornare file con status publish.
**Azioni:**
1. Aggiungi/aggiorna frontmatter:
```yaml
status: published # o "scheduled"
published_at: 2026-03-09T10:30:00Z
post_url: https://linkedin.com/post/xyz123
remote_id: xyz123
```
2. Se scheduled:
```yaml
status: scheduled
scheduled_for: 2026-03-10T09:00:00Z
```
---
### Fase 5: Update Publish Log
**Obiettivo:** Tracciare publish in log centrale.
**Azioni:**
1. Apri/crea `{project}/ops/publish_log.md`
2. Aggiungi entry:
**Template:**
```markdown
# Publish Log — {Client}
| Data | Platform | Content ID | Status | URL | Note |
|------|----------|------------|--------|-----|------|
| 2026-03-09 | LinkedIn | post_001 | Published | https://... | Engagement buono |
| 2026-03-09 | YouTube | ep_001 | Scheduled | - | Publish: 2026-03-10 14:00 |
```
3. Per YouTube, aggiorna anche `{project}/youtube/published_log.md`
4. Per Social, aggiorna `{project}/social/published_log.md`
---
## Output
| File | Formato | Descrizione |
|------|---------|-------------|
| `{project}/ops/publish_log.md` | Markdown | Log centrale publish |
| `{project}/social/published_log.md` | Markdown | Log social (opzionale) |
| `{project}/youtube/published_log.md` | Markdown | Log YouTube (opzionale) |
| Content files aggiornati | Markdown | `status: published/scheduled` |
---
## References
- [quality_bar.md](../agency-shared-references/references/quality_bar.md) — Standard qualità
---
## Note
**Edge Cases:**
- **Webhook fallisce:** Logga errore, riprova (max 3 volte), notifica utente
- **Doppio publish:** Idempotency_key previene duplicati
- **Scheduled in futuro:** Imposta status "scheduled", aggiorna log
**Limitazioni:**
- Richiede webhook integration configurata (n8n/Make/Zapier)
- YouTube video upload (file) out-of-scope senza integrazione specifica
- Alcuni platform hanno rate limits (rispettare)
**Sicurezza:**
- Mai pubblicare senza `APPROVED: YES`
- Idempotency_key previene publish accidentali multipli
- Logga tutto per audit trail
---
_Skill generata da framework-translator_

View file

@ -5,7 +5,7 @@ description: "References condivise per la suite agency-skills. Contiene 24 docum
# Agency Shared References
Repository centralizzato di 22 documenti di riferimento per tutte le skills della suite agency-skills.
Repository centralizzato di 22 documenti di riferimento per le 14 skills della suite agency-skills.
## Indice delle Referenze

View file

@ -1,7 +1,7 @@
# QA Visual Checklist
_Framework: agency_v3_1 | Estratto: 2026-03-09_
_Usato da: agency-visual-generator, agency-publisher_
_Usato da: agency-visual-generator_
## Sommario

View file

@ -15,7 +15,7 @@ Questo documento classifica le tipologie di risorse gestite da agency-archivist
| **Icona/favicon** | PNG, ICO | 32x32px, 64x64px | Browser tab, app icon |
| **Brand mark** | SVG, PNG | 256x256px | Social avatar, watermark |
**Skill che usano:** agency-design-system, agency-web-developer, agency-social, agency-publisher
**Skill che usano:** agency-design-system, agency-web-developer, agency-social
---
@ -131,7 +131,7 @@ Questo documento classifica le tipologie di risorse gestite da agency-archivist
| **Termini e condizioni** | PDF, DOCX | E-commerce, servizi |
| **Cookie policy** | PDF, DOCX | Sito web, banner cookie |
**Skill che usano:** agency-web-developer, agency-publisher
**Skill che usano:** agency-web-developer
---