claude-plugin-wordpress-manager 2.12.2 → 2.14.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 (62) hide show
  1. package/.claude-plugin/plugin.json +8 -3
  2. package/CHANGELOG.md +94 -2
  3. package/agents/wp-accessibility-auditor.md +1 -1
  4. package/agents/wp-content-strategist.md +2 -2
  5. package/agents/wp-deployment-engineer.md +1 -1
  6. package/agents/wp-distribution-manager.md +1 -1
  7. package/agents/wp-monitoring-agent.md +1 -1
  8. package/agents/wp-performance-optimizer.md +1 -1
  9. package/agents/wp-security-auditor.md +1 -1
  10. package/agents/wp-site-manager.md +3 -3
  11. package/commands/wp-setup.md +2 -2
  12. package/docs/GUIDE.md +260 -21
  13. package/docs/VALIDATION.md +341 -0
  14. package/docs/guides/wp-ecommerce.md +4 -4
  15. package/docs/plans/2026-03-01-tier3-wcop-implementation.md +1 -1
  16. package/docs/plans/2026-03-01-tier4-5-implementation.md +1 -1
  17. package/docs/plans/2026-03-02-content-framework-architecture.md +612 -0
  18. package/docs/plans/2026-03-02-content-framework-strategic-reflections.md +228 -0
  19. package/docs/plans/2026-03-02-content-intelligence-phase2.md +560 -0
  20. package/docs/plans/2026-03-02-content-pipeline-phase1.md +456 -0
  21. package/docs/plans/2026-03-02-dashboard-kanban-design.md +761 -0
  22. package/docs/plans/2026-03-02-dashboard-kanban-implementation.md +598 -0
  23. package/docs/plans/2026-03-02-dashboard-strategy.md +363 -0
  24. package/docs/plans/2026-03-02-editorial-calendar-phase3.md +490 -0
  25. package/docs/validation/.gitkeep +0 -0
  26. package/docs/validation/dashboard.html +286 -0
  27. package/docs/validation/results.json +1705 -0
  28. package/package.json +16 -3
  29. package/scripts/context-scanner.mjs +446 -0
  30. package/scripts/dashboard-renderer.mjs +553 -0
  31. package/scripts/run-validation.mjs +1132 -0
  32. package/servers/wp-rest-bridge/build/server.js +17 -6
  33. package/servers/wp-rest-bridge/build/tools/index.js +0 -9
  34. package/servers/wp-rest-bridge/build/tools/plugin-repository.js +23 -31
  35. package/servers/wp-rest-bridge/build/tools/schema.js +10 -2
  36. package/servers/wp-rest-bridge/build/tools/unified-content.js +10 -2
  37. package/servers/wp-rest-bridge/build/wordpress.d.ts +0 -3
  38. package/servers/wp-rest-bridge/build/wordpress.js +16 -98
  39. package/servers/wp-rest-bridge/package.json +1 -0
  40. package/skills/wp-analytics/SKILL.md +153 -0
  41. package/skills/wp-analytics/references/signals-feed-schema.md +417 -0
  42. package/skills/wp-content/references/content-templates.md +1 -1
  43. package/skills/wp-content/references/seo-optimization.md +8 -8
  44. package/skills/wp-content-attribution/references/roi-calculation.md +1 -1
  45. package/skills/wp-content-attribution/references/utm-tracking-setup.md +5 -5
  46. package/skills/wp-content-generation/references/generation-workflow.md +2 -2
  47. package/skills/wp-content-pipeline/SKILL.md +461 -0
  48. package/skills/wp-content-pipeline/references/content-brief-schema.md +377 -0
  49. package/skills/wp-content-pipeline/references/site-config-schema.md +431 -0
  50. package/skills/wp-content-repurposing/references/auto-transform-pipeline.md +1 -1
  51. package/skills/wp-content-repurposing/references/email-newsletter.md +1 -1
  52. package/skills/wp-content-repurposing/references/platform-specs.md +2 -2
  53. package/skills/wp-content-repurposing/references/transform-templates.md +27 -27
  54. package/skills/wp-dashboard/SKILL.md +121 -0
  55. package/skills/wp-deploy/references/ssh-deploy.md +2 -2
  56. package/skills/wp-editorial-planner/SKILL.md +262 -0
  57. package/skills/wp-editorial-planner/references/editorial-schema.md +268 -0
  58. package/skills/wp-multilang-network/references/content-sync.md +3 -3
  59. package/skills/wp-multilang-network/references/network-architecture.md +1 -1
  60. package/skills/wp-multilang-network/references/seo-international.md +7 -7
  61. package/skills/wp-structured-data/references/schema-types.md +4 -4
  62. package/skills/wp-webhooks/references/payload-formats.md +3 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wordpress-manager",
