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
@@ -0,0 +1,456 @@
1
+ # Content Pipeline Engine (Phase 1) — Implementation Plan
2
+
3
+ > **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
4
+
5
+ **Goal:** Create the content pipeline that connects Gen* skill output to WordPress publishing via structured MD files and a new orchestration skill.
6
+
7
+ **Architecture:** File-based pipeline using `.content-state/` directory with YAML-frontmatter MD files as configuration and state. A new `wp-content-pipeline` skill reads brief files and orchestrates existing MCP tools (create_content, assign_terms_to_content, sd_inject, li_create_post, etc.) to publish and distribute. Zero new TypeScript — all orchestration lives in skill prompts and MD schemas.
8
+
9
+ **Tech Stack:** Markdown + YAML frontmatter, Claude Code skill system, existing MCP tools (148 registered)
10
+
11
+ **Reference Docs:**
12
+ - Architecture: `docs/plans/2026-03-02-content-framework-architecture.md` (Sections 1.1–1.5)
13
+ - Strategic context: `docs/plans/2026-03-02-content-framework-strategic-reflections.md`
14
+ - Existing skill patterns: `skills/wp-content/SKILL.md`, `skills/wp-social-email/SKILL.md`
15
+
16
+ ---
17
+
18
+ ### Task 1: Create `.content-state/` Directory Structure
19
+
20
+ **Files:**
21
+ - Create: `.content-state/.gitkeep`
22
+ - Create: `.content-state/pipeline-active/.gitkeep`
23
+ - Create: `.content-state/pipeline-archive/.gitkeep`
24
+
25
+ **Step 1: Create the directory tree**
26
+
27
+ ```bash
28
+ mkdir -p .content-state/pipeline-active .content-state/pipeline-archive
29
+ touch .content-state/.gitkeep .content-state/pipeline-active/.gitkeep .content-state/pipeline-archive/.gitkeep
30
+ ```
31
+
32
+ **Step 2: Add `.content-state/` to `.gitignore` except structure**
33
+
34
+ Append to `.gitignore` (create if absent):
35
+
36
+ ```gitignore
37
+ # Content Framework state — instance files are local, schemas are tracked
38
+ .content-state/*.config.md
39
+ .content-state/pipeline-active/*.brief.md
40
+ .content-state/pipeline-archive/
41
+ .content-state/signals-feed.md
42
+ .content-state/*-editorial.state.md
43
+ ```
44
+
45
+ This keeps the directory structure tracked (via `.gitkeep`) but ignores instance data (briefs, configs, signals) which are site-specific.
46
+
47
+ **Step 3: Verify structure**
48
+
49
+ Run: `find .content-state -type f`
50
+
51
+ Expected:
52
+ ```
53
+ .content-state/.gitkeep
54
+ .content-state/pipeline-active/.gitkeep
55
+ .content-state/pipeline-archive/.gitkeep
56
+ ```
57
+
58
+ **Step 4: Commit**
59
+
60
+ ```bash
61
+ git add .content-state/ .gitignore
62
+ git commit -m "feat(content-framework): create .content-state/ directory structure
63
+
64
+ Foundation for file-based content pipeline. Instance data (briefs,
65
+ configs, signals) gitignored — only directory skeleton tracked."
66
+ ```
67
+
68
+ ---
69
+
70
+ ### Task 2: Create Content Brief Schema Reference
71
+
72
+ **Files:**
73
+ - Create: `skills/wp-content-pipeline/references/content-brief-schema.md`
74
+
75
+ **Step 1: Create the skill directory**
76
+
77
+ ```bash
78
+ mkdir -p skills/wp-content-pipeline/references
79
+ ```
80
+
81
+ **Step 2: Write the content brief schema**
82
+
83
+ Create `skills/wp-content-pipeline/references/content-brief-schema.md` with the complete schema documentation. This file defines the YAML frontmatter structure that every `.brief.md` file must follow.
84
+
85
+ The schema must include these sections:
86
+ - **Frontmatter fields** with types and defaults:
87
+ - `brief_id` (string, required, format: `BRF-YYYY-NNN`)
88
+ - `created` (ISO 8601, auto-generated)
89
+ - `status` (enum: `draft | ready | published | archived`)
90
+ - `source` block: `skill`, `domain`, `session_id`
91
+ - `target` block: `site_id`, `content_type`, `status`, `scheduled_date`, `categories[]`, `tags[]`
92
+ - `content` block: `title`, `excerpt`, `featured_image`, `author`
93
+ - `distribution` block: `channels[]`, `adapt_format`, `schedule_offset_hours`
94
+ - `seo` block: `focus_keyword`, `meta_description`, `schema_type`, `internal_links`
95
+ - `gates` block: `seo_score_min`, `readability_min`, `require_review`
96
+ - **Status lifecycle**: `draft → ready → published → archived`
97
+ - **Example brief** with realistic values for mysite
98
+ - **Validation rules**: which fields are required vs optional, default values
99
+
100
+ Content body goes after the frontmatter `---` separator as standard Markdown.
101
+
102
+ **Step 3: Verify file exists and is valid markdown**
103
+
104
+ Run: `head -5 skills/wp-content-pipeline/references/content-brief-schema.md`
105
+
106
+ Expected: file exists with `# Content Brief Schema` header.
107
+
108
+ **Step 4: Commit**
109
+
110
+ ```bash
111
+ git add skills/wp-content-pipeline/
112
+ git commit -m "feat(content-pipeline): add content brief schema reference
113
+
114
+ Defines the YAML frontmatter structure for .brief.md files — the
115
+ exchange format between Gen* skills and WordPress publishing."
116
+ ```
117
+
118
+ ---
119
+
120
+ ### Task 3: Create Site Configuration Schema Reference
121
+
122
+ **Files:**
123
+ - Create: `skills/wp-content-pipeline/references/site-config-schema.md`
124
+
125
+ **Step 1: Write the site config schema**
126
+
127
+ Create `skills/wp-content-pipeline/references/site-config-schema.md` defining the structure for `{site_id}.config.md` files.
128
+
129
+ The schema must include:
130
+ - **Frontmatter fields**:
131
+ - `site_id` (string, required, matches WP_SITES_CONFIG id)
132
+ - `site_url` (URL string)
133
+ - `last_updated` (ISO date)
134
+ - `brand` block: `tone`, `language`, `style_notes` (multi-line)
135
+ - `defaults` block: `content_type`, `status`, `categories[]`, `author`
136
+ - `channels` block: per-channel config with `enabled`, `profile_id`/`audience_id`, `format`/`segment`
137
+ - `seo` block: `default_schema`, `min_score`, `auto_internal_links`
138
+ - `cadence` block: `posts_per_week`, `preferred_days[]`, `publish_time`
139
+ - **Body section**: free-form notes for Claude context
140
+ - **Example config** for mysite site
141
+ - **Integration notes**: how GenBrand output maps to `brand` block, how WP_SITES_CONFIG maps to `site_id`
142
+
143
+ **Step 2: Create an example instance file**
144
+
145
+ Create `.content-state/mysite.config.md` with realistic values for the mysite site. This serves as both documentation and working config.
146
+
147
+ Note: this file is gitignored (site-specific), but we create it as a template. Copy the example from the schema reference, filling in mysite-specific values.
148
+
149
+ **Step 3: Verify both files**
150
+
151
+ Run: `ls -la skills/wp-content-pipeline/references/site-config-schema.md .content-state/mysite.config.md`
152
+
153
+ Expected: both files exist.
154
+
155
+ **Step 4: Commit**
156
+
157
+ ```bash
158
+ git add skills/wp-content-pipeline/references/site-config-schema.md
159
+ git commit -m "feat(content-pipeline): add site configuration schema
160
+
161
+ Defines {site_id}.config.md structure for brand voice, distribution
162
+ channels, SEO defaults, and content cadence per WordPress site."
163
+ ```
164
+
165
+ Note: `.content-state/mysite.config.md` is gitignored, so only the schema is committed.
166
+
167
+ ---
168
+
169
+ ### Task 4: Create `wp-content-pipeline` SKILL.md
170
+
171
+ **Files:**
172
+ - Create: `skills/wp-content-pipeline/SKILL.md`
173
+
174
+ **Step 1: Write the skill definition**
175
+
176
+ Create `skills/wp-content-pipeline/SKILL.md` following the established pattern from other skills (see `skills/wp-content/SKILL.md` for format).
177
+
178
+ The skill must include:
179
+
180
+ **Header (frontmatter)**:
181
+ ```yaml
182
+ ---
183
+ name: wp-content-pipeline
184
+ description: This skill should be used when the user asks to "publish a brief",
185
+ "process content briefs", "publish from GenCorpComm", "run the content pipeline",
186
+ "create a brief", "list pending briefs", or mentions publishing Gen* output
187
+ to WordPress. Orchestrates the flow from structured brief files through
188
+ WordPress publishing and multi-channel distribution.
189
+ version: 1.0.0
190
+ ---
191
+ ```
192
+
193
+ **Sections to include**:
194
+
195
+ 1. **Overview** — One paragraph explaining the pipeline concept (brief.md → WP publish → social distribute). Reference the `.content-state/` directory.
196
+
197
+ 2. **When to Use** — Bullet list of trigger scenarios:
198
+ - User has a content brief to publish
199
+ - User ran GenCorpComm and wants to push output to WordPress
200
+ - User asks to check/list pending briefs
201
+ - User wants to create a new brief manually
202
+ - User asks to distribute a published post to social channels
203
+
204
+ 3. **Pipeline Workflow** — The 7-step flow:
205
+ ```
206
+ SCAN → CONFIG → VALIDATE → PUBLISH → DISTRIBUTE → UPDATE → ARCHIVE
207
+ ```
208
+ Each step documented with:
209
+ - What it does
210
+ - Which files/tools it reads
211
+ - Decision points (e.g., if gates not met → stop and report)
212
+
213
+ 4. **Step 1: SCAN** — Read `.content-state/pipeline-active/` for brief files with `status: ready`. List them to user with title, site_id, channels.
214
+
215
+ 5. **Step 2: CONFIG** — Read `.content-state/{site_id}.config.md` for site defaults. Merge brief values with config defaults (brief values override config defaults).
216
+
217
+ 6. **Step 3: VALIDATE** — Check quality gates:
218
+ - If `gates.require_review: true` → stop, present brief to user
219
+ - If SEO score/readability checks requested → note that these are evaluated by Claude based on content quality, not automated scoring tools
220
+ - If validation fails → report to user, keep brief as `ready` for editing
221
+
222
+ 7. **Step 4: PUBLISH** — Create WordPress content using existing MCP tools:
223
+ ```
224
+ create_content:
225
+ content_type: target.content_type
226
+ title: content.title
227
+ content: [body from brief markdown]
228
+ excerpt: content.excerpt
229
+ status: target.status
230
+ slug: [auto-generated from title]
231
+
232
+ assign_terms_to_content:
233
+ categories: target.categories
234
+ tags: target.tags
235
+
236
+ sd_inject (if seo.schema_type defined):
237
+ schema_type: seo.schema_type
238
+ ```
239
+
240
+ 8. **Step 5: DISTRIBUTE** — If `distribution.channels` is not empty:
241
+ - For each channel, check `site.config.md` channel config for enabled status
242
+ - Use `wp-content-repurposing` skill patterns if `adapt_format: true`
243
+ - Call appropriate MCP tools:
244
+ - LinkedIn: `li_create_post`
245
+ - Twitter: `tw_create_tweet` or `tw_create_thread`
246
+ - Buffer: `buf_create_update`
247
+ - Mailchimp: `mc_create_campaign` → `mc_set_campaign_content` → `mc_send_campaign`
248
+ - Respect `schedule_offset_hours` for timing
249
+
250
+ 9. **Step 6: UPDATE** — Update brief frontmatter:
251
+ - `status: published`
252
+ - Add `published_at`, `post_id`, `post_url` fields
253
+ - Add `distribution_log` with channel results
254
+
255
+ 10. **Step 7: ARCHIVE** — Move brief from `pipeline-active/` to `pipeline-archive/`
256
+
257
+ 11. **Creating a Brief Manually** — Quick procedure:
258
+ - Read site config for defaults
259
+ - Generate `brief_id` as `BRF-YYYY-NNN` (NNN = sequential)
260
+ - Write brief.md to `pipeline-active/` with `status: draft`
261
+ - User fills in content, then sets `status: ready`
262
+
263
+ 12. **Safety Rules**:
264
+ - ALWAYS create WP content as `draft` first, then update to `publish` only after user confirmation (unless brief explicitly says `target.status: publish`)
265
+ - NEVER publish without showing user the brief summary first
266
+ - ALWAYS confirm before sending email campaigns (Mailchimp)
267
+ - LOG all distribution actions in the brief
268
+
269
+ 13. **Reference Files**:
270
+ - `references/content-brief-schema.md`
271
+ - `references/site-config-schema.md`
272
+
273
+ 14. **Related Skills**:
274
+ - `wp-content` — content creation and management
275
+ - `wp-content-optimization` — SEO and readability enhancement
276
+ - `wp-content-repurposing` — multi-format adaptation for distribution
277
+ - `wp-social-email` — distribution channel tools (Mailchimp, Buffer, SendGrid)
278
+ - `wp-structured-data` — Schema.org markup injection
279
+
280
+ **Step 2: Verify SKILL.md follows plugin conventions**
281
+
282
+ Run: `head -10 skills/wp-content-pipeline/SKILL.md`
283
+
284
+ Expected: YAML frontmatter with `name: wp-content-pipeline`.
285
+
286
+ Compare structure against: `head -10 skills/wp-content/SKILL.md`
287
+
288
+ Expected: same pattern (frontmatter → Overview → When to Use → Workflow).
289
+
290
+ **Step 3: Commit**
291
+
292
+ ```bash
293
+ git add skills/wp-content-pipeline/SKILL.md
294
+ git commit -m "feat(content-pipeline): add wp-content-pipeline skill
295
+
296
+ Orchestrates brief.md → WP publish → social distribution using
297
+ existing MCP tools. 7-step workflow: SCAN → CONFIG → VALIDATE →
298
+ PUBLISH → DISTRIBUTE → UPDATE → ARCHIVE."
299
+ ```
300
+
301
+ ---
302
+
303
+ ### Task 5: Create Example Brief for Testing
304
+
305
+ **Files:**
306
+ - Create: `.content-state/pipeline-active/BRF-2026-001.brief.md`
307
+
308
+ **Step 1: Write a realistic test brief**
309
+
310
+ Create `.content-state/pipeline-active/BRF-2026-001.brief.md` with:
311
+ - Frontmatter targeting mysite, content_type: post, status: draft
312
+ - Source: `manual` (not from Gen* — for testing without Gen* dependency)
313
+ - A short (~200 word) article about sparkling water benefits
314
+ - Distribution: linkedin only (minimal for testing)
315
+ - SEO: focus keyword set, schema_type: Article
316
+ - Gates: require_review: true (so pipeline stops for confirmation)
317
+
318
+ This brief serves as the integration test artifact. The pipeline skill will read it, present it to user, and (on approval) publish to mysite.
319
+
320
+ **Step 2: Verify brief parses correctly**
321
+
322
+ Run: `head -30 .content-state/pipeline-active/BRF-2026-001.brief.md`
323
+
324
+ Expected: valid YAML frontmatter with `brief_id: BRF-2026-001` and `status: draft`.
325
+
326
+ **Step 3: No commit** — this file is gitignored (instance data). It lives locally for testing.
327
+
328
+ ---
329
+
330
+ ### Task 6: Update Architecture Doc Status
331
+
332
+ **Files:**
333
+ - Modify: `docs/plans/2026-03-02-content-framework-architecture.md`
334
+
335
+ **Step 1: Update status and checklist**
336
+
337
+ In the architecture doc:
338
+ - Change `**Stato**: Proposta` to `**Stato**: Fase 1 Implementata`
339
+ - Check off all Fase 1 acceptance criteria:
340
+ ```
341
+ - [x] `content-brief.schema.md` definito e documentato
342
+ - [x] `site.config.md` schema definito e documentato
343
+ - [x] `wp-content-pipeline` skill creata con workflow completo
344
+ - [ ] Flusso end-to-end testato: brief.md → WP post → distribuzione social
345
+ - [x] Supporto multi-sito (mysite + almeno un altro)
346
+ ```
347
+
348
+ Note: "Flusso end-to-end testato" left unchecked — that requires a live WP test which is a separate manual validation step.
349
+
350
+ **Step 2: Commit**
351
+
352
+ ```bash
353
+ git add docs/plans/2026-03-02-content-framework-architecture.md
354
+ git commit -m "docs: update architecture status — Phase 1 implemented
355
+
356
+ Content Pipeline skill, schemas, and directory structure in place.
357
+ End-to-end live test pending."
358
+ ```
359
+
360
+ ---
361
+
362
+ ### Task 7: Final Commit and Version Bump
363
+
364
+ **Files:**
365
+ - Modify: `docs/GUIDE.md` (add Content Framework section)
366
+
367
+ **Step 1: Add Content Framework section to GUIDE.md**
368
+
369
+ Read current `docs/GUIDE.md` to find the last section number. Add a new top-level section:
370
+
371
+ ```markdown
372
+ ## 15. Content Framework
373
+
374
+ The Content Framework connects Gen* ecosystem skills (GenCorpComm, GenMarketing, GenSignal) to WordPress publishing through structured Markdown files.
375
+
376
+ ### 15.1 Architecture
377
+
378
+ The framework uses three types of MD files as configuration layer:
379
+
380
+ | Type | Suffix | Purpose | Location |
381
+ |------|--------|---------|----------|
382
+ | Schema | `.schema.md` | Template definition | `skills/wp-content-pipeline/references/` |
383
+ | Config | `.config.md` | Site-specific settings | `.content-state/{site_id}.config.md` |
384
+ | Brief | `.brief.md` | Content instance | `.content-state/pipeline-active/` |
385
+
386
+ ### 15.2 Content Pipeline (Phase 1)
387
+
388
+ **Skill**: `wp-content-pipeline`
389
+
390
+ The pipeline orchestrates: `SCAN → CONFIG → VALIDATE → PUBLISH → DISTRIBUTE → UPDATE → ARCHIVE`
391
+
392
+ **Creating a brief**:
393
+ 1. Generate content (via GenCorpComm or manually)
394
+ 2. Save as `.content-state/pipeline-active/BRF-YYYY-NNN.brief.md`
395
+ 3. Set frontmatter: site_id, title, categories, channels, SEO params
396
+ 4. Set `status: ready` when content is finalized
397
+
398
+ **Publishing a brief**:
399
+ 1. Invoke `wp-content-pipeline` skill
400
+ 2. Pipeline reads all `status: ready` briefs
401
+ 3. Validates quality gates
402
+ 4. Creates WP post → distributes to channels → archives brief
403
+
404
+ **Site configuration**:
405
+ - One `.content-state/{site_id}.config.md` per managed site
406
+ - Defines brand voice, default categories, active channels, SEO settings
407
+ - Brief values override config defaults
408
+
409
+ ### 15.3 Directory Structure
410
+
411
+ ```
412
+ .content-state/
413
+ ├── {site_id}.config.md # site configuration
414
+ ├── pipeline-active/ # briefs in progress
415
+ │ └── BRF-YYYY-NNN.brief.md
416
+ └── pipeline-archive/ # completed briefs
417
+ └── BRF-YYYY-NNN.brief.md
418
+ ```
419
+
420
+ ### 15.4 Integration with Gen* Skills
421
+
422
+ | Gen* Skill | Produces | Pipeline Consumes |
423
+ |------------|----------|-------------------|
424
+ | GenCorpComm | Multi-format content | Body + metadata → brief.md |
425
+ | GenMarketing | Content calendar | Topics + dates → brief.md |
426
+ | GenBrand | Brand voice | Tone + style → config.md |
427
+ | GenSignal | Market signals | Topics → editorial planning (Phase 2) |
428
+ ```
429
+
430
+ **Step 2: Commit all remaining changes**
431
+
432
+ ```bash
433
+ git add docs/GUIDE.md
434
+ git commit -m "docs: add Content Framework section to GUIDE.md
435
+
436
+ Documents Phase 1 Content Pipeline: architecture, brief schema,
437
+ site config, publishing workflow, and Gen* integration points."
438
+ ```
439
+
440
+ ---
441
+
442
+ ## Summary
443
+
444
+ | Task | Deliverable | Type |
445
+ |------|-------------|------|
446
+ | 1 | `.content-state/` directory + `.gitignore` | Infrastructure |
447
+ | 2 | `content-brief-schema.md` | Schema reference |
448
+ | 3 | `site-config-schema.md` + example config | Schema reference + instance |
449
+ | 4 | `wp-content-pipeline/SKILL.md` | Core skill |
450
+ | 5 | `BRF-2026-001.brief.md` | Test artifact |
451
+ | 6 | Architecture doc status update | Documentation |
452
+ | 7 | GUIDE.md Content Framework section | Documentation |
453
+
454
+ **Total new files**: 6 tracked + 2 gitignored instances
455
+ **Total modified files**: 3 (.gitignore, architecture doc, GUIDE.md)
456
+ **New TypeScript**: 0