claude-plugin-wordpress-manager 2.12.2 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/.claude-plugin/plugin.json +8 -3
  2. package/CHANGELOG.md +55 -0
  3. package/docs/GUIDE.md +240 -1
  4. package/docs/VALIDATION.md +341 -0
  5. package/docs/plans/2026-03-02-content-framework-architecture.md +612 -0
  6. package/docs/plans/2026-03-02-content-framework-strategic-reflections.md +228 -0
  7. package/docs/plans/2026-03-02-content-intelligence-phase2.md +560 -0
  8. package/docs/plans/2026-03-02-content-pipeline-phase1.md +456 -0
  9. package/docs/plans/2026-03-02-editorial-calendar-phase3.md +490 -0
  10. package/docs/validation/.gitkeep +0 -0
  11. package/docs/validation/dashboard.html +286 -0
  12. package/docs/validation/results.json +1705 -0
  13. package/package.json +12 -3
  14. package/scripts/run-validation.mjs +1132 -0
  15. package/servers/wp-rest-bridge/build/server.js +16 -5
  16. package/servers/wp-rest-bridge/build/tools/index.js +0 -9
  17. package/servers/wp-rest-bridge/build/tools/plugin-repository.js +23 -31
  18. package/servers/wp-rest-bridge/build/tools/schema.js +10 -2
  19. package/servers/wp-rest-bridge/build/tools/unified-content.js +10 -2
  20. package/servers/wp-rest-bridge/build/wordpress.d.ts +0 -3
  21. package/servers/wp-rest-bridge/build/wordpress.js +16 -98
  22. package/servers/wp-rest-bridge/package.json +1 -0
  23. package/skills/wp-analytics/SKILL.md +153 -0
  24. package/skills/wp-analytics/references/signals-feed-schema.md +417 -0
  25. package/skills/wp-content-pipeline/SKILL.md +461 -0
  26. package/skills/wp-content-pipeline/references/content-brief-schema.md +377 -0
  27. package/skills/wp-content-pipeline/references/site-config-schema.md +431 -0
  28. package/skills/wp-editorial-planner/SKILL.md +262 -0
  29. package/skills/wp-editorial-planner/references/editorial-schema.md +268 -0
