@nextcommerce/campaigns-os 1.55.0 → 1.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/CONTEXT.md +11 -0
  3. package/campaign-spec/README.md +15 -1
  4. package/campaign-spec/dist/checkout-flow.d.ts +90 -0
  5. package/campaign-spec/dist/checkout-flow.js +229 -0
  6. package/campaign-spec/dist/index.d.ts +1 -0
  7. package/campaign-spec/dist/index.js +6 -1
  8. package/campaign-spec/dist/normalize.d.ts +3 -2
  9. package/campaign-spec/dist/normalize.js +7 -5
  10. package/campaign-spec/dist/routing.d.ts +6 -3
  11. package/campaign-spec/dist/routing.js +6 -3
  12. package/campaign-spec/dist/rules/checkout-forward-target.d.ts +17 -0
  13. package/campaign-spec/dist/rules/checkout-forward-target.js +48 -0
  14. package/campaign-spec/dist/rules/checkout-step-reaches-checkout.d.ts +12 -0
  15. package/campaign-spec/dist/rules/checkout-step-reaches-checkout.js +37 -0
  16. package/campaign-spec/dist/rules/exit-intent-validation.js +2 -1
  17. package/campaign-spec/dist/rules/index.d.ts +4 -0
  18. package/campaign-spec/dist/rules/index.js +12 -0
  19. package/campaign-spec/dist/rules/one-checkout-per-path.d.ts +25 -0
  20. package/campaign-spec/dist/rules/one-checkout-per-path.js +84 -0
  21. package/campaign-spec/dist/rules/pre-payment-forward-target.d.ts +12 -0
  22. package/campaign-spec/dist/rules/pre-payment-forward-target.js +42 -0
  23. package/campaign-spec/dist/rules/promo-code-input-validation.js +2 -1
  24. package/campaign-spec/dist/rules/schema-version.d.ts +9 -4
  25. package/campaign-spec/dist/rules/schema-version.js +10 -5
  26. package/campaign-spec/dist/types.d.ts +20 -3
  27. package/campaign-spec/dist/types.js +3 -2
  28. package/compatibility.json +2 -2
  29. package/contracts/fixtures/runtime-recipe/accept/current.json +6 -1
  30. package/contracts/fixtures/runtime-recipe/accept/minimal.json +6 -1
  31. package/contracts/fixtures/runtime-recipe/dist-states.json +1 -1
  32. package/contracts/fixtures/runtime-recipe/reject/advisory-enforcement.json +6 -1
  33. package/contracts/fixtures/runtime-recipe/reject/allowlist-without-hosts.json +6 -1
  34. package/contracts/fixtures/runtime-recipe/reject/committed-output-claim.json +6 -1
  35. package/contracts/fixtures/runtime-recipe/reject/engines-disagreement-warns.json +6 -1
  36. package/contracts/fixtures/runtime-recipe/reject/lifecycle-scripts-enabled.json +6 -1
  37. package/contracts/fixtures/runtime-recipe/reject/missing-required-field.json +1 -1
  38. package/contracts/fixtures/runtime-recipe/reject/unknown-kind.json +6 -1
  39. package/contracts/fixtures/runtime-recipe/reject/unknown-network-policy.json +6 -1
  40. package/contracts/fixtures/runtime-recipe/reject/unknown-output-check.json +6 -1
  41. package/contracts/fixtures/runtime-recipe/reject/unknown-revision.json +5 -0
  42. package/contracts/fixtures/runtime-recipe/reject/unknown-step-id.json +6 -1
  43. package/contracts/fixtures/runtime-recipe/reject/unperformable-check-skipped.json +6 -1
  44. package/contracts/fixtures/runtime-recipe/reject/unpinned-lockfile.json +6 -1
  45. package/contracts/release-ledger.json +705 -0
  46. package/contracts/runtime-recipe.campaigns-os-node-v1.json +6 -1
  47. package/contracts/supported-surface.json +8 -4
  48. package/docs/build-packet.md +52 -8
  49. package/docs/local-setup.md +1 -1
  50. package/docs/orientation-contract-reference.md +1 -1
  51. package/docs/qa-and-test-orders.md +78 -18
  52. package/docs/runtime-readiness.md +8 -3
  53. package/docs/skills-revision.md +10 -10
  54. package/docs/supported-surface.md +1 -1
  55. package/docs/versioning.md +4 -1
  56. package/package.json +2 -1
  57. package/schemas/campaign-runtime-build-context.v0.schema.json +3 -1
  58. package/schemas/campaign-runtime-build-packet.v0.schema.json +3 -1
  59. package/schemas/campaign-spec.v5.schema.json +586 -0
  60. package/skills/campaign-lifecycle-orientation/SKILL.md +10 -8
  61. package/skills/campaign-readback-classification/SKILL.md +3 -3
  62. package/skills/campaign-run-evidence/SKILL.md +3 -3
  63. package/skills/contribution-intake/SKILL.md +3 -3
  64. package/skills/next-campaigns-build/SKILL.md +6 -4
  65. package/skills/next-campaigns-os/SKILL.md +3 -3
  66. package/skills/next-campaigns-os-setup/SKILL.md +3 -3
  67. package/skills/next-campaigns-polish/SKILL.md +21 -6
  68. package/skills/next-campaigns-qa/SKILL.md +4 -3
  69. package/skills.json +10 -10
  70. package/src/adapter-decision-contract.mjs +1 -1
  71. package/src/build-brief.mjs +14 -5
  72. package/src/cli-helpers.mjs +129 -0
  73. package/src/cli.mjs +121 -53
  74. package/src/commercial-journey.mjs +25 -2
  75. package/src/design-source-package.mjs +1 -1
  76. package/src/design-source-publication.mjs +7 -7
  77. package/src/doctor/checks.mjs +196 -13
  78. package/src/doctor/inspect.mjs +4 -2
  79. package/src/doctor/next-step.mjs +31 -11
  80. package/src/doctor-sidecar.mjs +5 -3
  81. package/src/gate-actions.mjs +21 -1
  82. package/src/input-refresh.mjs +6 -6
  83. package/src/local-preview-policy.mjs +110 -12
  84. package/src/polish-node.mjs +3 -3
  85. package/src/qa-browser.mjs +226 -34
  86. package/src/qa-cart-entry.mjs +78 -14
  87. package/src/qa-node.mjs +35 -33
  88. package/src/qa-test-order-topology.mjs +118 -1
  89. package/src/qa-verdict-discovery.mjs +21 -4
  90. package/src/runtime-state-ignore.mjs +7 -5
  91. package/src/source-html-intake.mjs +46 -4
  92. package/src/stage-ledger.mjs +4 -2
  93. package/src/stage-record.mjs +3 -3