3
- "version": "2.6.0",
4
- "description": "Unified WordPress management plugin for Claude Code. Orchestrates Hostinger MCP (infrastructure), WP REST API bridge (111 tools incl. WooCommerce + Multisite + Webhooks + Mailchimp + Buffer + SendGrid + Google Search Console), and WordPress.com MCP (hosted sites) with 12 specialized agents, 36 skills, and security hooks. Includes AI content optimization (headline scoring, readability, SEO scoring, content triage), Google Search Console integration (keyword tracking, indexing, SEO feedback), social/email distribution (Mailchimp, Buffer, SendGrid), programmatic SEO, content-commerce attribution, multi-language network, fleet monitoring, content repurposing, webhook propagation, site monitoring, CI/CD pipeline automation, WordPress Multisite network management, WooCommerce store management, local dev environment support, development, testing, security, i18n, accessibility, headless, and operations.",
3
+ "version": "2.13.0",
4
+ "description": "Unified WordPress management plugin for Claude Code. Orchestrates Hostinger MCP, WP REST API bridge (148 tools incl. WooCommerce, Multisite, Mailchimp, Buffer, SendGrid, GSC, GA4, Plausible, CWV, Slack, Workflows, LinkedIn, Twitter, Schema), and WordPress.com MCP with 45 skills, 12 agents, and security hooks. v2.13.0 adds Content Framework: 3-phase pipeline from signals intelligence to editorial calendar to WordPress publishing.",
5
5
  "author": {
6
6
  "name": "vinmor",
7
7
  "email": "morreale.v@gmail.com"
@@ -37,7 +37,12 @@
37
37
  "seo-feedback",
38
38
  "content-optimization",
39
39
  "readability",
40
- "headline-scoring"
40
+ "headline-scoring",
41
+ "content-framework",
42
+ "content-pipeline",
43
+ "editorial-calendar",
44
+ "signals-intelligence",
45
+ "structured-data"
41
46
  ],
42
47
  "mcpServers": "./.mcp.json"
43
48
  }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,98 @@
2
2
 
3
3
  All notable changes to the WordPress Manager plugin for Claude Code.
4
4
 
5
+ ## [2.14.0] — 2026-03-02
6
+
7
+ ### Added — Editorial Kanban Dashboard
8
+
9
+ Dashboard HTML statico generato on-demand dai file `.content-state/`. Zero dipendenze esterne, zero network call, zero framework — un singolo file HTML self-contained apribile nel browser.
10
+
11
+ **Skill `wp-dashboard`**
12
+ - Nuova skill con trigger in italiano e inglese ("mostra dashboard", "show editorial status", "apri kanban")
13
+ - Workflow 4-step: sito target → mese → generazione → report
14
+ - Guida visuale integrata: come leggere colonne, card, signals, progress bar
15
+ - Tabella "Next Actions by Observation" che collega osservazioni visive ad azioni specifiche
16
+
17
+ **Script `context-scanner.mjs` (modulo condiviso)**
18
+ - Parser YAML frontmatter manuale (zero dipendenze npm) per `.content-state/` files
19
+ - Parser tabelle Markdown editoriali con risoluzione date
20
+ - `scanContentState()` — lettura aggregata di config, calendario, brief attivi/archiviati, signals
21
+ - `aggregateMetrics()` — metriche pipeline: colonne, progress, fill rate, next deadline, channel usage
22
+ - `renderContextSnippet()` — stub terminale per Fase B (context injection nelle skill esistenti)
23
+
24
+ **Script `dashboard-renderer.mjs` (CLI + HTML)**
25
+ - Template HTML Kanban con 5 colonne: Planned → Draft → Ready → Scheduled → Published
26
+ - Card colorate per status con date, titoli, brief ID, WP post ID, badge canali
27
+ - Progress bar con rapporto pubblicati/target
28
+ - Signals strip con anomalie e delta percentuali
29
+ - CSS Grid responsivo, stampa-friendly, ~14 KB output
30
+ - CLI: `--site=X`, `--month=YYYY-MM`, `--output=path`, `--no-open`
31
+ - Auto-detect sito se configurazione unica
32
+ - Apertura browser cross-platform (Linux/macOS/Windows)
33
+ - npm script: `npm run dashboard -- --site=mysite`
34
+
35
+ **Verificato con dati reali mysite.example.com**
36
+ - 8 entry calendario (3 planned, 1 draft, 2 ready, 2 published)
37
+ - 3 anomalie signals (+120%, +85%, +47%)
38
+ - Output 13.7 KB, tutte le sezioni presenti
39
+
40
+ ---
41
+
42
+ ## [2.13.0] — 2026-03-02
43
+
44
+ ### Added — Content Framework (3 Phases)
45
+
46
+ Il Content Framework introduce un'architettura a 3 fasi che collega signal intelligence, content pipeline e editorial calendar. Zero nuovi MCP tool TypeScript — l'intera orchestrazione vive nel CLI via skill + file Markdown strutturati.
47
+
48
+ **Phase 1: Content Pipeline Engine**
49
+ - Nuova skill `wp-content-pipeline` con workflow 5-step: `RECEIVE → PREPARE → PUBLISH → DISTRIBUTE → ARCHIVE`
50
+ - Schema `content-brief.schema.md` — formato di scambio tra Gen* skill e WordPress
51
+ - Schema `site-config.schema.md` — configurazione per-sito (cadenza, canali, defaults)
52
+ - Directory `.content-state/` con pipeline-active/archive per gestione brief
53
+ - Supporto multi-sito (mysite + altri)
54
+ - Distribuzione automatica su Buffer + Mailchimp dopo pubblicazione
55
+
56
+ **Phase 2: Content Intelligence**
57
+ - Estesa skill `wp-analytics` con Step 7 (signal feed generation)
58
+ - Schema `signals-feed.schema.md` — compatibile con GenSignal NormalizedEvent
59
+ - Delta calculation: confronto metriche con periodo precedente
60
+ - Riconoscimento automatico pattern GenSignal (Search Intent Shift, Early-Adopter Surge, Price-Floor Inversion)
61
+ - Pipeline: analytics → signals-feed.md → insight azionabili
62
+
63
+ **Phase 3: Editorial Calendar**
64
+ - Nuova skill `wp-editorial-planner` con workflow 4-step: `PLAN → BRIEF → SCHEDULE → SYNC`
65
+ - Schema `editorial.schema.md` — calendario mensile con tabelle settimanali (7 colonne)
66
+ - Lifecycle entry: `planned → draft → ready → scheduled → published`
67
+ - Integrazione cross-phase: signals-feed → topic suggestions → calendar → brief → WP post
68
+ - SYNC bidirezionale: status WordPress → aggiornamento calendario
69
+
70
+ **E2E Test su mysite.example.com**
71
+ - PLAN: anomalia signals-feed (acqua premium +120%) → topic assignment ✅
72
+ - BRIEF: calendar entry → BRF-2026-005.brief.md con contenuto completo ✅
73
+ - SCHEDULE: brief → WP post via AIWU ✅ (con limitazione `post_date` documentata)
74
+ - SYNC: lettura status WP e verifica calendario ✅
75
+ - Cleanup: test posts eliminati ✅
76
+
77
+ **Known Limitation — AIWU MCP**
78
+ - `wp_create_post` / `wp_update_post` non supportano `post_date`
79
+ - `status: future` non funziona via AIWU (auto-publish)
80
+ - Workaround: usare wp-rest-bridge `create_content` che supporta `date`
81
+
82
+ ### Added — Validation Runner v1.2.0
83
+
84
+ - Sistema di validazione automatica per tutti i 148 MCP tool
85
+ - Test CRUD per 26 write tool con sequenze automatiche a 2 tier
86
+ - Modalità interattiva CLI con `@clack/prompts` (selezione sito, tipo validazione, filtro modulo)
87
+ - Flag `--site=X` per selezione sito in batch mode
88
+ - Report: 48 read passed, 26 write passed, 0 failed su mysite
89
+
90
+ ### Stats
91
+
92
+ - Skills: 43 → **45** (+wp-content-pipeline, +wp-editorial-planner)
93
+ - Reference schemas: +4 (content-brief, site-config, signals-feed, editorial)
94
+ - Architecture doc: `docs/plans/2026-03-02-content-framework-architecture.md`
95
+ - GUIDE.md: +3 sezioni (17.4 Content Pipeline, 17.5 Content Intelligence, 17.6 Editorial Calendar)
96
+
5
97
  ## [2.12.2] — 2026-03-01
