@nextcommerce/campaigns-os 1.63.0 → 1.66.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.
- package/CHANGELOG.md +62 -0
- package/campaign-spec/dist/types.d.ts +1 -1
- package/compatibility.json +1 -1
- package/contracts/effects.v1.json +129 -1
- package/contracts/release-ledger.json +549 -0
- package/contracts/supported-surface.json +3 -3
- package/docs/build-packet.md +31 -5
- package/docs/campaigns-os-build-flow.md +38 -0
- package/docs/campaignspec-authoring-examples.md +3 -2
- package/docs/effects.md +8 -0
- package/docs/local-setup.md +1 -1
- package/docs/orientation-contract-reference.md +1 -1
- package/docs/qa-and-test-orders.md +44 -10
- package/docs/readback.md +8 -1
- package/docs/runtime-readiness.md +1 -1
- package/docs/skills-revision.md +10 -10
- package/docs/supported-surface.md +1 -1
- package/package.json +1 -1
- package/schemas/campaigns-os-qa-verdict.v0.schema.json +17 -2
- package/skills/campaign-lifecycle-orientation/SKILL.md +3 -3
- package/skills/campaign-readback-classification/SKILL.md +3 -3
- package/skills/campaign-run-evidence/SKILL.md +3 -3
- package/skills/contribution-intake/SKILL.md +3 -3
- package/skills/next-campaigns-build/SKILL.md +3 -3
- package/skills/next-campaigns-os/SKILL.md +3 -3
- package/skills/next-campaigns-os-setup/SKILL.md +3 -3
- package/skills/next-campaigns-polish/SKILL.md +3 -3
- package/skills/next-campaigns-qa/SKILL.md +4 -4
- package/skills/next-campaigns-sdk-bump/SKILL.md +3 -3
- package/skills.json +11 -11
- package/src/change-scope.mjs +25 -6
- package/src/cli.mjs +120 -7
- package/src/commercial-journey.mjs +3 -0
- package/src/commercial-parity.mjs +157 -7
- package/src/doctor/checks.mjs +28 -3
- package/src/doctor/ci.mjs +36 -1
- package/src/evidence-debt.mjs +9 -1
- package/src/input-currency.mjs +4 -2
- package/src/input-refresh.mjs +1 -1
- package/src/invocation.mjs +3 -2
- package/src/orchestration-stage-contract.mjs +3 -1
- package/src/polish-gate.mjs +10 -0
- package/src/qa-browser.mjs +46 -0
- package/src/qa-commercial-parity.mjs +173 -18
- package/src/qa-node.mjs +10 -5
- package/src/qa-verdict.mjs +3 -1
- package/src/readback.mjs +1 -0
- package/src/runtime-state-ignore.mjs +44 -19
- package/src/stage-ledger.mjs +35 -9
- package/src/stage-record.mjs +93 -14
|
@@ -10679,6 +10679,555 @@
|
|
|
10679
10679
|
}
|
|
10680
10680
|
],
|
|
10681
10681
|
"entry_sha256": "a5fe5aad03d3bf64be6fd7af32b8038867982fad1ee0c8a91a733eccdb46106b"
|
|
10682
|
+
},
|
|
10683
|
+
{
|
|
10684
|
+
"id": "RL-0314",
|
|
10685
|
+
"sequence": 302,
|
|
10686
|
+
"date": "2026-11-02",
|
|
10687
|
+
"kind": "release",
|
|
10688
|
+
"surface_version": null,
|
|
10689
|
+
"changelog_section": "1.63.0+agent.1",
|
|
10690
|
+
"changelog_sha256": "1760a2faac69afe8b237e5267104cce662c7d397a7fd9f2ead2112346ab52826",
|
|
10691
|
+
"agent_impact": "PagePackage.prices is typed PackageCurrencyPrice[] | null, matching schemas v4/v5 and the PackageCurrencyPrices rule, which treat null as absent. Code that reads prices from the type should handle null as it already handles undefined. No spec, rule or skill change.",
|
|
10692
|
+
"compatibility": "compatible",
|
|
10693
|
+
"migration": "none",
|
|
10694
|
+
"changes": [
|
|
10695
|
+
{
|
|
10696
|
+
"class": "generated_runtime",
|
|
10697
|
+
"path": "campaign-spec/types.ts",
|
|
10698
|
+
"surface_entry": null,
|
|
10699
|
+
"summary": "PagePackage.prices accepts null, like the schema."
|
|
10700
|
+
}
|
|
10701
|
+
],
|
|
10702
|
+
"entry_sha256": "3eb5308cfdb11cb8376acbfd4c8ff5aac4938cbe564bd2081452397be7a5cec5"
|
|
10703
|
+
},
|
|
10704
|
+
{
|
|
10705
|
+
"id": "RL-0315",
|
|
10706
|
+
"sequence": 303,
|
|
10707
|
+
"date": "2026-11-07",
|
|
10708
|
+
"kind": "release",
|
|
10709
|
+
"surface_version": "1.64.0",
|
|
10710
|
+
"changelog_section": "1.64.0",
|
|
10711
|
+
"changelog_sha256": "ed08b5b80f306d8acf9a106236408f14742511108f31ed3c26ccfa359aad7cbc",
|
|
10712
|
+
"agent_impact": "New spec fetch restores a saved-Map packet's CampaignSpec on a checkout that lacks it and never replaces a copy on disk. .campaign-runtime/fetched-specs/ is no longer gitignored: commit it, because the records are bound to it and spec derive writes into it. Doctor adds the warning built_output.absent when the build stage is complete and _site/<route>/ is missing, so treat an unbuilt checkout as not compared rather than current. doctor --ci adds lines naming the build each owed stage last checked. evidence_debt gains optional change.commerce_rebuild and qa.reviewed_at. Refresh skills to 1.64.0+skills.1 (a revision restamp; the skill text is otherwise unchanged).",
|
|
10713
|
+
"compatibility": "additive",
|
|
10714
|
+
"migration": "Run spec fetch once on each repository set up from a saved Map, or any setup command, and commit .campaign-runtime/fetched-specs/.",
|
|
10715
|
+
"changes": [
|
|
10716
|
+
{
|
|
10717
|
+
"class": "compatibility_policy",
|
|
10718
|
+
"path": "compatibility.json",
|
|
10719
|
+
"surface_entry": "compatibility.json",
|
|
10720
|
+
"summary": "Version advances to 1.64.0."
|
|
10721
|
+
},
|
|
10722
|
+
{
|
|
10723
|
+
"class": "compatibility_policy",
|
|
10724
|
+
"path": "contracts/effects.v1.json",
|
|
10725
|
+
"surface_entry": "contracts/effects.v1.json",
|
|
10726
|
+
"summary": "New spec fetch row (tier A): one GET of the Map, the fetched copy, and the managed .gitignore. contract_version 1.4.0."
|
|
10727
|
+
},
|
|
10728
|
+
{
|
|
10729
|
+
"class": "compatibility_policy",
|
|
10730
|
+
"path": "contracts/supported-surface.json",
|
|
10731
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
10732
|
+
"summary": "surface_version 1.64.0 and a refreshed hash for the effects contract."
|
|
10733
|
+
},
|
|
10734
|
+
{
|
|
10735
|
+
"class": "named_surface",
|
|
10736
|
+
"path": "docs/build-packet.md",
|
|
10737
|
+
"surface_entry": "docs/build-packet.md",
|
|
10738
|
+
"summary": "fetched-specs/ is committed; spec fetch reference; built_output.absent; corrects how a pre-1.62 record reads."
|
|
10739
|
+
},
|
|
10740
|
+
{
|
|
10741
|
+
"class": "named_surface",
|
|
10742
|
+
"path": "docs/campaigns-os-build-flow.md",
|
|
10743
|
+
"surface_entry": "docs/campaigns-os-build-flow.md",
|
|
10744
|
+
"summary": "A change is read against the build each stage last checked; page-only changes start after one full QA on 1.62.0 or later."
|
|
10745
|
+
},
|
|
10746
|
+
{
|
|
10747
|
+
"class": "named_surface",
|
|
10748
|
+
"path": "docs/effects.md",
|
|
10749
|
+
"surface_entry": "docs/effects.md",
|
|
10750
|
+
"summary": "Declares what spec fetch sends and writes."
|
|
10751
|
+
},
|
|
10752
|
+
{
|
|
10753
|
+
"class": "named_surface",
|
|
10754
|
+
"path": "docs/local-setup.md",
|
|
10755
|
+
"surface_entry": "docs/local-setup.md",
|
|
10756
|
+
"summary": "Install pins @nextcommerce/campaigns-os@1.64.0."
|
|
10757
|
+
},
|
|
10758
|
+
{
|
|
10759
|
+
"class": "documentation",
|
|
10760
|
+
"path": "docs/orientation-contract-reference.md",
|
|
10761
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
10762
|
+
"summary": "Regenerated at surface 1.64.0."
|
|
10763
|
+
},
|
|
10764
|
+
{
|
|
10765
|
+
"class": "named_surface",
|
|
10766
|
+
"path": "docs/readback.md",
|
|
10767
|
+
"surface_entry": "docs/readback.md",
|
|
10768
|
+
"summary": "Lists evidence_debt's new commerce_rebuild and reviewed_at."
|
|
10769
|
+
},
|
|
10770
|
+
{
|
|
10771
|
+
"class": "named_surface",
|
|
10772
|
+
"path": "docs/runtime-readiness.md",
|
|
10773
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
10774
|
+
"summary": "Regenerated at surface 1.64.0."
|
|
10775
|
+
},
|
|
10776
|
+
{
|
|
10777
|
+
"class": "named_surface",
|
|
10778
|
+
"path": "docs/skills-revision.md",
|
|
10779
|
+
"surface_entry": "docs/skills-revision.md",
|
|
10780
|
+
"summary": "Examples name 1.64.0+skills.1."
|
|
10781
|
+
},
|
|
10782
|
+
{
|
|
10783
|
+
"class": "compatibility_policy",
|
|
10784
|
+
"path": "docs/supported-surface.md",
|
|
10785
|
+
"surface_entry": "docs/supported-surface.md",
|
|
10786
|
+
"summary": "Names spec fetch."
|
|
10787
|
+
},
|
|
10788
|
+
{
|
|
10789
|
+
"class": "generated_runtime",
|
|
10790
|
+
"path": "package-lock.json",
|
|
10791
|
+
"surface_entry": null,
|
|
10792
|
+
"summary": "Version 1.64.0."
|
|
10793
|
+
},
|
|
10794
|
+
{
|
|
10795
|
+
"class": "package_export",
|
|
10796
|
+
"path": "package.json",
|
|
10797
|
+
"surface_entry": null,
|
|
10798
|
+
"summary": "Version 1.64.0."
|
|
10799
|
+
},
|
|
10800
|
+
{
|
|
10801
|
+
"class": "skill",
|
|
10802
|
+
"path": "skills.json",
|
|
10803
|
+
"surface_entry": "skills.json",
|
|
10804
|
+
"summary": "bundle_revision 1.64.0+skills.1; each skill one patch higher."
|
|
10805
|
+
},
|
|
10806
|
+
{
|
|
10807
|
+
"class": "skill",
|
|
10808
|
+
"path": "skills/campaign-lifecycle-orientation/SKILL.md",
|
|
10809
|
+
"surface_entry": null,
|
|
10810
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10811
|
+
},
|
|
10812
|
+
{
|
|
10813
|
+
"class": "skill",
|
|
10814
|
+
"path": "skills/campaign-readback-classification/SKILL.md",
|
|
10815
|
+
"surface_entry": null,
|
|
10816
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10817
|
+
},
|
|
10818
|
+
{
|
|
10819
|
+
"class": "skill",
|
|
10820
|
+
"path": "skills/campaign-run-evidence/SKILL.md",
|
|
10821
|
+
"surface_entry": null,
|
|
10822
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10823
|
+
},
|
|
10824
|
+
{
|
|
10825
|
+
"class": "skill",
|
|
10826
|
+
"path": "skills/contribution-intake/SKILL.md",
|
|
10827
|
+
"surface_entry": null,
|
|
10828
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10829
|
+
},
|
|
10830
|
+
{
|
|
10831
|
+
"class": "skill",
|
|
10832
|
+
"path": "skills/next-campaigns-build/SKILL.md",
|
|
10833
|
+
"surface_entry": null,
|
|
10834
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10835
|
+
},
|
|
10836
|
+
{
|
|
10837
|
+
"class": "skill",
|
|
10838
|
+
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
10839
|
+
"surface_entry": null,
|
|
10840
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10841
|
+
},
|
|
10842
|
+
{
|
|
10843
|
+
"class": "skill",
|
|
10844
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
10845
|
+
"surface_entry": null,
|
|
10846
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10847
|
+
},
|
|
10848
|
+
{
|
|
10849
|
+
"class": "skill",
|
|
10850
|
+
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
10851
|
+
"surface_entry": null,
|
|
10852
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10853
|
+
},
|
|
10854
|
+
{
|
|
10855
|
+
"class": "skill",
|
|
10856
|
+
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
10857
|
+
"surface_entry": null,
|
|
10858
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10859
|
+
},
|
|
10860
|
+
{
|
|
10861
|
+
"class": "skill",
|
|
10862
|
+
"path": "skills/next-campaigns-sdk-bump/SKILL.md",
|
|
10863
|
+
"surface_entry": null,
|
|
10864
|
+
"summary": "Revision 1.64.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
10865
|
+
},
|
|
10866
|
+
{
|
|
10867
|
+
"class": "cli_surface",
|
|
10868
|
+
"path": "src/cli.mjs",
|
|
10869
|
+
"surface_entry": null,
|
|
10870
|
+
"summary": "New spec fetch subcommand and help line; next says at done when the built output is absent."
|
|
10871
|
+
},
|
|
10872
|
+
{
|
|
10873
|
+
"class": "cli_surface",
|
|
10874
|
+
"path": "src/doctor/checks.mjs",
|
|
10875
|
+
"surface_entry": null,
|
|
10876
|
+
"summary": "New built_output.absent warning; the spec.local_path error names spec fetch for a saved Map's copy."
|
|
10877
|
+
},
|
|
10878
|
+
{
|
|
10879
|
+
"class": "cli_surface",
|
|
10880
|
+
"path": "src/doctor/ci.mjs",
|
|
10881
|
+
"surface_entry": null,
|
|
10882
|
+
"summary": "The CI report names the build each owed stage last checked and any unreviewed rebuild behind a page-only edit; clearer pre-1.62 wording."
|
|
10883
|
+
}
|
|
10884
|
+
],
|
|
10885
|
+
"entry_sha256": "4a790256ba4b318f5249eea2813d2af5344ed0fe301fef3e9884c276031b6934"
|
|
10886
|
+
},
|
|
10887
|
+
{
|
|
10888
|
+
"id": "RL-0316",
|
|
10889
|
+
"sequence": 304,
|
|
10890
|
+
"date": "2026-11-07",
|
|
10891
|
+
"kind": "release",
|
|
10892
|
+
"surface_version": "1.65.0",
|
|
10893
|
+
"changelog_section": "1.65.0",
|
|
10894
|
+
"changelog_sha256": "507993a6a4a315b82ec8c50534bd5cf7b172d1f6d763c3e63c4974956f5a4aca",
|
|
10895
|
+
"agent_impact": "A QA verdict whose commercial.status is incomplete is now at least ready_with_exceptions, never plain ready, with a warn pricing row commercial-parity:incomplete:<code> in exceptions[] naming the cause and the fix. It never blocks and does not change the exit code. Read those rows and report them to the operator; a run whose commercial status is incomplete did not compare every price. verdict.commercial gains incomplete_reasons. A commercial runner crash now reads status incomplete instead of not_run. Refresh skills to 1.65.0+skills.1.",
|
|
10896
|
+
"compatibility": "compatible",
|
|
10897
|
+
"migration": "none",
|
|
10898
|
+
"changes": [
|
|
10899
|
+
{
|
|
10900
|
+
"class": "compatibility_policy",
|
|
10901
|
+
"path": "compatibility.json",
|
|
10902
|
+
"surface_entry": "compatibility.json",
|
|
10903
|
+
"summary": "Version advances to 1.65.0."
|
|
10904
|
+
},
|
|
10905
|
+
{
|
|
10906
|
+
"class": "compatibility_policy",
|
|
10907
|
+
"path": "contracts/supported-surface.json",
|
|
10908
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
10909
|
+
"summary": "Surface version advances to 1.65.0; verdict schema hash updated."
|
|
10910
|
+
},
|
|
10911
|
+
{
|
|
10912
|
+
"class": "named_surface",
|
|
10913
|
+
"path": "docs/local-setup.md",
|
|
10914
|
+
"surface_entry": "docs/local-setup.md",
|
|
10915
|
+
"summary": "Install line names 1.65.0."
|
|
10916
|
+
},
|
|
10917
|
+
{
|
|
10918
|
+
"class": "documentation",
|
|
10919
|
+
"path": "docs/orientation-contract-reference.md",
|
|
10920
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
10921
|
+
"summary": "Regenerated at supported surface 1.65.0."
|
|
10922
|
+
},
|
|
10923
|
+
{
|
|
10924
|
+
"class": "named_surface",
|
|
10925
|
+
"path": "docs/qa-and-test-orders.md",
|
|
10926
|
+
"surface_entry": "docs/qa-and-test-orders.md",
|
|
10927
|
+
"summary": "Incomplete commercial coverage is a warn-only exception, with one named warn row per cause."
|
|
10928
|
+
},
|
|
10929
|
+
{
|
|
10930
|
+
"class": "named_surface",
|
|
10931
|
+
"path": "docs/runtime-readiness.md",
|
|
10932
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
10933
|
+
"summary": "Regenerated with the new surface version."
|
|
10934
|
+
},
|
|
10935
|
+
{
|
|
10936
|
+
"class": "named_surface",
|
|
10937
|
+
"path": "docs/skills-revision.md",
|
|
10938
|
+
"surface_entry": "docs/skills-revision.md",
|
|
10939
|
+
"summary": "Examples name 1.65.0+skills.1."
|
|
10940
|
+
},
|
|
10941
|
+
{
|
|
10942
|
+
"class": "generated_runtime",
|
|
10943
|
+
"path": "package-lock.json",
|
|
10944
|
+
"surface_entry": null,
|
|
10945
|
+
"summary": "Version advances to 1.65.0."
|
|
10946
|
+
},
|
|
10947
|
+
{
|
|
10948
|
+
"class": "package_export",
|
|
10949
|
+
"path": "package.json",
|
|
10950
|
+
"surface_entry": null,
|
|
10951
|
+
"summary": "Version advances to 1.65.0."
|
|
10952
|
+
},
|
|
10953
|
+
{
|
|
10954
|
+
"class": "schema",
|
|
10955
|
+
"path": "schemas/campaigns-os-qa-verdict.v0.schema.json",
|
|
10956
|
+
"surface_entry": "schemas/campaigns-os-qa-verdict.v0.schema.json",
|
|
10957
|
+
"summary": "disposition and commercial.status descriptions say incomplete coverage keeps the verdict at ready_with_exceptions; documents commercial.incomplete_reasons."
|
|
10958
|
+
},
|
|
10959
|
+
{
|
|
10960
|
+
"class": "skill",
|
|
10961
|
+
"path": "skills.json",
|
|
10962
|
+
"surface_entry": "skills.json",
|
|
10963
|
+
"summary": "Advance bundle revision to 1.65.0+skills.1 and each skill version one patch."
|
|
10964
|
+
},
|
|
10965
|
+
{
|
|
10966
|
+
"class": "skill",
|
|
10967
|
+
"path": "skills/campaign-lifecycle-orientation/SKILL.md",
|
|
10968
|
+
"surface_entry": null,
|
|
10969
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
10970
|
+
},
|
|
10971
|
+
{
|
|
10972
|
+
"class": "skill",
|
|
10973
|
+
"path": "skills/campaign-readback-classification/SKILL.md",
|
|
10974
|
+
"surface_entry": null,
|
|
10975
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
10976
|
+
},
|
|
10977
|
+
{
|
|
10978
|
+
"class": "skill",
|
|
10979
|
+
"path": "skills/campaign-run-evidence/SKILL.md",
|
|
10980
|
+
"surface_entry": null,
|
|
10981
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
10982
|
+
},
|
|
10983
|
+
{
|
|
10984
|
+
"class": "skill",
|
|
10985
|
+
"path": "skills/contribution-intake/SKILL.md",
|
|
10986
|
+
"surface_entry": null,
|
|
10987
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
10988
|
+
},
|
|
10989
|
+
{
|
|
10990
|
+
"class": "skill",
|
|
10991
|
+
"path": "skills/next-campaigns-build/SKILL.md",
|
|
10992
|
+
"surface_entry": null,
|
|
10993
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
10994
|
+
},
|
|
10995
|
+
{
|
|
10996
|
+
"class": "skill",
|
|
10997
|
+
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
10998
|
+
"surface_entry": null,
|
|
10999
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
11000
|
+
},
|
|
11001
|
+
{
|
|
11002
|
+
"class": "skill",
|
|
11003
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
11004
|
+
"surface_entry": null,
|
|
11005
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
11006
|
+
},
|
|
11007
|
+
{
|
|
11008
|
+
"class": "skill",
|
|
11009
|
+
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
11010
|
+
"surface_entry": null,
|
|
11011
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
11012
|
+
},
|
|
11013
|
+
{
|
|
11014
|
+
"class": "skill",
|
|
11015
|
+
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
11016
|
+
"surface_entry": null,
|
|
11017
|
+
"summary": "Incomplete commercial coverage is an exception to report; carries the advanced bundle revision and per-skill version."
|
|
11018
|
+
},
|
|
11019
|
+
{
|
|
11020
|
+
"class": "skill",
|
|
11021
|
+
"path": "skills/next-campaigns-sdk-bump/SKILL.md",
|
|
11022
|
+
"surface_entry": null,
|
|
11023
|
+
"summary": "Carry the advanced bundle revision and matching per-skill version."
|
|
11024
|
+
}
|
|
11025
|
+
],
|
|
11026
|
+
"entry_sha256": "71e83c294538d4b39e13230a4f845fb8aca8dd5e872e0ad3d5bd040c22a54465"
|
|
11027
|
+
},
|
|
11028
|
+
{
|
|
11029
|
+
"id": "RL-0317",
|
|
11030
|
+
"sequence": 305,
|
|
11031
|
+
"date": "2026-11-07",
|
|
11032
|
+
"kind": "release",
|
|
11033
|
+
"surface_version": null,
|
|
11034
|
+
"changelog_section": "1.65.0+agent.1",
|
|
11035
|
+
"changelog_sha256": "46a41336482e8b0683d914ece0b2b4b7f91fc7a158d2335193c834ea676b2cde",
|
|
11036
|
+
"agent_impact": "Commercial parity compares rendered package.price and package.<ref>.price with calculate's unit_price under qa run --browser. A difference is a warn-only price-claim-mismatch. A run without --browser on a page with these claims reads commercial status incomplete, with a commercial-parity:incomplete:package_price_not_rendered row; run qa run --browser to compare them. Other uncompared cases write their own named warn rows. No schema, pin or skill change.",
|
|
11037
|
+
"compatibility": "compatible",
|
|
11038
|
+
"migration": "none",
|
|
11039
|
+
"changes": [
|
|
11040
|
+
{
|
|
11041
|
+
"class": "named_surface",
|
|
11042
|
+
"path": "docs/qa-and-test-orders.md",
|
|
11043
|
+
"surface_entry": "docs/qa-and-test-orders.md",
|
|
11044
|
+
"summary": "Commercial parity covers package.price as rendered, and says what happens to a claim it cannot compare."
|
|
11045
|
+
}
|
|
11046
|
+
],
|
|
11047
|
+
"entry_sha256": "496d52b07c935958a0c890e29bb11ccbe018e15cf8ee5877fabab67a0023fe40"
|
|
11048
|
+
},
|
|
11049
|
+
{
|
|
11050
|
+
"id": "RL-0318",
|
|
11051
|
+
"sequence": 306,
|
|
11052
|
+
"date": "2026-11-07",
|
|
11053
|
+
"kind": "release",
|
|
11054
|
+
"surface_version": "1.66.0",
|
|
11055
|
+
"changelog_section": "1.66.0",
|
|
11056
|
+
"changelog_sha256": "8d1fd62f2ad654ac9fbde2adf31615cb2753f499a10d0d24843f33277201be85",
|
|
11057
|
+
"agent_impact": "New record baseline accepts a handed-off funnel from before markup hashes as the starting point, one time per funnel, without testing it. New stage status baseline_accepted on stages.polish and stages.qa: terminal for the ladder, never completed, no purchase proof. Treat it as accepted and untested, never as a pass; a reader that does not recognize it should read unknown. Doctor adds the warning qa.baseline_accepted. evidence_debt.qa gains optional baseline, and the Assembly Report gains optional commerce_baseline. Refresh skills to 1.66.0+skills.1 (a revision restamp; the skill text is otherwise unchanged).",
|
|
11058
|
+
"compatibility": "additive",
|
|
11059
|
+
"migration": "none",
|
|
11060
|
+
"changes": [
|
|
11061
|
+
{
|
|
11062
|
+
"class": "compatibility_policy",
|
|
11063
|
+
"path": "compatibility.json",
|
|
11064
|
+
"surface_entry": "compatibility.json",
|
|
11065
|
+
"summary": "Version advances to 1.66.0."
|
|
11066
|
+
},
|
|
11067
|
+
{
|
|
11068
|
+
"class": "compatibility_policy",
|
|
11069
|
+
"path": "contracts/effects.v1.json",
|
|
11070
|
+
"surface_entry": "contracts/effects.v1.json",
|
|
11071
|
+
"summary": "New record baseline rows: the Assembly Report and the doctor stale stamp, nothing sent. contract_version 1.5.0."
|
|
11072
|
+
},
|
|
11073
|
+
{
|
|
11074
|
+
"class": "compatibility_policy",
|
|
11075
|
+
"path": "contracts/supported-surface.json",
|
|
11076
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
11077
|
+
"summary": "surface_version 1.66.0 and a refreshed hash for the effects contract."
|
|
11078
|
+
},
|
|
11079
|
+
{
|
|
11080
|
+
"class": "named_surface",
|
|
11081
|
+
"path": "docs/build-packet.md",
|
|
11082
|
+
"surface_entry": "docs/build-packet.md",
|
|
11083
|
+
"summary": "Page-only changes can also start after a baseline."
|
|
11084
|
+
},
|
|
11085
|
+
{
|
|
11086
|
+
"class": "named_surface",
|
|
11087
|
+
"path": "docs/campaigns-os-build-flow.md",
|
|
11088
|
+
"surface_entry": "docs/campaigns-os-build-flow.md",
|
|
11089
|
+
"summary": "How to accept a funnel from before 1.62.0, and what a baseline does and doesn't do."
|
|
11090
|
+
},
|
|
11091
|
+
{
|
|
11092
|
+
"class": "named_surface",
|
|
11093
|
+
"path": "docs/effects.md",
|
|
11094
|
+
"surface_entry": "docs/effects.md",
|
|
11095
|
+
"summary": "Declares what record baseline writes."
|
|
11096
|
+
},
|
|
11097
|
+
{
|
|
11098
|
+
"class": "named_surface",
|
|
11099
|
+
"path": "docs/local-setup.md",
|
|
11100
|
+
"surface_entry": "docs/local-setup.md",
|
|
11101
|
+
"summary": "Install pins @nextcommerce/campaigns-os@1.66.0."
|
|
11102
|
+
},
|
|
11103
|
+
{
|
|
11104
|
+
"class": "documentation",
|
|
11105
|
+
"path": "docs/orientation-contract-reference.md",
|
|
11106
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
11107
|
+
"summary": "Regenerated at surface 1.66.0."
|
|
11108
|
+
},
|
|
11109
|
+
{
|
|
11110
|
+
"class": "named_surface",
|
|
11111
|
+
"path": "docs/readback.md",
|
|
11112
|
+
"surface_entry": "docs/readback.md",
|
|
11113
|
+
"summary": "Lists evidence_debt.qa.baseline."
|
|
11114
|
+
},
|
|
11115
|
+
{
|
|
11116
|
+
"class": "named_surface",
|
|
11117
|
+
"path": "docs/runtime-readiness.md",
|
|
11118
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
11119
|
+
"summary": "Regenerated at surface 1.66.0."
|
|
11120
|
+
},
|
|
11121
|
+
{
|
|
11122
|
+
"class": "named_surface",
|
|
11123
|
+
"path": "docs/skills-revision.md",
|
|
11124
|
+
"surface_entry": "docs/skills-revision.md",
|
|
11125
|
+
"summary": "Examples name 1.66.0+skills.1."
|
|
11126
|
+
},
|
|
11127
|
+
{
|
|
11128
|
+
"class": "compatibility_policy",
|
|
11129
|
+
"path": "docs/supported-surface.md",
|
|
11130
|
+
"surface_entry": "docs/supported-surface.md",
|
|
11131
|
+
"summary": "Names record baseline."
|
|
11132
|
+
},
|
|
11133
|
+
{
|
|
11134
|
+
"class": "generated_runtime",
|
|
11135
|
+
"path": "package-lock.json",
|
|
11136
|
+
"surface_entry": null,
|
|
11137
|
+
"summary": "Version 1.66.0."
|
|
11138
|
+
},
|
|
11139
|
+
{
|
|
11140
|
+
"class": "package_export",
|
|
11141
|
+
"path": "package.json",
|
|
11142
|
+
"surface_entry": null,
|
|
11143
|
+
"summary": "Version 1.66.0."
|
|
11144
|
+
},
|
|
11145
|
+
{
|
|
11146
|
+
"class": "skill",
|
|
11147
|
+
"path": "skills.json",
|
|
11148
|
+
"surface_entry": "skills.json",
|
|
11149
|
+
"summary": "bundle_revision 1.66.0+skills.1; each skill one patch higher."
|
|
11150
|
+
},
|
|
11151
|
+
{
|
|
11152
|
+
"class": "skill",
|
|
11153
|
+
"path": "skills/campaign-lifecycle-orientation/SKILL.md",
|
|
11154
|
+
"surface_entry": null,
|
|
11155
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11156
|
+
},
|
|
11157
|
+
{
|
|
11158
|
+
"class": "skill",
|
|
11159
|
+
"path": "skills/campaign-readback-classification/SKILL.md",
|
|
11160
|
+
"surface_entry": null,
|
|
11161
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11162
|
+
},
|
|
11163
|
+
{
|
|
11164
|
+
"class": "skill",
|
|
11165
|
+
"path": "skills/campaign-run-evidence/SKILL.md",
|
|
11166
|
+
"surface_entry": null,
|
|
11167
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11168
|
+
},
|
|
11169
|
+
{
|
|
11170
|
+
"class": "skill",
|
|
11171
|
+
"path": "skills/contribution-intake/SKILL.md",
|
|
11172
|
+
"surface_entry": null,
|
|
11173
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11174
|
+
},
|
|
11175
|
+
{
|
|
11176
|
+
"class": "skill",
|
|
11177
|
+
"path": "skills/next-campaigns-build/SKILL.md",
|
|
11178
|
+
"surface_entry": null,
|
|
11179
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11180
|
+
},
|
|
11181
|
+
{
|
|
11182
|
+
"class": "skill",
|
|
11183
|
+
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
11184
|
+
"surface_entry": null,
|
|
11185
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11186
|
+
},
|
|
11187
|
+
{
|
|
11188
|
+
"class": "skill",
|
|
11189
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
11190
|
+
"surface_entry": null,
|
|
11191
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11192
|
+
},
|
|
11193
|
+
{
|
|
11194
|
+
"class": "skill",
|
|
11195
|
+
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
11196
|
+
"surface_entry": null,
|
|
11197
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11198
|
+
},
|
|
11199
|
+
{
|
|
11200
|
+
"class": "skill",
|
|
11201
|
+
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
11202
|
+
"surface_entry": null,
|
|
11203
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11204
|
+
},
|
|
11205
|
+
{
|
|
11206
|
+
"class": "skill",
|
|
11207
|
+
"path": "skills/next-campaigns-sdk-bump/SKILL.md",
|
|
11208
|
+
"surface_entry": null,
|
|
11209
|
+
"summary": "Revision 1.66.0+skills.1; version one patch higher; text otherwise unchanged."
|
|
11210
|
+
},
|
|
11211
|
+
{
|
|
11212
|
+
"class": "cli_surface",
|
|
11213
|
+
"path": "src/cli.mjs",
|
|
11214
|
+
"surface_entry": null,
|
|
11215
|
+
"summary": "Help line for record baseline; a page-scoped pass on a baseline stays baseline_accepted with no purchase proof; next says at done when QA rests on one."
|
|
11216
|
+
},
|
|
11217
|
+
{
|
|
11218
|
+
"class": "cli_surface",
|
|
11219
|
+
"path": "src/doctor/checks.mjs",
|
|
11220
|
+
"surface_entry": null,
|
|
11221
|
+
"summary": "New qa.baseline_accepted warning."
|
|
11222
|
+
},
|
|
11223
|
+
{
|
|
11224
|
+
"class": "cli_surface",
|
|
11225
|
+
"path": "src/doctor/ci.mjs",
|
|
11226
|
+
"surface_entry": null,
|
|
11227
|
+
"summary": "The CI report says when QA rests on a baseline."
|
|
11228
|
+
}
|
|
11229
|
+
],
|
|
11230
|
+
"entry_sha256": "7ab1be1f56e4738dc0fc7127361611f1e625881d8dce7f5035d3c0243396325d"
|
|
10682
11231
|
}
|
|
10683
11232
|
]
|
|
10684
11233
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_note": "The downstream contract manifest. Everything listed here is SUPPORTED SURFACE: consumers (campaigns-agent, campaign-builder, the private ops repo, page-kit campaign repos) may depend on it, and changing it is a deliberate act — hashed entries require a surface_version bump in the same change (check-supported-surface.mjs --base, mirroring the skills.json bump gate), named entries must keep existing at their path, cli_commands must keep resolving in the CLI dispatch, package_exports must stay exported, and every entry must ship in the npm pack (files[] coverage). Anything NOT listed here — src/** internals, scripts/** checkers, examples/**, prompts/**, contracts/** other than this file and the entries named[] below (the orientation contract, the release ledger, and the consumer-facing orientation fixtures) — is implementation: consumers may read it for context but must not build on it, and it can change without notice. Rationale and the compatibility promise: docs/supported-surface.md.",
|
|
3
|
-
"surface_version": "1.
|
|
3
|
+
"surface_version": "1.66.0",
|
|
4
4
|
"package_exports": [
|
|
5
5
|
"./commercial-journey",
|
|
6
6
|
"./commercial-parity",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"sha256": "3c40fd79f218d1b95f0424f9a2b67db140a306329e2ca02793e2740d3afded59"
|
|
89
89
|
},
|
|
90
90
|
"schemas/campaigns-os-qa-verdict.v0.schema.json": {
|
|
91
|
-
"sha256": "
|
|
91
|
+
"sha256": "237361d4cda53f3cd98d306bc9ab2c2a0ce1cdd4ded0b15001a3c47b5cf05988"
|
|
92
92
|
},
|
|
93
93
|
"schemas/campaigns-os-doctor-output.v0.schema.json": {
|
|
94
94
|
"sha256": "87866e619d2a18f01a208a1682cb14a2079f61df51c642f4e1902b6e6bce0ce5"
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"sha256": "b397b417b0456cafc03346a2e882a34c19fa0500ea92594afca2f9fa1d7f2c3b"
|
|
125
125
|
},
|
|
126
126
|
"contracts/effects.v1.json": {
|
|
127
|
-
"sha256": "
|
|
127
|
+
"sha256": "4979649217470c1066f7efab722e56d4089f9df374bfbb5af03d2d7e5aba3c14"
|
|
128
128
|
},
|
|
129
129
|
"schemas/campaigns-os-effects.v1.schema.json": {
|
|
130
130
|
"sha256": "3eadd22169ab98bc7c2f682af2751267605170581182158d96be035b0cfe44dc"
|