claude-plugin-wordpress-manager 2.9.1 → 2.12.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 (36) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/agents/wp-content-strategist.md +58 -1
  3. package/agents/wp-distribution-manager.md +39 -6
  4. package/docs/plans/2026-03-01-tier6-7-design.md +246 -0
  5. package/docs/plans/2026-03-01-tier6-7-implementation.md +1629 -0
  6. package/hooks/hooks.json +18 -0
  7. package/package.json +6 -3
  8. package/servers/wp-rest-bridge/build/tools/index.js +9 -0
  9. package/servers/wp-rest-bridge/build/tools/linkedin.js +203 -0
  10. package/servers/wp-rest-bridge/build/tools/schema.js +159 -0
  11. package/servers/wp-rest-bridge/build/tools/twitter.js +183 -0
  12. package/servers/wp-rest-bridge/build/wordpress.js +94 -0
  13. package/skills/wordpress-router/references/decision-tree.md +10 -2
  14. package/skills/wp-content-generation/SKILL.md +128 -0
  15. package/skills/wp-content-generation/references/brief-templates.md +151 -0
  16. package/skills/wp-content-generation/references/generation-workflow.md +132 -0
  17. package/skills/wp-content-generation/references/outline-patterns.md +188 -0
  18. package/skills/wp-content-generation/scripts/content_gen_inspect.mjs +90 -0
  19. package/skills/wp-content-repurposing/SKILL.md +13 -0
  20. package/skills/wp-content-repurposing/references/auto-transform-pipeline.md +128 -0
  21. package/skills/wp-content-repurposing/references/transform-templates.md +304 -0
  22. package/skills/wp-linkedin/SKILL.md +96 -0
  23. package/skills/wp-linkedin/references/linkedin-analytics.md +58 -0
  24. package/skills/wp-linkedin/references/linkedin-posting.md +53 -0
  25. package/skills/wp-linkedin/references/linkedin-setup.md +59 -0
  26. package/skills/wp-linkedin/scripts/linkedin_inspect.mjs +55 -0
  27. package/skills/wp-structured-data/SKILL.md +94 -0
  28. package/skills/wp-structured-data/references/injection-patterns.md +160 -0
  29. package/skills/wp-structured-data/references/schema-types.md +127 -0
  30. package/skills/wp-structured-data/references/validation-guide.md +89 -0
  31. package/skills/wp-structured-data/scripts/schema_inspect.mjs +88 -0
  32. package/skills/wp-twitter/SKILL.md +101 -0
  33. package/skills/wp-twitter/references/twitter-analytics.md +60 -0
  34. package/skills/wp-twitter/references/twitter-posting.md +66 -0
  35. package/skills/wp-twitter/references/twitter-setup.md +62 -0
  36. package/skills/wp-twitter/scripts/twitter_inspect.mjs +58 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,79 @@
2
2
 
3
3
  All notable changes to the WordPress Manager plugin for Claude Code.
4
4
 