6
98
 
7
99
  ### Fixed — Structured Data Tools Rewrite
@@ -19,7 +111,7 @@ All notable changes to the WordPress Manager plugin for Claude Code.
19
111
  - Now finds ALL JSON-LD scripts on a page (not just the first)
20
112
  - Reports per-schema issues with type labels
21
113
 
22
- ### Validated end-to-end on opencactus.com
114
+ ### Validated end-to-end on mysite.example.com
23
115
  - sd_inject Article on post 2348: ✅
24
116
  - sd_list_schemas finds injected schema: ✅
25
117
  - sd_validate on live URL: ✅ (2 schemas detected)
@@ -42,7 +134,7 @@ All notable changes to the WordPress Manager plugin for Claude Code.
42
134
  - Corrected tool count from 145 to 148 across GUIDE.md and package.json
43
135
  - WordPress core: Plugins 6 (not 5), Users 6 (not 5), Media 5 (not 4), +Search (1)
44
136
 
45
- ### Validated end-to-end on opencactus.com
137
+ ### Validated end-to-end on mysite.example.com
46
138
  - `get_active_site`, `list_content`, `sd_validate` (markup + URL), `sd_list_schemas`
47
139
  - GSC, Mailchimp tools return correct "not configured" errors
48
140
 
@@ -6,7 +6,7 @@ description: |
6
6
 
7
7
  <example>
8
8
  Context: User wants to check their WordPress theme for accessibility compliance.
9
- user: "Run an accessibility audit on my opencactus.com site"
9
+ user: "Run an accessibility audit on my mysite.example.com site"
10
10
  assistant: "I'll use the wp-accessibility-auditor agent to perform a WCAG 2.2 AA compliance audit."
11
11
  <commentary>Accessibility audits require automated scanning, code review, and manual testing guidance.</commentary>
12
12
  </example>
@@ -6,7 +6,7 @@ description: |
6
6
 
7
7
  <example>
8
8
  Context: User wants to create a new blog post with SEO optimization.
9
- user: "Create a blog post about cactus water benefits for opencactus.com"
9
+ user: "Create a blog post about sparkling water benefits for mysite.example.com"
10
10
  assistant: "I'll use the wp-content-strategist agent to draft and publish the post with SEO optimization."
11
11
  <commentary>Content creation with SEO awareness requires specialized content workflow.</commentary>
12
12
  </example>
@@ -20,7 +20,7 @@ description: |
20
20
 
21
21
  <example>
22
22
  Context: User needs to manage taxonomies and organize content.
23
- user: "Create product categories for the DolceZero line"
23
+ user: "Create product categories for the AcmeBrand line"
24
24
  assistant: "I'll use the wp-content-strategist agent to set up the taxonomy structure."
25
25
  <commentary>Taxonomy design impacts content architecture and SEO.</commentary>
26
26
  </example>
@@ -6,7 +6,7 @@ description: |
6
6
 