@@ -6971,6 +6971,711 @@
6971
6971
  }
6972
6972
  ],
6973
6973
  "entry_sha256": "cdd823b095d9a05eb39d751c20396d25303dcc00dc1a2c12baeb15ac580e6819"
6974
+ },
6975
+ {
6976
+ "id": "RL-0255",
6977
+ "sequence": 244,
6978
+ "date": "2026-10-08",
6979
+ "kind": "release",
6980
+ "surface_version": "1.56.0",
6981
+ "changelog_section": "1.56.0",
6982
+ "changelog_sha256": "57d6b92e7a715769dd83ee58c6c84c2deefcedda8d05c0acc019538acae6aa9c",
6983
+ "agent_impact": "CampaignSpec 5.0: checkout is the page that takes payment and checkout_step is a non-paying checkout form page; 4.2/4.3 specs are upgraded on read. Four new doctor errors check multi-step paths. Build Packet and Build Context Page Kit frontmatter may carry success_url and step_number. QA drives the Checkout on the tested path, walks checkout steps, and enters select pages through bundle cards and a checkout button.",
6984
+ "compatibility": "breaking",
6985
+ "migration": "Validate 5.0 specs with schemas/campaign-spec.v5.schema.json (4.2/4.3 keep the v4 schema). Accept success_url and step_number in page_kit.frontmatter. Find the payment page as the checkout on a path, not the first page typed checkout; fix any spec the four new rules reject.",
6986
+ "changes": [
6987
+ {
6988
+ "class": "documentation",
6989
+ "path": "CONTEXT.md",
6990
+ "surface_entry": "CONTEXT.md",
6991
+ "summary": "Add the Checkout (payment page) glossary entry: the page typed checkout takes payment, select and checkout_step lead into it, and consumers ask for the Checkout on a path."
6992
+ },
6993
+ {
6994
+ "class": "generated_runtime",
6995
+ "path": "campaign-spec/checkout-flow.ts",
6996
+ "surface_entry": null,
6997
+ "summary": "Add the v4 to v5 read-time upgrade (upgradeCampaignSpec) and the path helpers that find the Checkout on a path."
6998
+ },
6999
+ {
7000
+ "class": "generated_runtime",
7001
+ "path": "campaign-spec/index.ts",
7002
+ "surface_entry": null,
7003
+ "summary": "Export the checkout-flow helpers, page-type sets and upgradeCampaignSpec."
7004
+ },
7005
+ {
7006
+ "class": "generated_runtime",
7007
+ "path": "campaign-spec/normalize.ts",
7008
+ "surface_entry": null,
7009
+ "summary": "Upgrade a 4.2/4.3 spec to the v5 page vocabulary on read, returning a copy."
7010
+ },
7011
+ {
7012
+ "class": "generated_runtime",
7013
+ "path": "campaign-spec/routing.ts",
7014
+ "surface_entry": null,
7015
+ "summary": "Correct the payment-bearing note: split-checkout steps are checkout_step, and only the Checkout satisfies success_url."
7016
+ },
7017
+ {
7018
+ "class": "generated_runtime",
7019
+ "path": "campaign-spec/rules/checkout-forward-target.ts",
7020
+ "surface_entry": null,
7021
+ "summary": "Add CheckoutForwardTarget: a Checkout must forward to an upsell, downsell or thank-you page."
7022
+ },
7023
+ {
7024
+ "class": "generated_runtime",
7025
+ "path": "campaign-spec/rules/checkout-step-reaches-checkout.ts",
7026
+ "surface_entry": null,
7027
+ "summary": "Add CheckoutStepReachesCheckout: every checkout_step must lie on a path to a Checkout."
7028
+ },
7029
+ {
7030
+ "class": "generated_runtime",
7031
+ "path": "campaign-spec/rules/exit-intent-validation.ts",
7032
+ "surface_entry": null,
7033
+ "summary": "Accept exit intent on select and checkout_step pages as well as on a Checkout."
7034
+ },
7035
+ {
7036
+ "class": "generated_runtime",
7037
+ "path": "campaign-spec/rules/index.ts",
7038
+ "surface_entry": null,
7039
+ "summary": "Register the four multi-step checkout rules."
7040
+ },
7041
+ {
7042
+ "class": "generated_runtime",
7043
+ "path": "campaign-spec/rules/one-checkout-per-path.ts",
7044
+ "surface_entry": null,
7045
+ "summary": "Add OneCheckoutPerPath: every path from an entry page to an upsell or downsell passes exactly one Checkout."
7046
+ },
7047
+ {
7048
+ "class": "generated_runtime",
7049
+ "path": "campaign-spec/rules/pre-payment-forward-target.ts",
7050
+ "surface_entry": null,
7051
+ "summary": "Add PrePaymentForwardTarget: a select or checkout_step page must not forward straight to a post-payment page."
7052
+ },
7053
+ {
7054
+ "class": "generated_runtime",
7055
+ "path": "campaign-spec/rules/promo-code-input-validation.ts",
7056
+ "surface_entry": null,
7057
+ "summary": "Accept promo-code input on select and checkout_step pages as well as on a Checkout."
7058
+ },
7059
+ {
7060
+ "class": "generated_runtime",
7061
+ "path": "campaign-spec/rules/schema-version.ts",
7062
+ "surface_entry": null,
7063
+ "summary": "Support schema_version 5.0 beside 4.2 and 4.3."
7064
+ },
7065
+ {
7066
+ "class": "generated_runtime",
7067
+ "path": "campaign-spec/types.ts",
7068
+ "surface_entry": null,
7069
+ "summary": "Add the checkout_step page type and document checkout as the page that takes payment."
7070
+ },
7071
+ {
7072
+ "class": "compatibility_policy",
7073
+ "path": "compatibility.json",
7074
+ "surface_entry": "compatibility.json",
7075
+ "summary": "Name 1.56.0 and widen the CampaignSpec range to 4.2-5.0."
7076
+ },
7077
+ {
7078
+ "class": "named_surface",
7079
+ "path": "contracts/fixtures/runtime-recipe/accept/current.json",
7080
+ "surface_entry": "contracts/fixtures/runtime-recipe/accept/current.json",
7081
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7082
+ },
7083
+ {
7084
+ "class": "named_surface",
7085
+ "path": "contracts/fixtures/runtime-recipe/accept/minimal.json",
7086
+ "surface_entry": "contracts/fixtures/runtime-recipe/accept/minimal.json",
7087
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7088
+ },
7089
+ {
7090
+ "class": "named_surface",
7091
+ "path": "contracts/fixtures/runtime-recipe/dist-states.json",
7092
+ "surface_entry": "contracts/fixtures/runtime-recipe/dist-states.json",
7093
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7094
+ },
7095
+ {
7096
+ "class": "named_surface",
7097
+ "path": "contracts/fixtures/runtime-recipe/reject/advisory-enforcement.json",
7098
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/advisory-enforcement.json",
7099
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7100
+ },
7101
+ {
7102
+ "class": "named_surface",
7103
+ "path": "contracts/fixtures/runtime-recipe/reject/allowlist-without-hosts.json",
7104
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/allowlist-without-hosts.json",
7105
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7106
+ },
7107
+ {
7108
+ "class": "named_surface",
7109
+ "path": "contracts/fixtures/runtime-recipe/reject/committed-output-claim.json",
7110
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/committed-output-claim.json",
7111
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7112
+ },
7113
+ {
7114
+ "class": "named_surface",
7115
+ "path": "contracts/fixtures/runtime-recipe/reject/engines-disagreement-warns.json",
7116
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/engines-disagreement-warns.json",
7117
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7118
+ },
7119
+ {
7120
+ "class": "named_surface",
7121
+ "path": "contracts/fixtures/runtime-recipe/reject/lifecycle-scripts-enabled.json",
7122
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/lifecycle-scripts-enabled.json",
7123
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7124
+ },
7125
+ {
7126
+ "class": "named_surface",
7127
+ "path": "contracts/fixtures/runtime-recipe/reject/missing-required-field.json",
7128
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/missing-required-field.json",
7129
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7130
+ },
7131
+ {
7132
+ "class": "named_surface",
7133
+ "path": "contracts/fixtures/runtime-recipe/reject/unknown-kind.json",
7134
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/unknown-kind.json",
7135
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7136
+ },
7137
+ {
7138
+ "class": "named_surface",
7139
+ "path": "contracts/fixtures/runtime-recipe/reject/unknown-network-policy.json",
7140
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/unknown-network-policy.json",
7141
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7142
+ },
7143
+ {
7144
+ "class": "named_surface",
7145
+ "path": "contracts/fixtures/runtime-recipe/reject/unknown-output-check.json",
7146
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/unknown-output-check.json",
7147
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7148
+ },
7149
+ {
7150
+ "class": "named_surface",
7151
+ "path": "contracts/fixtures/runtime-recipe/reject/unknown-revision.json",
7152
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/unknown-revision.json",
7153
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7154
+ },
7155
+ {
7156
+ "class": "named_surface",
7157
+ "path": "contracts/fixtures/runtime-recipe/reject/unknown-step-id.json",
7158
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/unknown-step-id.json",
7159
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7160
+ },
7161
+ {
7162
+ "class": "named_surface",
7163
+ "path": "contracts/fixtures/runtime-recipe/reject/unperformable-check-skipped.json",
7164
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/unperformable-check-skipped.json",
7165
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7166
+ },
7167
+ {
7168
+ "class": "named_surface",
7169
+ "path": "contracts/fixtures/runtime-recipe/reject/unpinned-lockfile.json",
7170
+ "surface_entry": "contracts/fixtures/runtime-recipe/reject/unpinned-lockfile.json",
7171
+ "summary": "Regenerate the fixture at recipe revision 1.0.3."
7172
+ },
7173
+ {
7174
+ "class": "hashed_surface",
7175
+ "path": "contracts/runtime-recipe.campaigns-os-node-v1.json",
7176
+ "surface_entry": "contracts/runtime-recipe.campaigns-os-node-v1.json",
7177
+ "summary": "Enumerate checkout-flow.ts and the four new rule sources as inputs; advance recipe_revision to 1.0.3."
7178
+ },
7179
+ {
7180
+ "class": "compatibility_policy",
7181
+ "path": "contracts/supported-surface.json",
7182
+ "surface_entry": "contracts/supported-surface.json",
7183
+ "summary": "Advance surface_version to 1.56.0, add the v5 CampaignSpec schema as a hashed entry and package export, and record the new Build Packet, Build Context and runtime recipe hashes."
7184
+ },
7185
+ {
7186
+ "class": "named_surface",
7187
+ "path": "docs/build-packet.md",
7188
+ "surface_entry": "docs/build-packet.md",
7189
+ "summary": "Author local specs against the v5 schema and document the success_url and step_number Page Kit frontmatter keys and the checkout_step projection."
7190
+ },
7191
+ {
7192
+ "class": "named_surface",
7193
+ "path": "docs/local-setup.md",
7194
+ "surface_entry": "docs/local-setup.md",
7195
+ "summary": "Pin the documented toolkit install to 1.56.0."
7196
+ },
7197
+ {
7198
+ "class": "documentation",
7199
+ "path": "docs/orientation-contract-reference.md",
7200
+ "surface_entry": "docs/orientation-contract-reference.md",
7201
+ "summary": "Regenerate the reference at surface 1.56.0."
7202
+ },
7203
+ {
7204
+ "class": "named_surface",
7205
+ "path": "docs/qa-and-test-orders.md",
7206
+ "surface_entry": "docs/qa-and-test-orders.md",
7207
+ "summary": "Document multi-step test orders: the Checkout on the tested path, select-page entry through bundle cards and a checkout button, and the checkout_step_submitted rung."
7208
+ },
7209
+ {
7210
+ "class": "named_surface",
7211
+ "path": "docs/runtime-readiness.md",
7212
+ "surface_entry": "docs/runtime-readiness.md",
7213
+ "summary": "Regenerate at recipe revision 1.0.3 and surface 1.56.0."
7214
+ },
7215
+ {
7216
+ "class": "named_surface",
7217
+ "path": "docs/skills-revision.md",
7218
+ "surface_entry": "docs/skills-revision.md",
7219
+ "summary": "Refresh the bundle revision examples to 1.56.0+skills.1."
7220
+ },
7221
+ {
7222
+ "class": "compatibility_policy",
7223
+ "path": "docs/supported-surface.md",
7224
+ "surface_entry": "docs/supported-surface.md",
7225
+ "summary": "Mark 1.56.0 breaking: the v5 CampaignSpec schema, and success_url and step_number in the closed Page Kit frontmatter object of the Build Packet and Build Context."
7226
+ },
7227
+ {
7228
+ "class": "compatibility_policy",
7229
+ "path": "docs/versioning.md",
7230
+ "surface_entry": "docs/versioning.md",
7231
+ "summary": "State CampaignSpec 5.0 as current, with 4.2-4.3 still read and upgraded on read."
7232
+ },
7233
+ {
7234
+ "class": "generated_runtime",
7235
+ "path": "package-lock.json",
7236
+ "surface_entry": null,
7237
+ "summary": "Advance the package version to 1.56.0."
7238
+ },
7239
+ {
7240
+ "class": "package_export",
7241
+ "path": "package.json",
7242
+ "surface_entry": null,
7243
+ "summary": "Advance the package version to 1.56.0 and export schemas/campaign-spec.v5.schema.json."
7244
+ },
7245
+ {
7246
+ "class": "schema",
7247
+ "path": "schemas/campaign-runtime-build-context.v0.schema.json",
7248
+ "surface_entry": "schemas/campaign-runtime-build-context.v0.schema.json",
7249
+ "summary": "Allow success_url and step_number in page_kit.frontmatter."
7250
+ },
7251
+ {
7252
+ "class": "schema",
7253
+ "path": "schemas/campaign-runtime-build-packet.v0.schema.json",
7254
+ "surface_entry": "schemas/campaign-runtime-build-packet.v0.schema.json",
7255
+ "summary": "Allow success_url and step_number in source_html.pages[].page_kit.frontmatter."
7256
+ },
7257
+ {
7258
+ "class": "schema",
7259
+ "path": "schemas/campaign-spec.v5.schema.json",
7260
+ "surface_entry": "schemas/campaign-spec.v5.schema.json",
7261
+ "summary": "Add the CampaignSpec 5.0 schema: v4's shape with schema_version 5.0 and the checkout_step page type."
7262
+ },
7263
+ {
7264
+ "class": "skill",
7265
+ "path": "skills.json",
7266
+ "surface_entry": "skills.json",
7267
+ "summary": "Advance the bundle to 1.56.0+skills.1 and every bundled skill one patch."
7268
+ },
7269
+ {
7270
+ "class": "skill",
7271
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
7272
+ "surface_entry": null,
7273
+ "summary": "Name CampaignSpec 5.0 and the checkout_step page type; bump the skill one patch and state bundle 1.56.0+skills.1."
7274
+ },
7275
+ {
7276
+ "class": "skill",
7277
+ "path": "skills/campaign-readback-classification/SKILL.md",
7278
+ "surface_entry": null,
7279
+ "summary": "Bump the skill one patch and state bundle 1.56.0+skills.1."
7280
+ },
7281
+ {
7282
+ "class": "skill",
7283
+ "path": "skills/campaign-run-evidence/SKILL.md",
7284
+ "surface_entry": null,
7285
+ "summary": "Bump the skill one patch and state bundle 1.56.0+skills.1."
7286
+ },
7287
+ {
7288
+ "class": "skill",
7289
+ "path": "skills/contribution-intake/SKILL.md",
7290
+ "surface_entry": null,
7291
+ "summary": "Bump the skill one patch and state bundle 1.56.0+skills.1."
7292
+ },
7293
+ {
7294
+ "class": "skill",
7295
+ "path": "skills/next-campaigns-build/SKILL.md",
7296
+ "surface_entry": null,
7297
+ "summary": "Describe the select-page handoff, step-form attributes and success_url on pages that feed a Checkout; bump the skill one patch and state bundle 1.56.0+skills.1."
7298
+ },
7299
+ {
7300
+ "class": "skill",
7301
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
7302
+ "surface_entry": null,
7303
+ "summary": "Bump the skill one patch and state bundle 1.56.0+skills.1."
7304
+ },
7305
+ {
7306
+ "class": "skill",
7307
+ "path": "skills/next-campaigns-os/SKILL.md",
7308
+ "surface_entry": null,
7309
+ "summary": "Bump the skill one patch and state bundle 1.56.0+skills.1."
7310
+ },
7311
+ {
7312
+ "class": "skill",
7313
+ "path": "skills/next-campaigns-polish/SKILL.md",
7314
+ "surface_entry": null,
7315
+ "summary": "Bump the skill one patch and state bundle 1.56.0+skills.1."
7316
+ },
7317
+ {
7318
+ "class": "skill",
7319
+ "path": "skills/next-campaigns-qa/SKILL.md",
7320
+ "surface_entry": null,
7321
+ "summary": "Describe multi-step test orders on the Checkout of the tested path; bump the skill one patch and state bundle 1.56.0+skills.1."
7322
+ },
7323
+ {
7324
+ "class": "cli_surface",
7325
+ "path": "src/cli.mjs",
7326
+ "surface_entry": null,
7327
+ "summary": "Rewrite the build prompt's select-page handoff and step-form rules, and read order bumps from the Checkout's whole path for the bump QA command."
7328
+ },
7329
+ {
7330
+ "class": "cli_surface",
7331
+ "path": "src/doctor/checks.mjs",
7332
+ "surface_entry": "doctor",
7333
+ "summary": "Read spec pages in the v5 vocabulary and treat select and checkout_step pages as checkout-flow pages for payment-method residue, bump pricing, package refs and exit-pop governance."
7334
+ }
7335
+ ],
7336
+ "entry_sha256": "1e056ff9b882639e2a41e83a093c0b6782ad73f4b26d3b56a880b6ece242cc3b"
7337
+ },
7338
+ {
7339
+ "id": "RL-0256",
7340
+ "sequence": 245,
7341
+ "date": "2026-10-08",
7342
+ "kind": "release",
7343
+ "surface_version": null,
7344
+ "changelog_section": "1.56.0+agent.1",
7345
+ "changelog_sha256": "0036ff20d1b11d5a03950a9d4b7025cde2790346066ea021150b3b5223b0357b",
7346
+ "agent_impact": "Use campaigns-os --version or campaigns-os -v to read the installed package version without campaign runtime writes. Progress snapshots and remit records under .campaign-runtime/progress/ are ignored by Git in new and existing managed blocks.",
7347
+ "compatibility": "additive",
7348
+ "migration": "In an older target, run one of campaigns-os start, prepare-build, install-agent-context or run start to add the progress ignore rule. Snapshots already committed stay tracked until removed with git rm -r --cached .campaign-runtime/progress/.",
7349
+ "changes": [
7350
+ {
7351
+ "class": "named_surface",
7352
+ "path": "docs/build-packet.md",
7353
+ "surface_entry": "docs/build-packet.md",
7354
+ "summary": "List .campaign-runtime/progress/ among the ignored runtime paths and say an existing managed block gains the required entries."
7355
+ },
7356
+ {
7357
+ "class": "cli_surface",
7358
+ "path": "src/cli.mjs",
7359
+ "surface_entry": null,
7360
+ "summary": "Add global --version and -v flags that print the package version before invocation policy can read or write campaign state."
7361
+ }
7362
+ ],
7363
+ "entry_sha256": "71db6099ccea2fd9ca9d0368ac0287982a60e6bc18524d8e0aca759bf4a28e5f"
7364
+ },
7365
+ {
7366
+ "id": "RL-0257",
7367
+ "sequence": 246,
7368
+ "date": "2026-10-08",
7369
+ "kind": "release",
7370
+ "surface_version": null,
7371
+ "changelog_section": "1.56.0+agent.2",
7372
+ "changelog_sha256": "5ae05e852378438784c651aace551c3ec25285fcb7ce03e85409a96aa944a5b9",
7373
+ "agent_impact": "An all-template hosted preview distinct from production by origin or QA-resolved campaign route path can carry missing Polish and page-load evidence as warnings. With an unset, loopback or production-equivalent preview URL, use qa policy set --preview-url; with a valid preview, use browser and typed-card QA. The recorded preview satisfies deploy, and next reaches closeout after current-build QA. Production QA and hosted design-route capture failures remain blocked. Refresh bundled skills to 1.56.0+skills.2.",
7374
+ "compatibility": "additive",
7375
+ "migration": "Use campaigns-os qa policy set --packet <packet> --preview-url <url> if the hosted preview URL is unset, loopback or production-equivalent, then campaigns-os next qa --packet <packet> and campaigns-os qa run --packet <packet> --base-url <preview-url> --browser --test-order common. Run next after QA for closeout. Refresh bundled skills.",
7376
+ "changes": [
7377
+ {
7378
+ "class": "named_surface",
7379
+ "path": "docs/build-packet.md",
7380
+ "surface_entry": "docs/build-packet.md",
7381
+ "summary": "Document browser and typed-card hosted-preview QA, the preview-only deploy handoff and the local-only deploy recorder."
7382
+ },
7383
+ {
7384
+ "class": "named_surface",
7385
+ "path": "docs/qa-and-test-orders.md",
7386
+ "surface_entry": "docs/qa-and-test-orders.md",
7387
+ "summary": "Document the hosted preview URL condition, current-build QA command and closeout after the deploy handoff."
7388
+ },
7389
+ {
7390
+ "class": "skill",
7391
+ "path": "skills/next-campaigns-polish/SKILL.md",
7392
+ "surface_entry": null,
7393
+ "summary": "Name the full hosted preview condition, browser QA command and closeout for all-template campaigns."
7394
+ },
7395
+ {
7396
+ "class": "cli_surface",
7397
+ "path": "src/cli.mjs",
7398
+ "surface_entry": null,
7399
+ "summary": "Send the all-template hosted preview through browser QA to closeout without a hosted deploy record."
7400
+ },
7401
+ {
7402
+ "class": "cli_surface",
7403
+ "path": "src/doctor/next-step.mjs",
7404
+ "surface_entry": "doctor",
7405
+ "summary": "Treat the carried hosted preview as satisfying deploy and name preview policy setup when production is recorded."
7406
+ },
7407
+ {
7408
+ "class": "named_surface",
7409
+ "path": "docs/skills-revision.md",
7410
+ "surface_entry": "docs/skills-revision.md",
7411
+ "summary": "Show the current 1.56.0+skills.2 bundle identity in preflight examples."
7412
+ },
7413
+ {
7414
+ "class": "skill",
7415
+ "path": "skills.json",
7416
+ "surface_entry": null,
7417
+ "summary": "Advance the bundled skill identity to 1.56.0+skills.2 and match each skill version."
7418
+ },
7419
+ {
7420
+ "class": "skill",
7421
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
7422
+ "surface_entry": null,
7423
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7424
+ },
7425
+ {
7426
+ "class": "skill",
7427
+ "path": "skills/campaign-readback-classification/SKILL.md",
7428
+ "surface_entry": null,
7429
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7430
+ },
7431
+ {
7432
+ "class": "skill",
7433
+ "path": "skills/campaign-run-evidence/SKILL.md",
7434
+ "surface_entry": null,
7435
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7436
+ },
7437
+ {
7438
+ "class": "skill",
7439
+ "path": "skills/contribution-intake/SKILL.md",
7440
+ "surface_entry": null,
7441
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7442
+ },
7443
+ {
7444
+ "class": "skill",
7445
+ "path": "skills/next-campaigns-build/SKILL.md",
7446
+ "surface_entry": null,
7447
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7448
+ },
7449
+ {
7450
+ "class": "skill",
7451
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
7452
+ "surface_entry": null,
7453
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7454
+ },
7455
+ {
7456
+ "class": "skill",
7457
+ "path": "skills/next-campaigns-os/SKILL.md",
7458
+ "surface_entry": null,
7459
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7460
+ },
7461
+ {
7462
+ "class": "skill",
7463
+ "path": "skills/next-campaigns-qa/SKILL.md",
7464
+ "surface_entry": null,
7465
+ "summary": "Advance the skill version and stamp bundle 1.56.0+skills.2."
7466
+ }
7467
+ ],
7468
+ "entry_sha256": "24dbf5e7dc455f8f7bcdc444105ed43d0b353f2ffce5d89033a0fb03e54b02ea"
7469
+ },
7470
+ {
7471
+ "id": "RL-0258",
7472
+ "sequence": 247,
7473
+ "date": "2026-10-08",
7474
+ "kind": "release",
7475
+ "surface_version": null,
7476
+ "changelog_section": "1.56.0+agent.3",
7477
+ "changelog_sha256": "9eb8d0c67d414b8cea957cc5dbb83e3993564f822408c581538eccdfba575860",
7478
+ "agent_impact": "For an entry routed to the campaign root by any supported spelling, inspect doctor's unserved-root warning and use the serving Entry URL printed by qa resolve. Repair the root with a redirect or permalink: /<slug>/ before relying on the Map route.",
7479
+ "compatibility": "compatible",
7480
+ "migration": "none",
7481
+ "changes": [
7482
+ {
7483
+ "class": "cli_surface",
7484
+ "path": "src/doctor/checks.mjs",
7485
+ "surface_entry": "doctor",
7486
+ "summary": "Recognize all root-routed entry spellings, prefer the entry source permalink or page ID file route, and warn when a non-root route leaves the root unserved."
7487
+ },
7488
+ {
7489
+ "class": "named_surface",
7490
+ "path": "docs/build-packet.md",
7491
+ "surface_entry": "docs/build-packet.md",
7492
+ "summary": "Document all root entry spellings, the entry file-route fallback, and the concrete root permalink repair."
7493
+ },
7494
+ {
7495
+ "class": "named_surface",
7496
+ "path": "docs/qa-and-test-orders.md",
7497
+ "surface_entry": "docs/qa-and-test-orders.md",
7498
+ "summary": "Document all root entry spellings and when qa resolve prints a serving entry route."
7499
+ }
7500
+ ],
7501
+ "entry_sha256": "ad7106aff83139e4b650285eb8db79fb96ac672f6d3a898efef5d9df7ea30014"
7502
+ },
7503
+ {
7504
+ "id": "RL-0260",
7505
+ "sequence": 248,
7506
+ "date": "2026-10-08",
7507
+ "kind": "release",
7508
+ "surface_version": null,
7509
+ "changelog_section": "1.56.0+agent.5",
7510
+ "changelog_sha256": "c1d3429f82de8fe191d63f6a32fb21a05a10664b9a17357d00622de74926f521",
7511
+ "agent_impact": "Doctor follows CampaignSpec route targets and warns once per checkout path when a variant and quantity matrix does not fit the selected family's checkout surface. If any checkout path has steps, every warning ranks multi-step families first. The warning lists matching families in ranked order and says to choose with --template-family at intake; after stage evidence, changing the family requires destructive intake with --force.",
7512
+ "compatibility": "additive",
7513
+ "migration": "none",
7514
+ "changes": [
7515
+ {
7516
+ "class": "cli_surface",
7517
+ "path": "src/doctor/checks.mjs",
7518
+ "surface_entry": "doctor",
7519
+ "summary": "Warn once per CampaignSpec checkout path about a variant and quantity matrix that needs variant slots, rank matching families by campaign-wide step shape, and name the intake family decision and --force requirement after stage evidence."
7520
+ }
7521
+ ],
7522
+ "entry_sha256": "afef05c6ecc77f432e4c7393cee7e1e7233ebf58a5fc68e94b442b167f869552"
7523
+ },
7524
+ {
7525
+ "id": "RL-0259",
7526
+ "sequence": 249,
7527
+ "date": "2026-10-08",
7528
+ "kind": "release",
7529
+ "surface_version": null,
7530
+ "changelog_section": "1.56.0+agent.6",
7531
+ "changelog_sha256": "ba8ba08f8e62f4145c69e2d9fa3dc13b8bcaf060e3aca27de09eb229692479de",
7532
+ "agent_impact": "Resolve Build Packet input fields from the packet directory, output fields from the target repository, source page fields from the source root, Page Kit target_path from the Page Kit output directory, Design Source Package references in context and report from each artifact's directory, and normalized brief _meta.input_path from the brief directory. Resolve other committed sidecar paths and run retained commands from the target repository root. Keep outside inputs at their recorded relative locations.",
7533
+ "compatibility": "compatible",
7534
+ "migration": "none",
7535
+ "changes": [
7536
+ {
7537
+ "class": "named_surface",
7538
+ "path": "docs/build-packet.md",
7539
+ "surface_entry": "docs/build-packet.md",
7540
+ "summary": "Document each handoff path's reader base, ordinary relative outside inputs, and the working directory for retained commands."
7541
+ },
7542
+ {
7543
+ "class": "cli_surface",
7544
+ "path": "src/cli.mjs",
7545
+ "surface_entry": null,
7546
+ "summary": "Persist QA stage output paths relative to the target, pass the target root to doctor sidecar writes, and resolve report-linked QA verdicts from that root."
7547
+ },
7548
+ {
7549
+ "class": "cli_surface",
7550
+ "path": "src/doctor/inspect.mjs",
7551
+ "surface_entry": "doctor",
7552
+ "summary": "Record the doctor stage output path relative to the target repository."
7553
+ }
7554
+ ],
7555
+ "entry_sha256": "e7ae9649535a08f6ecde1bd8b6f9939b3c2fb328b1731dd8ee4702a56437d837"
7556
+ },
7557
+ {
7558
+ "id": "RL-0261",
7559
+ "sequence": 250,
7560
+ "date": "2026-10-08",
7561
+ "kind": "release",
7562
+ "surface_version": "1.57.0",
7563
+ "changelog_section": "1.57.0",
7564
+ "changelog_sha256": "709a7bf801ee49cb105fb989e1ac01fb0be4177d7c959752386a98651d1d5457",
7565
+ "agent_impact": "The 1.57.0 package publishes the untagged 1.56.0 CampaignSpec 5.0 release and its five same-surface follow-ups. Consumers gain checkout-step build and QA contracts, hosted-preview evidence carry-forward, entry-route resolution, variant-family warnings, and repository-relative committed paths; refresh the bundled skills to 1.57.0+skills.1.",
7566
+ "compatibility": "breaking",
7567
+ "migration": "From the last published 1.55.0, validate 5.0 specs with schemas/campaign-spec.v5.schema.json (4.2/4.3 keep the v4 schema), accept success_url and step_number in page_kit.frontmatter, find the payment Checkout on each path, and repair specs rejected by the four new rules. Update the pinned package and bundled skills together.",
7568
+ "changes": [
7569
+ {
7570
+ "class": "compatibility_policy",
7571
+ "path": "compatibility.json",
7572
+ "surface_entry": "compatibility.json",
7573
+ "summary": "Name 1.57.0 as the published package version."
7574
+ },
7575
+ {
7576
+ "class": "compatibility_policy",
7577
+ "path": "contracts/supported-surface.json",
7578
+ "surface_entry": "contracts/supported-surface.json",
7579
+ "summary": "Advance surface_version to 1.57.0 for the package release."
7580
+ },
7581
+ {
7582
+ "class": "named_surface",
7583
+ "path": "docs/local-setup.md",
7584
+ "surface_entry": "docs/local-setup.md",
7585
+ "summary": "Pin the documented toolkit install to 1.57.0."
7586
+ },
7587
+ {
7588
+ "class": "documentation",
7589
+ "path": "docs/orientation-contract-reference.md",
7590
+ "surface_entry": "docs/orientation-contract-reference.md",
7591
+ "summary": "Regenerate the orientation reference at surface 1.57.0."
7592
+ },
7593
+ {
7594
+ "class": "named_surface",
7595
+ "path": "docs/runtime-readiness.md",
7596
+ "surface_entry": "docs/runtime-readiness.md",
7597
+ "summary": "Regenerate runtime readiness at surface 1.57.0."
7598
+ },
7599
+ {
7600
+ "class": "named_surface",
7601
+ "path": "docs/skills-revision.md",
7602
+ "surface_entry": "docs/skills-revision.md",
7603
+ "summary": "Show the current 1.57.0+skills.1 bundle identity in preflight examples."
7604
+ },
7605
+ {
7606
+ "class": "generated_runtime",
7607
+ "path": "package-lock.json",
7608
+ "surface_entry": null,
7609
+ "summary": "Advance both package version stamps to 1.57.0."
7610
+ },
7611
+ {
7612
+ "class": "package_export",
7613
+ "path": "package.json",
7614
+ "surface_entry": null,
7615
+ "summary": "Advance the package version to 1.57.0."
7616
+ },
7617
+ {
7618
+ "class": "skill",
7619
+ "path": "skills.json",
7620
+ "surface_entry": "skills.json",
7621
+ "summary": "Advance the bundle to 1.57.0+skills.1 and each bundled skill by one patch."
7622
+ },
7623
+ {
7624
+ "class": "skill",
7625
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
7626
+ "surface_entry": null,
7627
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7628
+ },
7629
+ {
7630
+ "class": "skill",
7631
+ "path": "skills/campaign-readback-classification/SKILL.md",
7632
+ "surface_entry": null,
7633
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7634
+ },
7635
+ {
7636
+ "class": "skill",
7637
+ "path": "skills/campaign-run-evidence/SKILL.md",
7638
+ "surface_entry": null,
7639
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7640
+ },
7641
+ {
7642
+ "class": "skill",
7643
+ "path": "skills/contribution-intake/SKILL.md",
7644
+ "surface_entry": null,
7645
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7646
+ },
7647
+ {
7648
+ "class": "skill",
7649
+ "path": "skills/next-campaigns-build/SKILL.md",
7650
+ "surface_entry": null,
7651
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7652
+ },
7653
+ {
7654
+ "class": "skill",
7655
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
7656
+ "surface_entry": null,
7657
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7658
+ },
7659
+ {
7660
+ "class": "skill",
7661
+ "path": "skills/next-campaigns-os/SKILL.md",
7662
+ "surface_entry": null,
7663
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7664
+ },
7665
+ {
7666
+ "class": "skill",
7667
+ "path": "skills/next-campaigns-polish/SKILL.md",
7668
+ "surface_entry": null,
7669
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7670
+ },
7671
+ {
7672
+ "class": "skill",
7673
+ "path": "skills/next-campaigns-qa/SKILL.md",
7674
+ "surface_entry": null,
7675
+ "summary": "Bump the skill one patch and stamp bundle 1.57.0+skills.1."
7676
+ }
7677
+ ],
7678
+ "entry_sha256": "00e7dc8146ae7c1e860f2496ade44d5f4e98f3f25120d1a313021e5ff5d28e7c"
6974
7679
  }
6975
7680
  ]
6976
7681
  }