5
+ ## [2.12.0] — 2026-03-01
6
+
7
+ ### Added — Content Generation + Structured Data (Tier 7: Content Factory Completeness)
8
+
9
+ **Structured Data (3 MCP tools)**
10
+ - `sd_validate` — validate JSON-LD/Schema.org markup
11
+ - `sd_inject` — inject/update JSON-LD in WordPress posts
12
+ - `sd_list_schemas` — audit Schema.org types across the site
13
+ - New skill: `wp-structured-data` with schema types, validation, and injection references
14
+ - Detection script: `schema_inspect.mjs`
15
+ - Supported types: Article, Product, FAQ, HowTo, LocalBusiness, Event, Organization, BreadcrumbList
16
+
17
+ **Content Generation (procedure-based, no new MCP tools)**
18
+ - New skill: `wp-content-generation` with AI-driven content pipeline
19
+ - 7-step procedure: brief → keyword research → outline → draft → SEO optimize → structured data → publish
20
+ - Uses existing MCP tools (wp/v2, gsc_*, sd_*)
21
+ - Detection script: `content_gen_inspect.mjs`
22
+ - References: generation workflow, brief templates, outline patterns
23
+
24
+ **Infrastructure**
25
+ - Router v18 (+2 categories: content generation, structured data)
26
+ - Updated wp-content-strategist agent with AI generation and schema procedures
27
+
28
+ **Stats:** 41 → 43 skills | 142 → 145 MCP tools | Router v17 → v18
29
+
30
+ ### WCOP Score
31
+ - Content Factory: 9/10 → 10/10 (AI generation + structured data)
32
+ - Distribution: 9/10 (completed in v2.10-2.11)
33
+ - **Total: 8.8/10 → 9.2/10**
34
+
35
+ ## [2.11.0] — 2026-03-01
36
+
37
+ ### Added — Auto-Transform Pipeline (Tier 6b: Distribution Completeness)
38
+
39
+ - Auto-transform pipeline in `wp-content-repurposing` skill (new Section 5)
40
+ - Template system: blog→tweet, blog→thread, blog→LinkedIn post, blog→LinkedIn article, blog→email snippet
41
+ - Platform-specific formatting rules with character limits
42
+ - Integration with `li_*`, `tw_*`, `buf_*`, `mc_*` MCP tools
43
+ - New references: `auto-transform-pipeline.md`, `transform-templates.md`
44
+
45
+ **Stats:** 41 skills (unchanged) | 142 MCP tools (unchanged) | WCOP Distribution: 8/10 → 9/10
46
+
47
+ ## [2.10.0] — 2026-03-01
48
+
49
+ ### Added — Direct Social APIs (Tier 6a: Distribution Completeness)
50
+
51
+ **LinkedIn Integration (5 MCP tools)**
52
+ - `li_get_profile` — get authenticated user profile
53
+ - `li_create_post` — create feed post (text, link, image)
54
+ - `li_create_article` — publish long-form article
55
+ - `li_get_analytics` — post analytics (impressions, clicks, engagement)
56
+ - `li_list_posts` — list recent user posts
57
+ - New skill: `wp-linkedin` with setup, posting, and analytics references
58
+ - Detection script: `linkedin_inspect.mjs`
59
+
60
+ **Twitter/X Integration (5 MCP tools)**
61
+ - `tw_create_tweet` — publish tweet (text, media)
62
+ - `tw_create_thread` — publish connected tweet thread
63
+ - `tw_get_metrics` — tweet metrics (impressions, likes, retweets)
64
+ - `tw_list_tweets` — list recent user tweets
65
+ - `tw_delete_tweet` — delete tweet
66
+ - New skill: `wp-twitter` with setup, posting, and analytics references
67
+ - Detection script: `twitter_inspect.mjs`
68
+
69
+ **Infrastructure**
70
+ - LinkedIn client helpers in wordpress.js (hasLinkedIn, makeLinkedInRequest)
71
+ - Twitter client helpers in wordpress.js (hasTwitter, makeTwitterRequest)
72
+ - Router v17 (+2 categories: LinkedIn, Twitter/X)
73
+ - +2 safety hooks (tw_delete_tweet, li_create_article)
74
+ - Updated wp-distribution-manager agent with LinkedIn + Twitter procedures
75
+
76
+ **Stats:** 39 → 41 skills | 132 → 142 MCP tools | 10 → 12 hooks | Router v16 → v17
77
+
5
78
  ## [2.9.0] - 2026-03-01
6
79
 
7
80
  ### Added — Automated Workflows (WCOP Tier 4+5 Complete)
@@ -2,7 +2,7 @@
2
2
  name: wp-content-strategist
3
3
  color: magenta
4
4
  description: |
5
- Use this agent when the user needs to create, optimize, or manage WordPress content - blog posts, pages, products, custom post types, taxonomies, and media. Provides SEO-aware content workflows and editorial guidance.
5
+ Use this agent when the user needs to create, optimize, or manage WordPress content - blog posts, pages, products, custom post types, taxonomies, and media. Provides SEO-aware content workflows, AI-driven content generation, structured data management, and editorial guidance.
6
6
 
7
7
  <example>
8
8
  Context: User wants to create a new blog post with SEO optimization.
@@ -52,6 +52,20 @@ description: |
52
52
  assistant: "I'll use the wp-content-strategist agent to run the Content Optimization Pipeline — fetching all published content, analyzing headlines, readability, and SEO scores, then classifying into quick wins, needs rewrite, and archive."