7
7
  <example>
8
8
  Context: User wants to deploy a custom plugin to their Hostinger-hosted WordPress site.
9
- user: "Deploy the bioeconomy modal plugin to opencactus.com"
9
+ user: "Deploy the bioeconomy modal plugin to mysite.example.com"
10
10
  assistant: "I'll use the wp-deployment-engineer agent to handle the deployment."
11
11
  <commentary>Plugin deployment to Hostinger requires specialized deployment workflow.</commentary>
12
12
  </example>
@@ -128,4 +128,4 @@ After each distribution operation, provide:
128
128
 
129
129
  ## Context
130
130
 
131
- Working directory: `/home/vinmor/.claude/plugins/local/wordpress-manager`
131
+ Working directory: `/home/user/.claude/plugins/local/wordpress-manager`
@@ -6,7 +6,7 @@ description: |
6
6
 
7
7
  <example>
8
8
  Context: User wants to set up monitoring for their WordPress site.
9
- user: "Set up monitoring for my opencactus.com site"
9
+ user: "Set up monitoring for my mysite.example.com site"
10
10
  assistant: "I'll use the wp-monitoring-agent to establish a monitoring baseline and configure health checks."
11
11
  <commentary>Monitoring setup requires running detection, establishing baselines, and configuring checks.</commentary>
12
12
  </example>
@@ -6,7 +6,7 @@ description: |
6
6
 
7
7
  <example>
8
8
  Context: User's WordPress site is loading slowly.
9
- user: "My opencactus.com site is really slow, can you help?"
9
+ user: "My mysite.example.com site is really slow, can you help?"
10
10
  assistant: "I'll use the wp-performance-optimizer agent to diagnose performance bottlenecks."
11
11
  <commentary>Performance diagnosis requires checking plugins, hosting, caching, and content delivery.</commentary>
12
12
  </example>
@@ -6,7 +6,7 @@ description: |
6
6
 
7
7
  <example>
8
8
  Context: User wants a security audit of their WordPress site.
9
- user: "Run a security check on opencactus.com"
9
+ user: "Run a security check on mysite.example.com"
10
10
  assistant: "I'll use the wp-security-auditor agent to perform a comprehensive security audit."
11
11
  <commentary>Security audits require checking plugins, users, hosting config, and known vulnerabilities.</commentary>
12
12
  </example>
@@ -6,21 +6,21 @@ description: |
6
6
 
7
7
  <example>
8
8
  Context: User wants to check the status of their WordPress site.
9
- user: "What's the status of my opencactus.com site?"
9
+ user: "What's the status of my mysite.example.com site?"
10
10
  assistant: "I'll use the wp-site-manager agent to check your site status."
11
11
  <commentary>Site status check requires coordinating multiple API calls.</commentary>
12
12
  </example>
13
13
 
14
14
  <example>
15
15
  Context: User wants to manage content across multiple WordPress sites.
16
- user: "List all draft posts on opencactus"
16
+ user: "List all draft posts on mysite"
17
17
  assistant: "I'll use the wp-site-manager agent to query your WordPress content."
18
18
  <commentary>Content management operations should go through this agent.</commentary>
19
19
  </example>
20
20
 
21
21
  <example>
22
22
  Context: User needs to switch between WordPress sites.
23
- user: "Switch to my bioinagro site and list plugins"
23
+ user: "Switch to my othersite site and list plugins"
24
24
  assistant: "I'll use the wp-site-manager agent to handle multi-site operations."
25
25
  <commentary>Multi-site coordination is a core capability of this agent.</commentary>
26
26
  </example>
@@ -16,8 +16,8 @@ Add and configure a new WordPress site for management through Claude Code.
16
16
 
17
17
  ### Step 1: Gather Site Information
18
18
  Ask the user for:
19
- - **Site URL**: The WordPress site's base URL (e.g., `https://opencactus.com`)
20
- - **Site ID**: A short identifier for multi-site switching (e.g., `opencactus`)
19
+ - **Site URL**: The WordPress site's base URL (e.g., `https://mysite.example.com`)
20
+ - **Site ID**: A short identifier for multi-site switching (e.g., `mysite`)
21
21
  - **Admin username**: WordPress admin email or username
22
22
  - **Application password**: Generated from WordPress Admin → Users → Profile → Application Passwords
23
23
  - **Hosting provider**: Hostinger / other (determines available tools)
package/docs/GUIDE.md CHANGED
@@ -130,7 +130,7 @@ wordpress-manager/ # v2.12.2
130
130
  | +-- wp-distribution-manager.md # Multi-channel distribution + LinkedIn + Twitter/X (v2.10.0)
131
131
  +-- commands/ # 5 slash commands
132
132
  | +-- wp-status.md / wp-deploy.md / wp-audit.md / wp-backup.md / wp-setup.md
133
- +-- skills/ # 43 skill totali
133
+ +-- skills/ # 46 skill totali
134
134
  | +-- [OPERATIVE - 5 skill]
135
135
  | +-- wp-deploy/ # Procedure deploy
136
136
  | +-- wp-audit/ # Checklist audit
@@ -346,7 +346,7 @@ WordPress Manager comprende richieste in linguaggio naturale. Ecco come formular
346
346
 
347
347
  | Cosa vuoi fare | Come chiederlo |
348
348
  |----------------|----------------|
