@nextcommerce/campaigns-os 1.50.0 → 1.53.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 (87) hide show
  1. package/CHANGELOG.md +474 -0
  2. package/agents/claude/CLAUDE.md +4 -2
  3. package/agents/codex/AGENTS.md +3 -1
  4. package/agents/copilot/copilot-instructions.md +3 -1
  5. package/agents/cursor/campaigns-os.mdc +3 -1
  6. package/campaign-spec/dist/rules/campaign-metadata.d.ts +5 -1
  7. package/campaign-spec/dist/rules/campaign-metadata.js +9 -2
  8. package/campaign-spec/dist/rules/design-source-shape.js +13 -3
  9. package/campaign-spec/dist/rules/sdk-version.js +2 -1
  10. package/compatibility.json +1 -1
  11. package/contracts/commerce-surface-catalog.json +26 -46
  12. package/contracts/effects.v1.json +282 -14
  13. package/contracts/release-ledger.json +1233 -0
  14. package/contracts/supported-surface.json +2 -2
  15. package/contracts/template-brand-contract.shared-commerce.v0.json +2 -2
  16. package/contracts/template-slot-manifest.shared-content-core.v0.json +24 -0
  17. package/docs/brand-theme-bridge.md +2 -0
  18. package/docs/build-packet.md +148 -23
  19. package/docs/campaign-build-brief.md +57 -2
  20. package/docs/effects.md +14 -0
  21. package/docs/local-setup.md +1 -1
  22. package/docs/orientation-contract-reference.md +1 -1
  23. package/docs/polish-evidence.md +12 -0
  24. package/docs/progress-snapshots.md +2 -4
  25. package/docs/qa-and-test-orders.md +47 -4
  26. package/docs/readback.md +19 -2
  27. package/docs/runtime-readiness.md +1 -1
  28. package/docs/sdk-storage-compatibility.md +1 -1
  29. package/docs/skills-revision.md +10 -10
  30. package/package.json +1 -1
  31. package/skills/campaign-lifecycle-orientation/SKILL.md +3 -3
  32. package/skills/campaign-readback-classification/SKILL.md +3 -3
  33. package/skills/campaign-run-evidence/SKILL.md +3 -3
  34. package/skills/contribution-intake/SKILL.md +3 -3
  35. package/skills/next-campaigns-build/SKILL.md +5 -3
  36. package/skills/next-campaigns-os/SKILL.md +11 -20
  37. package/skills/next-campaigns-os/references/session-intake.md +17 -9
  38. package/skills/next-campaigns-os-setup/SKILL.md +4 -3
  39. package/skills/next-campaigns-polish/SKILL.md +7 -5
  40. package/skills/next-campaigns-qa/SKILL.md +8 -5
  41. package/skills.json +10 -10
  42. package/src/adapter-decision-contract.mjs +1 -1
  43. package/src/brand-theme.mjs +33 -20
  44. package/src/brief-summary.mjs +275 -0
  45. package/src/build-brief.mjs +229 -30
  46. package/src/built-site-scope.mjs +39 -6
  47. package/src/built-smoke-qc.mjs +1117 -0
  48. package/src/campaign-identity.mjs +36 -2
  49. package/src/cart-placeholders.mjs +730 -0
  50. package/src/cli.mjs +467 -143
  51. package/src/commercial-journey.mjs +65 -4
  52. package/src/commercial-parity.mjs +6 -1
  53. package/src/contrast.mjs +649 -0
  54. package/src/design-source-publication.mjs +110 -3
  55. package/src/doctor/checks.mjs +415 -33
  56. package/src/doctor/inspect.mjs +53 -2
  57. package/src/doctor/next-step.mjs +16 -7
  58. package/src/input-currency.mjs +394 -0
  59. package/src/input-refresh.mjs +708 -0
  60. package/src/invocation.mjs +5 -2
  61. package/src/local-preview-policy.mjs +1 -1
  62. package/src/local-proof.mjs +4 -1
  63. package/src/polish-browser.mjs +660 -141
  64. package/src/polish-capture.mjs +1 -1
  65. package/src/polish-deadline.mjs +7 -0
  66. package/src/polish-media-weight.mjs +492 -0
  67. package/src/polish-node.mjs +400 -28
  68. package/src/polish-readability.mjs +828 -0
  69. package/src/progress-node.mjs +19 -3
  70. package/src/qa-browser.mjs +439 -180
  71. package/src/qa-content-params.mjs +889 -0
  72. package/src/qa-node.mjs +116 -13
  73. package/src/qa-order-bump.mjs +22 -1
  74. package/src/qa-policy-links.mjs +1019 -0
  75. package/src/qa-tracking-params.mjs +1389 -0
  76. package/src/qa-url-privacy.mjs +168 -0
  77. package/src/qc-accept.mjs +482 -0
  78. package/src/qc-check-registry.mjs +91 -0
  79. package/src/qc-results.mjs +1341 -0
  80. package/src/readback.mjs +58 -10
  81. package/src/sdk-attribute-index.mjs +71 -0
  82. package/src/sdk-markup.mjs +2 -2
  83. package/src/sdk-storage-compatibility.mjs +63 -3
  84. package/src/source-prep.mjs +37 -7
  85. package/src/stage-ledger.mjs +235 -44
  86. package/src/stage-record.mjs +165 -33
  87. package/src/tooling-setup.mjs +1 -1
