@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.
Files changed (119) hide show
  1. package/AGENTS.md +42 -13
  2. package/CHANGELOG.md +117 -0
  3. package/README.md +48 -21
  4. package/contracts/agent-relevant-change-policy.v1.json +1 -0
  5. package/contracts/campaign-cart-sdk-support-policy.v0.json +2 -2
  6. package/contracts/commerce-surface-catalog.json +31 -29
  7. package/contracts/fixtures/progress/observation.v0.json +89 -0
  8. package/contracts/release-ledger.json +425 -0
  9. package/contracts/supported-surface.json +20 -5
  10. package/contracts/template-brand-contract.shared-commerce.v0.json +1 -1
  11. package/demo/apollo-v0/NOTICE.txt +51 -0
  12. package/demo/apollo-v0/assets/css/demo.css +2 -0
  13. package/demo/apollo-v0/assets/css/landing/tokens.css +35 -0
  14. package/demo/apollo-v0/assets/css/next-core.css +16124 -0
  15. package/demo/apollo-v0/assets/images/1x1_1.svg +19 -0
  16. package/demo/apollo-v0/assets/images/1x1_2.svg +19 -0
  17. package/demo/apollo-v0/assets/images/affirm-logo.svg +24 -0
  18. package/demo/apollo-v0/assets/images/apple-pay-logo.svg +4 -0
  19. package/demo/apollo-v0/assets/images/bancontact-logo.svg +1 -0
  20. package/demo/apollo-v0/assets/images/cc-visa.svg +28 -0
  21. package/demo/apollo-v0/assets/images/cc_amex.svg +20 -0
  22. package/demo/apollo-v0/assets/images/cc_discover.svg +21 -0
  23. package/demo/apollo-v0/assets/images/cc_master.svg +22 -0
  24. package/demo/apollo-v0/assets/images/credit-card-flags.svg +38 -0
  25. package/demo/apollo-v0/assets/images/demo-inline-40788e52a7c75b78.svg +1 -0
  26. package/demo/apollo-v0/assets/images/demo-inline-686e73c8840a0f0a.svg +1 -0
  27. package/demo/apollo-v0/assets/images/google-pay-logo.svg +7 -0
  28. package/demo/apollo-v0/assets/images/guarantee-badge.png +0 -0
  29. package/demo/apollo-v0/assets/images/icon-dollar.svg +5 -0
  30. package/demo/apollo-v0/assets/images/icon-guarantee.svg +5 -0
  31. package/demo/apollo-v0/assets/images/icon-shipping.svg +5 -0
  32. package/demo/apollo-v0/assets/images/icons8-lock-24_1icons8-lock-24.png +0 -0
  33. package/demo/apollo-v0/assets/images/ideal-logo.svg +30 -0
  34. package/demo/apollo-v0/assets/images/klarna-logo.svg +9 -0
  35. package/demo/apollo-v0/assets/images/landing/_shared/16x9.svg +19 -0
  36. package/demo/apollo-v0/assets/images/landing/_shared/1x1_1.svg +19 -0
  37. package/demo/apollo-v0/assets/images/landing/_shared/4x3.svg +19 -0
  38. package/demo/apollo-v0/assets/images/landing/_shared/arrow-right.svg +6 -0
  39. package/demo/apollo-v0/assets/images/landing/_shared/cta-guarantee-icon.png +0 -0
  40. package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-1.svg +8 -0
  41. package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-2.svg +10 -0
  42. package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-3.svg +13 -0
  43. package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-icon-4.svg +11 -0
  44. package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-quote.svg +6 -0
  45. package/demo/apollo-v0/assets/images/landing/benefits-2/benefits-2-verified.svg +10 -0
  46. package/demo/apollo-v0/assets/images/landing/bottomcta-1/check-bullet.svg +5 -0
  47. package/demo/apollo-v0/assets/images/landing/faq-1/faq-chevron.svg +6 -0
  48. package/demo/apollo-v0/assets/images/landing/footer-1/footer-logo.png +0 -0
  49. package/demo/apollo-v0/assets/images/landing/guarantee-1/guarantee-1-badge.svg +8 -0
  50. package/demo/apollo-v0/assets/images/landing/hero-1/icon-check.svg +5 -0
  51. package/demo/apollo-v0/assets/images/landing/hero-1/icon-star.svg +6 -0
  52. package/demo/apollo-v0/assets/images/landing/hero-1/icon-verified.svg +6 -0
  53. package/demo/apollo-v0/assets/images/landing/icons-5/icon-batteries.svg +7 -0
  54. package/demo/apollo-v0/assets/images/landing/icons-5/icon-cuff-checking.svg +6 -0
  55. package/demo/apollo-v0/assets/images/landing/icons-5/icon-dual-user.svg +5 -0
  56. package/demo/apollo-v0/assets/images/landing/icons-5/icon-fda-cleared.svg +5 -0
  57. package/demo/apollo-v0/assets/images/landing/icons-5/icon-heartbeat.svg +17 -0
  58. package/demo/apollo-v0/assets/images/landing/icons-5/icon-lcd-display.svg +10 -0
  59. package/demo/apollo-v0/assets/images/landing/icons-5/icon-movement-error.svg +7 -0
  60. package/demo/apollo-v0/assets/images/landing/icons-5/icon-portable.png +0 -0
  61. package/demo/apollo-v0/assets/images/landing/icons-5/icon-reading-memory.svg +6 -0
  62. package/demo/apollo-v0/assets/images/landing/icons-5/icon-wrist-comfort.svg +5 -0
  63. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-1.jpg +0 -0
  64. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-2.jpg +0 -0
  65. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-3.jpg +0 -0
  66. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-card-4.jpg +0 -0
  67. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-1.png +0 -0
  68. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-2.png +0 -0
  69. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-3.png +0 -0
  70. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-4.png +0 -0
  71. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-5.png +0 -0
  72. package/demo/apollo-v0/assets/images/landing/ingredients-3/ingredients-3-promise-6.png +0 -0
  73. package/demo/apollo-v0/assets/images/landing/nav-1/flag-us.png +0 -0
  74. package/demo/apollo-v0/assets/images/landing/reviews-3/star-card.svg +3 -0
  75. package/demo/apollo-v0/assets/images/landing/reviews-3/star-lg.svg +3 -0
  76. package/demo/apollo-v0/assets/images/landing/reviews-3/star-sm.svg +3 -0
  77. package/demo/apollo-v0/assets/images/landing/reviews-3/verified.svg +10 -0
  78. package/demo/apollo-v0/assets/images/landing/testimonials-2/testimonials-2-reactions.svg +9 -0
  79. package/demo/apollo-v0/assets/images/landing/testimonials-2/testimonials-2-stars.svg +6 -0
  80. package/demo/apollo-v0/assets/images/link-logo.svg +1 -0
  81. package/demo/apollo-v0/assets/images/next-dark.svg +8 -0
  82. package/demo/apollo-v0/assets/images/paypal-logo.svg +5 -0
  83. package/demo/apollo-v0/assets/images/paypal-txt.svg +8 -0
  84. package/demo/apollo-v0/assets/images/paypal.svg +22 -0
  85. package/demo/apollo-v0/assets/images/sepa-logo.svg +275 -0
  86. package/demo/apollo-v0/assets/images/twint-logo.svg +1 -0
  87. package/demo/apollo-v0/assets/images/united-states-flag-icon.webp +0 -0
  88. package/demo/apollo-v0/assets/images/upsell-payment-logos.svg +38 -0
  89. package/demo/apollo-v0/assets/images/usps.png +0 -0
  90. package/demo/apollo-v0/checkout/index.html +1370 -0
  91. package/demo/apollo-v0/landing/index.html +1836 -0
  92. package/demo/apollo-v0/provenance.json +342 -0
  93. package/demo/apollo-v0/receipt/index.html +292 -0
  94. package/demo/apollo-v0/upsell-bundle-stepper/index.html +401 -0
  95. package/docs/activation-and-evidence.md +37 -0
  96. package/docs/build-packet.md +107 -0
  97. package/docs/demo-preview.md +63 -0
  98. package/docs/diagnostics.md +55 -0
  99. package/docs/orientation-contract-reference.md +2 -1
  100. package/docs/progress-snapshots.md +142 -0
  101. package/docs/runtime-readiness.md +1 -1
  102. package/docs/supported-surface.md +13 -1
  103. package/package.json +13 -3
  104. package/schemas/campaign-runtime-build-context.v0.schema.json +42 -0
  105. package/schemas/campaigns-os-progress-snapshot.v0.schema.json +370 -0
  106. package/skills/next-campaigns-build/SKILL.md +17 -1
  107. package/skills/next-campaigns-os/SKILL.md +19 -3
  108. package/skills/next-campaigns-os-setup/SKILL.md +17 -1
  109. package/skills/next-campaigns-polish/SKILL.md +18 -2
  110. package/skills/next-campaigns-qa/SKILL.md +24 -8
  111. package/skills.json +5 -5
  112. package/src/cli.mjs +74 -4
  113. package/src/consent.mjs +2 -2
  114. package/src/demo-artifact.mjs +97 -0
  115. package/src/demo.mjs +85 -0
  116. package/src/diagnostic.mjs +101 -0
  117. package/src/install-mode.mjs +13 -1
  118. package/src/progress-node.mjs +177 -0
  119. 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.2
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.16
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 `npm run qa:install-browser`,
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 `npm run 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`.
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.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.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 `npm run qa:install-browser`, serve the current build, and run
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.1
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
- npm run qa:install-browser
13
- npm run campaigns-os -- qa resolve --packet campaign-runtime.build.json
14
- npm run campaigns-os -- qa run --packet campaign-runtime.build.json --base-url <preview-url>
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
- npm run campaigns-os -- qa parity --fixture <parity-fixture.json> --scenario <scenario-id> --base-url <preview-url>
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
- npm run campaigns-os -- qa run --packet campaign-runtime.build.json --base-url <preview-url> --browser --test-order common
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
- npm run campaigns-os -- qa run --packet campaign-runtime.build.json --base-url <preview-url> --browser --test-order common --no-post-verdict
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
- `npm run qa:install-browser` is part of the standard QA sequence. Run it once
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.16",
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.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.2",
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.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.1",
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."