349
- | Controllare lo stato | "Come sta il mio sito?" / "Status di opencactus" |
349
+ | Controllare lo stato | "Come sta il mio sito?" / "Status di mysite" |
350
350
  | Creare un post | "Crea un post su..." / "Scrivi un articolo su..." |
351
351
  | Deploy un plugin | "Deploya il plugin X" / "Pusha il tema in produzione" |
352
352
  | Audit sicurezza | "Fai un audit di sicurezza" / "Controlla la sicurezza del sito" |
@@ -356,7 +356,7 @@ WordPress Manager comprende richieste in linguaggio naturale. Ecco come formular
356
356
  | Ripristinare un backup | "Ripristina il backup" / "Restore dal backup di ieri" |
357
357
  | Migrare un sito | "Migra il sito su Hostinger" / "Trasferisci il sito" |
358
358
  | Aggiungere un nuovo sito | "Configura un nuovo sito WordPress" |
359
- | Cambiare sito attivo | "Passa al sito bioinagro" / "Switch a opencactus" |
359
+ | Cambiare sito attivo | "Passa al sito othersite" / "Switch a mysite" |
360
360
  | Eseguire test | "Esegui i test" / "Lancia Playwright" / "Testa il plugin" |
361
361
  | Hardening sicurezza | "Metti in sicurezza il sito" / "Hardening" |
362
362
  | Audit accessibilita | "Controlla l'accessibilita" / "WCAG audit" |
@@ -557,7 +557,7 @@ Il plugin include **12 agenti** organizzati per area di competenza. Alcuni agent
557
557
  - Switching tra siti multipli
558
558
  - Coordinamento tra tool Hostinger e WP REST Bridge
559
559
 
560
- **Esempio attivazione**: "Come sta il mio sito?", "Passa al sito opencactus", "Elenca tutti i siti configurati"
560
+ **Esempio attivazione**: "Come sta il mio sito?", "Passa al sito mysite", "Elenca tutti i siti configurati"
561
561
 
562
562
  ---
563
563
 
@@ -982,7 +982,7 @@ wp-block-development: guida creazione blocco
982
982
  ```
983
983
 
984
984
  ```
985
- Utente: "Deploya il plugin su opencactus"
985
+ Utente: "Deploya il plugin su mysite"
986
986
  |
987
987
  wordpress-router: TASK = operativo
988
988
  |
@@ -1373,7 +1373,7 @@ Questi hook eseguono script bash per validazioni tecniche:
1373
1373
  Per un'operazione di import WordPress, la catena e:
1374
1374
 
1375
1375
  ```
1376
- Utente: "Importa il backup su opencactus"
1376
+ Utente: "Importa il backup su mysite"
1377
1377
  |
1378
1378
  Hook #6 (backup-reminder.sh) -> Stampa reminder backup
1379
1379
  |
@@ -1536,26 +1536,26 @@ Aggiungi piu siti a `WP_SITES_CONFIG`:
1536
1536
  ```bash
1537
1537
  export WP_SITES_CONFIG='[
1538
1538
  {
1539
- "id": "opencactus",
1540
- "url": "https://opencactus.com",
1541
- "username": "admin@opencactus.com",
1539
+ "id": "mysite",
1540
+ "url": "https://mysite.example.com",
1541
+ "username": "admin@mysite.example.com",
1542
1542
  "password": "xxxx xxxx xxxx xxxx"
1543
1543
  },
1544
1544
  {
1545
- "id": "bioinagro",
1546
- "url": "https://bioinagro.com",
1547
- "username": "admin@bioinagro.com",
1545
+ "id": "othersite",
1546
+ "url": "https://othersite.example.com",
1547
+ "username": "admin@othersite.example.com",
1548
1548
  "password": "yyyy yyyy yyyy yyyy"
1549
1549
  }
1550
1550
  ]'
1551
- export WP_DEFAULT_SITE="opencactus"
1551
+ export WP_DEFAULT_SITE="mysite"
1552
1552
  ```
1553
1553
 
1554
1554
  ### Cambio Sito
1555
1555
 
1556
1556
  ```
1557
- "Passa al sito bioinagro"
1558
- "Switch to opencactus"
1557
+ "Passa al sito othersite"
1558
+ "Switch to mysite"
1559
1559
  "Elenca i siti configurati"
1560
1560
  ```
1561
1561
 
@@ -1578,7 +1578,7 @@ Il wp-site-manager agent determina automaticamente quale set di tool usare:
1578
1578
  ### Scenario 1: Check-up Mattutino del Sito
1579
1579
 
1580
1580
  ```
1581
- Tu: "Come sta opencactus oggi?"
1581
+ Tu: "Come sta mysite oggi?"
1582
1582
 
1583
1583
  Claude:
1584
1584
  - Controlla raggiungibilita (HTTP 200)
@@ -1592,7 +1592,7 @@ Claude:
1592
1592
  ### Scenario 2: Pubblicare un Articolo Ottimizzato SEO
1593
1593
 
1594
1594
  ```
1595
- Tu: "Scrivi e pubblica un articolo sulla bioeconomia del fico d'India in Sicilia"
1595
+ Tu: "Scrivi e pubblica un articolo sulla bioeconomia del frutto mediterraneo in Mediterraneo"
1596
1596
 
1597
1597
  Claude (attiva wp-content-strategist + skill wp-content):
1598
1598
  1. Propone struttura (H1, H2, H3)
@@ -1764,7 +1764,7 @@ Claude (attiva wp-cicd-engineer + skill wp-cicd):
1764
1764
  ### Scenario 14: Monitoring Continuo del Sito
1765
1765
 
1766
1766
  ```