53
53
  <commentary>Bulk content triage combines Claude's linguistic analysis with GSC data for data-driven content prioritization.</commentary>
54
54
  </example>
55
+
56
+ <example>
57
+ Context: User wants to generate a new blog post with AI assistance.
58
+ user: "Write a blog post about the benefits of prickly pear for hydration"
59
+ assistant: "I'll use the wp-content-strategist agent to run the AI content generation pipeline — creating a brief, researching keywords, drafting, optimizing, and publishing with structured data."
60
+ <commentary>AI content generation follows the 7-step pipeline from wp-content-generation skill.</commentary>
61
+ </example>
62
+
63
+ <example>
64
+ Context: User wants to add structured data to their posts.
65
+ user: "Add FAQ schema to my blog posts that have Q&A sections"
66
+ assistant: "I'll use the wp-content-strategist agent to scan posts for FAQ content and inject FAQPage structured data using the sd_* tools."
67
+ <commentary>Structured data injection requires content analysis and Schema.org knowledge.</commentary>
68
+ </example>
55
69
  model: inherit
56
70
  tools: Read, Grep, Glob, Bash, WebFetch, WebSearch
57
71
  ---
@@ -315,6 +329,47 @@ When creating content for multilingual sites:
315
329
  - Use the plugin's API for translation linking
316
330
  - Maintain consistent taxonomy structure across languages
317
331
 
332
+ ## AI Content Generation Pipeline
333
+
334
+ When the user wants to create new content from scratch with AI assistance:
335
+
336
+ ### Procedure: Full Content Generation
337
+
338
+ 1. **Brief**: Gather topic, audience, goal, and word count from user. Use templates from `wp-content-generation` skill.
339
+ 2. **Keyword Research**: If GSC is available, use `gsc_query_analytics` to find keyword opportunities. Otherwise, suggest semantically related terms.
340
+ 3. **Outline**: Create H2/H3 structure using patterns from `wp-content-generation` references. Place keywords naturally in headings.
341
+ 4. **Draft**: Write full content matching the site's voice (analyze recent posts). Avoid AI-typical phrases.
342
+ 5. **SEO Optimize**: Apply on-page SEO checklist — keyword in title/first paragraph/H2s, meta description, internal links, image alt text.
343
+ 6. **Structured Data**: Auto-detect schema type (Article, FAQ, HowTo) and inject via `sd_inject`.
344
+ 7. **Publish**: Create as draft via `create_content`, present for user review, publish only after approval.
345
+
346
+ See the `wp-content-generation` skill for detailed workflow, brief templates, and outline patterns.
347
+
348
+ ## Structured Data Management
349
+
350
+ When managing Schema.org markup across the site:
351
+
352
+ ### Procedure: Schema Audit and Injection
353
+
354
+ 1. **Audit existing schemas**: Run `sd_list_schemas` to see what structured data exists across the site
355
+ 2. **Validate current markup**: For key pages, run `sd_validate` with the page URL to check JSON-LD quality
356
+ 3. **Identify gaps**: Compare existing schemas against content types — blog posts should have Article, products should have Product, FAQ sections should have FAQPage
357
+ 4. **Inject missing schemas**: Use `sd_inject` with appropriate schema type and data
358
+ 5. **Verify**: Re-run `sd_validate` on injected pages to confirm validity
359
+
360
+ ### Schema Type Selection
361
+
362
+ | Content Type | Schema | Key Properties |
363
+ |-------------|--------|----------------|
364
+ | Blog post | Article | headline, image, datePublished, author |
365
+ | Product page | Product | name, offers, sku, brand |
366
+ | FAQ section | FAQPage | mainEntity (Question + Answer array) |
367
+ | Tutorial | HowTo | name, step array, totalTime |
368
+ | About page | Organization | name, url, logo, sameAs |
369
+ | Contact page | LocalBusiness | name, address, telephone |
370
+
371
+ See the `wp-structured-data` skill for schema types reference, validation guide, and injection patterns.
372
+
318
373
  ## Related Skills
319
374
 
320
375
  - **`wp-content` skill** — content lifecycle management, editorial workflows
@@ -323,3 +378,5 @@ When creating content for multilingual sites:
323
378
  - **`wp-programmatic-seo` skill** — scalable page generation from structured data (city pages, product variants, comparison pages)
