@nextcommerce/campaigns-os 1.34.1 → 1.37.2
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/AGENTS.md +42 -13
- package/CHANGELOG.md +117 -0
- package/README.md +48 -21
- package/contracts/agent-relevant-change-policy.v1.json +1 -0
- package/contracts/campaign-cart-sdk-support-policy.v0.json +2 -2
- package/contracts/commerce-surface-catalog.json +31 -29
- package/contracts/fixtures/progress/observation.v0.json +89 -0
- package/contracts/release-ledger.json +425 -0
- package/contracts/supported-surface.json +20 -5
- package/contracts/template-brand-contract.shared-commerce.v0.json +1 -1
- package/demo/apollo-v0/NOTICE.txt +51 -0
- package/demo/apollo-v0/assets/css/demo.css +2 -0
- package/demo/apollo-v0/assets/css/landing/tokens.css +35 -0
- package/demo/apollo-v0/assets/css/next-core.css +16124 -0
- package/demo/apollo-v0/assets/images/1x1_1.svg +19 -0
- package/demo/apollo-v0/assets/images/1x1_2.svg +19 -0
- package/demo/apollo-v0/assets/images/affirm-logo.svg +24 -0
- package/demo/apollo-v0/assets/images/apple-pay-logo.svg +4 -0
- package/demo/apollo-v0/assets/images/bancontact-logo.svg +1 -0
- package/demo/apollo-v0/assets/images/cc-visa.svg +28 -0
- package/demo/apollo-v0/assets/images/cc_amex.svg +20 -0
- package/demo/apollo-v0/assets/images/cc_discover.svg +21 -0
- package/demo/apollo-v0/assets/images/cc_master.svg +22 -0
- package/demo/apollo-v0/assets/images/credit-card-flags.svg +38 -0
- package/demo/apollo-v0/assets/images/demo-inline-40788e52a7c75b78.svg +1 -0
- package/demo/apollo-v0/assets/images/demo-inline-686e73c8840a0f0a.svg +1 -0
- package/demo/apollo-v0/assets/images/google-pay-logo.svg +7 -0
- package/demo/apollo-v0/assets/images/guarantee-badge.png +0 -0
- package/demo/apollo-v0/assets/images/icon-dollar.svg +5 -0
- package/demo/apollo-v0/assets/images/icon-guarantee.svg +5 -0
- package/demo/apollo-v0/assets/images/icon-shipping.svg +5 -0
- package/demo/apollo-v0/assets/images/icons8-lock-24_1icons8-lock-24.png +0 -0
- package/demo/apollo-v0/assets/images/ideal-logo.svg +30 -0
- package/demo/apollo-v0/assets/images/klarna-logo.svg +9 -0
- package/demo/apollo-v0/assets/images/landing/_shared/16x9.svg +19 -0
- package/demo/apollo-v0/assets/images/landing/_shared/1x1_1.svg +19 -0
- package/demo/apollo-v0/assets/images/landing/_shared/4x3.svg +19 -0
- package/demo/apollo-v0/assets/images/landing/_shared/arrow-right.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/_shared/cta-guarantee-icon.png +0 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-1.svg +8 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-2.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-3.svg +13 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-4.svg +11 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-quote.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-verified.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/bottomcta-1/check-bullet.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/faq-1/faq-chevron.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/footer-1/footer-logo.png +0 -0
- package/demo/apollo-v0/assets/images/landing/guarantee-1/guarantee-1-badge.svg +8 -0
- package/demo/apollo-v0/assets/images/landing/hero-1/icon-check.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/hero-1/icon-star.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/hero-1/icon-verified.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-batteries.svg +7 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-cuff-checking.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-dual-user.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-fda-cleared.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-heartbeat.svg +17 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-lcd-display.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-movement-error.svg +7 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-portable.png +0 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-reading-memory.svg +6 -0
- package/demo/apollo-v0/assets/images/landing/icons-5/icon-wrist-comfort.svg +5 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-1.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-2.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-3.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-4.jpg +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-1.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-2.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-3.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-4.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-5.png +0 -0
- package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-6.png +0 -0
- package/demo/apollo-v0/assets/images/landing/nav-1/flag-us.png +0 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/star-card.svg +3 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/star-lg.svg +3 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/star-sm.svg +3 -0
- package/demo/apollo-v0/assets/images/landing/reviews-3/verified.svg +10 -0
- package/demo/apollo-v0/assets/images/landing/testimonials-2/testimonials-2-reactions.svg +9 -0
- package/demo/apollo-v0/assets/images/landing/testimonials-2/testimonials-2-stars.svg +6 -0
- package/demo/apollo-v0/assets/images/link-logo.svg +1 -0
- package/demo/apollo-v0/assets/images/next-dark.svg +8 -0
- package/demo/apollo-v0/assets/images/paypal-logo.svg +5 -0
- package/demo/apollo-v0/assets/images/paypal-txt.svg +8 -0
- package/demo/apollo-v0/assets/images/paypal.svg +22 -0
- package/demo/apollo-v0/assets/images/sepa-logo.svg +275 -0
- package/demo/apollo-v0/assets/images/twint-logo.svg +1 -0
- package/demo/apollo-v0/assets/images/united-states-flag-icon.webp +0 -0
- package/demo/apollo-v0/assets/images/upsell-payment-logos.svg +38 -0
- package/demo/apollo-v0/assets/images/usps.png +0 -0
- package/demo/apollo-v0/checkout/index.html +1370 -0
- package/demo/apollo-v0/landing/index.html +1836 -0
- package/demo/apollo-v0/provenance.json +342 -0
- package/demo/apollo-v0/receipt/index.html +292 -0
- package/demo/apollo-v0/upsell-bundle-stepper/index.html +401 -0
- package/docs/activation-and-evidence.md +37 -0
- package/docs/build-packet.md +107 -0
- package/docs/demo-preview.md +63 -0
- package/docs/diagnostics.md +55 -0
- package/docs/orientation-contract-reference.md +2 -1
- package/docs/progress-snapshots.md +142 -0
- package/docs/runtime-readiness.md +1 -1
- package/docs/supported-surface.md +13 -1
- package/package.json +13 -3
- package/schemas/campaign-runtime-build-context.v0.schema.json +42 -0
- package/schemas/campaigns-os-progress-snapshot.v0.schema.json +370 -0
- package/skills/next-campaigns-build/SKILL.md +17 -1
- package/skills/next-campaigns-os/SKILL.md +19 -3
- package/skills/next-campaigns-os-setup/SKILL.md +17 -1
- package/skills/next-campaigns-polish/SKILL.md +18 -2
- package/skills/next-campaigns-qa/SKILL.md +24 -8
- package/skills.json +5 -5
- package/src/cli.mjs +74 -4
- package/src/consent.mjs +2 -2
- package/src/demo-artifact.mjs +97 -0
- package/src/demo.mjs +85 -0
- package/src/diagnostic.mjs +101 -0
- package/src/install-mode.mjs +13 -1
- package/src/progress-node.mjs +177 -0
- package/src/progress.mjs +133 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://nextcommerce.com/schemas/campaigns-os-progress-snapshot.v0.schema.json",
|
|
4
|
+
"title": "Campaigns OS minimal progress observation v0",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version",
|
|
9
|
+
"snapshot_id",
|
|
10
|
+
"stream_id",
|
|
11
|
+
"sequence",
|
|
12
|
+
"previous_snapshot_id",
|
|
13
|
+
"observed_at",
|
|
14
|
+
"package_version",
|
|
15
|
+
"producer",
|
|
16
|
+
"identity",
|
|
17
|
+
"stages",
|
|
18
|
+
"preview",
|
|
19
|
+
"continuation",
|
|
20
|
+
"qa"
|
|
21
|
+
],
|
|
22
|
+
"properties": {
|
|
23
|
+
"schema_version": {
|
|
24
|
+
"const": "campaigns-os-progress-snapshot/v0"
|
|
25
|
+
},
|
|
26
|
+
"snapshot_id": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
29
|
+
},
|
|
30
|
+
"stream_id": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^progress_[0-9a-f]{32}$"
|
|
33
|
+
},
|
|
34
|
+
"sequence": {
|
|
35
|
+
"type": "integer",
|
|
36
|
+
"minimum": 1,
|
|
37
|
+
"maximum": 2147483647
|
|
38
|
+
},
|
|
39
|
+
"previous_snapshot_id": {
|
|
40
|
+
"type": [
|
|
41
|
+
"string",
|
|
42
|
+
"null"
|
|
43
|
+
],
|
|
44
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
45
|
+
},
|
|
46
|
+
"observed_at": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
|
|
49
|
+
},
|
|
50
|
+
"package_version": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"pattern": "^\\d{1,6}\\.\\d{1,6}\\.\\d{1,6}$"
|
|
53
|
+
},
|
|
54
|
+
"producer": {
|
|
55
|
+
"enum": [
|
|
56
|
+
"next",
|
|
57
|
+
"qa"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"identity": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"additionalProperties": false,
|
|
63
|
+
"required": [
|
|
64
|
+
"map_id",
|
|
65
|
+
"map_revision_hash",
|
|
66
|
+
"map_revision_algorithm",
|
|
67
|
+
"saved_revision_alignment",
|
|
68
|
+
"local_spec_material_hash",
|
|
69
|
+
"local_spec_material_algorithm",
|
|
70
|
+
"build_fingerprint",
|
|
71
|
+
"build_fingerprint_algorithm"
|
|
72
|
+
],
|
|
73
|
+
"properties": {
|
|
74
|
+
"map_id": {
|
|
75
|
+
"type": [
|
|
76
|
+
"string",
|
|
77
|
+
"null"
|
|
78
|
+
],
|
|
79
|
+
"pattern": "^[A-Za-z0-9_-]{1,64}$"
|
|
80
|
+
},
|
|
81
|
+
"map_revision_hash": {
|
|
82
|
+
"type": [
|
|
83
|
+
"string",
|
|
84
|
+
"null"
|
|
85
|
+
],
|
|
86
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
87
|
+
},
|
|
88
|
+
"map_revision_algorithm": {
|
|
89
|
+
"const": "map-store-v1"
|
|
90
|
+
},
|
|
91
|
+
"saved_revision_alignment": {
|
|
92
|
+
"enum": [
|
|
93
|
+
"aligned",
|
|
94
|
+
"unconfirmed"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"local_spec_material_hash": {
|
|
98
|
+
"type": [
|
|
99
|
+
"string",
|
|
100
|
+
"null"
|
|
101
|
+
],
|
|
102
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
103
|
+
},
|
|
104
|
+
"local_spec_material_algorithm": {
|
|
105
|
+
"const": "campaign-spec-material-v1"
|
|
106
|
+
},
|
|
107
|
+
"build_fingerprint": {
|
|
108
|
+
"type": [
|
|
109
|
+
"string",
|
|
110
|
+
"null"
|
|
111
|
+
],
|
|
112
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
113
|
+
},
|
|
114
|
+
"build_fingerprint_algorithm": {
|
|
115
|
+
"const": "sha256-manifest/v1"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"stages": {
|
|
120
|
+
"type": "array",
|
|
121
|
+
"minItems": 6,
|
|
122
|
+
"maxItems": 6,
|
|
123
|
+
"items": {
|
|
124
|
+
"type": "object",
|
|
125
|
+
"additionalProperties": false,
|
|
126
|
+
"required": [
|
|
127
|
+
"stage",
|
|
128
|
+
"status",
|
|
129
|
+
"build_binding",
|
|
130
|
+
"source_build_fingerprint"
|
|
131
|
+
],
|
|
132
|
+
"properties": {
|
|
133
|
+
"stage": {
|
|
134
|
+
"enum": [
|
|
135
|
+
"prepare_build",
|
|
136
|
+
"setup",
|
|
137
|
+
"assembly",
|
|
138
|
+
"polish",
|
|
139
|
+
"deploy",
|
|
140
|
+
"qa"
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"status": {
|
|
144
|
+
"enum": [
|
|
145
|
+
"pending",
|
|
146
|
+
"required",
|
|
147
|
+
"blocked",
|
|
148
|
+
"completed",
|
|
149
|
+
"completed_with_warnings",
|
|
150
|
+
"skipped",
|
|
151
|
+
"unknown"
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
"build_binding": {
|
|
155
|
+
"enum": [
|
|
156
|
+
"matching",
|
|
157
|
+
"unconfirmed"
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
"source_build_fingerprint": {
|
|
161
|
+
"type": [
|
|
162
|
+
"string",
|
|
163
|
+
"null"
|
|
164
|
+
],
|
|
165
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"preview": {
|
|
171
|
+
"type": "object",
|
|
172
|
+
"additionalProperties": false,
|
|
173
|
+
"required": [
|
|
174
|
+
"present",
|
|
175
|
+
"url_hash"
|
|
176
|
+
],
|
|
177
|
+
"properties": {
|
|
178
|
+
"present": {
|
|
179
|
+
"type": "boolean"
|
|
180
|
+
},
|
|
181
|
+
"url_hash": {
|
|
182
|
+
"type": [
|
|
183
|
+
"string",
|
|
184
|
+
"null"
|
|
185
|
+
],
|
|
186
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"continuation": {
|
|
191
|
+
"type": "object",
|
|
192
|
+
"additionalProperties": false,
|
|
193
|
+
"required": [
|
|
194
|
+
"stage",
|
|
195
|
+
"blocked",
|
|
196
|
+
"divergent",
|
|
197
|
+
"action_ids",
|
|
198
|
+
"gates"
|
|
199
|
+
],
|
|
200
|
+
"properties": {
|
|
201
|
+
"stage": {
|
|
202
|
+
"enum": [
|
|
203
|
+
"prepare-build",
|
|
204
|
+
"doctor-blocked",
|
|
205
|
+
"setup",
|
|
206
|
+
"build",
|
|
207
|
+
"polish",
|
|
208
|
+
"deploy",
|
|
209
|
+
"qa",
|
|
210
|
+
"done",
|
|
211
|
+
"unknown"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"blocked": {
|
|
215
|
+
"type": "boolean"
|
|
216
|
+
},
|
|
217
|
+
"divergent": {
|
|
218
|
+
"type": "boolean"
|
|
219
|
+
},
|
|
220
|
+
"action_ids": {
|
|
221
|
+
"type": "array",
|
|
222
|
+
"maxItems": 64,
|
|
223
|
+
"uniqueItems": true,
|
|
224
|
+
"items": {
|
|
225
|
+
"enum": [
|
|
226
|
+
"doctor_recheck",
|
|
227
|
+
"restore_prepare_build_binding",
|
|
228
|
+
"recheck",
|
|
229
|
+
"rerun_prepare_build",
|
|
230
|
+
"divergence_inspect",
|
|
231
|
+
"setup_skill",
|
|
232
|
+
"build_skill",
|
|
233
|
+
"build_local_proof",
|
|
234
|
+
"build_production_parity",
|
|
235
|
+
"polish_skill",
|
|
236
|
+
"deploy",
|
|
237
|
+
"advance",
|
|
238
|
+
"install_browser",
|
|
239
|
+
"qa_run",
|
|
240
|
+
"run_end",
|
|
241
|
+
"run_record_present",
|
|
242
|
+
"run_record_remit_recovery",
|
|
243
|
+
"run_record_closeout",
|
|
244
|
+
"purchase_proof_unknown",
|
|
245
|
+
"theme_gate.starter_palette_blocks_qa",
|
|
246
|
+
"theme_gate.brand_contract_unreadable",
|
|
247
|
+
"theme_gate.theme_generate",
|
|
248
|
+
"theme_gate.apply_brand_layer",
|
|
249
|
+
"theme_gate.waive_theme",
|
|
250
|
+
"theme_gate.fix_load_order",
|
|
251
|
+
"polish_gate.rerun_build",
|
|
252
|
+
"polish_gate.run_polish",
|
|
253
|
+
"polish_gate.repair_waiver",
|
|
254
|
+
"checkpoint.page_kit.sdk_version.repair_spec",
|
|
255
|
+
"checkpoint.page_kit.sdk_version.refresh_spec",
|
|
256
|
+
"checkpoint.page_kit.store_profile.repair_spec",
|
|
257
|
+
"checkpoint.built_output.upsell_selector_scope.repair_selectors",
|
|
258
|
+
"checkpoint.page_kit.sdk_version.repair_target",
|
|
259
|
+
"checkpoint.page_kit.sdk_version.align_store_profile",
|
|
260
|
+
"checkpoint.page_kit.sdk_version.align_sdk_version",
|
|
261
|
+
"checkpoint.page_kit.sdk_version.repair_waiver",
|
|
262
|
+
"checkpoint.page_kit.sdk_version.waive",
|
|
263
|
+
"checkpoint.page_kit.store_profile.repair_target",
|
|
264
|
+
"checkpoint.page_kit.store_profile.align_store_profile",
|
|
265
|
+
"checkpoint.page_kit.store_profile.align_sdk_version",
|
|
266
|
+
"checkpoint.page_kit.store_profile.repair_waiver",
|
|
267
|
+
"checkpoint.page_kit.store_profile.waive",
|
|
268
|
+
"checkpoint.built_output.upsell_selector_scope.repair_target",
|
|
269
|
+
"checkpoint.built_output.upsell_selector_scope.align_store_profile",
|
|
270
|
+
"checkpoint.built_output.upsell_selector_scope.align_sdk_version",
|
|
271
|
+
"checkpoint.built_output.upsell_selector_scope.repair_waiver",
|
|
272
|
+
"checkpoint.built_output.upsell_selector_scope.waive",
|
|
273
|
+
"checkpoint.polish.hidden_eager_media.capture",
|
|
274
|
+
"checkpoint.polish.hidden_eager_media.install_browser",
|
|
275
|
+
"checkpoint.polish.hidden_eager_media.repair",
|
|
276
|
+
"checkpoint.polish.hidden_eager_media.repair_authority",
|
|
277
|
+
"checkpoint.polish.hidden_eager_media.local_proof_rebuild",
|
|
278
|
+
"checkpoint.polish.hidden_eager_media.waive",
|
|
279
|
+
"unknown"
|
|
280
|
+
]
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"gates": {
|
|
284
|
+
"type": "array",
|
|
285
|
+
"maxItems": 16,
|
|
286
|
+
"items": {
|
|
287
|
+
"type": "object",
|
|
288
|
+
"additionalProperties": false,
|
|
289
|
+
"required": [
|
|
290
|
+
"id",
|
|
291
|
+
"state"
|
|
292
|
+
],
|
|
293
|
+
"properties": {
|
|
294
|
+
"id": {
|
|
295
|
+
"enum": [
|
|
296
|
+
"doctor",
|
|
297
|
+
"prepare_build",
|
|
298
|
+
"theme_gate",
|
|
299
|
+
"polish_gate",
|
|
300
|
+
"page_kit.sdk_version",
|
|
301
|
+
"page_kit.store_profile",
|
|
302
|
+
"built_output.upsell_selector_scope",
|
|
303
|
+
"polish.hidden_eager_media",
|
|
304
|
+
"unknown"
|
|
305
|
+
]
|
|
306
|
+
},
|
|
307
|
+
"state": {
|
|
308
|
+
"enum": [
|
|
309
|
+
"pass",
|
|
310
|
+
"blocked",
|
|
311
|
+
"waived",
|
|
312
|
+
"not_applicable",
|
|
313
|
+
"unknown"
|
|
314
|
+
]
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
"qa": {
|
|
322
|
+
"anyOf": [
|
|
323
|
+
{
|
|
324
|
+
"type": "null"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"type": "object",
|
|
328
|
+
"additionalProperties": false,
|
|
329
|
+
"required": [
|
|
330
|
+
"verdict_id",
|
|
331
|
+
"disposition",
|
|
332
|
+
"binding",
|
|
333
|
+
"publish_state"
|
|
334
|
+
],
|
|
335
|
+
"properties": {
|
|
336
|
+
"verdict_id": {
|
|
337
|
+
"type": [
|
|
338
|
+
"string",
|
|
339
|
+
"null"
|
|
340
|
+
],
|
|
341
|
+
"pattern": "^[A-Za-z0-9_-]{1,64}$"
|
|
342
|
+
},
|
|
343
|
+
"disposition": {
|
|
344
|
+
"enum": [
|
|
345
|
+
"ready",
|
|
346
|
+
"ready_with_exceptions",
|
|
347
|
+
"blocked",
|
|
348
|
+
"unknown"
|
|
349
|
+
]
|
|
350
|
+
},
|
|
351
|
+
"binding": {
|
|
352
|
+
"enum": [
|
|
353
|
+
"matching",
|
|
354
|
+
"unconfirmed"
|
|
355
|
+
]
|
|
356
|
+
},
|
|
357
|
+
"publish_state": {
|
|
358
|
+
"enum": [
|
|
359
|
+
"skipped",
|
|
360
|
+
"ok",
|
|
361
|
+
"failed",
|
|
362
|
+
"unknown"
|
|
363
|
+
]
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
]
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: next-campaigns-build
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.3
|
|
4
4
|
description: Assemble a NEXT campaign from a doctor-cleared Build Packet, CampaignSpec/API values, prepared HTML/assets, page-kit, and starter-template contracts.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Next Campaigns Build
|
|
8
8
|
|
|
9
|
+
## Installed toolkit commands
|
|
10
|
+
|
|
11
|
+
Run from the campaign folder with an exact project-local devDependency and
|
|
12
|
+
committed lockfile. Orient on reviewed source before installation; check release
|
|
13
|
+
provenance or pin the full reviewed Git SHA. Preflight with `npx campaigns-os
|
|
14
|
+
tooling status --platform <claude|codex>` and refresh bundled skills for the same
|
|
15
|
+
profile. Use the invocation printed by status and `next` to avoid PATH shadowing.
|
|
16
|
+
|
|
17
|
+
In the instructions below, bare `campaigns-os …` means `npx campaigns-os …`
|
|
18
|
+
from that campaign folder. Global-only users substitute the global copy's printed invocation for
|
|
19
|
+
each `npx campaigns-os` example; toolkit contributors translate to `npm run campaigns-os -- …` in
|
|
20
|
+
the toolkit checkout. Browser installation is `npx campaigns-os qa
|
|
21
|
+
install-browser`, not a campaign npm script. `tooling diagnose --packet <p>
|
|
22
|
+
--json` provides a redacted support export without changing retained evidence.
|
|
23
|
+
|
|
24
|
+
|
|
9
25
|
## Recommended Build Loop
|
|
10
26
|
|
|
11
27
|
For campaign builds, follow **build → independent review → repair → verification**.
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: next-campaigns-os
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.17
|
|
4
4
|
description: Coordinate Campaigns OS lifecycle workflows from CampaignSpec, Build Packet, starter-template contracts, stage reports, deploy evidence, and QA proof depth.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Campaigns OS
|
|
8
8
|
|
|
9
|
+
## Installed toolkit commands
|
|
10
|
+
|
|
11
|
+
Run from the campaign folder with an exact project-local devDependency and
|
|
12
|
+
committed lockfile. Orient on reviewed source before installation; check release
|
|
13
|
+
provenance or pin the full reviewed Git SHA. Preflight with `npx campaigns-os
|
|
14
|
+
tooling status --platform <claude|codex>` and refresh bundled skills for the same
|
|
15
|
+
profile. Use the invocation printed by status and `next` to avoid PATH shadowing.
|
|
16
|
+
|
|
17
|
+
In the instructions below, bare `campaigns-os …` means `npx campaigns-os …`
|
|
18
|
+
from that campaign folder. Global-only users substitute the global copy's printed invocation for
|
|
19
|
+
each `npx campaigns-os` example; toolkit contributors translate to `npm run campaigns-os -- …` in
|
|
20
|
+
the toolkit checkout. Browser installation is `npx campaigns-os qa
|
|
21
|
+
install-browser`, not a campaign npm script. `tooling diagnose --packet <p>
|
|
22
|
+
--json` provides a redacted support export without changing retained evidence.
|
|
23
|
+
|
|
24
|
+
|
|
9
25
|
Use this skill to orient a campaign build, run preflight, decide the next stage, and keep the lifecycle honest.
|
|
10
26
|
|
|
11
27
|
## Public Lifecycle Boundary
|
|
@@ -32,7 +48,7 @@ Workflow:
|
|
|
32
48
|
7. If doctor's `next` block says `doctor-blocked` or `prepare-build` (it names the same stage `campaigns-os next` would), stop and resolve the named blockers.
|
|
33
49
|
8. If doctor returns `build`, hand off with `campaigns-os next build --packet <packet>` and follow `next-campaigns-build`'s recommended **build → independent review → repair → verification** loop.
|
|
34
50
|
9. After build, require polish and a preview deploy before QA. During Polish,
|
|
35
|
-
install the package-owned browser once with `
|
|
51
|
+
install the package-owned browser once with `npx campaigns-os qa install-browser`,
|
|
36
52
|
serve the current build, and run `campaigns-os polish capture --packet <p> --base-url <served-build-url>` before recording a terminal Polish status.
|
|
37
53
|
The package-owned producer attaches `visual_review.page_load`; never
|
|
38
54
|
hand-author it. Nonwaivable incomplete evidence blocks. A complete hidden
|
|
@@ -41,7 +57,7 @@ Workflow:
|
|
|
41
57
|
Doctor/next report `ready_with_waivers`; QA
|
|
42
58
|
retains each attributed exception as `ready_with_exceptions`, and one
|
|
43
59
|
exception never suppresses another blocker.
|
|
44
|
-
10. Run the package-owned proof path in sequence: ensure `
|
|
60
|
+
10. Run the package-owned proof path in sequence: ensure `npx campaigns-os qa install-browser` has completed, run `campaigns-os qa resolve --packet <packet>`, then `campaigns-os qa run --packet <packet> --base-url <url> --browser --test-order common`.
|
|
45
61
|
11. Treat typed-card proof coverage as the control. Global test cards bypass the gateway and create no transactions, so no permission/approval is needed. `common` runs checkout, first-offer accept and decline, and a deduplicated shortest real receipt path when that adds coverage (at most four orders). `full` walks every actual terminal path in the selected checkout topology; cycles, missing routes, and reachable nonterminals block exhaustive proof before browser launch. The accidental-flood cap remains `6`, and an overflow names the exact explicit `--max-test-orders` raise. Localhost on any port is a Campaigns App Development domain for SDK QA with analytics suppressed; non-localhost preview/production origins still need SDK origin allowlist confirmation.
|
|
46
62
|
12. Discuss launch only from recorded build, polish, deploy, browser QA, and test-order evidence, or from explicit blockers.
|
|
47
63
|
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: next-campaigns-os-setup
|
|
3
|
-
version: 2.0.
|
|
3
|
+
version: 2.0.1
|
|
4
4
|
description: Bootstrap or prepare a target page-kit campaign repo from a doctor-cleared Campaigns OS Build Packet before full build wiring. Formerly installed as next-campaigns-setup; renamed 2026-08 to stop colliding with the published NextCommerceCo/skills scaffolder of that name.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Next Campaigns OS Setup
|
|
8
8
|
|
|
9
|
+
## Installed toolkit commands
|
|
10
|
+
|
|
11
|
+
Run from the campaign folder with an exact project-local devDependency and
|
|
12
|
+
committed lockfile. Orient on reviewed source before installation; check release
|
|
13
|
+
provenance or pin the full reviewed Git SHA. Preflight with `npx campaigns-os
|
|
14
|
+
tooling status --platform <claude|codex>` and refresh bundled skills for the same
|
|
15
|
+
profile. Use the invocation printed by status and `next` to avoid PATH shadowing.
|
|
16
|
+
|
|
17
|
+
In the instructions below, bare `campaigns-os …` means `npx campaigns-os …`
|
|
18
|
+
from that campaign folder. Global-only users substitute the global copy's printed invocation for
|
|
19
|
+
each `npx campaigns-os` example; toolkit contributors translate to `npm run campaigns-os -- …` in
|
|
20
|
+
the toolkit checkout. Browser installation is `npx campaigns-os qa
|
|
21
|
+
install-browser`, not a campaign npm script. `tooling diagnose --packet <p>
|
|
22
|
+
--json` provides a redacted support export without changing retained evidence.
|
|
23
|
+
|
|
24
|
+
|
|
9
25
|
Use this skill when the Build Packet doctor says setup is required before assembly.
|
|
10
26
|
|
|
11
27
|
Responsibilities:
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: next-campaigns-polish
|
|
3
|
-
version: 1.1.
|
|
3
|
+
version: 1.1.2
|
|
4
4
|
description: Run the visual/runtime polish pass after build and before QA for a Campaigns OS campaign.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Next Campaigns Polish
|
|
8
8
|
|
|
9
|
+
## Installed toolkit commands
|
|
10
|
+
|
|
11
|
+
Run from the campaign folder with an exact project-local devDependency and
|
|
12
|
+
committed lockfile. Orient on reviewed source before installation; check release
|
|
13
|
+
provenance or pin the full reviewed Git SHA. Preflight with `npx campaigns-os
|
|
14
|
+
tooling status --platform <claude|codex>` and refresh bundled skills for the same
|
|
15
|
+
profile. Use the invocation printed by status and `next` to avoid PATH shadowing.
|
|
16
|
+
|
|
17
|
+
In the instructions below, bare `campaigns-os …` means `npx campaigns-os …`
|
|
18
|
+
from that campaign folder. Global-only users substitute the global copy's printed invocation for
|
|
19
|
+
each `npx campaigns-os` example; toolkit contributors translate to `npm run campaigns-os -- …` in
|
|
20
|
+
the toolkit checkout. Browser installation is `npx campaigns-os qa
|
|
21
|
+
install-browser`, not a campaign npm script. `tooling diagnose --packet <p>
|
|
22
|
+
--json` provides a redacted support export without changing retained evidence.
|
|
23
|
+
|
|
24
|
+
|
|
9
25
|
Use this after build has produced a runnable page-kit campaign.
|
|
10
26
|
|
|
11
27
|
Theme gate: `campaigns-os next polish` blocks when theme inspect found a
|
|
@@ -33,7 +49,7 @@ Responsibilities:
|
|
|
33
49
|
- For exit-intent pops and promo-code inputs, polish the wrapper/copy states without breaking SDK coupon/voucher apply hooks or `cart.hasCoupon("CODE")` conditional labels.
|
|
34
50
|
- If `report.theme` or `context.theme` exists, verify brand-theme load order after `next-core.css`, source-token parity for primary color/CTA/surface/text/font/radius when present, and SDK safety. When the brand layer is missing, stale, low-confidence, or unsafe to apply, record the first repair-loop defect or an explicit skipped reason.
|
|
35
51
|
- Before recording a terminal Polish status, install the package-owned browser
|
|
36
|
-
once with `
|
|
52
|
+
once with `npx campaigns-os qa install-browser`, serve the current build, and run
|
|
37
53
|
`campaigns-os polish capture --packet <packet> --base-url <served-build-url>`.
|
|
38
54
|
The package captures every mapped route at fixed desktop/mobile viewports and
|
|
39
55
|
attaches `stages.polish.evidence.visual_review.page_load`. Never hand-author,
|
|
@@ -1,26 +1,42 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: next-campaigns-qa
|
|
3
|
-
version: 1.3.
|
|
3
|
+
version: 1.3.2
|
|
4
4
|
description: Run spec-aware QA from a Campaign Map ID and tested campaign URL after build, polish, and deploy/local evidence exist, including Playwright typed-card test-order proof.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Next Campaigns QA
|
|
8
8
|
|
|
9
|
+
## Installed toolkit commands
|
|
10
|
+
|
|
11
|
+
Run from the campaign folder with an exact project-local devDependency and
|
|
12
|
+
committed lockfile. Orient on reviewed source before installation; check release
|
|
13
|
+
provenance or pin the full reviewed Git SHA. Preflight with `npx campaigns-os
|
|
14
|
+
tooling status --platform <claude|codex>` and refresh bundled skills for the same
|
|
15
|
+
profile. Use the invocation printed by status and `next` to avoid PATH shadowing.
|
|
16
|
+
|
|
17
|
+
In the instructions below, bare `campaigns-os …` means `npx campaigns-os …`
|
|
18
|
+
from that campaign folder. Global-only users substitute the global copy's printed invocation for
|
|
19
|
+
each `npx campaigns-os` example; toolkit contributors translate to `npm run campaigns-os -- …` in
|
|
20
|
+
the toolkit checkout. Browser installation is `npx campaigns-os qa
|
|
21
|
+
install-browser`, not a campaign npm script. `tooling diagnose --packet <p>
|
|
22
|
+
--json` provides a redacted support export without changing retained evidence.
|
|
23
|
+
|
|
24
|
+
|
|
9
25
|
Use this after the campaign has a preview or production URL and the assembly report records build and polish status. The public v0 runner is Node/npm-based, with an owned Playwright browser pass:
|
|
10
26
|
|
|
11
27
|
```bash
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
28
|
+
npx campaigns-os qa install-browser
|
|
29
|
+
npx campaigns-os qa resolve --packet campaign-runtime.build.json
|
|
30
|
+
npx campaigns-os qa run --packet campaign-runtime.build.json --base-url <preview-url>
|
|
15
31
|
# Fixture-driven migration parity proof. Publishes to the QA portal by default.
|
|
16
|
-
|
|
32
|
+
npx campaigns-os qa parity --fixture <parity-fixture.json> --scenario <scenario-id> --base-url <preview-url>
|
|
17
33
|
# Browser QA + typed-card proof. Publishes to the QA portal by default and prints the portal link.
|
|
18
|
-
|
|
34
|
+
npx campaigns-os qa run --packet campaign-runtime.build.json --base-url <preview-url> --browser --test-order common
|
|
19
35
|
# Offline / dev / CI only: keep the verdict local
|
|
20
|
-
|
|
36
|
+
npx campaigns-os qa run --packet campaign-runtime.build.json --base-url <preview-url> --browser --test-order common --no-post-verdict
|
|
21
37
|
```
|
|
22
38
|
|
|
23
|
-
`
|
|
39
|
+
`npx campaigns-os qa install-browser` is part of the standard QA sequence. Run it once
|
|
24
40
|
after install/update before using `--browser` or `--test-order`; do not skip it
|
|
25
41
|
unless the local Playwright browser binary is already installed.
|
|
26
42
|
|
package/skills.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
{
|
|
16
16
|
"id": "next-campaigns-os",
|
|
17
17
|
"name": "Campaigns OS Lifecycle",
|
|
18
|
-
"version": "1.0.
|
|
18
|
+
"version": "1.0.17",
|
|
19
19
|
"path": "skills/next-campaigns-os/SKILL.md",
|
|
20
20
|
"domain": "campaigns",
|
|
21
21
|
"description": "Coordinate Campaigns OS lifecycle workflows from CampaignSpec, Build Packet, starter-template contracts, stage reports, deploy evidence, and QA proof depth."
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
{
|
|
24
24
|
"id": "next-campaigns-os-setup",
|
|
25
25
|
"name": "Campaigns OS Setup",
|
|
26
|
-
"version": "2.0.
|
|
26
|
+
"version": "2.0.1",
|
|
27
27
|
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
28
28
|
"domain": "campaigns",
|
|
29
29
|
"description": "Bootstrap or prepare a target page-kit campaign repo from a doctor-cleared Campaigns OS Build Packet before full build wiring. Formerly next-campaigns-setup; renamed to release that name to the published NextCommerceCo/skills scaffolder."
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
{
|
|
32
32
|
"id": "next-campaigns-build",
|
|
33
33
|
"name": "Campaign Build",
|
|
34
|
-
"version": "1.0.
|
|
34
|
+
"version": "1.0.3",
|
|
35
35
|
"path": "skills/next-campaigns-build/SKILL.md",
|
|
36
36
|
"domain": "campaigns",
|
|
37
37
|
"description": "Assemble a NEXT campaign from a doctor-cleared Build Packet, CampaignSpec/API values, prepared HTML/assets, page-kit, and starter-template contracts."
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
{
|
|
40
40
|
"id": "next-campaigns-polish",
|
|
41
41
|
"name": "Campaign Polish",
|
|
42
|
-
"version": "1.1.
|
|
42
|
+
"version": "1.1.2",
|
|
43
43
|
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
44
44
|
"domain": "campaigns",
|
|
45
45
|
"description": "Run the visual/runtime polish pass after build and before QA for a Campaigns OS campaign."
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
{
|
|
48
48
|
"id": "next-campaigns-qa",
|
|
49
49
|
"name": "Campaign QA",
|
|
50
|
-
"version": "1.3.
|
|
50
|
+
"version": "1.3.2",
|
|
51
51
|
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
52
52
|
"domain": "campaigns",
|
|
53
53
|
"description": "Run spec-aware QA from a Campaign Map ID and tested campaign URL after build, polish, and deploy/local evidence exist, including Playwright typed-card test-order proof."
|