1767
- Tu: "Configura il monitoring completo per opencactus.com"
1767
+ Tu: "Configura il monitoring completo per mysite.example.com"
1768
1768
 
1769
1769
  Claude (attiva wp-monitoring-agent + skill wp-monitoring):
1770
1770
  1. Detection con monitoring_inspect.mjs (rileva setup esistente)
@@ -2014,7 +2014,7 @@ Claude (attiva wp-distribution-manager + skill wp-linkedin):
2014
2014
  ### Scenario 30: Thread Twitter/X dal Blog
2015
2015
 
2016
2016
  ```
2017
- Tu: "Crea un thread Twitter dal mio ultimo articolo sul fico d'India"
2017
+ Tu: "Crea un thread Twitter dal mio ultimo articolo sul frutto mediterraneo"
2018
2018
 
2019
2019
  Claude (attiva wp-distribution-manager + skill wp-twitter):
2020
2020
  1. Detection con twitter_inspect.mjs (OAuth tokens configurati?)
@@ -2029,10 +2029,10 @@ Claude (attiva wp-distribution-manager + skill wp-twitter):
2029
2029
  ### Scenario 31: Generare Contenuto AI da Zero
2030
2030
 
2031
2031
  ```
2032
- Tu: "Scrivi un articolo sui benefici dell'acqua di cactus per l'idratazione"
2032
+ Tu: "Scrivi un articolo sui benefici dell'acqua premium per l'idratazione"
2033
2033
 
2034
2034
  Claude (attiva wp-content-strategist + skill wp-content-generation):
2035
- 1. Brief: topic = acqua di cactus, audience = consumatori health-conscious, goal = informare, 1200-1500 parole
2035
+ 1. Brief: topic = acqua premium, audience = consumatori health-conscious, goal = informare, 1200-1500 parole
2036
2036
  2. Keyword research: se GSC disponibile, gsc_query_analytics per keyword correlate; altrimenti suggerisce keyword semantiche
2037
2037
  3. Outline: pattern "Standard Article" — intro + 4 H2 (benefici, scienza, vs alternative, come usare) + conclusione
2038
2038
  4. Draft: scrive contenuto calibrato sulla voce del sito (analizza ultimi 5 post per tono)
@@ -2159,6 +2159,130 @@ File: 644 (rw-r--r--)
2159
2159
  wp-config.php: 440 (r--r-----)