324
379
  - **`wp-search-console` skill** — Google Search Console integration for keyword tracking, indexing, and SEO feedback loops
325
380
  - **`wp-content-optimization` skill** — AI-driven content optimization: headline scoring, readability, SEO scoring, meta optimization, content freshness, bulk triage
381
+ - **`wp-content-generation` skill** — AI-driven content creation pipeline: brief → keyword research → outline → draft → SEO optimize → structured data → publish
382
+ - **`wp-structured-data` skill** — Schema.org/JSON-LD validation, injection, and site-wide audit
@@ -4,7 +4,8 @@ color: indigo
4
4
  description: |
5
5
  Use this agent when the user needs to distribute WordPress content to social media
6
6
  and email channels: Mailchimp campaigns, Buffer social posts, SendGrid transactional
7
- emails, cross-channel content distribution, or distribution analytics.
7
+ emails, LinkedIn direct posting, Twitter/X publishing, cross-channel content
8
+ distribution, or distribution analytics.
8
9
 
9
10
  <example>
10
11
  Context: User wants to send a newsletter from their latest blog posts.
@@ -27,6 +28,20 @@ description: |
27
28
  <commentary>Distribution analytics across campaigns requires the specialized agent.</commentary>
28
29
  </example>
29
30
 
31
+ <example>
32
+ Context: User wants to publish a blog post to LinkedIn.
33
+ user: "Pubblica il mio ultimo articolo su LinkedIn"
34
+ assistant: "I'll use the wp-distribution-manager agent to fetch the post and create a LinkedIn article."
35
+ <commentary>Direct LinkedIn publishing requires the distribution agent for content adaptation and API posting.</commentary>
36
+ </example>
37
+
38
+ <example>
39
+ Context: User wants to create a Twitter thread from a blog post.
40
+ user: "Turn my blog post into a Twitter thread"
41
+ assistant: "I'll use the wp-distribution-manager agent to split the post into thread-sized tweets and publish them."
42
+ <commentary>Twitter thread creation requires content splitting and sequential posting.</commentary>
43
+ </example>
44
+
30
45
  model: inherit
31
46
  tools: Read, Grep, Glob, Bash, WebFetch, WebSearch
32
47
  ---
@@ -34,14 +49,14 @@ tools: Read, Grep, Glob, Bash, WebFetch, WebSearch
34
49
  # Content Distribution Manager
35
50
 
36
51
  ## Role
37
- You are the content distribution manager for WordPress sites. You bridge WordPress content with external distribution channels (Mailchimp, Buffer, SendGrid) using dedicated MCP tools.
52
+ You are the content distribution manager for WordPress sites. You bridge WordPress content with external distribution channels (Mailchimp, Buffer, SendGrid, LinkedIn, Twitter/X) using dedicated MCP tools.
38
53
 
39
54
  ## Procedures
40
55
 
41
56
  ### Procedure 1: Detect Available Services
42
57
  Before any distribution operation:
43
- 1. Check `hasMailchimp()`, `hasBuffer()`, `hasSendGrid()` via the has-check tools
44
- 2. If no services configured, guide user through setup (reference: mailchimp-integration.md, buffer-social-publishing.md, sendgrid-transactional.md)
58
+ 1. Check `hasMailchimp()`, `hasBuffer()`, `hasSendGrid()`, `hasLinkedIn()`, `hasTwitter()` via the has-check tools
59
+ 2. If no services configured, guide user through setup (reference: mailchimp-integration.md, buffer-social-publishing.md, sendgrid-transactional.md, linkedin-setup.md, twitter-setup.md)
45
60
  3. Report available channels
46
61
 
47
62
  ### Procedure 2: Fetch WordPress Content
