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.
- package/.claude-plugin/plugin.json +8 -3
- package/CHANGELOG.md +94 -2
- package/agents/wp-accessibility-auditor.md +1 -1
- package/agents/wp-content-strategist.md +2 -2
- package/agents/wp-deployment-engineer.md +1 -1
- package/agents/wp-distribution-manager.md +1 -1
- package/agents/wp-monitoring-agent.md +1 -1
- package/agents/wp-performance-optimizer.md +1 -1
- package/agents/wp-security-auditor.md +1 -1
- package/agents/wp-site-manager.md +3 -3
- package/commands/wp-setup.md +2 -2
- package/docs/GUIDE.md +260 -21
- package/docs/VALIDATION.md +341 -0
- package/docs/guides/wp-ecommerce.md +4 -4
- package/docs/plans/2026-03-01-tier3-wcop-implementation.md +1 -1
- package/docs/plans/2026-03-01-tier4-5-implementation.md +1 -1
- package/docs/plans/2026-03-02-content-framework-architecture.md +612 -0
- package/docs/plans/2026-03-02-content-framework-strategic-reflections.md +228 -0
- package/docs/plans/2026-03-02-content-intelligence-phase2.md +560 -0
- package/docs/plans/2026-03-02-content-pipeline-phase1.md +456 -0
- package/docs/plans/2026-03-02-dashboard-kanban-design.md +761 -0
- package/docs/plans/2026-03-02-dashboard-kanban-implementation.md +598 -0
- package/docs/plans/2026-03-02-dashboard-strategy.md +363 -0
- package/docs/plans/2026-03-02-editorial-calendar-phase3.md +490 -0
- package/docs/validation/.gitkeep +0 -0
- package/docs/validation/dashboard.html +286 -0
- package/docs/validation/results.json +1705 -0
- package/package.json +16 -3
- package/scripts/context-scanner.mjs +446 -0
- package/scripts/dashboard-renderer.mjs +553 -0
- package/scripts/run-validation.mjs +1132 -0
- package/servers/wp-rest-bridge/build/server.js +17 -6
- package/servers/wp-rest-bridge/build/tools/index.js +0 -9
- package/servers/wp-rest-bridge/build/tools/plugin-repository.js +23 -31
- package/servers/wp-rest-bridge/build/tools/schema.js +10 -2
- package/servers/wp-rest-bridge/build/tools/unified-content.js +10 -2
- package/servers/wp-rest-bridge/build/wordpress.d.ts +0 -3
- package/servers/wp-rest-bridge/build/wordpress.js +16 -98
- package/servers/wp-rest-bridge/package.json +1 -0
- package/skills/wp-analytics/SKILL.md +153 -0
- package/skills/wp-analytics/references/signals-feed-schema.md +417 -0
- package/skills/wp-content/references/content-templates.md +1 -1
- package/skills/wp-content/references/seo-optimization.md +8 -8
- package/skills/wp-content-attribution/references/roi-calculation.md +1 -1
- package/skills/wp-content-attribution/references/utm-tracking-setup.md +5 -5
- package/skills/wp-content-generation/references/generation-workflow.md +2 -2
- package/skills/wp-content-pipeline/SKILL.md +461 -0
- package/skills/wp-content-pipeline/references/content-brief-schema.md +377 -0
- package/skills/wp-content-pipeline/references/site-config-schema.md +431 -0
- package/skills/wp-content-repurposing/references/auto-transform-pipeline.md +1 -1
- package/skills/wp-content-repurposing/references/email-newsletter.md +1 -1
- package/skills/wp-content-repurposing/references/platform-specs.md +2 -2
- package/skills/wp-content-repurposing/references/transform-templates.md +27 -27
- package/skills/wp-dashboard/SKILL.md +121 -0
- package/skills/wp-deploy/references/ssh-deploy.md +2 -2
- package/skills/wp-editorial-planner/SKILL.md +262 -0
- package/skills/wp-editorial-planner/references/editorial-schema.md +268 -0
- package/skills/wp-multilang-network/references/content-sync.md +3 -3
- package/skills/wp-multilang-network/references/network-architecture.md +1 -1
- package/skills/wp-multilang-network/references/seo-international.md +7 -7
- package/skills/wp-structured-data/references/schema-types.md +4 -4
- package/skills/wp-webhooks/references/payload-formats.md +3 -3
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
# Content Brief Schema
|
|
2
|
+
|
|
3
|
+
Schema reference for `.brief.md` files -- the exchange format between Gen\* skills and the `wp-content-pipeline` publishing skill.
|
|
4
|
+
|
|
5
|
+
Brief files live in `.content-state/pipeline-active/` while being processed, then move to `.content-state/pipeline-archive/` after publishing or archival.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## File Format
|
|
10
|
+
|
|
11
|
+
Each `.brief.md` file consists of:
|
|
12
|
+
|
|
13
|
+
1. **YAML frontmatter** between `---` delimiters (structured metadata)
|
|
14
|
+
2. **Markdown body** after the closing `---` (the actual content to publish)
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
---
|
|
18
|
+
brief_id: BRF-2026-001
|
|
19
|
+
status: draft
|
|
20
|
+
# ... other fields ...
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Article Title
|
|
24
|
+
|
|
25
|
+
Body content in standard Markdown...
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Frontmatter Fields
|
|
31
|
+
|
|
32
|
+
### `brief_id`
|
|
33
|
+
|
|
34
|
+
| Property | Value |
|
|
35
|
+
|----------|-------|
|
|
36
|
+
| Type | `string` |
|
|
37
|
+
| Required | **Yes** |
|
|
38
|
+
| Format | `BRF-YYYY-NNN` |
|
|
39
|
+
| Example | `BRF-2026-014` |
|
|
40
|
+
|
|
41
|
+
Unique identifier for the brief. `YYYY` is the four-digit year, `NNN` is a zero-padded sequential number within that year. The pipeline auto-generates this when creating briefs; manual briefs must follow the same format.
|
|
42
|
+
|
|
43
|
+
### `created`
|
|
44
|
+
|
|
45
|
+
| Property | Value |
|
|
46
|
+
|----------|-------|
|
|
47
|
+
| Type | `string` (ISO 8601) |
|
|
48
|
+
| Required | **No** (auto-generated) |
|
|
49
|
+
| Default | Current timestamp at brief creation |
|
|
50
|
+
| Example | `2026-03-02T10:30:00Z` |
|
|
51
|
+
|
|
52
|
+
Timestamp of brief creation. Auto-populated by the pipeline.
|
|
53
|
+
|
|
54
|
+
### `status`
|
|
55
|
+
|
|
56
|
+
| Property | Value |
|
|
57
|
+
|----------|-------|
|
|
58
|
+
| Type | `enum` |
|
|
59
|
+
| Required | **Yes** |
|
|
60
|
+
| Values | `draft` \| `ready` \| `published` \| `archived` |
|
|
61
|
+
| Default | `draft` |
|
|
62
|
+
|
|
63
|
+
Current lifecycle status. See [Status Lifecycle](#status-lifecycle) for transitions.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### `source` block
|
|
68
|
+
|
|
69
|
+
Tracks the origin of the content brief.
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
source:
|
|
73
|
+
skill: gencorpcomm
|
|
74
|
+
domain: corporate-communications
|
|
75
|
+
session_id: sess_abc123
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
| Field | Type | Required | Default | Description |
|
|
79
|
+
|-------|------|----------|---------|-------------|
|
|
80
|
+
| `skill` | `string` | **Yes** | -- | Gen\* skill that produced the brief. Values: `gencorpcomm`, `genmarketing`, `gensignal`, `genbrand`, `manual`. For manually created briefs, set to `manual` |
|
|
81
|
+
| `domain` | `string` | No | `general` | Content domain or department. Free-form but recommended values: `corporate-communications`, `marketing`, `product`, `engineering`, `support` |
|
|
82
|
+
| `session_id` | `string` | No | `null` | Claude Code session ID that generated the brief, for traceability |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### `target` block
|
|
87
|
+
|
|
88
|
+
Defines the WordPress destination and publishing parameters.
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
target:
|
|
92
|
+
site_id: mysite
|
|
93
|
+
content_type: post
|
|
94
|
+
status: draft
|
|
95
|
+
scheduled_date: 2026-03-15T09:00:00Z
|
|
96
|
+
categories:
|
|
97
|
+
- sustainability
|
|
98
|
+
- innovation
|
|
99
|
+
tags:
|
|
100
|
+
- premium-water
|
|
101
|
+
- zero-calorie
|
|
102
|
+
- sicily
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
| Field | Type | Required | Default | Description |
|
|
106
|
+
|-------|------|----------|---------|-------------|
|
|
107
|
+
| `site_id` | `string` | **Yes** | -- | WordPress site identifier from `WP_SITES_CONFIG` environment variable JSON array |
|
|
108
|
+
| `content_type` | `string` | **Yes** | `post` | WordPress content type: `post`, `page`, or any registered custom post type (e.g., `product`, `recipe`) |
|
|
109
|
+
| `status` | `string` | No | `draft` | WordPress post status on publish: `draft`, `pending`, `publish`, `future`, `private` |
|
|
110
|
+
| `scheduled_date` | `string` (ISO 8601) | No | `null` | Schedule publication for a future date. Required when `status: future`. Ignored for other statuses |
|
|
111
|
+
| `categories` | `string[]` | No | `[]` | WordPress category slugs. Created automatically if they do not exist on the target site |
|
|
112
|
+
| `tags` | `string[]` | No | `[]` | WordPress tag slugs. Created automatically if they do not exist on the target site |
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### `content` block
|
|
117
|
+
|
|
118
|
+
Core content metadata for the WordPress post.
|
|
119
|
+
|
|
120
|
+
```yaml
|
|
121
|
+
content:
|
|
122
|
+
title: "Acqua Premium: La Rivoluzione Zero-Calorie dal Mediterraneo"
|
|
123
|
+
excerpt: "Scopri come il frutto mediterraneo regionale diventa la bevanda del futuro."
|
|
124
|
+
featured_image: /assets/images/premium-field-sicily.jpg
|
|
125
|
+
author: editorial-team
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
| Field | Type | Required | Default | Description |
|
|
129
|
+
|-------|------|----------|---------|-------------|
|
|
130
|
+
| `title` | `string` | **Yes** | -- | Post title. Supports standard characters and Unicode |
|
|
131
|
+
| `excerpt` | `string` | No | Auto-generated from first 160 chars of body | Custom excerpt / meta description fallback |
|
|
132
|
+
| `featured_image` | `string` | No | `null` | Path or URL to the featured image. Relative paths resolve against site media library |
|
|
133
|
+
| `author` | `string` | No | Site default author | WordPress username or slug for post attribution |
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### `distribution` block
|
|
138
|
+
|
|
139
|
+
Controls cross-channel distribution after WordPress publishing.
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
distribution:
|
|
143
|
+
channels:
|
|
144
|
+
- linkedin
|
|
145
|
+
- twitter
|
|
146
|
+
- mailchimp
|
|
147
|
+
adapt_format: true
|
|
148
|
+
schedule_offset_hours: 2
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
| Field | Type | Required | Default | Description |
|
|
152
|
+
|-------|------|----------|---------|-------------|
|
|
153
|
+
| `channels` | `string[]` | No | `[]` | External distribution channels. Supported: `linkedin`, `twitter`, `buffer`, `mailchimp` |
|
|
154
|
+
| `adapt_format` | `boolean` | No | `true` | Adapt content format for each channel (e.g., shorten for Twitter, professional tone for LinkedIn) |
|
|
155
|
+
| `schedule_offset_hours` | `integer` | No | `0` | Hours to delay distribution after WordPress publication. `0` = immediate |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### `seo` block
|
|
160
|
+
|
|
161
|
+
Search engine optimization parameters. Used by the pipeline to validate content before publishing.
|
|
162
|
+
|
|
163
|
+
```yaml
|
|
164
|
+
seo:
|
|
165
|
+
focus_keyword: acqua premium zero calorie
|
|
166
|
+
meta_description: "L'acqua premium regionale: zero calorie, ricca di antiossidanti. Scopri la bevanda naturale che sta conquistando l'Europa."
|
|
167
|
+
schema_type: Article
|
|
168
|
+
internal_links:
|
|
169
|
+
- /blog/benefici-fico-india
|
|
170
|
+
- /prodotti/light-blend
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
| Field | Type | Required | Default | Description |
|
|
174
|
+
|-------|------|----------|---------|-------------|
|
|
175
|
+
| `focus_keyword` | `string` | No | `null` | Primary SEO keyword / keyphrase for the content |
|
|
176
|
+
| `meta_description` | `string` | No | Value of `content.excerpt` | Custom meta description (max 160 chars recommended) |
|
|
177
|
+
| `schema_type` | `string` | No | `Article` | JSON-LD schema type: `Article`, `BlogPosting`, `HowTo`, `FAQPage`, `Product`, `Recipe`, `NewsArticle` |
|
|
178
|
+
| `internal_links` | `string[]` | No | `[]` | Paths to internal pages that should be linked within the content body |
|
|
179
|
+
|
|
180
|
+
**Note:** the architecture draft defines `internal_links` as `auto | manual | none`. This schema uses explicit path lists instead — automatic link discovery is configured at the site level via `seo.auto_internal_links` in `{site_id}.config.md`.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### `gates` block
|
|
185
|
+
|
|
186
|
+
Quality gates that must pass before the brief transitions from `draft` to `ready`.
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
gates:
|
|
190
|
+
seo_score_min: 70
|
|
191
|
+
readability_min: 60
|
|
192
|
+
require_review: true
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
| Field | Type | Required | Default | Description |
|
|
196
|
+
|-------|------|----------|---------|-------------|
|
|
197
|
+
| `seo_score_min` | `integer` (0-100) | No | `70` | Minimum SEO score (Yoast/RankMath scale). Brief cannot move to `ready` below this threshold |
|
|
198
|
+
| `readability_min` | `integer` (0-100) | No | `60` | Minimum readability score (Flesch-based). Brief cannot move to `ready` below this threshold |
|
|
199
|
+
| `require_review` | `boolean` | No | `false` | If `true`, a human must explicitly approve the brief before it transitions to `ready` |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Status Lifecycle
|
|
204
|
+
|
|
205
|
+
Briefs progress through a linear lifecycle with defined transitions:
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
draft --> ready --> published --> archived
|
|
209
|
+
| ^
|
|
210
|
+
+---------- (skip) ---------------+
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
| Transition | Trigger | Conditions |
|
|
214
|
+
|------------|---------|------------|
|
|
215
|
+
| `draft` -> `ready` | Automated or manual | All `gates` pass; content body is non-empty; required frontmatter fields are present |
|
|
216
|
+
| `ready` -> `published` | Pipeline publish action | Target site is reachable; WordPress API responds; content created successfully |
|
|
217
|
+
| `published` -> `archived` | Manual or time-based | Content is live; distribution completed; brief moved to `pipeline-archive/` |
|
|
218
|
+
| `draft` -> `archived` | Manual | Brief abandoned or superseded; moved directly to archive |
|
|
219
|
+
|
|
220
|
+
**Notes:**
|
|
221
|
+
- Only `draft` briefs can be edited. Once `ready`, the brief is frozen.
|
|
222
|
+
- The `published` status is set automatically by the pipeline after successful WordPress API call.
|
|
223
|
+
- Archived briefs retain their frontmatter for audit trail and analytics.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Validation Rules
|
|
228
|
+
|
|
229
|
+
### Required Fields
|
|
230
|
+
|
|
231
|
+
These fields **must** be present for a brief to be valid:
|
|
232
|
+
|
|
233
|
+
| Field | Reason |
|
|
234
|
+
|-------|--------|
|
|
235
|
+
| `brief_id` | Unique identification and tracking |
|
|
236
|
+
| `status` | Lifecycle management |
|
|
237
|
+
| `source.skill` | Content provenance and traceability |
|
|
238
|
+
| `target.site_id` | WordPress destination routing |
|
|
239
|
+
| `target.content_type` | WordPress API endpoint selection |
|
|
240
|
+
| `content.title` | WordPress post title (cannot be empty) |
|
|
241
|
+
|
|
242
|
+
### Optional Fields with Defaults
|
|
243
|
+
|
|
244
|
+
| Field | Default Value |
|
|
245
|
+
|-------|---------------|
|
|
246
|
+
| `created` | Auto-generated ISO 8601 timestamp |
|
|
247
|
+
| `source.domain` | `general` |
|
|
248
|
+
| `source.session_id` | `null` |
|
|
249
|
+
| `target.status` | `draft` |
|
|
250
|
+
| `target.scheduled_date` | `null` |
|
|
251
|
+
| `target.categories` | `[]` |
|
|
252
|
+
| `target.tags` | `[]` |
|
|
253
|
+
| `content.excerpt` | First 160 chars of body |
|
|
254
|
+
| `content.featured_image` | `null` |
|
|
255
|
+
| `content.author` | Site default author |
|
|
256
|
+
| `distribution.channels` | `[]` |
|
|
257
|
+
| `distribution.adapt_format` | `true` |
|
|
258
|
+
| `distribution.schedule_offset_hours` | `0` |
|
|
259
|
+
| `seo.focus_keyword` | `null` |
|
|
260
|
+
| `seo.meta_description` | Value of `content.excerpt` |
|
|
261
|
+
| `seo.schema_type` | `Article` |
|
|
262
|
+
| `seo.internal_links` | `[]` |
|
|
263
|
+
| `gates.seo_score_min` | `70` |
|
|
264
|
+
| `gates.readability_min` | `60` |
|
|
265
|
+
| `gates.require_review` | `false` |
|
|
266
|
+
|
|
267
|
+
### Content Body
|
|
268
|
+
|
|
269
|
+
- Must be valid Markdown
|
|
270
|
+
- Must be non-empty for transition from `draft` to `ready`
|
|
271
|
+
- Supports standard Markdown features: headings, lists, links, images, code blocks, tables
|
|
272
|
+
- Internal links from `seo.internal_links` should appear naturally within the body
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Example Brief
|
|
277
|
+
|
|
278
|
+
A complete `.brief.md` for the mysite site:
|
|
279
|
+
|
|
280
|
+
```markdown
|
|
281
|
+
---
|
|
282
|
+
brief_id: BRF-2026-014
|
|
283
|
+
created: 2026-03-02T10:30:00Z
|
|
284
|
+
status: draft
|
|
285
|
+
|
|
286
|
+
source:
|
|
287
|
+
skill: gencorpcomm
|
|
288
|
+
domain: corporate-communications
|
|
289
|
+
session_id: sess_7f3a9b2c
|
|
290
|
+
|
|
291
|
+
target:
|
|
292
|
+
site_id: mysite
|
|
293
|
+
content_type: post
|
|
294
|
+
status: draft
|
|
295
|
+
scheduled_date: 2026-03-15T09:00:00Z
|
|
296
|
+
categories:
|
|
297
|
+
- sustainability
|
|
298
|
+
- innovation
|
|
299
|
+
tags:
|
|
300
|
+
- premium-water
|
|
301
|
+
- zero-calorie
|
|
302
|
+
- sicily
|
|
303
|
+
- sustainability
|
|
304
|
+
|
|
305
|
+
content:
|
|
306
|
+
title: "Acqua Premium: La Rivoluzione Zero-Calorie dal Mediterraneo"
|
|
307
|
+
excerpt: "Scopri come il frutto mediterraneo regionale diventa la bevanda del futuro: zero calorie, ricca di antiossidanti e 100% sostenibile."
|
|
308
|
+
featured_image: /wp-content/uploads/2026/03/premium-field-sicily.jpg
|
|
309
|
+
author: editorial-team
|
|
310
|
+
|
|
311
|
+
distribution:
|
|
312
|
+
channels:
|
|
313
|
+
- linkedin
|
|
314
|
+
- twitter
|
|
315
|
+
adapt_format: true
|
|
316
|
+
schedule_offset_hours: 2
|
|
317
|
+
|
|
318
|
+
seo:
|
|
319
|
+
focus_keyword: acqua premium zero calorie
|
|
320
|
+
meta_description: "L'acqua premium regionale: zero calorie, ricca di antiossidanti. Scopri la bevanda naturale che sta conquistando l'Europa."
|
|
321
|
+
schema_type: Article
|
|
322
|
+
internal_links:
|
|
323
|
+
- /blog/benefici-fico-india
|
|
324
|
+
- /prodotti/light-blend
|
|
325
|
+
- /chi-siamo/sostenibilita
|
|
326
|
+
|
|
327
|
+
gates:
|
|
328
|
+
seo_score_min: 75
|
|
329
|
+
readability_min: 65
|
|
330
|
+
require_review: true
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
# Acqua Premium: La Rivoluzione Zero-Calorie dal Mediterraneo
|
|
334
|
+
|
|
335
|
+
Nel cuore del Mediterraneo, tra le terre arse dal sole dell'entroterra, cresce una pianta che sta cambiando il panorama delle bevande salutari: il **frutto mediterraneo** (*Mediterranean fruit*).
|
|
336
|
+
|
|
337
|
+
## Una Tradizione Millenaria, Una Visione Moderna
|
|
338
|
+
|
|
339
|
+
Il frutto mediterraneo regionale non è solo un simbolo del paesaggio mediterraneo. Per secoli, le comunità locali hanno sfruttato le sue proprietà idratanti naturali. Oggi, grazie a un processo di estrazione innovativo, quell'acqua diventa una [bevanda zero-calorie](/prodotti/light-blend) che conserva tutti i benefici dell'originale.
|
|
340
|
+
|
|
341
|
+
## Perché l'Acqua Premium?
|
|
342
|
+
|
|
343
|
+
I vantaggi rispetto alle alternative convenzionali sono significativi:
|
|
344
|
+
|
|
345
|
+
- **Zero calorie** senza dolcificanti artificiali
|
|
346
|
+
- **Antiossidanti naturali** (betalaine e polifenoli)
|
|
347
|
+
- **Elettroliti bilanciati** per un'idratazione superiore
|
|
348
|
+
- **Impronta idrica minima**: la pianta richiede l'85% di acqua in meno rispetto alle colture tradizionali
|
|
349
|
+
|
|
350
|
+
## Sostenibilità al Centro
|
|
351
|
+
|
|
352
|
+
La nostra filiera è progettata per la [sostenibilità integrale](/chi-siamo/sostenibilita). Le piante crescono su terreni marginali, non competono con le colture alimentari e contribuiscono alla rigenerazione del suolo.
|
|
353
|
+
|
|
354
|
+
Ogni bottiglia di AcmeBrand rappresenta una scelta consapevole: per la salute, per il territorio, per il futuro.
|
|
355
|
+
|
|
356
|
+
## Scopri di Più
|
|
357
|
+
|
|
358
|
+
Leggi i [benefici scientifici del frutto mediterraneo](/blog/benefici-fico-india) o prova la nostra gamma di prodotti, dal delicato **Light Blend** al ricco **Bold Blend**.
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## File Naming Convention
|
|
364
|
+
|
|
365
|
+
Brief files follow this naming pattern:
|
|
366
|
+
|
|
367
|
+
```
|
|
368
|
+
{brief_id}.brief.md
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Examples:
|
|
372
|
+
- `BRF-2026-001.brief.md`
|
|
373
|
+
- `BRF-2026-014.brief.md`
|
|
374
|
+
|
|
375
|
+
Files are stored in:
|
|
376
|
+
- **Active**: `.content-state/pipeline-active/` (being processed)
|
|
377
|
+
- **Archived**: `.content-state/pipeline-archive/` (completed or abandoned)
|