2160
2160
  ```
2161
2161
 
2162
+ ### 14.8 Validation Runner — Test Automatizzati dei Tool MCP
2163
+
2164
+ Il **Validation Runner** (`scripts/run-validation.mjs`) verifica il corretto funzionamento di tutti i 148 tool MCP registrati. Supporta due modalita di utilizzo: **interattiva** (menu guidato) e **batch** (flag CLI per automazione/CI).
2165
+
2166
+ #### Modalita Interattiva
2167
+
2168
+ Lanciando lo script senza flag si attiva un menu guidato con `@clack/prompts`:
2169
+
2170
+ ```bash
2171
+ node scripts/run-validation.mjs
2172
+ ```
2173
+
2174
+ Il menu guida attraverso 4 step:
2175
+
2176
+ 1. **Selezione sito target** — lista automatica dai siti in `WP_SITES_CONFIG`
2177
+ 2. **Tipo di validazione** — read tool, write tool per tier, o validazione completa
2178
+ 3. **Filtro modulo** (opzionale) — per testare un singolo modulo (es. `unified-content`)
2179
+ 4. **Conferma** — riepilogo e conferma prima dell'esecuzione
2180
+
2181
+ ```
2182
+ ┌ WP REST Bridge — Validation Runner v1.2.0
2183
+
2184
+ ◆ Seleziona il sito target
2185
+ │ ● mysite (https://mysite.example.com)
2186
+ │ ○ othersite (https://othersite.example.com)
2187
+
2188
+ ◆ Cosa vuoi validare?
2189
+ │ ○ Solo read tool
2190
+ │ ○ Solo write tool (Tier 1 — CRUD base)
2191
+ │ ○ Solo write tool (Tier 2 — con dipendenze)
2192
+ │ ○ Solo write tool (tutti i tier)
2193
+ │ ○ Tutto (read + write)
2194
+
2195
+ ```
2196
+
2197
+ #### Modalita Batch (CLI)
2198
+
2199
+ Per automazione, CI, o uso da Claude Code si usano i flag:
2200
+
2201
+ ```bash
2202
+ # Selezionare sito specifico
2203
+ node scripts/run-validation.mjs --site=mysite
2204
+
2205
+ # Test solo read tool
2206
+ node scripts/run-validation.mjs --site=mysite --module=unified-content
2207
+
2208
+ # Test write CRUD sequences
2209
+ node scripts/run-validation.mjs --site=mysite --test-writes
2210
+
2211
+ # Solo Tier 1 (content, term, comment, user)
2212
+ node scripts/run-validation.mjs --test-writes --tier=1
2213
+
2214
+ # Solo Tier 2 (media, plugin, assign_terms)
2215
+ node scripts/run-validation.mjs --test-writes --tier=2
2216
+
2217
+ # Regolare il delay tra le chiamate
2218
+ node scripts/run-validation.mjs --delay=200
2219
+ ```
2220
+
2221
+ **Flag disponibili**:
2222
+
2223
+ | Flag | Descrizione |
2224
+ |------|-------------|
2225
+ | `--site=ID` | Seleziona il sito target (switch automatico via MCP) |
2226
+ | `--module=NOME` | Filtra per modulo (es. `unified-content`, `gsc`, `wc-products`) |
2227
+ | `--test-writes` | Esegue sequenze CRUD: create > verify > update > verify > delete |
2228
+ | `--tier=N` | Filtra le write sequences per tier (1, 2, o 3) |
2229
+ | `--include-writes` | Include write tool nel test read (senza sequenze CRUD) |
2230
+ | `--delay=MS` | Millisecondi di attesa tra le chiamate (default: 100) |
2231
+ | `--timeout=MS` | Timeout per singola chiamata (default: 10000) |
2232
+
2233
+ **Regola duale**: senza flag → interattivo. Con almeno un flag → batch mode.
2234
+
2235
+ #### Write Test Tiers
2236
+
2237
+ | Tier | Sequenze | Descrizione |
2238
+ |------|----------|-------------|
2239
+ | **1** | content, term, comment, user | CRUD base, entita standalone |
2240
+ | **2** | media, plugin, assign_terms | CRUD con dipendenze tra entita |
2241
+ | **3** | switch_site | Operazioni speciali (cambio sito e ritorno) |
2242
+
2243
+ Ogni sequenza esegue il ciclo completo **create → verify → update → verify → delete** con cleanup automatico in caso di errore.
2244
+
2245
+ #### Output: Tre Livelli di Dettaglio
2246
+
2247
+ I risultati vengono generati in tre formati complementari:
2248
+
2249
+ 1. **Console (stderr)** — log in tempo reale durante l'esecuzione, ideale per monitorare il progresso:
2250
+ ```
2251
+ [validation] Write sequences to run: content(T1), term(T1), user(T1)
2252
+ [validation] ── Sequence: content (Tier 1) ──
2253
+ [validation] → extracted id=2451
2254
+ [validation] [+] create:create_content (488ms)
2255
+ [validation] [+] verify:get_content (341ms)
2256
+ ```
2257
+
2258
+ 2. **Markdown** (`docs/VALIDATION.md`) — report tabellare per consultazione rapida, con status per ogni tool, servizio e modulo.
2259
+
2260
+ 3. **Dashboard HTML** (`docs/validation/dashboard.html`) — interfaccia grafica interattiva con:
2261
+ - Grafici riassuntivi (passed/failed/skipped)
2262
+ - Dettaglio per modulo e servizio
2263
+ - Tempo di risposta per ogni tool
2264
+ - Filtri e ricerca
2265
+
2266
+ > **Importante**: La dashboard carica `results.json` via `fetch()`, quindi richiede un server HTTP. Non funziona con il protocollo `file://`.
2267
+
2268
+ ```bash
2269
+ # Avviare un server locale per la dashboard
2270
+ cd docs/validation && python3 -m http.server 8111
2271
+
2272
+ # Poi aprire nel browser
2273
+ # http://localhost:8111/dashboard.html
2274
+ ```
2275
+
2276
+ #### File Generati
2277
+
2278
+ | File | Formato | Descrizione |
2279
+ |------|---------|-------------|
2280
+ | `docs/validation/results.json` | JSON | Dati strutturati, merge incrementale tra run |
2281
+ | `docs/VALIDATION.md` | Markdown | Report leggibile, rigenerato ad ogni run |
2282
+ | `docs/validation/dashboard.html` | HTML | Dashboard interattiva (richiede HTTP server) |
2283
+
2284
+ I risultati sono **incrementali**: un run su un singolo modulo (`--module=X`) aggiorna solo quel modulo in `results.json`, preservando i risultati precedenti degli altri.
2285
+
2162
2286
  ---
2163
2287
 
2164
2288
  ## 15. Troubleshooting
@@ -2363,6 +2487,121 @@ bash ~/.claude/plugins/local/wordpress-manager/scripts/validate-wp-operation.sh
2363
2487
 
2364
2488
  ---
2365
2489
 
2490
+ ## 17. Content Framework
2491
+
2492
+ The Content Framework connects Gen* ecosystem skills (GenCorpComm, GenMarketing, GenSignal) to WordPress publishing through structured Markdown files.
2493
+
2494
+ ### 17.1 Architecture
2495
+
2496
+ The framework uses three types of MD files as configuration layer:
2497
+
2498
+ | Type | Suffix | Purpose | Location |
2499
+ |------|--------|---------|----------|
2500
+ | Schema | `.schema.md` | Template definition | `skills/wp-content-pipeline/references/` |
2501
+ | Config | `.config.md` | Site-specific settings | `.content-state/{site_id}.config.md` |
2502
+ | Brief | `.brief.md` | Content instance | `.content-state/pipeline-active/` |
2503
+
2504
+ ### 17.2 Content Pipeline (Phase 1)
2505
+
2506
+ **Skill**: `wp-content-pipeline`
2507
+
2508
+ The pipeline orchestrates: `SCAN → CONFIG → VALIDATE → PUBLISH → DISTRIBUTE → UPDATE → ARCHIVE`
2509
+
2510
+ **Creating a brief**:
2511
+ 1. Generate content (via GenCorpComm or manually)
2512
+ 2. Save as `.content-state/pipeline-active/BRF-YYYY-NNN.brief.md`
2513
+ 3. Set frontmatter: site_id, title, categories, channels, SEO params
2514
+ 4. Set `status: ready` when content is finalized
2515
+
2516
+ **Publishing a brief**:
2517
+ 1. Invoke `wp-content-pipeline` skill
2518
+ 2. Pipeline reads all `status: ready` briefs
2519
+ 3. Validates quality gates
2520
+ 4. Creates WP post → distributes to channels → archives brief
2521
+
2522
+ **Site configuration**:
2523
+ - One `.content-state/{site_id}.config.md` per managed site
2524
+ - Defines brand voice, default categories, active channels, SEO settings
2525
+ - Brief values override config defaults
2526
+
2527
+ ### 17.3 Directory Structure
2528
+
2529
+ ```
2530
+ .content-state/
2531
+ ├── {site_id}.config.md # site configuration
2532
+ ├── pipeline-active/ # briefs in progress
2533
+ │ └── BRF-YYYY-NNN.brief.md
2534
+ └── pipeline-archive/ # completed briefs
2535
+ └── BRF-YYYY-NNN.brief.md
2536
+ ```
2537
+
2538
+ ### 17.4 Integration with Gen* Skills
2539
+
2540
+ | Gen* Skill | Produces | Pipeline Consumes |
2541
+ |------------|----------|-------------------|
2542
+ | GenCorpComm | Multi-format content | Body + metadata → brief.md |
2543
+ | GenMarketing | Content calendar | Topics + dates → brief.md |
2544
+ | GenBrand | Brand voice | Tone + style → config.md |
2545
+ | GenSignal | Market signals | Topics → editorial planning (Phase 2) |
2546
+
2547
+ ### 17.5 Content Intelligence (Phase 2)
2548
+
2549
+ **Skill**: `wp-analytics` (extended with Step 7: Signal Feed Generation)
2550
+
2551
+ The intelligence layer creates a feedback loop: analytics data → structured signals → actionable insights.
2552
+
2553
+ **Generating a signals feed**:
2554
+ 1. Run `wp-analytics` signal feed generation for a site
2555
+ 2. Step 7 collects data from GA4, GSC, Plausible, CWV tools
2556
+ 3. Calculates delta % vs previous period
2557
+ 4. Maps metrics to GenSignal NormalizedEvent format
2558
+ 5. Identifies anomalies (±30% threshold by default)
2559
+ 6. Matches 3 GenSignal patterns automatically
2560
+ 7. Writes `.content-state/signals-feed.md`
2561
+
2562
+ **Detectable patterns**:
2563
+
2564
+ | Pattern | Detection Source | Trigger |
2565
+ |---------|-----------------|---------|
2566
+ | Search Intent Shift | GSC queries | CTR ≥ +20% with stable position |
2567
+ | Early-Adopter Surge | GA4 traffic sources | Single source ≥ +50% vs site < +20% |
2568
+ | Hype→Utility Crossover | GA4 page metrics | Engagement ≥ +15% with bounce ≤ -10% |
2569
+
2570
+ **Acting on signals**:
2571
+ - "Approfondisci con GenSignal" → Full SignalCard with scoring and next_actions
2572
+ - "Crea brief dai segnali" → Auto-generate content briefs in pipeline-active/
2573
+ - Signals feed topic suggestions → Editorial calendar (Phase 3)
2574
+
2575
+ **Signal feed file**: `.content-state/signals-feed.md` (overwritten each generation)
2576
+
2577
+ ### 17.6 Editorial Calendar (Phase 3)
2578
+
2579
+ **Skill**: `wp-editorial-planner`
2580
+
2581
+ The editorial planner manages monthly content calendars as `.state.md` files, bridging strategic planning to tactical execution.
2582
+
2583
+ **Workflow**: `PLAN → BRIEF → SCHEDULE → SYNC`
2584
+
2585
+ | Step | Action | Input | Output |
2586
+ |------|--------|-------|--------|
2587
+ | PLAN | Create monthly calendar | site config + signals feed | `{YYYY-MM}-editorial.state.md` |
2588
+ | BRIEF | Convert entries to briefs | calendar entries | `pipeline-active/BRF-*.brief.md` |
2589
+ | SCHEDULE | Create WP future posts | ready briefs | WordPress posts with `status: future` |
2590
+ | SYNC | Update calendar from WP | WordPress post status | Updated calendar entries |
2591
+
2592
+ **Calendar structure**:
2593
+ - One `.content-state/{YYYY-MM}-editorial.state.md` per month
2594
+ - YAML frontmatter: monthly goals, posts target, focus topics, SEO targets
2595
+ - Markdown tables: one per week with columns Data, Titolo, Tipo, Status, Brief ID, Post ID, Canali
2596
+
2597
+ **Entry lifecycle**: `planned → draft → ready → scheduled → published`
2598
+
2599
+ **Cross-phase integration**:
2600
+ - Phase 2 signals → topic suggestions for `[da assegnare]` entries
2601
+ - Calendar entries → Phase 1 briefs → WordPress publishing pipeline
2602
+
2603
+ ---
2604
+
2366
2605
  *Guida v2.12.2 — WordPress Manager Plugin per Claude Code*
2367
2606
  *Ultimo aggiornamento: 2026-03-01*
2368
2607
  *WCOP Score: 8.8/10 (Tier 4+5 complete)*