@@ -63,9 +63,9 @@ const COMMANDS = frozen({
63
63
  bundle: { subcommands: ["check"] },
64
64
  standardize: {},
65
65
  theme: { subcommands: ["generate", "inspect", "waive"] },
66
- checkpoint: { subcommands: ["waive"] },
66
+ checkpoint: { subcommands: ["accept", "waive"] },
67
67
  polish: { subcommands: ["capture"] },
68
- record: { subcommands: ["build", "deploy", "polish", "setup", "theme"] },
68
+ record: { subcommands: ["brief", "build", "deploy", "polish", "setup", "spec", "theme"] },
69
69
  "validate-assembly-report": {},
70
70
  "install-agent-context": { dryRun: true },
71
71
  "install-skills": { dryRun: true },
@@ -87,14 +87,17 @@ const SUBCOMMAND_OVERRIDES = frozen({
87
87
  "tooling setup": { class: "inline" },
88
88
  "sdk storage-check": { class: "inspection" },
89
89
  "theme waive": { dryRun: true },
90
+ "checkpoint accept": { dryRun: true },
90
91
  "checkpoint waive": { dryRun: true },
91
92
  "page-kit sync": { dryRun: true },
92
93
  "spec derive": { dryRun: true },
93
94
  "qa publish": { dryRun: true },
95
+ "record brief": { dryRun: true },
94
96
  "record build": { dryRun: true },
95
97
  "record deploy": { dryRun: true },
96
98
  "record polish": { dryRun: true },
97
99
  "record setup": { dryRun: true },
100
+ "record spec": { dryRun: true },
98
101
  "record theme": { dryRun: true },
99
102
  "qa run": { autoEnd: true },
100
103
  "run start": { sweepRoot: "session" },
@@ -13,7 +13,7 @@
13
13
  //
14
14
  // Doctor and QA apply this to the gates they evaluate; `next` reads doctor's
15
15
  // gates. Recording a stage (`record polish`) and the waiver commands keep the
16
- // strict gates.
16
+ // strict gates; `record deploy` follows next past a carried-forward polish.
17
17
  import { isLocalServePacket } from "./local-proof.mjs";
18
18
  import { isLoopbackHostname } from "./remit.mjs";
19
19
 
@@ -31,6 +31,9 @@ export const LOCAL_PROOF_BUILD_COMMAND = `CPK_ENV=${LOCAL_PROOF_BUILD_ENVIRONMEN
31
31
  export const LOCAL_PROOF_PARITY_SCOPE = "local_proof.production_parity";
32
32
  export const LOCAL_PROOF_BUILD_ENVIRONMENT_SCOPE = "local_proof.build_environment";
33
33
  export const LOCAL_PROOF_PARITY_COMMAND = "campaigns-os page-kit parity --packet <packet>";
34
+ // The command that records the build stage as a development render: record
35
+ // build stamps the fingerprint and writes LOCAL_PROOF_BUILD_ENVIRONMENT_FIELD.
36
+ export const LOCAL_PROOF_RECORD_BUILD_COMMAND = `campaigns-os record build --packet <packet> --build-environment ${LOCAL_PROOF_BUILD_ENVIRONMENT}`;
34
37
  // Where the build stage records which environment it rendered, and where the
35
38
  // parity command records its result. Both live under the assembly stage's
36
39
  // free-form `evidence` object, which the hashed Assembly Report schema already
@@ -43,7 +46,7 @@ export const LOCAL_PROOF_NEVER_EDIT_RULE = "Never edit a generated include (anal
43
46
  // a cross-origin http: dependency — the signature of a protocol-relative
44
47
  // production loader served locally.
45
48
  export function localProofRebuildText() {
46
- return `The served build is a production build over plain HTTP: a cross-origin http: dependency failed to load, which is what a protocol-relative vendor loader (//host/...) does off an http://localhost origin. Rebuild in local proof mode — \`${LOCAL_PROOF_BUILD_COMMAND}\` — record ${LOCAL_PROOF_BUILD_ENVIRONMENT_FIELD} as "${LOCAL_PROOF_BUILD_ENVIRONMENT}", serve the development output, and recapture. ${LOCAL_PROOF_NEVER_EDIT_RULE}`;
49
+ return `The served build is a production build over plain HTTP: a cross-origin http: dependency failed to load, which is what a protocol-relative vendor loader (//host/...) does off an http://localhost origin. Rebuild in local proof mode — \`${LOCAL_PROOF_BUILD_COMMAND}\` — record it with \`${LOCAL_PROOF_RECORD_BUILD_COMMAND}\` (which sets ${LOCAL_PROOF_BUILD_ENVIRONMENT_FIELD} to "${LOCAL_PROOF_BUILD_ENVIRONMENT}"), serve the development output, and recapture. ${LOCAL_PROOF_NEVER_EDIT_RULE}`;
47
50
  }
48
51
 
49
52
  export function isLocalServePacket(packet) {