@diviops/mcp-server 1.5.9 → 1.5.11

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.
@@ -0,0 +1,663 @@
1
+ {
2
+ "schema_version": "1.0.0",
3
+ "registry_version": "1.0.0",
4
+ "generated_at": "2026-05-19",
5
+ "evidence_level_ordering": {
6
+ "UNVERIFIED": 0,
7
+ "SCHEMA_OBSERVED": 1,
8
+ "RUNTIME_VERIFIED": 2,
9
+ "VB_ROUNDTRIP_VERIFIED": 3,
10
+ "VB_PRESET_STORAGE_VERIFIED": 4,
11
+ "CROSS_VERSION_STABLE": 5
12
+ },
13
+ "effective_evidence_rule": "min(pattern_evidence_level, applicability[<module>].cell_evidence_level). Missing applicability[<module>] = UNVERIFIED (0).",
14
+ "write_emitter_threshold": "VB_PRESET_STORAGE_VERIFIED (>=4) at the EFFECTIVE level. SCHEMA_OBSERVED + caveat is allowed for non-mutating audit output only.",
15
+ "notes": [
16
+ "Tier 1 = shared decorations (background, spacing, border, sizing, ...). Carry pattern_evidence_level + per-module applicability[<module>].cell_evidence_level. Applicability is explicitly enumerated; never implicitly inherited.",
17
+ "Tier 2 = pattern families used by some modules (divi/font, divi/font-body, divi/button group). Carry pattern + per-module wrapper. Same explicit-enumeration rule.",
18
+ "Tier 3 = module-specific unique attrs. Per-module cell-level only.",
19
+ "Group-preset routing fields (group_name + group_id) appear per applicability cell on preset_type:group entries because shared buckets (e.g. divi/spacing) have constant groupName across modules but divergent groupId per use.",
20
+ "styleAttrs shorthand contract: capture files may use shorthand strings (e.g. 'byte-identical to attrs'); treat semantically as deepClone(attrs). Do not rewrite captures.",
21
+ "Day-one allowlist is a DERIVED QUERY at Track 4 CLI runtime: filter entries whose effective evidence (min rule above) is >= VB_PRESET_STORAGE_VERIFIED. No separate allowlist artifact ships.",
22
+ "Pattern A (Google Fonts: separate family + weight) and Pattern B (local-hosted: weight encoded in family string) are distinct entries; write emitter MUST NOT vouch one with the other's evidence.",
23
+ "Sources point to durable locations only: committed files in this repo (docs/, .claude/skills/) or stable URLs. .oaris/drafts/ paths are forbidden."
24
+ ],
25
+ "tier1": [
26
+ {
27
+ "pattern_family": "module.decoration.background",
28
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
29
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-4-section.json",
30
+ "pattern_divi_version": "5.5.2",
31
+ "pattern_verified_at": "2026-05-18",
32
+ "canonical_shape_note": "module.decoration.background.desktop.value.color holds a color literal or $variable() token. Hover at desktop.hover.color (NO 'value' wrapper between hover and color, per reference_canonical_hover_state_shape).",
33
+ "applicability": {
34
+ "divi/section": {
35
+ "wrapper": "module",
36
+ "preset_type": "module",
37
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
38
+ "cell_divi_version": "5.5.2",
39
+ "verified_at": "2026-05-18",
40
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-4-section.json",
41
+ "preset_map_key": "module.decoration.background__color",
42
+ "state": "desktop.value",
43
+ "caveats": []
44
+ },
45
+ "divi/heading": {
46
+ "wrapper": "module",
47
+ "preset_type": "module",
48
+ "cell_evidence_level": "SCHEMA_OBSERVED",
49
+ "cell_divi_version": "5.5.2",
50
+ "verified_at": "2026-05-19",
51
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
52
+ "caveats": ["Tier 1 documented as universally applicable in module-formats.md; no module-specific VB capture for divi/heading on this wrapper yet"]
53
+ },
54
+ "divi/text": {
55
+ "wrapper": "module",
56
+ "preset_type": "module",
57
+ "cell_evidence_level": "SCHEMA_OBSERVED",
58
+ "cell_divi_version": "5.5.2",
59
+ "verified_at": "2026-05-19",
60
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
61
+ "caveats": []
62
+ },
63
+ "divi/button": {
64
+ "wrapper": "module",
65
+ "preset_type": "module",
66
+ "cell_evidence_level": "SCHEMA_OBSERVED",
67
+ "cell_divi_version": "5.5.2",
68
+ "verified_at": "2026-05-19",
69
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#button-vb-verified-2026-03-31-for-511-schema-audited-2026-04-12-",
70
+ "caveats": ["Button background is canonically authored at button.decoration.background (Tier 2 button group), not module.decoration.background; module-level background works only when intentionally targeting the surrounding wrapper"]
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "pattern_family": "module.decoration.spacing",
76
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
77
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-4-section.json",
78
+ "pattern_divi_version": "5.5.2",
79
+ "pattern_verified_at": "2026-05-18",
80
+ "canonical_shape_note": "module.decoration.spacing.desktop.value.padding = {top, right, bottom, left, syncVertical, syncHorizontal}. Composable-widget atomicity: touching any padding sub-field emits all four corner keys plus both sync toggles, per feedback_vb_preset_emits_on_touch + round-4-section-not-touch-discriminator.json.",
81
+ "applicability": {
82
+ "divi/section": {
83
+ "wrapper": "module",
84
+ "preset_type": "module",
85
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
86
+ "cell_divi_version": "5.5.2",
87
+ "verified_at": "2026-05-18",
88
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-4-section.json",
89
+ "preset_map_key": "module.decoration.spacing__padding",
90
+ "state": "desktop.value",
91
+ "caveats": ["Padding widget emits all 4 corners + 2 sync flags atomically on any sub-touch; do NOT emit partial subset"]
92
+ },
93
+ "divi/heading": {
94
+ "wrapper": "module",
95
+ "preset_type": "module",
96
+ "cell_evidence_level": "SCHEMA_OBSERVED",
97
+ "cell_divi_version": "5.5.2",
98
+ "verified_at": "2026-05-19",
99
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
100
+ "caveats": []
101
+ },
102
+ "divi/text": {
103
+ "wrapper": "module",
104
+ "preset_type": "module",
105
+ "cell_evidence_level": "SCHEMA_OBSERVED",
106
+ "cell_divi_version": "5.5.2",
107
+ "verified_at": "2026-05-19",
108
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
109
+ "caveats": []
110
+ },
111
+ "divi/button": {
112
+ "wrapper": "module",
113
+ "preset_type": "module",
114
+ "cell_evidence_level": "SCHEMA_OBSERVED",
115
+ "cell_divi_version": "5.5.2",
116
+ "verified_at": "2026-05-19",
117
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#button-vb-verified-2026-03-31-for-511-schema-audited-2026-04-12-",
118
+ "caveats": ["Button-module padding lives on module.decoration.spacing per Button exception, NOT button.decoration.spacing (which is VB-hidden / non-functional). See module-formats.md."]
119
+ },
120
+ "divi/row": {
121
+ "wrapper": "module",
122
+ "preset_type": "module",
123
+ "cell_evidence_level": "SCHEMA_OBSERVED",
124
+ "cell_divi_version": "5.5.2",
125
+ "verified_at": "2026-05-19",
126
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
127
+ "caveats": []
128
+ },
129
+ "divi/column": {
130
+ "wrapper": "module",
131
+ "preset_type": "module",
132
+ "cell_evidence_level": "SCHEMA_OBSERVED",
133
+ "cell_divi_version": "5.5.2",
134
+ "verified_at": "2026-05-19",
135
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
136
+ "caveats": []
137
+ },
138
+ "divi/group": {
139
+ "wrapper": "module",
140
+ "preset_type": "module",
141
+ "cell_evidence_level": "SCHEMA_OBSERVED",
142
+ "cell_divi_version": "5.5.2",
143
+ "verified_at": "2026-05-19",
144
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
145
+ "caveats": []
146
+ }
147
+ }
148
+ },
149
+ {
150
+ "pattern_family": "module.decoration.border",
151
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
152
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-4-button-outlined-canonical.json",
153
+ "pattern_divi_version": "5.5.2",
154
+ "pattern_verified_at": "2026-05-19",
155
+ "canonical_shape_note": "border.desktop.value.{radius, styles.all.{width, style, color}}. radius vocabulary canonical: {topLeft, topRight, bottomLeft, bottomRight, sync}. styles.all.style is per-side string ('solid', 'dashed', ...) — VB emits styles.all.width + styles.all.color when user touches Width + Color; emits styles.all.style only when user touches the Style dropdown (per round-4-button-outlined-canonical user_did_NOT_touch_fields).",
156
+ "applicability": {
157
+ "divi/button": {
158
+ "wrapper": "button",
159
+ "preset_type": "group",
160
+ "group_name": "divi/button",
161
+ "group_id": "button",
162
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
163
+ "cell_divi_version": "5.5.2",
164
+ "verified_at": "2026-05-19",
165
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-4-button-outlined-canonical.json",
166
+ "preset_map_key": "button.decoration.border__styles",
167
+ "state": "desktop.value",
168
+ "caveats": ["Outlined-button canonical shape; radius capture is at round-3-button-canonical-complete.json with sync='on'"]
169
+ },
170
+ "divi/section": {
171
+ "wrapper": "module",
172
+ "preset_type": "module",
173
+ "cell_evidence_level": "SCHEMA_OBSERVED",
174
+ "cell_divi_version": "5.5.2",
175
+ "verified_at": "2026-05-19",
176
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
177
+ "caveats": []
178
+ },
179
+ "divi/heading": {
180
+ "wrapper": "module",
181
+ "preset_type": "module",
182
+ "cell_evidence_level": "SCHEMA_OBSERVED",
183
+ "cell_divi_version": "5.5.2",
184
+ "verified_at": "2026-05-19",
185
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
186
+ "caveats": []
187
+ },
188
+ "divi/text": {
189
+ "wrapper": "module",
190
+ "preset_type": "module",
191
+ "cell_evidence_level": "SCHEMA_OBSERVED",
192
+ "cell_divi_version": "5.5.2",
193
+ "verified_at": "2026-05-19",
194
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
195
+ "caveats": []
196
+ },
197
+ "divi/image": {
198
+ "wrapper": "image",
199
+ "preset_type": "module",
200
+ "cell_evidence_level": "SCHEMA_OBSERVED",
201
+ "cell_divi_version": "5.5.2",
202
+ "verified_at": "2026-05-19",
203
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#image-vb-verified-2026-03-19-schema-audited-2026-04-12--exception",
204
+ "caveats": ["Image-module exception: border lives on image.decoration.border, NOT module.decoration.border. Border radius from preset alone does not render — reinforce inline per module-formats.md image-specific quirk."]
205
+ }
206
+ }
207
+ },
208
+ {
209
+ "pattern_family": "module.decoration.sizing",
210
+ "pattern_evidence_level": "SCHEMA_OBSERVED",
211
+ "pattern_evidence_source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
212
+ "pattern_divi_version": "5.5.2",
213
+ "pattern_verified_at": "2026-05-19",
214
+ "canonical_shape_note": "sizing.desktop.value.{maxWidth, width, flexType, alignment, alignSelf, minHeight, height}. flexType uses 24-unit grid ('8_24', '12_24'). flexType requires parent row display:'flex' per module-formats.md Column section. No Phase 1 capture for sizing yet; pattern remains SCHEMA_OBSERVED until a VB-roundtrip lands.",
215
+ "applicability": {
216
+ "divi/column": {
217
+ "wrapper": "module",
218
+ "preset_type": "module",
219
+ "cell_evidence_level": "SCHEMA_OBSERVED",
220
+ "cell_divi_version": "5.5.2",
221
+ "verified_at": "2026-05-19",
222
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#column-vb-verified-2026-03-19-flex-pipeline-reverified-2026-05-09-against-divi-541-",
223
+ "caveats": ["flexType requires parent row display:'flex'; on block-display rows Divi emits the legacy et_pb_column_N_M class and ignores flexType (intentional Divi behavior, not a bug)"]
224
+ },
225
+ "divi/group": {
226
+ "wrapper": "module",
227
+ "preset_type": "module",
228
+ "cell_evidence_level": "SCHEMA_OBSERVED",
229
+ "cell_divi_version": "5.5.2",
230
+ "verified_at": "2026-05-19",
231
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#group-vb-verified-2026-03-21-",
232
+ "caveats": []
233
+ },
234
+ "divi/section": {
235
+ "wrapper": "module",
236
+ "preset_type": "module",
237
+ "cell_evidence_level": "SCHEMA_OBSERVED",
238
+ "cell_divi_version": "5.5.2",
239
+ "verified_at": "2026-05-19",
240
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-1--common-decoration-all-modules",
241
+ "caveats": []
242
+ }
243
+ }
244
+ }
245
+ ],
246
+ "tier2": [
247
+ {
248
+ "pattern_family": "divi/font",
249
+ "pattern_variant": "google_fonts_pattern_a",
250
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
251
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-1a-heading-h1-pattern-a-google.json",
252
+ "pattern_divi_version": "5.5.2",
253
+ "pattern_verified_at": "2026-05-18",
254
+ "canonical_shape_note": "Pattern A (Google Fonts CDN): separate {family: 'Inter', weight: '700', size, color} keys at <wrapper>.decoration.font.font.desktop.value.*. weight is a numeric-string ('100' to '900'). See reference_local_hosted_fonts_eu_pattern.",
255
+ "co_attrs": ["weight", "size", "color"],
256
+ "family_value_format": "plain_family_name",
257
+ "applicability": {
258
+ "divi/heading": {
259
+ "wrapper": "title",
260
+ "preset_type": "group",
261
+ "group_name": "divi/font",
262
+ "group_id": "designTitleText",
263
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
264
+ "cell_divi_version": "5.5.2",
265
+ "verified_at": "2026-05-18",
266
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-1a-heading-h1-pattern-a-google.json",
267
+ "preset_map_key": "title.decoration.font.font__family",
268
+ "state": "desktop.value",
269
+ "caveats": []
270
+ },
271
+ "divi/blurb": {
272
+ "wrapper": "title",
273
+ "preset_type": "group",
274
+ "group_name": "divi/font",
275
+ "group_id": "designTitleText",
276
+ "cell_evidence_level": "SCHEMA_OBSERVED",
277
+ "cell_divi_version": "5.5.2",
278
+ "verified_at": "2026-05-19",
279
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
280
+ "caveats": ["Wrapper inferred from module-formats.md Font Family B; not VB-roundtripped on divi/blurb specifically"]
281
+ },
282
+ "divi/number-counter": {
283
+ "wrapper": "title",
284
+ "preset_type": "group",
285
+ "group_name": "divi/font",
286
+ "group_id": "designTitleText",
287
+ "cell_evidence_level": "SCHEMA_OBSERVED",
288
+ "cell_divi_version": "5.5.2",
289
+ "verified_at": "2026-05-19",
290
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
291
+ "caveats": []
292
+ },
293
+ "divi/testimonial": {
294
+ "wrapper": "author",
295
+ "preset_type": "group",
296
+ "group_name": "divi/font",
297
+ "group_id": "designTitleText",
298
+ "cell_evidence_level": "SCHEMA_OBSERVED",
299
+ "cell_divi_version": "5.5.2",
300
+ "verified_at": "2026-05-19",
301
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
302
+ "caveats": ["Testimonial also exposes jobTitle and company variants; each is a separate cell"]
303
+ },
304
+ "divi/accordion-item": {
305
+ "wrapper": "title",
306
+ "preset_type": "group",
307
+ "group_name": "divi/font",
308
+ "group_id": "designTitleText",
309
+ "cell_evidence_level": "SCHEMA_OBSERVED",
310
+ "cell_divi_version": "5.5.2",
311
+ "verified_at": "2026-05-19",
312
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
313
+ "caveats": []
314
+ },
315
+ "divi/slide": {
316
+ "wrapper": "title",
317
+ "preset_type": "group",
318
+ "group_name": "divi/font",
319
+ "group_id": "designTitleText",
320
+ "cell_evidence_level": "SCHEMA_OBSERVED",
321
+ "cell_divi_version": "5.5.2",
322
+ "verified_at": "2026-05-19",
323
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
324
+ "caveats": []
325
+ }
326
+ }
327
+ },
328
+ {
329
+ "pattern_family": "divi/font",
330
+ "pattern_variant": "local_hosted_pattern_b",
331
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
332
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-1b-heading-h1-pattern-b-local.json",
333
+ "pattern_divi_version": "5.5.2",
334
+ "pattern_verified_at": "2026-05-18",
335
+ "canonical_shape_note": "Pattern B (local-hosted, EU-GDPR via divi-oafontz plugin + et_uploaded_fonts): {family: 'Sora 700', size, color} — weight is ENCODED in family string; NO separate 'weight' key. Pattern A vs Pattern B are NOT interchangeable evidence for write emitters. Reference: reference_local_hosted_fonts_eu_pattern.",
336
+ "co_attrs": ["size", "color"],
337
+ "family_value_format": "weight_encoded_in_family_string",
338
+ "applicability": {
339
+ "divi/heading": {
340
+ "wrapper": "title",
341
+ "preset_type": "group",
342
+ "group_name": "divi/font",
343
+ "group_id": "designTitleText",
344
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
345
+ "cell_divi_version": "5.5.2",
346
+ "verified_at": "2026-05-18",
347
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-1b-heading-h1-pattern-b-local.json",
348
+ "preset_map_key": "title.decoration.font.font__family",
349
+ "state": "desktop.value",
350
+ "caveats": ["User did NOT touch the weight picker; Pattern B's encoding lives in the family string itself"]
351
+ }
352
+ }
353
+ },
354
+ {
355
+ "pattern_family": "divi/font-body",
356
+ "pattern_variant": "google_fonts_pattern_a",
357
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
358
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-2-body-text-pattern-a.json",
359
+ "pattern_divi_version": "5.5.2",
360
+ "pattern_verified_at": "2026-05-18",
361
+ "canonical_shape_note": "Pattern A on body-text family. Wrapper chain: content.decoration.bodyFont.body.font.desktop.value.{family, weight, color, size}. bodyFont.link.font.desktop.value.color for link state. Pattern B for body-text deferred unless heading-vs-body shape divergence surfaces a body-specific need (per round-2 _meta).",
362
+ "co_attrs": ["weight", "size", "color"],
363
+ "family_value_format": "plain_family_name",
364
+ "applicability": {
365
+ "divi/text": {
366
+ "wrapper": "content",
367
+ "preset_type": "group",
368
+ "group_name": "divi/font-body",
369
+ "group_id": "designText",
370
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
371
+ "cell_divi_version": "5.5.2",
372
+ "verified_at": "2026-05-18",
373
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-2-body-text-pattern-a.json",
374
+ "preset_map_key": "content.decoration.bodyFont.body.font__family",
375
+ "state": "desktop.value",
376
+ "caveats": []
377
+ },
378
+ "divi/testimonial": {
379
+ "wrapper": "content",
380
+ "preset_type": "group",
381
+ "group_name": "divi/font-body",
382
+ "group_id": "designText",
383
+ "cell_evidence_level": "SCHEMA_OBSERVED",
384
+ "cell_divi_version": "5.5.2",
385
+ "verified_at": "2026-05-19",
386
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
387
+ "caveats": []
388
+ },
389
+ "divi/accordion-item": {
390
+ "wrapper": "content",
391
+ "preset_type": "group",
392
+ "group_name": "divi/font-body",
393
+ "group_id": "designText",
394
+ "cell_evidence_level": "SCHEMA_OBSERVED",
395
+ "cell_divi_version": "5.5.2",
396
+ "verified_at": "2026-05-19",
397
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
398
+ "caveats": []
399
+ },
400
+ "divi/slide": {
401
+ "wrapper": "content",
402
+ "preset_type": "group",
403
+ "group_name": "divi/font-body",
404
+ "group_id": "designText",
405
+ "cell_evidence_level": "SCHEMA_OBSERVED",
406
+ "cell_divi_version": "5.5.2",
407
+ "verified_at": "2026-05-19",
408
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
409
+ "caveats": []
410
+ },
411
+ "divi/blurb": {
412
+ "wrapper": "content",
413
+ "preset_type": "group",
414
+ "group_name": "divi/font-body",
415
+ "group_id": "designText",
416
+ "cell_evidence_level": "SCHEMA_OBSERVED",
417
+ "cell_divi_version": "5.5.2",
418
+ "verified_at": "2026-05-19",
419
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
420
+ "caveats": []
421
+ }
422
+ }
423
+ },
424
+ {
425
+ "pattern_family": "divi/button.background",
426
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
427
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-3-button-canonical-complete.json",
428
+ "pattern_divi_version": "5.5.2",
429
+ "pattern_verified_at": "2026-05-18",
430
+ "canonical_shape_note": "button.decoration.background.desktop.{value.color, hover.color}. NOTE: hover wrapper omits 'value' (per reference_canonical_hover_state_shape — Divi 5.5.x hover is one wrapper shallower than desktop). Phase 2 CLI must emit hover.color (NOT hover.value.color).",
431
+ "applicability": {
432
+ "divi/button": {
433
+ "wrapper": "button",
434
+ "preset_type": "group",
435
+ "group_name": "divi/button",
436
+ "group_id": "button",
437
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
438
+ "cell_divi_version": "5.5.2",
439
+ "verified_at": "2026-05-18",
440
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-3-button-canonical-complete.json",
441
+ "preset_map_key": "button.decoration.background__color",
442
+ "state": "desktop.value + desktop.hover",
443
+ "caveats": []
444
+ }
445
+ }
446
+ },
447
+ {
448
+ "pattern_family": "divi/button.border",
449
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
450
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-3-button-canonical-complete.json",
451
+ "pattern_divi_version": "5.5.2",
452
+ "pattern_verified_at": "2026-05-18",
453
+ "canonical_shape_note": "button.decoration.border.desktop.value.radius = {topLeft, topRight, bottomLeft, bottomRight, sync}. Outlined-button styles.all.{width, color} captured at round-4-button-outlined-canonical.json. radius vocabulary differs from current MCP shape ({top,right,bottom,left,syncCorners}) — migration question deferred per F2 of round-3 findings.",
454
+ "applicability": {
455
+ "divi/button": {
456
+ "wrapper": "button",
457
+ "preset_type": "group",
458
+ "group_name": "divi/button",
459
+ "group_id": "button",
460
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
461
+ "cell_divi_version": "5.5.2",
462
+ "verified_at": "2026-05-18",
463
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-3-button-canonical-complete.json",
464
+ "preset_map_key": "button.decoration.border__radius",
465
+ "state": "desktop.value",
466
+ "caveats": ["Canonical radius vocabulary is {topLeft, topRight, bottomLeft, bottomRight, sync} — NOT {top,right,bottom,left,syncCorners}. Current MCP shape diverges; migration question deferred per round-3 finding F2."]
467
+ }
468
+ }
469
+ },
470
+ {
471
+ "pattern_family": "divi/button.font",
472
+ "pattern_variant": "google_fonts_pattern_a",
473
+ "pattern_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
474
+ "pattern_evidence_source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-3-button-canonical-complete.json",
475
+ "pattern_divi_version": "5.5.2",
476
+ "pattern_verified_at": "2026-05-18",
477
+ "canonical_shape_note": "button.decoration.font.font.desktop.value.{family, weight, color}. Pattern A only at present; Pattern B button capture deferred to backlog. button.decoration.font.font is Font Family B (double-nested).",
478
+ "co_attrs": ["weight", "color"],
479
+ "family_value_format": "plain_family_name",
480
+ "applicability": {
481
+ "divi/button": {
482
+ "wrapper": "button",
483
+ "preset_type": "group",
484
+ "group_name": "divi/button",
485
+ "group_id": "button",
486
+ "cell_evidence_level": "VB_PRESET_STORAGE_VERIFIED",
487
+ "cell_divi_version": "5.5.2",
488
+ "verified_at": "2026-05-18",
489
+ "source": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-3-button-canonical-complete.json",
490
+ "preset_map_key": "button.decoration.font.font__family",
491
+ "state": "desktop.value",
492
+ "caveats": []
493
+ }
494
+ }
495
+ },
496
+ {
497
+ "pattern_family": "divi/spacing",
498
+ "pattern_evidence_level": "SCHEMA_OBSERVED",
499
+ "pattern_evidence_source": ".claude/skills/divi-5-builder/references/presets.md#known-group-bucket-inventory-vb-verified-2026-05-04",
500
+ "pattern_divi_version": "5.5.2",
501
+ "pattern_verified_at": "2026-05-19",
502
+ "canonical_shape_note": "Composable Settings spacing bucket — module-level AND inner-element-level share this bucket. groupId uses dotted attribute path (5.4.0+): module.decoration.spacing, title.decoration.spacing, content.decoration.spacing. Pattern observed as bucket existence (presets.md group-bucket inventory) but no Phase 1 dedicated spacing-group-preset capture yet; promote to VB_PRESET_STORAGE_VERIFIED once a divi/spacing group-preset capture lands.",
503
+ "applicability": {
504
+ "divi/heading": {
505
+ "wrapper": "title",
506
+ "preset_type": "group",
507
+ "group_name": "divi/spacing",
508
+ "group_id": "title.decoration.spacing",
509
+ "cell_evidence_level": "SCHEMA_OBSERVED",
510
+ "cell_divi_version": "5.5.2",
511
+ "verified_at": "2026-05-19",
512
+ "source": ".claude/skills/divi-5-builder/references/presets.md#known-group-bucket-inventory-vb-verified-2026-05-04",
513
+ "caveats": ["divi/spacing group bucket VB-confirmed (5.4.0); per-module title-spacing cell needs its own roundtrip"]
514
+ },
515
+ "divi/text": {
516
+ "wrapper": "content",
517
+ "preset_type": "group",
518
+ "group_name": "divi/spacing",
519
+ "group_id": "content.decoration.spacing",
520
+ "cell_evidence_level": "SCHEMA_OBSERVED",
521
+ "cell_divi_version": "5.5.2",
522
+ "verified_at": "2026-05-19",
523
+ "source": ".claude/skills/divi-5-builder/references/presets.md#known-group-bucket-inventory-vb-verified-2026-05-04",
524
+ "caveats": []
525
+ },
526
+ "divi/section": {
527
+ "wrapper": "module",
528
+ "preset_type": "group",
529
+ "group_name": "divi/spacing",
530
+ "group_id": "module.decoration.spacing",
531
+ "cell_evidence_level": "SCHEMA_OBSERVED",
532
+ "cell_divi_version": "5.5.2",
533
+ "verified_at": "2026-05-19",
534
+ "source": ".claude/skills/divi-5-builder/references/presets.md#known-group-bucket-inventory-vb-verified-2026-05-04",
535
+ "caveats": []
536
+ },
537
+ "divi/button": {
538
+ "wrapper": "module",
539
+ "preset_type": "group",
540
+ "group_name": "divi/spacing",
541
+ "group_id": "module.decoration.spacing",
542
+ "cell_evidence_level": "SCHEMA_OBSERVED",
543
+ "cell_divi_version": "5.5.2",
544
+ "verified_at": "2026-05-19",
545
+ "source": ".claude/skills/divi-5-builder/references/presets.md#known-group-bucket-inventory-vb-verified-2026-05-04",
546
+ "caveats": ["Button padding is canonically authored on module.decoration.spacing per Button exception (NOT button.decoration.spacing which is VB-hidden)"]
547
+ }
548
+ }
549
+ }
550
+ ],
551
+ "tier3": [
552
+ {
553
+ "module": "divi/button",
554
+ "attr_path": "button.innerContent.desktop.value",
555
+ "shape": "{text: string, linkUrl: string}",
556
+ "preset_type": "inline",
557
+ "evidence_level": "SCHEMA_OBSERVED",
558
+ "divi_version": "5.5.2",
559
+ "verified_at": "2026-05-19",
560
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#button-vb-verified-2026-03-31-for-511-schema-audited-2026-04-12-",
561
+ "status": "documented",
562
+ "caveats": ["innerContent is per-instance, not normally preset-authored; the Phase 1 captures focus on preset shape so this cell remains SCHEMA_OBSERVED for now"]
563
+ },
564
+ {
565
+ "module": "divi/text",
566
+ "attr_path": "content.innerContent.desktop.value",
567
+ "shape": "HTML string (unicode-escaped, e.g. '\\u003cp\\u003eBody\\u003c/p\\u003e')",
568
+ "preset_type": "inline",
569
+ "evidence_level": "SCHEMA_OBSERVED",
570
+ "divi_version": "5.5.2",
571
+ "verified_at": "2026-05-19",
572
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#text-vb-verified-2026-03-19-schema-audited-2026-04-12-",
573
+ "status": "documented",
574
+ "caveats": []
575
+ },
576
+ {
577
+ "module": "divi/heading",
578
+ "attr_path": "title.innerContent.desktop.value",
579
+ "shape": "plain string",
580
+ "preset_type": "inline",
581
+ "evidence_level": "SCHEMA_OBSERVED",
582
+ "divi_version": "5.5.2",
583
+ "verified_at": "2026-05-19",
584
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#heading-vb-verified-2026-03-19-schema-audited-2026-04-12-",
585
+ "status": "documented",
586
+ "caveats": []
587
+ },
588
+ {
589
+ "module": "divi/heading",
590
+ "attr_path": "title.decoration.font.font.desktop.value.headingLevel",
591
+ "shape": "string enum 'h1'..'h6'",
592
+ "preset_type": "module",
593
+ "evidence_level": "SCHEMA_OBSERVED",
594
+ "divi_version": "5.5.2",
595
+ "verified_at": "2026-05-19",
596
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#tier-2--pattern-families",
597
+ "status": "documented",
598
+ "caveats": ["headingLevel is a structural-only field — preset's styleAttrs strip it per presets.md storage-format notes"]
599
+ },
600
+ {
601
+ "module": "divi/image",
602
+ "attr_path": "image.innerContent.desktop.value",
603
+ "shape": "{src, id, alt, linkUrl, linkTarget} OR separate sub-items per schema",
604
+ "preset_type": "inline",
605
+ "evidence_level": "SCHEMA_OBSERVED",
606
+ "divi_version": "5.5.2",
607
+ "verified_at": "2026-05-19",
608
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#image-vb-verified-2026-03-19-schema-audited-2026-04-12--exception",
609
+ "status": "documented",
610
+ "caveats": ["Combined form appears to work in practice; VB round-trip test pending per module-formats.md drift candidate note"]
611
+ },
612
+ {
613
+ "module": "divi/icon",
614
+ "attr_path": "icon.innerContent.desktop.value",
615
+ "shape": "{unicode, type: 'fa'|'divi', weight: '400'|'900', url?: string}",
616
+ "preset_type": "inline",
617
+ "evidence_level": "SCHEMA_OBSERVED",
618
+ "divi_version": "5.5.2",
619
+ "verified_at": "2026-05-19",
620
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#icon-vb-verified-2026-03-19-schema-audited-2026-04-12-",
621
+ "status": "documented",
622
+ "caveats": []
623
+ },
624
+ {
625
+ "module": "divi/section",
626
+ "attr_path": "module.advanced.dividers.{top,bottom}.desktop.value",
627
+ "shape": "{style, height, color, repeat, flip[], arrangement}",
628
+ "preset_type": "module",
629
+ "evidence_level": "SCHEMA_OBSERVED",
630
+ "divi_version": "5.5.2",
631
+ "verified_at": "2026-05-19",
632
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#dividers-section-only-vb-verified-2026-03-23",
633
+ "status": "documented",
634
+ "caveats": ["Section only; Row/Column/Group do not support dividers"]
635
+ },
636
+ {
637
+ "module": "divi/column",
638
+ "attr_path": "module.decoration.sizing.desktop.value.flexType",
639
+ "shape": "24-unit grid string enum ('1_24'..'24_24'; '8_24'=1/3, '12_24'=1/2)",
640
+ "preset_type": "module",
641
+ "evidence_level": "SCHEMA_OBSERVED",
642
+ "divi_version": "5.5.2",
643
+ "verified_at": "2026-05-19",
644
+ "source": ".claude/skills/divi-5-builder/references/module-formats.md#column-vb-verified-2026-03-19-flex-pipeline-reverified-2026-05-09-against-divi-541-",
645
+ "status": "documented",
646
+ "caveats": ["Requires parent row display:'flex'; otherwise Divi emits legacy et_pb_column_N_M and ignores flexType (intentional Divi behavior)"]
647
+ }
648
+ ],
649
+ "patterns_index": {
650
+ "fonts": {
651
+ "pattern_a_google_cdn": {
652
+ "discriminator_capture": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-1a-heading-h1-pattern-a-google.json",
653
+ "shape_note": "separate family + weight + size + color keys",
654
+ "co_attrs": ["family", "weight", "size", "color"]
655
+ },
656
+ "pattern_b_local_hosted": {
657
+ "discriminator_capture": "docs/verification/evidence/canonical-shape-dumps-2026-05-18/round-1b-heading-h1-pattern-b-local.json",
658
+ "shape_note": "family encodes weight ('Sora 700'); NO separate weight key — Pattern B requires divi-oafontz local-font setup",
659
+ "co_attrs": ["family", "size", "color"]
660
+ }
661
+ }
662
+ }
663
+ }