@@ -65,7 +80,23 @@ IMPORTANT: Always confirm with user before sending emails (mc_send_campaign, sg_
65
80
  1. Mailchimp: mc_get_campaign_report (opens, clicks, bounces)
66
81
  2. Buffer: buf_get_analytics (clicks, reach, impressions)
67
82
  3. SendGrid: sg_get_stats (delivered, opens, clicks, bounces)
68
- 4. Compile cross-channel performance summary
83
+ 4. LinkedIn: li_get_analytics (impressions, clicks, engagement rate)
84
+ 5. Twitter: tw_get_metrics (impressions, likes, retweets, replies)
85
+ 6. Compile cross-channel performance summary
86
+
87
+ ### Procedure 6: LinkedIn Direct Publishing
88
+ 1. Fetch WordPress post content (title, excerpt, HTML body, featured image)
89
+ 2. Decide format: feed post (short update + link) or article (full long-form)
90
+ 3. For feed post: li_create_post with text, link_url, visibility
91
+ 4. For article: li_create_article with title, body_html, thumbnail_url (requires user confirmation via safety hook)
92
+ 5. Check analytics after 24-48h with li_get_analytics
93
+
94
+ ### Procedure 7: Twitter/X Direct Publishing
95
+ 1. Fetch WordPress post content (title, excerpt, key points)
96
+ 2. Decide format: single tweet (announcement + link) or thread (detailed breakdown)
97
+ 3. For single tweet: tw_create_tweet with text (max 280 chars)
98
+ 4. For thread: Extract key points, craft hook tweet + numbered points + CTA, tw_create_thread
99
+ 5. Check metrics after 24-48h with tw_get_metrics
69
100
 
70
101
  ## Report Template
71
102
 
@@ -84,11 +115,13 @@ After each distribution operation, provide:
84
115
  - NEVER send campaigns or emails without explicit user confirmation
85
116
  - Always show content preview before send
86
117
  - Verify audience/recipient list before mass sends
87
- - Safety hooks are active for mc_send_campaign and sg_send_email
118
+ - Safety hooks are active for mc_send_campaign, sg_send_email, li_create_article, and tw_delete_tweet
88
119
 
89
120
  ## Related Skills
90
121
 
91
122
  - **wp-social-email** -- Full skill with 6 reference files for all distribution workflows
123
+ - **wp-linkedin** -- Direct LinkedIn posting and analytics
124
+ - **wp-twitter** -- Direct Twitter/X posting and analytics
92
125
  - **wp-content-repurposing** -- Transform content for different channels before distributing
93
126
  - **wp-webhooks** -- Webhook-based distribution alternative
94
127
  - **wp-content** -- Source content from WordPress
@@ -0,0 +1,246 @@
1
+ # Tier 6+7 Design — Distribution Completeness + Content Factory
2
+
3
+ > **Approved:** 2026-03-01
4
+ > **Target:** v2.10.0 → v2.12.0
5
+ > **WCOP Score:** 8.8/10 → 9.2/10
6
+
7
+ ## Goal
8
+
9
+ Complete the Distribution layer (8→9/10) with direct social APIs (LinkedIn + Twitter/X) and an auto-transform pipeline, then complete the Content Factory layer (9→10/10) with AI-driven content generation and structured data management.
10
+
11
+ ## Architecture
12
+
13
+ Approach A — Connector-per-Platform. Each social API is a separate TypeScript tool file in `servers/wp-rest-bridge/build/tools/` with its own skill. Structured data uses 3 dedicated MCP tools. Content generation is procedure-based (Claude-native) with no new MCP tools.
14
+
15
+ ## Release Plan
16
+
17
+ | Release | Focus | New Skills | New MCP Tools | Enhanced Skills |
18
+ |---------|-------|------------|---------------|-----------------|
19
+ | **v2.10.0** | Direct Social APIs | `wp-linkedin`, `wp-twitter` | 10 (5+5) | Router v17 |
20
+ | **v2.11.0** | Auto-Transform Pipeline | — | 0 | `wp-content-repurposing` |
21
+ | **v2.12.0** | Content Gen + Schema | `wp-content-generation`, `wp-structured-data` | 3 | Router v18 |
22
+
23
+ **Totals (v2.9.1 → v2.12.0):**
24
+ - Skills: 39 → 43 (+4 new, +1 enhanced)
25
+ - MCP Tools: 132 → 145 (+13)
26
+ - Router: v16 → v18
27
+ - Hooks: 10 → 12 (+2)
28
+
29
+ ---
30
+
31
+ ## v2.10.0 — Direct Social APIs
32
+
33
+ ### LinkedIn MCP Tools (5) — `linkedin.ts`
34
+
35
+ Namespace: `li_*`. Auth: OAuth 2.0 access token (`WP_SITES_CONFIG.linkedin_access_token`).
36
+
37
+ | Tool | Description | Key Params |
38
+ |------|-------------|------------|
39
+ | `li_get_profile` | Authenticated user profile (name, headline, vanity URL) | — |
40
+ | `li_create_post` | Create LinkedIn feed post (text, link, images) | `text`, `link_url?`, `image_url?`, `visibility` |
41
+ | `li_create_article` | Publish long-form LinkedIn article | `title`, `body_html`, `thumbnail_url?` |
42
+ | `li_get_analytics` | Post analytics (impressions, clicks, engagement rate) | `post_id?`, `period?` |
43
+ | `li_list_posts` | List recent user posts with base metrics | `count?`, `start?` |
44
+
45
+ ### Twitter/X MCP Tools (5) — `twitter.ts`
46
+
47
+ Namespace: `tw_*`. Auth: Bearer token + API key/secret (`WP_SITES_CONFIG.twitter_bearer_token`, `twitter_api_key`, `twitter_api_secret`).
48
+
49
+ | Tool | Description | Key Params |
50
+ |------|-------------|------------|
51
+ | `tw_create_tweet` | Publish a tweet (text, media, thread reply) | `text`, `media_ids?`, `reply_to?` |
52
+ | `tw_create_thread` | Publish a connected tweet thread | `tweets[]` |
53
+ | `tw_get_metrics` | Tweet metrics (impressions, likes, retweets, replies) | `tweet_id` |
54
+ | `tw_list_tweets` | List recent user tweets | `count?`, `since?` |
55
+ | `tw_delete_tweet` | Delete a tweet | `tweet_id` |
56
+
57
+ ### Skill: `wp-linkedin`
58
+
59
+ - **Triggers:** "LinkedIn", "pubblica su LinkedIn", "LinkedIn article", "LinkedIn post", "LinkedIn analytics", "B2B social"
60
+ - **Sections:** LinkedIn setup (OAuth) → Posting (post vs article) → Analytics
61
+ - **References:** `linkedin-setup.md`, `linkedin-posting.md`, `linkedin-analytics.md`
62
+ - **Detection:** `linkedin_inspect.mjs`
63
+ - **Agent:** `wp-distribution-manager`
64
+
65
+ ### Skill: `wp-twitter`
66
+
67
+ - **Triggers:** "Twitter", "X", "tweet", "thread", "pubblica tweet", "Twitter analytics"
68
+ - **Sections:** Twitter setup (API v2) → Single tweet → Thread → Analytics → Delete
69
+ - **References:** `twitter-setup.md`, `twitter-posting.md`, `twitter-analytics.md`
70
+ - **Detection:** `twitter_inspect.mjs`
71
+ - **Agent:** `wp-distribution-manager`
72
+
73
+ ### Router v17
74
+
75
+ Add 2 categories to `decision-tree.md` Step 2b:
76
+
77
+ ```
78
+ - LinkedIn / LinkedIn post / LinkedIn article / B2B social / pubblica LinkedIn
79
+ → `wp-linkedin` skill + `wp-distribution-manager` agent
80
+ - Twitter / X / tweet / thread / pubblica tweet / Twitter analytics
81
+ → `wp-twitter` skill + `wp-distribution-manager` agent
82
+ ```
83
+
84
+ Keywords in Step 0 operations block: `LinkedIn, LinkedIn post, LinkedIn article, B2B social, pubblica LinkedIn, Twitter, X, tweet, thread, pubblica tweet, Twitter analytics`
85
+
86
+ ### Hooks (+2)
87
+
88
+ | Hook | Type | Tool | Message |
89
+ |------|------|------|---------|
90
+ | `tw_delete_tweet` | PreToolUse prompt | `tw_delete_tweet` | Confirm tweet deletion |
91
+ | `li_create_article` | PreToolUse prompt | `li_create_article` | Confirm LinkedIn article publication |
92
+
93
+ ### Agent Update: `wp-distribution-manager`
94
+
95
+ Add to agent description: "Manages direct social publishing to LinkedIn and Twitter/X alongside existing Mailchimp, Buffer, and SendGrid channels."
96
+
97
+ Add to monitoring areas or related skills: `wp-linkedin`, `wp-twitter`.
98
+
99
+ ---
100
+
101
+ ## v2.11.0 — Auto-Transform Pipeline
102
+
103
+ ### Enhancement: `wp-content-repurposing`
104
+
105
+ Add new section "Auto-Transform Pipeline" to existing SKILL.md.
106
+
107
+ **New references:**
108
+ - `auto-transform-pipeline.md` — Template system for automatic blog→social format conversion
109
+ - `transform-templates.md` — Ready-to-use templates: blog→tweet, blog→LinkedIn post, blog→LinkedIn article, blog→thread, blog→email snippet
110
+
111
+ **Pipeline flow:**
112
+ 1. Fetch post via REST API (`wp/v2/posts/{id}`)
113
+ 2. Extract: title, excerpt, featured image, categories, tags, key quotes
114
+ 3. Apply platform template (configurable per channel)
115
+ 4. Output formatted content ready for `li_create_post` / `tw_create_tweet` / `tw_create_thread` / `buf_create_update` / `mc_set_campaign_content`
116
+
117
+ **Templates include:**
118
+ - Character limit enforcement per platform
119
+ - Hashtag generation from post tags
120
+ - CTA insertion patterns
121
+ - Image sizing recommendations
122
+ - Thread splitting logic (for long-form → Twitter thread)
123
+
124
+ No new MCP tools — this is purely skill/reference enhancement.
125
+
126
+ ### Router
127
+
128
+ No router change (v17 stays). The repurposing skill already has routing keywords.
129
+
130
+ ---
131
+
132
+ ## v2.12.0 — Content Generation + Structured Data
133
+
134
+ ### Skill: `wp-content-generation` (procedure-based)
135
+
136
+ - **Triggers:** "genera contenuto", "scrivi post", "content brief", "crea articolo", "draft post", "AI content", "genera bozza"
137
+ - **Procedure (Claude-native, no new MCP tools):**
138
+ 1. **Brief intake:** topic, target audience, keywords, tone, length
139
+ 2. **Keyword research:** use `gsc_*` tools for search volume and existing rankings
140
+ 3. **Outline generation:** Claude generates H2/H3 structure with key points
141
+ 4. **Draft writing:** Claude writes full post body following outline
142
+ 5. **SEO optimization:** apply `wp-content-optimization` skill (readability, keyword density, headline scoring)
143
+ 6. **Structured data:** apply `wp-structured-data` skill for JSON-LD injection
144
+ 7. **Publish:** use `wp/v2/posts` to create draft or publish
145
+ - **References:** `generation-workflow.md`, `brief-templates.md`, `outline-patterns.md`
146
+ - **Detection:** `content_gen_inspect.mjs` (verifies wp/v2 access + optional GSC config)
147
+ - **Agent:** `wp-content-strategist`
148
+
149
+ ### Structured Data MCP Tools (3) — `schema.ts`
150
+
151
+ Namespace: `sd_*`. No external auth — operates on WordPress posts via REST API.
152
+
153
+ | Tool | Description | Key Params |
154
+ |------|-------------|------------|
155
+ | `sd_validate` | Validate JSON-LD/Schema.org markup against Google specs | `url` or `markup` |
156
+ | `sd_inject` | Inject/update JSON-LD structured data in a WordPress post/page | `post_id`, `schema_type`, `schema_data` |
157
+ | `sd_list_schemas` | List Schema.org types present across the site with counts | `schema_type?` |
158
+
159
+ ### Skill: `wp-structured-data`
160
+
161
+ - **Triggers:** "structured data", "Schema.org", "JSON-LD", "rich snippet", "schema markup", "dati strutturati"
162
+ - **Sections:** Validate existing → Inject new → Audit site-wide
163
+ - **Schema types covered:** Article, Product, LocalBusiness, Event, FAQ, HowTo, Organization, BreadcrumbList
164
+ - **References:** `schema-types.md`, `validation-guide.md`, `injection-patterns.md`
165
+ - **Detection:** `schema_inspect.mjs` (checks for existing schema plugins like Yoast, Rank Math)
166
+ - **Agent:** `wp-content-strategist`
167
+
168
+ ### Router v18
169
+
170
+ Add 2 categories to `decision-tree.md` Step 2b:
171
+
172
+ ```
173
+ - genera contenuto / scrivi post / AI content / content brief / crea articolo / draft post / genera bozza
174
+ → `wp-content-generation` skill + `wp-content-strategist` agent
175
+ - structured data / Schema.org / JSON-LD / rich snippet / schema markup / dati strutturati
176
+ → `wp-structured-data` skill + `wp-content-strategist` agent
177
+ ```
178
+
179
+ Keywords in Step 0 operations block: `genera contenuto, scrivi post, AI content, content brief, crea articolo, draft post, genera bozza, structured data, Schema.org, JSON-LD, rich snippet, schema markup, dati strutturati`
180
+
181
+ ### Agent Update: `wp-content-strategist`
182
+
183
+ Add to agent description: "Guides AI-driven content generation workflows and manages structured data markup for SEO-rich content."
184
+
185
+ Add related skills: `wp-content-generation`, `wp-structured-data`.
186
+
187
+ ---
188
+
189
+ ## WCOP Score Impact
190
+
191
+ | Layer | v2.9.1 | v2.12.0 | Delta |
192
+ |-------|--------|---------|-------|
193
+ | Content Factory | 9/10 | **10/10** | +1 (AI generation + structured data) |
194
+ | Quality Assurance | 9/10 | 9/10 | — |
195
+ | Distribution | 8/10 | **9/10** | +1 (direct social + auto-transform) |
196
+ | Observability | 9/10 | 9/10 | — |
197
+ | Automation | 9/10 | 9/10 | — |
198
+ | **TOTAL** | **8.8** | **9.2** | **+0.4** |
199
+
200
+ ---
201
+
202
+ ## SiteConfig Extensions
203
+
204
+ ### v2.10.0
205
+ ```json
206
+ {
207
+ "linkedin_access_token": "...",
208
+ "twitter_bearer_token": "...",
209
+ "twitter_api_key": "...",
210
+ "twitter_api_secret": "..."
211
+ }
212
+ ```
213
+
214
+ ### v2.12.0
215
+ No new SiteConfig keys — `sd_*` tools operate via existing WordPress REST API credentials.
216
+
217
+ ---
218
+
219
+ ## Files Created/Modified Summary
220
+
221
+ ### v2.10.0
222
+ - **Create:** `servers/wp-rest-bridge/build/tools/linkedin.{ts,js,d.ts}`
223
+ - **Create:** `servers/wp-rest-bridge/build/tools/twitter.{ts,js,d.ts}`
224
+ - **Create:** `skills/wp-linkedin/` (SKILL.md + references/ + scripts/)
225
+ - **Create:** `skills/wp-twitter/` (SKILL.md + references/ + scripts/)
226
+ - **Modify:** `skills/wordpress-router/references/decision-tree.md` → v17
227
+ - **Modify:** `hooks/hooks.json` → +2 hooks
228
+ - **Modify:** `agents/wp-distribution-manager.md` → updated duties
229
+ - **Modify:** `package.json` → v2.10.0
230
+ - **Modify:** `CHANGELOG.md` → v2.10.0 entry
231
+
232
+ ### v2.11.0
233
+ - **Modify:** `skills/wp-content-repurposing/SKILL.md` → +1 section
234
+ - **Create:** `skills/wp-content-repurposing/references/auto-transform-pipeline.md`
235
+ - **Create:** `skills/wp-content-repurposing/references/transform-templates.md`
236
+ - **Modify:** `package.json` → v2.11.0
237
+ - **Modify:** `CHANGELOG.md` → v2.11.0 entry
238
+
239
+ ### v2.12.0
240
+ - **Create:** `servers/wp-rest-bridge/build/tools/schema.{ts,js,d.ts}`
241
+ - **Create:** `skills/wp-content-generation/` (SKILL.md + references/ + scripts/)
242
+ - **Create:** `skills/wp-structured-data/` (SKILL.md + references/ + scripts/)
243
+ - **Modify:** `skills/wordpress-router/references/decision-tree.md` → v18
244
+ - **Modify:** `agents/wp-content-strategist.md` → updated duties
245
+ - **Modify:** `package.json` → v2.12.0
246
+ - **Modify:** `CHANGELOG.md` → v2.12.0 entry