@@ -0,0 +1,612 @@
1
+ # Content Framework — Proposta Architetturale di Dettaglio
2
+
3
+ **Data**: 2026-03-02
4
+ **Versione**: 1.0.0
5
+ **Stato**: Fase 3 Implementata — E2E Testata (2026-03-02)
6
+ **Prerequisito**: [Riflessioni Strategiche](2026-03-02-content-framework-strategic-reflections.md)
7
+
8
+ ---
9
+
10
+ ## Sommario Esecutivo
11
+
12
+ Questo documento definisce l'architettura di dettaglio per evolvere il WordPress Manager Plugin in un Content Framework. L'implementazione si basa su **3 schema MD**, **4 nuove/estese skill**, e **zero nuovi MCP tool TypeScript**. L'intera orchestrazione vive nel CLI via prompt + file strutturati.
13
+
14
+ ---
15
+
16
+ ## Fase 1: Content Pipeline Engine
17
+
18
+ ### 1.1 Obiettivo
19
+
20
+ Connettere l'output delle Gen* skill (GenCorpComm, GenBrand, GenMarketing) alla pubblicazione WordPress, eliminando il gap manuale tra "contenuto generato" e "contenuto pubblicato".
21
+
22
+ ### 1.2 Schema: `content-brief.schema.md`
23
+
24
+ Questo schema definisce il formato di scambio tra Gen* e WordPress. È un file Markdown con frontmatter YAML che Claude legge per decidere come pubblicare.
25
+
26
+ ```yaml
27
+ ---
28
+ # Content Brief Schema v1.0
29
+ brief_id: "BRF-2026-001"
30
+ created: "2026-03-15T10:00:00Z"
31
+ status: draft | ready | published | archived
32
+
33
+ # Source — quale Gen* skill ha prodotto il contenuto
34
+ source:
35
+ skill: gencorpcomm # gencorpcomm | genmarketing | manual
36
+ domain: content_marketing # dal dominio GenCorpComm
37
+ session_id: "abc-123" # per tracciabilità
38
+
39
+ # Target — dove pubblicare
40
+ target:
41
+ site_id: opencactus # id dal WP_SITES_CONFIG
42
+ content_type: post # post | page
43
+ status: draft # draft | publish | future
44
+ scheduled_date: null # ISO 8601 se status=future
45
+ categories: [blog, seo]
46
+ tags: [cactus-water, wellness]
47
+
48
+ # Content Parameters — passati a wp-content per la creazione
49
+ content:
50
+ title: ""
51
+ excerpt: ""
52
+ featured_image: null # URL o media library ID
53
+ author: null # WP user ID, null = default
54
+
55
+ # Distribution — canali post-pubblicazione
56
+ distribution:
57
+ channels: [] # linkedin | twitter | mailchimp | buffer
58
+ adapt_format: true # usare wp-content-repurposing?
59
+ schedule_offset_hours: 2 # pubblicare sui social N ore dopo WP
60
+
61
+ # SEO — parametri per wp-content-optimization
62
+ seo:
63
+ focus_keyword: ""
64
+ meta_description: ""
65
+ schema_type: Article # Article | HowTo | FAQPage
66
+ internal_links: auto # auto | manual | none
67
+
68
+ # Quality Gates
69
+ gates:
70
+ seo_score_min: 70 # minimo SEO score per publish
71
+ readability_min: 60 # minimo readability score
72
+ require_review: false # se true, resta in draft per review umana
73
+ ---
74
+
75
+ # Contenuto
76
+
77
+ [Il corpo del contenuto in Markdown, generato da GenCorpComm o scritto manualmente]
78
+ ```
79
+
80
+ **Dove vive**: `.content-state/pipeline-active/{brief_id}.brief.md`
81
+
82
+ ### 1.3 Schema: `site.config.md`
83
+
84
+ Configurazione persistente per sito — brand voice, canali attivi, parametri di default.
85
+
86
+ ```yaml
87
+ ---
88
+ # Site Configuration v1.0
89
+ site_id: opencactus
90
+ site_url: "https://opencactus.com"
91
+ last_updated: "2026-03-02"
92
+
93
+ # Brand Voice — alimentato da GenBrand output
94
+ brand:
95
+ tone: professional_warm # dal tone_of_voice spectrum di GenCorpComm
96
+ language: it # lingua principale
97
+ style_notes: |
98
+ Stile divulgativo-scientifico. Evitare iperboli.
99
+ Preferire dati concreti a claim generici.
100
+ Valorizzare il territorio siciliano.
101
+
102
+ # Default Content Parameters
103
+ defaults:
104
+ content_type: post
105
+ status: draft
106
+ categories: [blog]
107
+ author: 1 # WP user ID
108
+
109
+ # Active Distribution Channels
110
+ channels:
111
+ linkedin:
112
+ enabled: true
113
+ profile_id: "buf-profile-123"
114
+ format: article # post | article
115
+ twitter:
116
+ enabled: false
117
+ mailchimp:
118
+ enabled: true
119
+ audience_id: "mc-aud-456"
120
+ segment: newsletter
121
+
122
+ # SEO Defaults
123
+ seo:
124
+ default_schema: Article
125
+ min_score: 70
126
+ auto_internal_links: true
127
+
128
+ # Content Cadence
129
+ cadence:
130
+ posts_per_week: 2
131
+ preferred_days: [tuesday, thursday]
132
+ publish_time: "09:00"
133
+ ---
134
+
135
+ # Note Operative
136
+
137
+ Appunti liberi per contesto aggiuntivo che Claude legge prima di ogni operazione su questo sito.
138
+ ```
139
+
140
+ **Dove vive**: `.content-state/{site_id}.config.md`
141
+
142
+ ### 1.4 Nuova Skill: `wp-content-pipeline`
143
+
144
+ Questa skill orchestra il flusso brief → publish → distribute.
145
+
146
+ **Trigger**: "pubblica il brief", "processa i brief pronti", "pubblica da GenCorpComm"
147
+
148
+ **Workflow**:
149
+
150
+ ```
151
+ 1. SCAN — Leggi .content-state/pipeline-active/ per brief con status=ready
152
+ 2. CONFIG — Leggi .content-state/{site_id}.config.md per parametri sito
153
+ 3. VALIDATE — Controlla quality gates (SEO score, readability)
154
+ └─ Se gates non superati → segnala all'utente, resta in draft
155
+ 4. PUBLISH — Usa MCP tool esistenti:
156
+ ├─ create_content (title, body, excerpt, status, categories, tags)
157
+ ├─ sd_inject (schema.org markup dal seo.schema_type)
158
+ └─ assign_terms_to_content (categories + tags)
159
+ 5. DISTRIBUTE — Se distribution.channels non vuoto:
160
+ ├─ Invoca wp-content-repurposing per adattare formato
161
+ ├─ li_create_post / tw_create_tweet / buf_create_update
162
+ └─ mc_create_campaign + mc_set_campaign_content + mc_send_campaign
163
+ 6. UPDATE — Aggiorna brief: status=published, aggiungi post_id e post_url
164
+ 7. ARCHIVE — Sposta brief in .content-state/pipeline-archive/
165
+ ```
166
+
167
+ **MCP Tool utilizzati** (tutti già esistenti):
168
+ - `create_content`, `update_content`, `assign_terms_to_content` (da wp-content)
169
+ - `sd_inject` (da wp-structured-data)
170
+ - `li_create_post`, `tw_create_tweet`, `buf_create_update` (da wp-social-email)
171
+ - `mc_create_campaign`, `mc_set_campaign_content`, `mc_send_campaign` (da wp-social-email)
172
+
173
+ **Dipendenze skill**: `wp-content`, `wp-content-optimization`, `wp-content-repurposing`, `wp-social-email`, `wp-structured-data`
174
+
175
+ ### 1.5 Flusso Operativo End-to-End
176
+
177
+ ```
178
+ Utente: "Genera un articolo sul cactus water per opencactus"
179
+
180
+
181
+ GenCorpComm (content_marketing domain)
182
+ → produce Markdown + metadata
183
+
184
+
185
+ Claude scrive: .content-state/pipeline-active/BRF-2026-001.brief.md
186
+ → frontmatter compilato da GenCorpComm output + site.config.md defaults
187
+ → status: ready
188
+
189
+
190
+ Utente: "pubblica i brief pronti"
191
+
192
+
193
+ wp-content-pipeline (skill)
194
+ → legge brief → valida gates → crea post WP → distribuisce → archivia
195
+
196
+
197
+ Output: "Pubblicato: https://opencactus.com/cactus-water-benefici/
198
+ LinkedIn: schedulato in 2h
199
+ Newsletter: campagna creata, pronta per invio"
200
+ ```
201
+
202
+ ---
203
+
204
+ ## Fase 2: Content Intelligence Layer
205
+
206
+ ### 2.1 Obiettivo
207
+
208
+ Creare un feedback loop: WP analytics → segnali strutturati → decisioni → azioni. I dati di wp-analytics e wp-search-console alimentano GenSignal per produrre insight azionabili.
209
+
210
+ ### 2.2 Schema: `signals-feed.schema.md`
211
+
212
+ Formato di scambio tra wp-analytics e GenSignal. Traduce metriche WP nel formato NormalizedEvent di GenSignal.
213
+
214
+ ```yaml
215
+ ---
216
+ # Signals Feed Schema v1.0
217
+ feed_id: "FEED-opencactus-2026-03"
218
+ site_id: opencactus
219
+ generated: "2026-03-02T12:00:00Z"
220
+ period: "2026-02-01..2026-02-28"
221
+ source_tools:
222
+ - ga4_report
223
+ - ga4_top_pages
224
+ - ga4_traffic_sources
225
+ - gsc_query_analytics
226
+ - pl_aggregate
227
+ ---
228
+
229
+ # Normalized Events
230
+
231
+ ## Traffic Signals
232
+
233
+ ```yaml
234
+ events:
235
+ - entity_id: "Page:/cactus-water-benefici"
236
+ relation: pageviews
237
+ value: 3240
238
+ unit: count
239
+ ts: "2026-02-28T23:59:59Z"
240
+ delta_pct: +47 # variazione vs periodo precedente
241
+ provenance:
242
+ source_id: "ga4_top_pages"
243
+ site: opencactus
244
+
245
+ - entity_id: "Page:/cactus-water-benefici"
246
+ relation: avg_engagement_time
247
+ value: 185
248
+ unit: seconds
249
+ ts: "2026-02-28T23:59:59Z"
250
+ delta_pct: +12
251
+ provenance:
252
+ source_id: "ga4_report"
253
+ site: opencactus
254
+ ```
255
+
256
+ ## Search Signals
257
+
258
+ ```yaml
259
+ - entity_id: "Keyword:acqua di cactus"
260
+ relation: search_impressions
261
+ value: 8500
262
+ unit: count
263
+ ts: "2026-02-28T23:59:59Z"
264
+ delta_pct: +120
265
+ provenance:
266
+ source_id: "gsc_query_analytics"
267
+ site: opencactus
268
+
269
+ - entity_id: "Keyword:acqua di cactus benefici"
270
+ relation: search_ctr
271
+ value: 4.2
272
+ unit: percentage
273
+ ts: "2026-02-28T23:59:59Z"
274
+ delta_pct: -8
275
+ provenance:
276
+ source_id: "gsc_query_analytics"
277
+ site: opencactus
278
+ ```
279
+
280
+ ## Source Signals
281
+
282
+ ```yaml
283
+ - entity_id: "Source:linkedin"
284
+ relation: referral_sessions
285
+ value: 420
286
+ unit: count
287
+ ts: "2026-02-28T23:59:59Z"
288
+ delta_pct: +85
289
+ provenance:
290
+ source_id: "ga4_traffic_sources"
291
+ site: opencactus
292
+ ```
293
+
294
+ ## Performance Signals
295
+
296
+ ```yaml
297
+ - entity_id: "Site:opencactus"
298
+ relation: lcp
299
+ value: 2.1
300
+ unit: seconds
301
+ ts: "2026-02-28T23:59:59Z"
302
+ provenance:
303
+ source_id: "cwv_crux_origin"
304
+ site: opencactus
305
+ ```
306
+
307
+ # Anomalies & Patterns
308
+
309
+ Sezione che Claude popola dopo aver analizzato i delta:
310
+
311
+ | Entity | Metric | Delta | Pattern Match | Action |
312
+ |--------|--------|-------|---------------|--------|
313
+ | Keyword:acqua di cactus | impressions | +120% | Search Intent Shift | Investigate: content cluster opportunity |
314
+ | Source:linkedin | referrals | +85% | Early-Adopter Surge | Scale: increase LinkedIn posting frequency |
315
+ | Page:/cactus-water-benefici | CTR | -8% | Hype→Utility Crossover | Optimize: refresh meta description, test titles |
316
+ ```
317
+
318
+ **Dove vive**: `.content-state/signals-feed.md` (sovrascritta ad ogni generazione)
319
+
320
+ ### 2.3 Skill Estesa: `wp-analytics` (+ feed generation)
321
+
322
+ Estendere la skill `wp-analytics` con una sezione aggiuntiva per generare il signals feed.
323
+
324
+ **Nuovo workflow step** (aggiunto dopo i 6 step esistenti):
325
+
326
+ ```
327
+ Step 7: GENERATE SIGNAL FEED
328
+ ├─ Raccogli output da ga4_report, ga4_top_pages, ga4_traffic_sources, gsc_query_analytics
329
+ ├─ Calcola delta % vs periodo precedente (leggi feed precedente per baseline)
330
+ ├─ Mappa metriche → NormalizedEvent format (entity_id, relation, value, unit, ts, provenance)
331
+ ├─ Identifica anomalie (delta > ±30% come soglia default)
332
+ ├─ Match pattern GenSignal (Search Intent Shift, Early-Adopter Surge, etc.)
333
+ └─ Scrivi .content-state/signals-feed.md
334
+ ```
335
+
336
+ **MCP tool utilizzati** (tutti già esistenti):
337
+ - `ga4_report`, `ga4_top_pages`, `ga4_traffic_sources` (da wp-analytics)
338
+ - `gsc_query_analytics`, `gsc_list_pages` (da wp-search-console)
339
+ - `cwv_crux_origin` (da wp-analytics)
340
+ - `pl_aggregate`, `pl_breakdown` (da wp-analytics)
341
+
342
+ ### 2.4 Flusso Intelligence Loop
343
+
344
+ ```
345
+ Utente: "analizza performance opencactus ultimo mese e genera segnali"
346
+
347
+
348
+ wp-analytics (skill estesa)
349
+ → ga4_report + gsc_query_analytics + pl_aggregate
350
+ → calcola delta vs mese precedente
351
+ → genera .content-state/signals-feed.md
352
+
353
+
354
+ Claude presenta: "3 anomalie rilevate:
355
+ 1. 'acqua di cactus' impressions +120% → Search Intent Shift
356
+ 2. LinkedIn referrals +85% → Early-Adopter Surge
357
+ 3. CTR -8% su pagina top → possibile title fatigue"
358
+
359
+
360
+ Utente: "approfondisci il segnale 1 con GenSignal"
361
+
362
+
363
+ GenSignal (gensignal skill)
364
+ → legge signals-feed.md come input Harvest
365
+ → produce SignalCard con score, next_actions
366
+
367
+
368
+ Claude: "SignalScore: 72 → ACTION_PRIORITY
369
+ Next actions:
370
+ - Creare cluster di 3 articoli su varianti keyword
371
+ - A/B test meta description pagina esistente"
372
+
373
+
374
+ Utente: "crea i brief per il cluster"
375
+
376
+
377
+ GenCorpComm → 3 file brief.md in pipeline-active/
378
+ → wp-content-pipeline li pubblica quando pronti
379
+ ```
380
+
381
+ ---
382
+
383
+ ## Fase 3: Editorial Calendar & Content Planner
384
+
385
+ ### 3.1 Obiettivo
386
+
387
+ Pianificare contenuti nel tempo con un file `.state.md` che funge da calendario editoriale, convertibile in post WP schedulati.
388
+
389
+ ### 3.2 Schema: `editorial.schema.md`
390
+
391
+ ```yaml
392
+ ---
393
+ # Editorial Calendar Schema v1.0
394
+ calendar_id: "CAL-2026-03"
395
+ site_id: opencactus
396
+ period: "2026-03-01..2026-03-31"
397
+ created: "2026-02-28"
398
+ last_updated: "2026-03-02"
399
+ status: active # active | archived
400
+
401
+ # Monthly Goals
402
+ goals:
403
+ posts_target: 8
404
+ posts_published: 2
405
+ focus_topics: [cactus-water, sustainability, wellness]
406
+ seo_targets:
407
+ - keyword: "acqua di cactus"
408
+ target_position: top-5
409
+ - keyword: "bevanda zero calorie naturale"
410
+ target_position: top-10
411
+ ---
412
+
413
+ # Piano Editoriale — Marzo 2026
414
+
415
+ ## Settimana 1 (1-7 Mar)
416
+
417
+ | Data | Titolo | Tipo | Status | Brief ID | Post ID | Canali |
418
+ |------|--------|------|--------|----------|---------|--------|
419
+ | Mar 4 | Acqua di cactus: 5 benefici scientifici | post | published | BRF-2026-001 | 1234 | linkedin, newsletter |
420
+ | Mar 6 | Come il fico d'India diventa bevanda | post | published | BRF-2026-002 | 1235 | linkedin, twitter |
421
+
422
+ ## Settimana 2 (8-14 Mar)
423
+
424
+ | Data | Titolo | Tipo | Status | Brief ID | Post ID | Canali |
425
+ |------|--------|------|--------|----------|---------|--------|
426
+ | Mar 11 | Zero calorie, tutto gusto: la scienza | post | ready | BRF-2026-003 | — | linkedin, newsletter |
427
+ | Mar 13 | Sicilia e sostenibilità: la filiera | post | draft | BRF-2026-004 | — | linkedin |
428
+
429
+ ## Settimana 3 (15-21 Mar)
430
+
431
+ | Data | Titolo | Tipo | Status | Brief ID | Post ID | Canali |
432
+ |------|--------|------|--------|----------|---------|--------|
433
+ | Mar 18 | [da assegnare — topic da signals] | post | planned | — | — | — |
434
+ | Mar 20 | [da assegnare] | post | planned | — | — | — |
435
+
436
+ ## Settimana 4 (22-31 Mar)
437
+
438
+ | Data | Titolo | Tipo | Status | Brief ID | Post ID | Canali |
439
+ |------|--------|------|--------|----------|---------|--------|
440
+ | Mar 25 | [da assegnare] | post | planned | — | — | — |
441
+ | Mar 27 | [da assegnare] | post | planned | — | — | — |
442
+
443
+ # Note
444
+
445
+ - Settimana 3-4: topic da definire basandosi su signals-feed.md del 15 marzo
446
+ - Newsletter quindicinale: raccoglie i 4 post della quindicina precedente
447
+ - LinkedIn: ogni post va distribuito il giorno stesso alle 09:00
448
+ ```
449
+
450
+ **Dove vive**: `.content-state/{YYYY-MM}-editorial.state.md`
451
+
452
+ ### 3.3 Nuova Skill: `wp-editorial-planner`
453
+
454
+ Orchestra la pianificazione editoriale e la conversione piano → brief → post schedulati.
455
+
456
+ **Trigger**: "crea piano editoriale", "aggiorna calendario marzo", "schedula i post pronti"
457
+
458
+ **Workflow**:
459
+
460
+ ```
461
+ 1. PLAN — Crea/aggiorna calendario editoriale
462
+ ├─ Leggi site.config.md per cadence e parametri
463
+ ├─ Leggi signals-feed.md per topic suggestions (se disponibile)
464
+ ├─ Opzionale: invoca GenMarketing per content calendar strategy
465
+ └─ Scrivi {YYYY-MM}-editorial.state.md
466
+
467
+ 2. BRIEF — Converti entry planned/draft → brief files
468
+ ├─ Per ogni riga con status=planned e titolo definito:
469
+ │ ├─ Genera content-brief usando site.config.md defaults
470
+ │ ├─ Se brief_id assegnato, aggiorna il brief esistente
471
+ │ └─ Se nessun brief_id, crea nuovo brief in pipeline-active/
472
+ └─ Aggiorna calendario: status planned→draft, assegna brief_id
473
+
474
+ 3. SCHEDULE — Converti brief ready → post WP schedulati
475
+ ├─ Per ogni riga con status=ready:
476
+ │ ├─ Chiama create_content con status=future, date=scheduled_date
477
+ │ ├─ Aggiorna calendario: status ready→scheduled, assegna post_id
478
+ │ └─ Se distribution.channels: configura scheduling social
479
+ └─ Report: "X post schedulati per la settimana"
480
+
481
+ 4. SYNC — Sincronizza stato WP → calendario
482
+ ├─ Per ogni post_id nel calendario:
483
+ │ ├─ Verifica stato su WP (list_content con filtro post_id)
484
+ │ └─ Se published → aggiorna calendario status=published
485
+ └─ Aggiorna goals.posts_published
486
+ ```
487
+
488
+ **MCP Tool utilizzati** (tutti già esistenti):
489
+ - `create_content` con `status: future` e `date` (da wp-content)
490
+ - `list_content` per sync stato (da wp-content)
491
+ - `buf_create_update` con scheduling (da wp-social-email)
492
+ - `mc_create_campaign` con send_time (da wp-social-email)
493
+
494
+ ### 3.4 Integrazione con Fase 1 e 2
495
+
496
+ ```
497
+ Fase 2: Intelligence
498
+ signals-feed.md
499
+
500
+ ▼ topic suggestions
501
+ ┌────────────┐
502
+ │ Editorial │ ← GenMarketing (strategy)
503
+ │ Calendar │
504
+ │ .state.md │
505
+ └─────┬──────┘
506
+ │ genera brief per entry planned
507
+
508
+ pipeline-active/
509
+ ├─ BRF-001.brief.md (ready)
510
+ ├─ BRF-002.brief.md (draft)
511
+ └─ BRF-003.brief.md (ready)
512
+
513
+ ▼ Fase 1: Pipeline
514
+ wp-content-pipeline
515
+ → publish → distribute → archive
516
+ ```
517
+
518
+ ---
519
+
520
+ ## Directory Structure
521
+
522
+ ```
523
+ .content-state/
524
+ ├─ opencactus.config.md # Fase 1: config sito
525
+ ├─ bioinagro.config.md # config per altro sito
526
+ ├─ signals-feed.md # Fase 2: ultimo feed segnali
527
+ ├─ 2026-03-editorial.state.md # Fase 3: calendario corrente
528
+ ├─ 2026-02-editorial.state.md # calendario precedente (archived)
529
+ ├─ pipeline-active/ # Fase 1: brief in lavorazione
530
+ │ ├─ BRF-2026-003.brief.md
531
+ │ └─ BRF-2026-004.brief.md
532
+ └─ pipeline-archive/ # brief completati
533
+ ├─ BRF-2026-001.brief.md
534
+ └─ BRF-2026-002.brief.md
535
+ ```
536
+
537
+ **Posizione**: dentro la directory del plugin, accanto a `skills/`, `servers/`, `docs/`.
538
+
539
+ ---
540
+
541
+ ## Inventory Deliverable
542
+
543
+ ### Nuovi File MD Schema (6)
544
+
545
+ | File | Fase | Scopo |
546
+ |------|------|-------|
547
+ | `skills/wp-content-pipeline/references/content-brief-schema.md` | 1 | Schema del brief |
548
+ | `skills/wp-content-pipeline/references/site-config-schema.md` | 1 | Schema config sito |
549
+ | `skills/wp-content-pipeline/SKILL.md` | 1 | Skill definition |
550
+ | `skills/wp-analytics/references/signals-feed-schema.md` | 2 | Schema feed segnali |
551
+ | `skills/wp-editorial-planner/references/editorial-schema.md` | 3 | Schema calendario |
552
+ | `skills/wp-editorial-planner/SKILL.md` | 3 | Skill definition |
553
+
554
+ ### File Modificati (1)
555
+
556
+ | File | Fase | Modifica |
557
+ |------|------|----------|
558
+ | `skills/wp-analytics/SKILL.md` | 2 | Aggiunta Step 7: Signal Feed generation |
559
+
560
+ ### Nuove Directory (1)
561
+
562
+ | Directory | Scopo |
563
+ |-----------|-------|
564
+ | `.content-state/` | Stato persistente del content framework (gitignored in produzione) |
565
+
566
+ ### Nessun Nuovo TypeScript
567
+
568
+ Zero file `.ts` aggiunti. Tutte le operazioni usano i 148 MCP tool esistenti orchestrati via skill prompt + file MD strutturati.
569
+
570
+ ---
571
+
572
+ ## Criteri di Accettazione per Fase
573
+
574
+ ### Fase 1: Content Pipeline
575
+
576
+ - [x] `content-brief.schema.md` definito e documentato
577
+ - [x] `site.config.md` schema definito e documentato
578
+ - [x] `wp-content-pipeline` skill creata con workflow completo
579
+ - [x] Flusso end-to-end testato: brief.md → WP post (distribuzione LinkedIn skipped — wp-rest-bridge non connesso, tool AIWU usato per WP)
580
+ - [x] Supporto multi-sito (opencactus + almeno un altro)
581
+
582
+ ### Fase 2: Content Intelligence
583
+
584
+ - [x] `signals-feed.schema.md` compatibile con GenSignal NormalizedEvent
585
+ - [x] `wp-analytics` estesa con Step 7 (signal feed generation)
586
+ - [x] Delta calculation funzionante (confronto con periodo precedente)
587
+ - [x] Almeno 3 GenSignal patterns riconosciuti automaticamente
588
+ - [ ] Flusso testato: analytics → signals-feed.md → insight azionabili
589
+
590
+ ### Fase 3: Editorial Calendar
591
+
592
+ - [x] `editorial.schema.md` definito con tabelle settimanali
593
+ - [x] `wp-editorial-planner` skill creata con 4 workflow steps
594
+ - [x] Conversione calendar entry → brief automatica
595
+ - [x] Scheduling WP post con status=future funzionante (via wp-rest-bridge `create_content`; AIWU non supporta `post_date` — vedi Known Limitations in SKILL.md)
596
+ - [x] Sync bidirezionale: WP publish status → calendar update (SYNC step definito; E2E read-only verificato via AIWU `wp_get_post`)
597
+
598
+ ---
599
+
600
+ ## Priorità e Sequenza
601
+
602
+ ```
603
+ Fase 1 (Content Pipeline) ← fondazione, abilita il flusso base
604
+ └─ Fase 2 (Intelligence) ← feedback loop, richiede Fase 1 per agire sui segnali
605
+ └─ Fase 3 (Calendar) ← orchestrazione temporale, usa Fase 1 + 2
606
+ ```
607
+
608
+ Fase 1 è autosufficiente. Fase 2 e 3 si costruiscono incrementalmente sopra.
609
+
610
+ ---
611
+
612
+ *Proposta architetturale generata come output del brainstorming strategico. Prossimo passo: approvazione utente → design document → implementation plan.*