@nextcommerce/campaigns-os 1.41.2 → 1.43.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 (83) hide show
  1. package/AGENTS.md +4 -2
  2. package/CHANGELOG.md +629 -0
  3. package/README.md +8 -6
  4. package/agents/claude/CLAUDE.md +5 -1
  5. package/campaign-spec/dist/types.d.ts +2 -0
  6. package/contracts/agent-relevant-change-policy.v1.json +5 -0
  7. package/contracts/effects.v1.json +118 -25
  8. package/contracts/migration-sidecar-bundle.v0.json +9 -0
  9. package/contracts/release-ledger.json +1424 -0
  10. package/contracts/supported-surface.json +12 -11
  11. package/docs/build-packet.md +120 -8
  12. package/docs/campaigns-os-build-flow.md +3 -2
  13. package/docs/design-source-package.md +89 -15
  14. package/docs/effects.md +83 -2
  15. package/docs/local-setup.md +51 -0
  16. package/docs/migration-sidecar-bundle.md +6 -1
  17. package/docs/orientation-contract-reference.md +1 -1
  18. package/docs/progress-snapshots.md +16 -6
  19. package/docs/qa-and-test-orders.md +157 -17
  20. package/docs/release-ledger-authoring-guide.md +6 -4
  21. package/docs/runtime-readiness.md +1 -1
  22. package/docs/skills-revision.md +10 -10
  23. package/package.json +3 -2
  24. package/schemas/campaign-runtime-assembly-report.v0.schema.json +6 -1
  25. package/schemas/campaign-runtime-build-packet.v0.schema.json +6 -1
  26. package/schemas/campaign-spec.v4.schema.json +4 -0
  27. package/schemas/campaigns-os-progress-snapshot.v0.schema.json +1 -0
  28. package/schemas/campaigns-os-qa-verdict-sidecar.v0.schema.json +1 -0
  29. package/schemas/campaigns-os-qa-verdict.v0.schema.json +1 -0
  30. package/schemas/campaigns-os-run-record.v0.schema.json +1 -0
  31. package/skills/campaign-lifecycle-orientation/SKILL.md +13 -8
  32. package/skills/campaign-readback-classification/SKILL.md +3 -3
  33. package/skills/campaign-run-evidence/SKILL.md +8 -6
  34. package/skills/contribution-intake/SKILL.md +3 -3
  35. package/skills/next-campaigns-build/SKILL.md +4 -4
  36. package/skills/next-campaigns-os/SKILL.md +17 -4
  37. package/skills/next-campaigns-os/references/session-intake.md +4 -4
  38. package/skills/next-campaigns-os-setup/SKILL.md +3 -3
  39. package/skills/next-campaigns-polish/SKILL.md +3 -3
  40. package/skills/next-campaigns-qa/SKILL.md +10 -9
  41. package/skills.json +11 -11
  42. package/src/build-brief.mjs +6 -4
  43. package/src/built-script-syntax.mjs +480 -0
  44. package/src/campaigns-api-key.mjs +99 -0
  45. package/src/cli-helpers.mjs +118 -0
  46. package/src/cli.mjs +796 -6963
  47. package/src/design-source-package.mjs +1 -1
  48. package/src/design-source-publication.mjs +898 -0
  49. package/src/diagnostic.mjs +2 -1
  50. package/src/directory-lock.mjs +270 -0
  51. package/src/doctor/checks.mjs +4415 -0
  52. package/src/doctor/inspect.mjs +636 -0
  53. package/src/doctor/next-step.mjs +731 -0
  54. package/src/finding-cause.mjs +14 -10
  55. package/src/install-invocation.mjs +29 -0
  56. package/src/invocation.mjs +179 -0
  57. package/src/lifecycle.mjs +5 -4
  58. package/src/polish-node.mjs +5 -2
  59. package/src/private-template-source.mjs +1 -1
  60. package/src/progress-node.mjs +9 -37
  61. package/src/progress.mjs +5 -3
  62. package/src/proof-policy.mjs +1 -1
  63. package/src/qa-analytics-correctness.mjs +3 -0
  64. package/src/qa-binding-evidence.mjs +76 -11
  65. package/src/qa-browser.mjs +778 -77
  66. package/src/qa-build-scope.mjs +47 -0
  67. package/src/qa-node.mjs +276 -39
  68. package/src/qa-publish.mjs +4 -0
  69. package/src/qa-sidecar.mjs +2 -0
  70. package/src/qa-verdict-discovery.mjs +11 -0
  71. package/src/qa-verdict-publish.mjs +1 -0
  72. package/src/qa-verdict.mjs +8 -1
  73. package/src/readback.mjs +2 -1
  74. package/src/run-record-closeout.mjs +3 -4
  75. package/src/run-record.mjs +4 -0
  76. package/src/sidecar-bundle.mjs +21 -0
  77. package/src/source-html-intake.mjs +1 -1
  78. package/src/source-html-manifest.mjs +9 -2
  79. package/src/spec-source-identity.mjs +44 -0
  80. package/src/stage-ledger.mjs +32 -1
  81. package/src/target-lock.mjs +54 -0
  82. package/src/template-brand-contract.mjs +17 -1
  83. package/src/tooling-setup.mjs +160 -0
@@ -6146,6 +6146,1430 @@
6146
6146
  }
6147
6147
  ],
6148
6148
  "entry_sha256": "434522f9100e5e73b04601d75ec2bff8821c58fdc09c8ad6866de09337d33e4f"
6149
+ },
6150
+ {
6151
+ "id": "RL-0140",
6152
+ "sequence": 140,
6153
+ "date": "2026-09-23",
6154
+ "kind": "release",
6155
+ "surface_version": "1.42.0",
6156
+ "changelog_section": "1.42.0",
6157
+ "changelog_sha256": "09cd488e7394e6086483c0eade0e01536812fd8eb2d5d1241a79b01f96145bc4",
6158
+ "agent_impact": "After installing exact project dependencies, run tooling setup --target <campaign-directory> --platform claude from the project copy to compose skills, imported project context and QA-browser installation. Restart Claude Code and check the loaded bundle revision; setup cannot prove loaded context. Setup bypasses run-session recovery, credential discovery and telemetry. Existing assembly identity and doctor/QA gates are unchanged.",
6159
+ "compatibility": "additive",
6160
+ "migration": "Refresh bundled skills to 1.42.0+skills.1 and restart agent sessions. Existing projects keep their reviewed dependency pin until explicitly updated.",
6161
+ "changes": [
6162
+ {
6163
+ "class": "documentation",
6164
+ "path": "agents/claude/CLAUDE.md",
6165
+ "surface_entry": "agents/claude/CLAUDE.md",
6166
+ "summary": "Route to the lifecycle skill from the project toolkit, check loaded skill revision, and retain existing Build Packet continuation."
6167
+ },
6168
+ {
6169
+ "class": "compatibility_policy",
6170
+ "path": "contracts/effects.v1.json",
6171
+ "surface_entry": "contracts/effects.v1.json",
6172
+ "summary": "Declare tooling setup and its read-only dry run, including existing installer effects, context import, browser download and session/telemetry exemption."
6173
+ },
6174
+ {
6175
+ "class": "compatibility_policy",
6176
+ "path": "contracts/supported-surface.json",
6177
+ "surface_entry": "contracts/supported-surface.json",
6178
+ "summary": "Advance supported surface to 1.42.0, refresh the effects hash and register docs/local-setup.md."
6179
+ },
6180
+ {
6181
+ "class": "named_surface",
6182
+ "path": "docs/effects.md",
6183
+ "surface_entry": "docs/effects.md",
6184
+ "summary": "Explain setup composition, preservation preflight and the scope of offline browser effects proof."
6185
+ },
6186
+ {
6187
+ "class": "named_surface",
6188
+ "path": "docs/local-setup.md",
6189
+ "surface_entry": "docs/local-setup.md",
6190
+ "summary": "Document the exact initial npm install, project setup, preservation/recovery behavior and required Claude restart."
6191
+ },
6192
+ {
6193
+ "class": "documentation",
6194
+ "path": "docs/orientation-contract-reference.md",
6195
+ "surface_entry": "docs/orientation-contract-reference.md",
6196
+ "summary": "Regenerate orientation reference for surface 1.42.0."
6197
+ },
6198
+ {
6199
+ "class": "named_surface",
6200
+ "path": "docs/runtime-readiness.md",
6201
+ "surface_entry": "docs/runtime-readiness.md",
6202
+ "summary": "Regenerate runtime-readiness reference for surface 1.42.0."
6203
+ },
6204
+ {
6205
+ "class": "named_surface",
6206
+ "path": "docs/skills-revision.md",
6207
+ "surface_entry": "docs/skills-revision.md",
6208
+ "summary": "Update the displayed bundle revision to 1.42.0+skills.1."
6209
+ },
6210
+ {
6211
+ "class": "generated_runtime",
6212
+ "path": "package-lock.json",
6213
+ "surface_entry": null,
6214
+ "summary": "Stamp package version 1.42.0; dependency resolutions are unchanged."
6215
+ },
6216
+ {
6217
+ "class": "package_export",
6218
+ "path": "package.json",
6219
+ "surface_entry": null,
6220
+ "summary": "Release 1.42.0 and ship docs/local-setup.md."
6221
+ },
6222
+ {
6223
+ "class": "skill",
6224
+ "path": "skills.json",
6225
+ "surface_entry": "skills.json",
6226
+ "summary": "Advance bundle revision to 1.42.0+skills.1 and each skill version one patch."
6227
+ },
6228
+ {
6229
+ "class": "skill",
6230
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
6231
+ "surface_entry": null,
6232
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6233
+ },
6234
+ {
6235
+ "class": "skill",
6236
+ "path": "skills/campaign-readback-classification/SKILL.md",
6237
+ "surface_entry": null,
6238
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6239
+ },
6240
+ {
6241
+ "class": "skill",
6242
+ "path": "skills/campaign-run-evidence/SKILL.md",
6243
+ "surface_entry": null,
6244
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6245
+ },
6246
+ {
6247
+ "class": "skill",
6248
+ "path": "skills/contribution-intake/SKILL.md",
6249
+ "surface_entry": null,
6250
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6251
+ },
6252
+ {
6253
+ "class": "skill",
6254
+ "path": "skills/next-campaigns-build/SKILL.md",
6255
+ "surface_entry": null,
6256
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6257
+ },
6258
+ {
6259
+ "class": "skill",
6260
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
6261
+ "surface_entry": null,
6262
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6263
+ },
6264
+ {
6265
+ "class": "skill",
6266
+ "path": "skills/next-campaigns-os/SKILL.md",
6267
+ "surface_entry": null,
6268
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6269
+ },
6270
+ {
6271
+ "class": "skill",
6272
+ "path": "skills/next-campaigns-polish/SKILL.md",
6273
+ "surface_entry": null,
6274
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6275
+ },
6276
+ {
6277
+ "class": "skill",
6278
+ "path": "skills/next-campaigns-qa/SKILL.md",
6279
+ "surface_entry": null,
6280
+ "summary": "Stamp bundle 1.42.0+skills.1 and advance the skill version one patch."
6281
+ },
6282
+ {
6283
+ "class": "cli_surface",
6284
+ "path": "src/cli.mjs",
6285
+ "surface_entry": "tooling",
6286
+ "summary": "Add tooling setup under the existing tooling command; strict argument preflight, no campaign-session or credential discovery, JSON/text results and restart-required outcome."
6287
+ }
6288
+ ],
6289
+ "entry_sha256": "6527efc0942f6125e694fe670a85ef4c00fabc12167b35f4c206d92ccdebf5e0"
6290
+ },
6291
+ {
6292
+ "id": "RL-0141",
6293
+ "sequence": 141,
6294
+ "date": "2026-09-24",
6295
+ "kind": "release",
6296
+ "surface_version": "1.42.1",
6297
+ "changelog_section": "1.42.1",
6298
+ "changelog_sha256": "2945fc2d2217fb09cab82dad870b32b67dce5dd9aa38317550bcb9fdf1b5c705",
6299
+ "agent_impact": "Argv-only errors in start, prepare-build, build, run-record, qa run, qa resolve, built-site QA and next now refuse without a lifecycle entry. An unknown next stage names the accepted stages. Three state-dependent decisions remain journaled handler failures: polish capture when packet.assembly.target_repo does not resolve to a local target repo (a check currently unreachable through the CLI because the workspace resolver supplies a local path); run end without a packet in argv or the saved session; and qa run or qa resolve with a named packet yielding no Map ID after checkpoint preflight. Separately, a named design manifest that is missing, not a file, or invalid is a journaled handler failure. Nested run-record refusals during closeout do not suppress the invoking command journal. The ambient run-session lookup may still read a named --packet before handler dispatch.",
6300
+ "compatibility": "compatible",
6301
+ "migration": "Update to the exact 1.42.1 package and refresh bundled skills to 1.42.1+skills.1 before starting a new agent session. Treat argv-only failures as refusals and use journal entries for handler failures.",
6302
+ "changes": [
6303
+ {
6304
+ "class": "compatibility_policy",
6305
+ "path": "contracts/supported-surface.json",
6306
+ "surface_entry": "contracts/supported-surface.json",
6307
+ "summary": "Advance the supported surface to 1.42.1."
6308
+ },
6309
+ {
6310
+ "class": "named_surface",
6311
+ "path": "docs/effects.md",
6312
+ "surface_entry": "docs/effects.md",
6313
+ "summary": "Document argv-only refusal boundaries, the three journaled state decisions, and nested closeout scope."
6314
+ },
6315
+ {
6316
+ "class": "documentation",
6317
+ "path": "docs/orientation-contract-reference.md",
6318
+ "surface_entry": "docs/orientation-contract-reference.md",
6319
+ "summary": "Restamp the generated orientation reference for surface 1.42.1."
6320
+ },
6321
+ {
6322
+ "class": "named_surface",
6323
+ "path": "docs/runtime-readiness.md",
6324
+ "surface_entry": "docs/runtime-readiness.md",
6325
+ "summary": "Restamp the generated runtime reference for surface 1.42.1."
6326
+ },
6327
+ {
6328
+ "class": "named_surface",
6329
+ "path": "docs/skills-revision.md",
6330
+ "surface_entry": "docs/skills-revision.md",
6331
+ "summary": "Update displayed bundle revision examples to 1.42.1+skills.1."
6332
+ },
6333
+ {
6334
+ "class": "generated_runtime",
6335
+ "path": "package-lock.json",
6336
+ "surface_entry": null,
6337
+ "summary": "Stamp package version 1.42.1 without changing dependency resolutions."
6338
+ },
6339
+ {
6340
+ "class": "package_export",
6341
+ "path": "package.json",
6342
+ "surface_entry": null,
6343
+ "summary": "Release package version 1.42.1 without changing exports or dependencies."
6344
+ },
6345
+ {
6346
+ "class": "skill",
6347
+ "path": "skills.json",
6348
+ "surface_entry": "skills.json",
6349
+ "summary": "Advance bundle revision to 1.42.1+skills.1 and every skill version one patch."
6350
+ },
6351
+ {
6352
+ "class": "skill",
6353
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
6354
+ "surface_entry": null,
6355
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6356
+ },
6357
+ {
6358
+ "class": "skill",
6359
+ "path": "skills/campaign-readback-classification/SKILL.md",
6360
+ "surface_entry": null,
6361
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6362
+ },
6363
+ {
6364
+ "class": "skill",
6365
+ "path": "skills/campaign-run-evidence/SKILL.md",
6366
+ "surface_entry": null,
6367
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6368
+ },
6369
+ {
6370
+ "class": "skill",
6371
+ "path": "skills/contribution-intake/SKILL.md",
6372
+ "surface_entry": null,
6373
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6374
+ },
6375
+ {
6376
+ "class": "skill",
6377
+ "path": "skills/next-campaigns-build/SKILL.md",
6378
+ "surface_entry": null,
6379
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6380
+ },
6381
+ {
6382
+ "class": "skill",
6383
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
6384
+ "surface_entry": null,
6385
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6386
+ },
6387
+ {
6388
+ "class": "skill",
6389
+ "path": "skills/next-campaigns-os/SKILL.md",
6390
+ "surface_entry": null,
6391
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6392
+ },
6393
+ {
6394
+ "class": "skill",
6395
+ "path": "skills/next-campaigns-polish/SKILL.md",
6396
+ "surface_entry": null,
6397
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6398
+ },
6399
+ {
6400
+ "class": "skill",
6401
+ "path": "skills/next-campaigns-qa/SKILL.md",
6402
+ "surface_entry": null,
6403
+ "summary": "Stamp bundle revision 1.42.1+skills.1 and advance the skill version one patch."
6404
+ },
6405
+ {
6406
+ "class": "cli_surface",
6407
+ "path": "src/cli.mjs",
6408
+ "surface_entry": "next",
6409
+ "summary": "Refuse intake, run-record and QA argv errors before target reads, name accepted next stages, and keep nested closeout refusals within their own scope."
6410
+ }
6411
+ ],
6412
+ "entry_sha256": "e74290c495de13cc95e4f615fe6bd8aa8dbdb7a06211a206be5cd5296724b0af"
6413
+ },
6414
+ {
6415
+ "id": "RL-0144",
6416
+ "sequence": 142,
6417
+ "date": "2026-09-24",
6418
+ "kind": "release",
6419
+ "surface_version": "1.43.0",
6420
+ "changelog_section": "1.43.0",
6421
+ "changelog_sha256": "1500b85555746a9550cb238041a55c92bf4e2357f9ad4768c5f27ea4de6b6cde",
6422
+ "agent_impact": "For HTML-and-brief intake, author a normal CampaignSpec with a stable spec_identity.local_spec_id and no saved Map identity. Use packet-based QA and keep local evidence in Git; local verdicts cannot be published to the Map portal. Existing saved-Map specs and evidence remain supported; no readiness gate is relaxed.",
6423
+ "compatibility": "additive",
6424
+ "migration": "none",
6425
+ "changes": [
6426
+ {
6427
+ "class": "generated_runtime",
6428
+ "path": "campaign-spec/types.ts",
6429
+ "surface_entry": null,
6430
+ "summary": "Type the optional stable local_spec_id for agent-authored CampaignSpecs."
6431
+ },
6432
+ {
6433
+ "class": "compatibility_policy",
6434
+ "path": "contracts/effects.v1.json",
6435
+ "surface_entry": "contracts/effects.v1.json",
6436
+ "summary": "Declare that local-spec QA and progress stay local and qa publish refuses local packets."
6437
+ },
6438
+ {
6439
+ "class": "hashed_surface",
6440
+ "path": "contracts/migration-sidecar-bundle.v0.json",
6441
+ "surface_entry": "contracts/migration-sidecar-bundle.v0.json",
6442
+ "summary": "Bind local bundles through local_spec_id as the explicit alternative to saved Map identity."
6443
+ },
6444
+ {
6445
+ "class": "compatibility_policy",
6446
+ "path": "contracts/supported-surface.json",
6447
+ "surface_entry": "contracts/supported-surface.json",
6448
+ "summary": "Advance the supported surface to 1.43.0 and refresh changed contract hashes."
6449
+ },
6450
+ {
6451
+ "class": "named_surface",
6452
+ "path": "docs/build-packet.md",
6453
+ "surface_entry": "docs/build-packet.md",
6454
+ "summary": "Document stable local IDs, revision evidence, local QA storage and saved-Map boundaries."
6455
+ },
6456
+ {
6457
+ "class": "named_surface",
6458
+ "path": "docs/local-setup.md",
6459
+ "surface_entry": "docs/local-setup.md",
6460
+ "summary": "Introduce agent-authored local CampaignSpec intake after Claude setup."
6461
+ },
6462
+ {
6463
+ "class": "named_surface",
6464
+ "path": "docs/progress-snapshots.md",
6465
+ "surface_entry": "docs/progress-snapshots.md",
6466
+ "summary": "Document local-spec report binding without saved revision alignment or portal storage."
6467
+ },
6468
+ {
6469
+ "class": "generated_runtime",
6470
+ "path": "package-lock.json",
6471
+ "surface_entry": null,
6472
+ "summary": "Update release metadata for local-spec identity support."
6473
+ },
6474
+ {
6475
+ "class": "package_export",
6476
+ "path": "package.json",
6477
+ "surface_entry": null,
6478
+ "summary": "Release local-spec identity support as 1.43.0."
6479
+ },
6480
+ {
6481
+ "class": "schema",
6482
+ "path": "schemas/campaign-runtime-assembly-report.v0.schema.json",
6483
+ "surface_entry": "schemas/campaign-runtime-assembly-report.v0.schema.json",
6484
+ "summary": "Accept and document local-spec identity while preserving existing saved-Map artifacts."
6485
+ },
6486
+ {
6487
+ "class": "schema",
6488
+ "path": "schemas/campaign-runtime-build-packet.v0.schema.json",
6489
+ "surface_entry": "schemas/campaign-runtime-build-packet.v0.schema.json",
6490
+ "summary": "Accept and document local-spec identity while preserving existing saved-Map artifacts."
6491
+ },
6492
+ {
6493
+ "class": "schema",
6494
+ "path": "schemas/campaign-spec.v4.schema.json",
6495
+ "surface_entry": "schemas/campaign-spec.v4.schema.json",
6496
+ "summary": "Accept and document local-spec identity while preserving existing saved-Map artifacts."
6497
+ },
6498
+ {
6499
+ "class": "schema",
6500
+ "path": "schemas/campaigns-os-progress-snapshot.v0.schema.json",
6501
+ "surface_entry": "schemas/campaigns-os-progress-snapshot.v0.schema.json",
6502
+ "summary": "Accept and document local-spec identity while preserving existing saved-Map artifacts."
6503
+ },
6504
+ {
6505
+ "class": "schema",
6506
+ "path": "schemas/campaigns-os-qa-verdict-sidecar.v0.schema.json",
6507
+ "surface_entry": "schemas/campaigns-os-qa-verdict-sidecar.v0.schema.json",
6508
+ "summary": "Accept and document local-spec identity while preserving existing saved-Map artifacts."
6509
+ },
6510
+ {
6511
+ "class": "schema",
6512
+ "path": "schemas/campaigns-os-qa-verdict.v0.schema.json",
6513
+ "surface_entry": "schemas/campaigns-os-qa-verdict.v0.schema.json",
6514
+ "summary": "Accept and document local-spec identity while preserving existing saved-Map artifacts."
6515
+ },
6516
+ {
6517
+ "class": "schema",
6518
+ "path": "schemas/campaigns-os-run-record.v0.schema.json",
6519
+ "surface_entry": "schemas/campaigns-os-run-record.v0.schema.json",
6520
+ "summary": "Accept and document local-spec identity while preserving existing saved-Map artifacts."
6521
+ },
6522
+ {
6523
+ "class": "skill",
6524
+ "path": "skills.json",
6525
+ "surface_entry": "skills.json",
6526
+ "summary": "Advance the bundled skill revision and individual versions for the local-spec release."
6527
+ },
6528
+ {
6529
+ "class": "skill",
6530
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
6531
+ "surface_entry": null,
6532
+ "summary": "Publish the current skills bundle revision."
6533
+ },
6534
+ {
6535
+ "class": "skill",
6536
+ "path": "skills/campaign-readback-classification/SKILL.md",
6537
+ "surface_entry": null,
6538
+ "summary": "Publish the current skills bundle revision."
6539
+ },
6540
+ {
6541
+ "class": "skill",
6542
+ "path": "skills/campaign-run-evidence/SKILL.md",
6543
+ "surface_entry": null,
6544
+ "summary": "Publish the current skills bundle revision."
6545
+ },
6546
+ {
6547
+ "class": "skill",
6548
+ "path": "skills/contribution-intake/SKILL.md",
6549
+ "surface_entry": null,
6550
+ "summary": "Publish the current skills bundle revision."
6551
+ },
6552
+ {
6553
+ "class": "skill",
6554
+ "path": "skills/next-campaigns-build/SKILL.md",
6555
+ "surface_entry": null,
6556
+ "summary": "Publish the current skills bundle revision."
6557
+ },
6558
+ {
6559
+ "class": "skill",
6560
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
6561
+ "surface_entry": null,
6562
+ "summary": "Publish the current skills bundle revision."
6563
+ },
6564
+ {
6565
+ "class": "skill",
6566
+ "path": "skills/next-campaigns-os/SKILL.md",
6567
+ "surface_entry": null,
6568
+ "summary": "Publish the current skills bundle revision and local-spec HTML/brief intake guidance."
6569
+ },
6570
+ {
6571
+ "class": "skill",
6572
+ "path": "skills/next-campaigns-os/references/session-intake.md",
6573
+ "surface_entry": null,
6574
+ "summary": "Publish the current skills bundle revision and local-spec HTML/brief intake guidance."
6575
+ },
6576
+ {
6577
+ "class": "skill",
6578
+ "path": "skills/next-campaigns-polish/SKILL.md",
6579
+ "surface_entry": null,
6580
+ "summary": "Publish the current skills bundle revision."
6581
+ },
6582
+ {
6583
+ "class": "skill",
6584
+ "path": "skills/next-campaigns-qa/SKILL.md",
6585
+ "surface_entry": null,
6586
+ "summary": "Publish the current skills bundle revision."
6587
+ },
6588
+ {
6589
+ "class": "cli_surface",
6590
+ "path": "src/cli.mjs",
6591
+ "surface_entry": "start",
6592
+ "summary": "Prepare, inspect, resume and close out local-spec campaigns with separate stable identity and material revision binding."
6593
+ },
6594
+ {
6595
+ "class": "named_surface",
6596
+ "path": "docs/effects.md",
6597
+ "surface_entry": "docs/effects.md",
6598
+ "summary": "Document local-spec QA publication and progress suppression."
6599
+ },
6600
+ {
6601
+ "class": "documentation",
6602
+ "path": "docs/orientation-contract-reference.md",
6603
+ "surface_entry": "docs/orientation-contract-reference.md",
6604
+ "summary": "Regenerate the supported orientation/runtime reference and fixtures for surface 1.43.0."
6605
+ },
6606
+ {
6607
+ "class": "named_surface",
6608
+ "path": "docs/runtime-readiness.md",
6609
+ "surface_entry": "docs/runtime-readiness.md",
6610
+ "summary": "Regenerate the supported orientation/runtime reference and fixtures for surface 1.43.0."
6611
+ },
6612
+ {
6613
+ "class": "named_surface",
6614
+ "path": "docs/skills-revision.md",
6615
+ "surface_entry": "docs/skills-revision.md",
6616
+ "summary": "Use the current 1.43.0+skills.1 bundle in executable examples."
6617
+ }
6618
+ ],
6619
+ "entry_sha256": "41aa194138fb46e0f5acf1b668139b09f21cfe210e976013ae2db9263cb0d068"
6620
+ },
6621
+ {
6622
+ "id": "RL-0142",
6623
+ "sequence": 143,
6624
+ "date": "2026-09-24",
6625
+ "kind": "amendment",
6626
+ "amends": "RL-0144",
6627
+ "amendment_reason": "Complete the entry-point and QA documentation omitted from RL-0144, clarify its skill guidance, and preserve the existing saved-Map mismatch diagnostic.",
6628
+ "surface_version": null,
6629
+ "changelog_section": "1.43.0+agent.1",
6630
+ "changelog_sha256": "ec20f3ed8ca10054c47027c6cd66ce58df812a9a7bdc1ca1a314ee5ca61953d6",
6631
+ "agent_impact": "Use the local-spec path without a saved Map ID; local verdicts and progress remain local. Saved-Map mismatch errors continue to identify both conflicting Map IDs.",
6632
+ "compatibility": "compatible",
6633
+ "migration": "none",
6634
+ "changes": [
6635
+ {
6636
+ "class": "named_surface",
6637
+ "path": "docs/campaigns-os-build-flow.md",
6638
+ "surface_entry": "docs/campaigns-os-build-flow.md",
6639
+ "summary": "Allow agent-authored local specs at entry and distinguish local QA from saved-Map publication."
6640
+ },
6641
+ {
6642
+ "class": "named_surface",
6643
+ "path": "docs/migration-sidecar-bundle.md",
6644
+ "surface_entry": "docs/migration-sidecar-bundle.md",
6645
+ "summary": "Document local_spec_id as the alternative cross-artifact identity in local bundles."
6646
+ },
6647
+ {
6648
+ "class": "named_surface",
6649
+ "path": "docs/qa-and-test-orders.md",
6650
+ "surface_entry": "docs/qa-and-test-orders.md",
6651
+ "summary": "Document local QA storage keys, explicit local identity and identity-aware evidence comparison."
6652
+ },
6653
+ {
6654
+ "class": "cli_surface",
6655
+ "path": null,
6656
+ "surface_entry": "page-kit",
6657
+ "summary": "Retain the saved-Map mismatch diagnostic while preserving refusal of mismatched local identities in sync and spec derivation."
6658
+ },
6659
+ {
6660
+ "class": "skill",
6661
+ "path": null,
6662
+ "surface_entry": "skills.json",
6663
+ "summary": "Clarify that the 1.43.0 skill updates also teach local-spec QA inputs, local-only publication behavior and separate local evidence identity."
6664
+ }
6665
+ ],
6666
+ "entry_sha256": "a15386429fe754cde6d5ff9590859b463fdb371e014b0ad0c50a8e19a24e1079"
6667
+ },
6668
+ {
6669
+ "id": "RL-0143",
6670
+ "sequence": 144,
6671
+ "date": "2026-09-24",
6672
+ "kind": "amendment",
6673
+ "amends": "RL-0144",
6674
+ "amendment_reason": "Harden local identity projection and Run Record persistence after review; distinguish local doctor failures and clarify exact local-ID normalization.",
6675
+ "surface_version": null,
6676
+ "changelog_section": "1.43.0+agent.2",
6677
+ "changelog_sha256": "cb40cab1b8f4e816de7f1b4e7cf318c8e773e8ed133aa2ba655c62435af399a9",
6678
+ "agent_impact": "Malformed or conflicting local identities are refused before durable evidence writes. Doctor reports local identity failures under spec.local_identity while saved-Map diagnostics and normalization retain their existing behavior.",
6679
+ "compatibility": "compatible",
6680
+ "migration": "none",
6681
+ "changes": [
6682
+ {
6683
+ "class": "cli_surface",
6684
+ "path": null,
6685
+ "surface_entry": "doctor",
6686
+ "summary": "Report malformed or mismatched local identities with spec.local_identity and local_spec detail without aborting diagnostics."
6687
+ },
6688
+ {
6689
+ "class": "cli_surface",
6690
+ "path": null,
6691
+ "surface_entry": "run-record",
6692
+ "summary": "Refuse malformed or conflicting local identities during projection and Run Record validation before persistence."
6693
+ },
6694
+ {
6695
+ "class": "named_surface",
6696
+ "path": null,
6697
+ "surface_entry": "docs/build-packet.md",
6698
+ "summary": "Document exact local-ID validation, evidence-write refusal and the separate local doctor diagnostic."
6699
+ }
6700
+ ],
6701
+ "entry_sha256": "0a3533b5ab6004e1f9a7d3c9e18030c9f055c11d1b596319728d7d2f1f7f443c"
6702
+ },
6703
+ {
6704
+ "id": "RL-0145",
6705
+ "sequence": 145,
6706
+ "date": "2026-09-24",
6707
+ "kind": "amendment",
6708
+ "amends": "RL-0143",
6709
+ "amendment_reason": "Keep invalid local identity diagnostics from adopting foreign doctor history and integrate the landed 1.42.1 refusal boundaries without losing local packet QA.",
6710
+ "surface_version": null,
6711
+ "changelog_section": "1.43.0+agent.3",
6712
+ "changelog_sha256": "c813cdbeaea7d82816af6a6aeedf6e65df00b75dd6c0f6116ce51266a0f9ff0f",
6713
+ "agent_impact": "Invalid identities have no usable prior-history comparison. Packet-derived QA identity errors remain journaled handler failures; missing argv selectors are refused before reads.",
6714
+ "compatibility": "compatible",
6715
+ "migration": "none",
6716
+ "changes": [
6717
+ {
6718
+ "class": "cli_surface",
6719
+ "path": null,
6720
+ "surface_entry": "doctor",
6721
+ "summary": "Do not select prior doctor history for malformed, missing, conflicting or mismatched campaign identities."
6722
+ },
6723
+ {
6724
+ "class": "cli_surface",
6725
+ "path": null,
6726
+ "surface_entry": "qa",
6727
+ "summary": "Preserve local-spec packet QA while integrating the argv-only refusal boundary from 1.42.1."
6728
+ },
6729
+ {
6730
+ "class": "skill",
6731
+ "path": null,
6732
+ "surface_entry": "skills.json",
6733
+ "summary": "Advance each bundled skill version beyond the concurrently landed 1.42.1 release."
6734
+ },
6735
+ {
6736
+ "class": "named_surface",
6737
+ "path": null,
6738
+ "surface_entry": "docs/effects.md",
6739
+ "summary": "Describe missing or conflicting packet-derived local identity as a journaled handler failure."
6740
+ }
6741
+ ],
6742
+ "entry_sha256": "346259f1c22a80007cb949786c3b113211931bb399e8a181764548db36d397cc"
6743
+ },
6744
+ {
6745
+ "id": "RL-0146",
6746
+ "sequence": 146,
6747
+ "date": "2026-09-24",
6748
+ "kind": "amendment",
6749
+ "amends": "RL-0143",
6750
+ "amendment_reason": "Treat a null local ID as absent in Run Record validation and its schema, matching identity resolution and preserving best-effort saved-Map capture.",
6751
+ "surface_version": null,
6752
+ "changelog_section": "1.43.0+agent.4",
6753
+ "changelog_sha256": "5baa9f8109edb5d00692316d69b5035779f3114d6f393010df40cfbe918af59b",
6754
+ "agent_impact": "Run Records may carry local_spec_id: null without being rejected, including records with a saved Map or partial identity. Non-null malformed or conflicting local IDs remain invalid.",
6755
+ "compatibility": "compatible",
6756
+ "migration": "none",
6757
+ "changes": [
6758
+ {
6759
+ "class": "schema",
6760
+ "path": null,
6761
+ "surface_entry": "schemas/campaigns-os-run-record.v0.schema.json",
6762
+ "summary": "Allow null local_spec_id as an absent local identity and align the Run Record validator with that shape."
6763
+ },
6764
+ {
6765
+ "class": "compatibility_policy",
6766
+ "path": null,
6767
+ "surface_entry": "contracts/supported-surface.json",
6768
+ "summary": "Refresh the Run Record schema digest within the pending 1.43.0 supported surface."
6769
+ }
6770
+ ],
6771
+ "entry_sha256": "56ca91118205936c9f1c58eda8a4fb208b9c18ee6c0552dce8c3176dffad14f3"
6772
+ },
6773
+ {
6774
+ "id": "RL-0147",
6775
+ "sequence": 147,
6776
+ "date": "2026-09-24",
6777
+ "kind": "release",
6778
+ "surface_version": "1.43.1",
6779
+ "changelog_section": "1.43.1",
6780
+ "changelog_sha256": "d7fde5ebbad8bb605fb1c46195ae497c95448f00f8b329378cc19798d12191a0",
6781
+ "agent_impact": "The local setup command pins the 1.43.1 package; its documented toolkit install pin is checked against package.json. Operator-facing run-record and run end refuse bare, empty, or whitespace-only value-taking inherited flags before packet work; invalid --surfaces, valued --dry-run, and invalid agent integers are also refused without a lifecycle entry. Run end refuses --new-run and --run-id; run-record refuses blank --run-id and valued --new-run. Start, prepare-build, and build reject bare, empty, or whitespace-only values of --spec, --map-id, --source, --target, --source-kind, --proxy-base, --wrapper-policy, --design-manifest, and --order-path-depth before local spec reads, Map fetches, or cache writes. Internal stale-session closeouts still write the Run Record with bare, empty, or whitespace-only --proxy-base. QA auto-end still closes with whitespace-only --context, --report, or --proxy-base; whitespace-only --context resolves as a literal relative path, so the default context file is not read. Bare or empty --context or --report still skips QA auto-end and leaves the session open; bare or empty --qa-verdict fails a Run Record closeout when inherited, while QA auto-end supplies its own verdict path. Packet QA accepts either a Map ID or a valid local-spec identity; missing or conflicting packet-derived identity is a journaled handler failure. The 1.42.1 note claiming no-Map packet QA remained journaled was imprecise: that release changed the case from a refusal to a journaled handler failure.",
6782
+ "compatibility": "compatible",
6783
+ "migration": "Update to the exact 1.43.1 package and refresh bundled skills to 1.43.1+skills.1 before starting a new agent session.",
6784
+ "changes": [
6785
+ {
6786
+ "class": "compatibility_policy",
6787
+ "path": "contracts/supported-surface.json",
6788
+ "surface_entry": "contracts/supported-surface.json",
6789
+ "summary": "Advance the supported surface to 1.43.1."
6790
+ },
6791
+ {
6792
+ "class": "named_surface",
6793
+ "path": "docs/effects.md",
6794
+ "surface_entry": "docs/effects.md",
6795
+ "summary": "Document operator-facing run-record and run end argv refusals, the nine early-checked intake flags, inherited internal-closeout behavior, and the current local-or-Map packet QA identity rule."
6796
+ },
6797
+ {
6798
+ "class": "named_surface",
6799
+ "path": "docs/local-setup.md",
6800
+ "surface_entry": "docs/local-setup.md",
6801
+ "summary": "Pin the copy-paste local setup install command to the 1.43.1 package release."
6802
+ },
6803
+ {
6804
+ "class": "documentation",
6805
+ "path": "docs/orientation-contract-reference.md",
6806
+ "surface_entry": "docs/orientation-contract-reference.md",
6807
+ "summary": "Restamp the generated orientation reference for surface 1.43.1."
6808
+ },
6809
+ {
6810
+ "class": "named_surface",
6811
+ "path": "docs/runtime-readiness.md",
6812
+ "surface_entry": "docs/runtime-readiness.md",
6813
+ "summary": "Restamp the generated runtime reference for surface 1.43.1."
6814
+ },
6815
+ {
6816
+ "class": "named_surface",
6817
+ "path": "docs/skills-revision.md",
6818
+ "surface_entry": "docs/skills-revision.md",
6819
+ "summary": "Update displayed bundle revision examples to 1.43.1+skills.1."
6820
+ },
6821
+ {
6822
+ "class": "generated_runtime",
6823
+ "path": "package-lock.json",
6824
+ "surface_entry": null,
6825
+ "summary": "Stamp package version 1.43.1 without changing dependency resolutions."
6826
+ },
6827
+ {
6828
+ "class": "package_export",
6829
+ "path": "package.json",
6830
+ "surface_entry": null,
6831
+ "summary": "Release package version 1.43.1 without changing exports or dependencies."
6832
+ },
6833
+ {
6834
+ "class": "skill",
6835
+ "path": "skills.json",
6836
+ "surface_entry": "skills.json",
6837
+ "summary": "Advance bundle revision to 1.43.1+skills.1 and every skill version one patch."
6838
+ },
6839
+ {
6840
+ "class": "skill",
6841
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
6842
+ "surface_entry": null,
6843
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6844
+ },
6845
+ {
6846
+ "class": "skill",
6847
+ "path": "skills/campaign-readback-classification/SKILL.md",
6848
+ "surface_entry": null,
6849
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6850
+ },
6851
+ {
6852
+ "class": "skill",
6853
+ "path": "skills/campaign-run-evidence/SKILL.md",
6854
+ "surface_entry": null,
6855
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6856
+ },
6857
+ {
6858
+ "class": "skill",
6859
+ "path": "skills/contribution-intake/SKILL.md",
6860
+ "surface_entry": null,
6861
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6862
+ },
6863
+ {
6864
+ "class": "skill",
6865
+ "path": "skills/next-campaigns-build/SKILL.md",
6866
+ "surface_entry": null,
6867
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6868
+ },
6869
+ {
6870
+ "class": "skill",
6871
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
6872
+ "surface_entry": null,
6873
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6874
+ },
6875
+ {
6876
+ "class": "skill",
6877
+ "path": "skills/next-campaigns-os/SKILL.md",
6878
+ "surface_entry": null,
6879
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6880
+ },
6881
+ {
6882
+ "class": "skill",
6883
+ "path": "skills/next-campaigns-polish/SKILL.md",
6884
+ "surface_entry": null,
6885
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6886
+ },
6887
+ {
6888
+ "class": "skill",
6889
+ "path": "skills/next-campaigns-qa/SKILL.md",
6890
+ "surface_entry": null,
6891
+ "summary": "Stamp bundle revision 1.43.1+skills.1 and advance the skill version one patch."
6892
+ },
6893
+ {
6894
+ "class": "cli_surface",
6895
+ "path": "src/cli.mjs",
6896
+ "surface_entry": "run",
6897
+ "summary": "Refuse blank values for the nine early-checked intake flags before spec resolution and operator-facing run-record values before packet work, reject invalid run end flags without journaling, and preserve internal closeout handling of inherited values."
6898
+ }
6899
+ ],
6900
+ "entry_sha256": "7c851b671eb1a3d07f92dc44f66e0ff9d5001905479ad70118c7a025e677f8af"
6901
+ },
6902
+ {
6903
+ "id": "RL-0148",
6904
+ "sequence": 148,
6905
+ "date": "2026-09-25",
6906
+ "kind": "release",
6907
+ "surface_version": null,
6908
+ "changelog_section": "1.43.1+agent.1",
6909
+ "changelog_sha256": "03f39b019de9fde6d2247e4cb057a305baa3b11b8809bfe9c2e8ebbfb27ecc03",
6910
+ "agent_impact": "Doctor recognizes finite numeric commerce references in Map exports. Declared package, shipping and offer IDs no longer produce false undeclared-reference or demo-placeholder findings.",
6911
+ "compatibility": "compatible",
6912
+ "migration": "none",
6913
+ "changes": [
6914
+ {
6915
+ "class": "cli_surface",
6916
+ "path": "src/cli.mjs",
6917
+ "surface_entry": "doctor",
6918
+ "summary": "Normalize commerce references as non-empty strings or finite numbers without widening general text-field handling."
6919
+ }
6920
+ ],
6921
+ "entry_sha256": "39c0c107c2fe1a8faad0dd61b1a5d04f17f4f29ad31ed794f74bd97ebe24693a"
6922
+ },
6923
+ {
6924
+ "id": "RL-0149",
6925
+ "sequence": 149,
6926
+ "date": "2026-09-26",
6927
+ "kind": "release",
6928
+ "surface_version": null,
6929
+ "changelog_section": "1.43.1+agent.2",
6930
+ "changelog_sha256": "4fe10d6b45c14c6bf2b0683955a42a52cd77e8518452852e64575c4035116739",
6931
+ "agent_impact": "A refused valued --dry-run on run end leaves stale sessions intact and performs no closeout writes or remit.",
6932
+ "compatibility": "compatible",
6933
+ "migration": "none",
6934
+ "changes": [
6935
+ {
6936
+ "class": "cli_surface",
6937
+ "path": "src/cli.mjs",
6938
+ "surface_entry": "run",
6939
+ "summary": "Skip the stale-session sweep when a supporting command receives any dry-run flag, including a value its handler refuses."
6940
+ },
6941
+ {
6942
+ "class": "documentation",
6943
+ "path": "AGENTS.md",
6944
+ "surface_entry": "AGENTS.md",
6945
+ "summary": "Document the dry-run exception to pre-refusal stale-session closeout."
6946
+ },
6947
+ {
6948
+ "class": "named_surface",
6949
+ "path": "docs/effects.md",
6950
+ "surface_entry": "docs/effects.md",
6951
+ "summary": "Clarify that a valued dry-run flag suppresses stale closeout before refusal."
6952
+ }
6953
+ ],
6954
+ "entry_sha256": "1e2836aecf0e9ee37473bf77d20427d7e57a632ba1adb67774e4a4498d3a7927"
6955
+ },
6956
+ {
6957
+ "id": "RL-0150",
6958
+ "sequence": 150,
6959
+ "date": "2026-09-26",
6960
+ "kind": "release",
6961
+ "surface_version": null,
6962
+ "changelog_section": "1.43.1+agent.3",
6963
+ "changelog_sha256": "d99684d3a0040d82cfa0f4452f2a6b4522709b2d66eed334abfc13625924a459",
6964
+ "agent_impact": "Malformed legacy direct-API QA carts and modes are refused before input resolution and append no lifecycle entry. Browser precedence and legacy credential checks are unchanged.",
6965
+ "compatibility": "compatible",
6966
+ "migration": "none",
6967
+ "changes": [
6968
+ {
6969
+ "class": "named_surface",
6970
+ "path": "docs/effects.md",
6971
+ "surface_entry": "docs/effects.md",
6972
+ "summary": "Document legacy API cart and mode argv refusals and the unchanged credential failure boundary."
6973
+ }
6974
+ ],
6975
+ "entry_sha256": "011853957b11b9bf964487dbd8d17dbe2164deb2c0f82133de1720a5aaab675a"
6976
+ },
6977
+ {
6978
+ "id": "RL-0151",
6979
+ "sequence": 151,
6980
+ "date": "2026-09-26",
6981
+ "kind": "release",
6982
+ "surface_version": null,
6983
+ "changelog_section": "1.43.1+agent.4",
6984
+ "changelog_sha256": "173ee29da0a362831460bffb96d40683a84b0a790c8570d6f100ef23d76a029d",
6985
+ "agent_impact": "Packet QA excludes recorded unbuilt out-of-scope pages; stock materialization now requires per-page operator opt-in.",
6986
+ "compatibility": "compatible",
6987
+ "migration": "none",
6988
+ "changes": [
6989
+ {
6990
+ "class": "cli_surface",
6991
+ "path": "src/cli.mjs",
6992
+ "surface_entry": "next",
6993
+ "summary": "Keep out-of-scope routes unbuilt by default; require explicit opt-in before materializing stock stand-ins."
6994
+ },
6995
+ {
6996
+ "class": "named_surface",
6997
+ "path": "docs/design-source-package.md",
6998
+ "surface_entry": "docs/design-source-package.md",
6999
+ "summary": "Distinguish source-scope stock classification from permission to publish stock pages."
7000
+ },
7001
+ {
7002
+ "class": "named_surface",
7003
+ "path": "docs/qa-and-test-orders.md",
7004
+ "surface_entry": "docs/qa-and-test-orders.md",
7005
+ "summary": "Document recorded partial scope, skipped evidence, entry selection and materialized-page QA."
7006
+ },
7007
+ {
7008
+ "class": "skill",
7009
+ "path": "skills.json",
7010
+ "surface_entry": "skills.json",
7011
+ "summary": "Advance bundle revision and skill versions so installed agents detect the changed build-scope instructions."
7012
+ },
7013
+ {
7014
+ "class": "skill",
7015
+ "path": "skills/next-campaigns-os/SKILL.md",
7016
+ "surface_entry": null,
7017
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7018
+ },
7019
+ {
7020
+ "class": "skill",
7021
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
7022
+ "surface_entry": null,
7023
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7024
+ },
7025
+ {
7026
+ "class": "skill",
7027
+ "path": "skills/next-campaigns-build/SKILL.md",
7028
+ "surface_entry": null,
7029
+ "summary": "Require explicit per-page opt-in before publishing out-of-scope stock pages."
7030
+ },
7031
+ {
7032
+ "class": "skill",
7033
+ "path": "skills/next-campaigns-polish/SKILL.md",
7034
+ "surface_entry": null,
7035
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7036
+ },
7037
+ {
7038
+ "class": "skill",
7039
+ "path": "skills/next-campaigns-qa/SKILL.md",
7040
+ "surface_entry": null,
7041
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7042
+ },
7043
+ {
7044
+ "class": "skill",
7045
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
7046
+ "surface_entry": null,
7047
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7048
+ },
7049
+ {
7050
+ "class": "skill",
7051
+ "path": "skills/campaign-run-evidence/SKILL.md",
7052
+ "surface_entry": null,
7053
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7054
+ },
7055
+ {
7056
+ "class": "skill",
7057
+ "path": "skills/campaign-readback-classification/SKILL.md",
7058
+ "surface_entry": null,
7059
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7060
+ },
7061
+ {
7062
+ "class": "skill",
7063
+ "path": "skills/contribution-intake/SKILL.md",
7064
+ "surface_entry": null,
7065
+ "summary": "Carry the advanced bundle revision and matching per-skill version."
7066
+ },
7067
+ {
7068
+ "class": "named_surface",
7069
+ "path": "docs/skills-revision.md",
7070
+ "surface_entry": "docs/skills-revision.md",
7071
+ "summary": "Update current bundle revision examples to 1.43.1+skills.2."
7072
+ }
7073
+ ],
7074
+ "entry_sha256": "27d696ec2cfae34a6ecb95432d8e15971c7234668d7430b87b5dade3e092836a"
7075
+ },
7076
+ {
7077
+ "id": "RL-0152",
7078
+ "sequence": 152,
7079
+ "date": "2026-09-26",
7080
+ "kind": "release",
7081
+ "surface_version": null,
7082
+ "changelog_section": "1.43.1+agent.5",
7083
+ "changelog_sha256": "2abbb4fca524e64ac46bccf1f11044fdd921db5af73eb4c194e73be0d2bdfafa",
7084
+ "agent_impact": "Doctor and browser QA no longer report hidden starter payment-logos.html logos as payment-method residue; a forced-on logo warning now names the payment_flags.show_<method> frontmatter flag.",
7085
+ "compatibility": "compatible",
7086
+ "migration": "none",
7087
+ "changes": [
7088
+ {
7089
+ "class": "cli_surface",
7090
+ "path": "src/cli.mjs",
7091
+ "surface_entry": "next",
7092
+ "summary": "Skip hidden payment-logos.html logos in the built-checkout payment scan and name the frontmatter flag when a logo is forced on."
7093
+ }
7094
+ ],
7095
+ "entry_sha256": "9c7500519109ff5b96d1131f3b3589c6cf291ca47ce7a6f720fb46d8ff96b795"
7096
+ },
7097
+ {
7098
+ "id": "RL-0153",
7099
+ "sequence": 153,
7100
+ "date": "2026-09-26",
7101
+ "kind": "release",
7102
+ "surface_version": null,
7103
+ "changelog_section": "1.43.1+agent.8",
7104
+ "changelog_sha256": "cb96fb1e0376e4d47fa7b09b7f3cf0300be82b70a471f1670706dd855f828767",
7105
+ "agent_impact": "A stale Design Source Package that an earlier prepare-build synthesized, unchanged since, is regenerated by prepare-build/start/build --force instead of refused; the Assembly Report's design_source_package reference gains origin (synthesized or adopted). Any other stale package is still refused, and every refusal names the file and its recovery.",
7106
+ "compatibility": "additive",
7107
+ "migration": "none",
7108
+ "changes": [
7109
+ {
7110
+ "class": "cli_surface",
7111
+ "path": "src/cli.mjs",
7112
+ "surface_entry": "prepare-build",
7113
+ "summary": "--force regenerates a stale producer-synthesized Design Source Package (mode regenerated); the Assembly Report records design_source_package.origin; stale-package refusals name the file and the recovery (--force, or reconcile/delete and rerun)."
7114
+ },
7115
+ {
7116
+ "class": "named_surface",
7117
+ "path": "docs/design-source-package.md",
7118
+ "surface_entry": "docs/design-source-package.md",
7119
+ "summary": "Document report origin, which stale packages --force regenerates, which it still refuses, and the --force alternative to deleting a blocked run's package."
7120
+ },
7121
+ {
7122
+ "class": "named_surface",
7123
+ "path": "docs/build-packet.md",
7124
+ "surface_entry": "docs/build-packet.md",
7125
+ "summary": "State up front that a manifest pages[] entry with both path and skip_reason is invalid, and note the --force regeneration exception."
7126
+ }
7127
+ ],
7128
+ "entry_sha256": "35a5cc66c5100d0fd1d44a63daf19bc66d23d4d2998a15ddf90b7193dbd7b1f3"
7129
+ },
7130
+ {
7131
+ "id": "RL-0154",
7132
+ "sequence": 154,
7133
+ "date": "2026-09-26",
7134
+ "kind": "release",
7135
+ "surface_version": null,
7136
+ "changelog_section": "1.43.1+agent.9",
7137
+ "changelog_sha256": "1be8f8385cb6853eaf084747203e96f5a93136914d6f0fba7dd6a70226d8a0d5",
7138
+ "agent_impact": "Doctor now blocks under built_output.script_syntax.parse_failure when a campaign-owned script a built page loads by a local <script src> does not parse, naming the file, line and column; QA adds a script-parse:<page_id> blocker instead of reading an unparsable page script as dynamic.",
7139
+ "compatibility": "compatible",
7140
+ "migration": "none",
7141
+ "changes": [
7142
+ {
7143
+ "class": "cli_surface",
7144
+ "path": "src/cli.mjs",
7145
+ "surface_entry": "doctor",
7146
+ "summary": "Add the unwaivable built_output.script_syntax gate to doctor --built and the packet doctor registry."
7147
+ },
7148
+ {
7149
+ "class": "named_surface",
7150
+ "path": "docs/build-packet.md",
7151
+ "surface_entry": "docs/build-packet.md",
7152
+ "summary": "Document the built-output script syntax gate, its scope and its evidence."
7153
+ },
7154
+ {
7155
+ "class": "named_surface",
7156
+ "path": "docs/campaigns-os-build-flow.md",
7157
+ "surface_entry": "docs/campaigns-os-build-flow.md",
7158
+ "summary": "State that campaign scripts must parse and that doctor blocks when one does not."
7159
+ },
7160
+ {
7161
+ "class": "named_surface",
7162
+ "path": "docs/qa-and-test-orders.md",
7163
+ "surface_entry": "docs/qa-and-test-orders.md",
7164
+ "summary": "Document that QA reports an unparsable page script as a script-parse blocker, not as dynamic."
7165
+ }
7166
+ ],
7167
+ "entry_sha256": "81273fac2c4938401143c5236dadae04c1e805e499a4163ab370e4e50a2e02a0"
7168
+ },
7169
+ {
7170
+ "id": "RL-0155",
7171
+ "sequence": 155,
7172
+ "date": "2026-09-26",
7173
+ "kind": "release",
7174
+ "surface_version": null,
7175
+ "changelog_section": "1.43.1+agent.11",
7176
+ "changelog_sha256": "41d14d94c974d6b4bb2924429c7ca26685d38be1d5a9e6fead8e347960c08cb3",
7177
+ "agent_impact": "start, prepare-build and build refuse a bare, empty or whitespace --template-family, --allow-uncertified-template, --theme-policy or --brief, and an out-of-vocabulary --theme-policy, before any spec read, Map fetch or cache write, with no journal entry. A blank value is no longer silently ignored. Certification and brief-file failures are still journaled handler failures.",
7178
+ "compatibility": "compatible",
7179
+ "migration": "Pass a value to each of these flags or omit the flag; a blank value that used to be ignored is now refused.",
7180
+ "changes": [
7181
+ {
7182
+ "class": "cli_surface",
7183
+ "path": "src/cli.mjs",
7184
+ "surface_entry": "prepare-build",
7185
+ "summary": "The intake dispatch refuses blank --template-family, --allow-uncertified-template, --theme-policy and --brief values and an unknown --theme-policy before resolveSpecPath, on the --spec, --map-id and --map-id --cached-spec paths, for start, prepare-build and build."
7186
+ },
7187
+ {
7188
+ "class": "named_surface",
7189
+ "path": "docs/effects.md",
7190
+ "surface_entry": "docs/effects.md",
7191
+ "summary": "List the four late intake flags and the --theme-policy vocabulary among the argv-only refusals, and state that certification and brief-file checks stay journaled."
7192
+ }
7193
+ ],
7194
+ "entry_sha256": "f2be3f58c79afb40343b1dc3b6baa8a8065be0a93b04c45ec870e5f91b7a49d1"
7195
+ },
7196
+ {
7197
+ "id": "RL-0157",
7198
+ "sequence": 156,
7199
+ "date": "2026-09-27",
7200
+ "kind": "release",
7201
+ "surface_version": null,
7202
+ "changelog_section": "1.43.1+agent.15",
7203
+ "changelog_sha256": "d78eb0be3faaada970e67f8e659164b4e080c07a404d057e79dbff37b505156f",
7204
+ "agent_impact": "Doctor now warns under built_output.script_syntax.missing_script when a built page loads a local script that is not in the built output; it does not block. The script syntax gate resolves each script src against the <base href> in effect when the script is prepared, and falls back to the page URL for a data:, javascript: or unparsable base.",
7205
+ "compatibility": "compatible",
7206
+ "migration": "none",
7207
+ "changes": [
7208
+ {
7209
+ "class": "cli_surface",
7210
+ "path": "src/cli.mjs",
7211
+ "surface_entry": "doctor",
7212
+ "summary": "Surface the script syntax gate's missing-script findings as doctor warnings on doctor --built and the packet doctor registry, unless a parse failure blocks the gate."
7213
+ },
7214
+ {
7215
+ "class": "named_surface",
7216
+ "path": "docs/build-packet.md",
7217
+ "surface_entry": "docs/build-packet.md",
7218
+ "summary": "Document base-element ordering (parse order, HTML namespace, URL-parser whitespace) and the rejected-base fallback for script resolution, and the missing-script warning and warned[] evidence."
7219
+ }
7220
+ ],
7221
+ "entry_sha256": "b704d4bd6f9e83e090200742dd4057d3b263d9884e09b506053b6cb6cd18ad24"
7222
+ },
7223
+ {
7224
+ "id": "RL-0158",
7225
+ "sequence": 157,
7226
+ "date": "2026-09-27",
7227
+ "kind": "release",
7228
+ "surface_version": null,
7229
+ "changelog_section": "1.43.1+agent.16",
7230
+ "changelog_sha256": "e6e03aea1c1cb3bb84827e584e7f3cf849eec5ff7e0d14c4aca5c7aa9b3fbe3f",
7231
+ "agent_impact": "QA's opt-in analytics parity leg now picks its candidate page the way the correctness inventory does on a partial build (the root when in scope and answering, else the first built entry), records capture_page and root_fallback, and reports no_in_scope_page_captured (skipped) or no_capture_page_answered (blocker) without loading the baseline. A topology entry that differs from the root only by its own query string is no longer merged into the root. docs/qa-and-test-orders.md documents the capture fallback, both outcomes, path-based step routing and the local-serve manual_review exception.",
7232
+ "compatibility": "compatible",
7233
+ "migration": "none",
7234
+ "changes": [
7235
+ {
7236
+ "class": "named_surface",
7237
+ "path": "docs/qa-and-test-orders.md",
7238
+ "surface_entry": "docs/qa-and-test-orders.md",
7239
+ "summary": "Document the partial-scope analytics capture fallback for the correctness and parity legs, the no_in_scope_page_captured and no_capture_page_answered outcomes, path-based step routing with query-routed entries kept apart from the root, and the local-serve manual_review exception with data-layer-purchase still blocking."
7240
+ }
7241
+ ],
7242
+ "entry_sha256": "36fe47ebc1bd791d6017e5a50a2112597392222419883993eaca378c03a45996"
7243
+ },
7244
+ {
7245
+ "id": "RL-0159",
7246
+ "sequence": 158,
7247
+ "date": "2026-09-27",
7248
+ "kind": "release",
7249
+ "surface_version": null,
7250
+ "changelog_section": "1.43.1+agent.17",
7251
+ "changelog_sha256": "c479b34451dfed258ce2b0a27606a77ab74ffc80bac67def6a53ed6dd1209148",
7252
+ "agent_impact": "prepare-build refuses any configurable output path inside its target lock directory or the staging and tomb directories the lock creates beside it, directly or through a directory alias. The per-target and progress allocation locks publish their owner with the directory and refuse an ownerless lock after about a second, naming it; stage producers that edit the Assembly Report wait for a prepare-build holding the target lock, and waiver --dry-run previews take no lock.",
7253
+ "compatibility": "compatible",
7254
+ "migration": "Choose output paths outside .campaign-runtime/input/.design-source-package.json.lock. A lock directory without owner.json, left by an older release, is no longer recovered after ten seconds: confirm no campaigns-os process is working on the target, then remove it.",
7255
+ "changes": [
7256
+ {
7257
+ "class": "cli_surface",
7258
+ "path": "src/cli.mjs",
7259
+ "surface_entry": "prepare-build",
7260
+ "summary": "Take the per-target lock through the shared target-lock module and reserve the lock directory, its .lock.* siblings and their aliases in the output-collision checks."
7261
+ },
7262
+ {
7263
+ "class": "named_surface",
7264
+ "path": "docs/design-source-package.md",
7265
+ "surface_entry": "docs/design-source-package.md",
7266
+ "summary": "State that stage producers take the target lock, that an ownerless lock is never taken over, and that outputs inside the lock directory are refused."
7267
+ },
7268
+ {
7269
+ "class": "named_surface",
7270
+ "path": "docs/progress-snapshots.md",
7271
+ "surface_entry": "docs/progress-snapshots.md",
7272
+ "summary": "Replace the ten-second ownerless recovery with the atomic owner publication, the ownerless refusal and the offline procedure, and name the lock in the warning."
7273
+ }
7274
+ ],
7275
+ "entry_sha256": "6e01214c091eea12b92e18880aad38911c2c093d6e1554da21b90eff3fe62e32"
7276
+ },
7277
+ {
7278
+ "id": "RL-0160",
7279
+ "sequence": 159,
7280
+ "date": "2026-09-27",
7281
+ "kind": "release",
7282
+ "surface_version": null,
7283
+ "changelog_section": "1.43.1+agent.18",
7284
+ "changelog_sha256": "9d67f3051f960cbf01912f4138482cfecf25b2f6ece64ab4f0f14eb975e982e7",
7285
+ "agent_impact": "prepare-build keeps a Design Source Package it synthesized recorded as synthesized across a failure or kill between package and report publication (a pending provenance record beside the package), records the hash of the exact source-html manifest bytes it parsed, and with --map-id writes the fetched spec to the shared cache only under the per-target lock.",
7286
+ "compatibility": "compatible",
7287
+ "migration": "none",
7288
+ "changes": [
7289
+ {
7290
+ "class": "cli_surface",
7291
+ "path": "src/cli.mjs",
7292
+ "surface_entry": "prepare-build",
7293
+ "summary": "Write and consult a pending Design Source Package provenance record around package publication, hash the manifest bytes intake parsed, and defer the --map-id cache write into the prepare-build lock."
7294
+ },
7295
+ {
7296
+ "class": "named_surface",
7297
+ "path": "docs/design-source-package.md",
7298
+ "surface_entry": "docs/design-source-package.md",
7299
+ "summary": "Document the pending provenance record, the lock-held --map-id cache write, and the single-read manifest hash."
7300
+ },
7301
+ {
7302
+ "class": "named_surface",
7303
+ "path": "docs/build-packet.md",
7304
+ "surface_entry": "docs/build-packet.md",
7305
+ "summary": "State that the fetched-spec cache is written only under the per-target prepare-build lock."
7306
+ }
7307
+ ],
7308
+ "entry_sha256": "6e0890174577dcc2eca884e5321d163a012ca50ccec56276557133296772b042"
7309
+ },
7310
+ {
7311
+ "id": "RL-0161",
7312
+ "sequence": 160,
7313
+ "date": "2026-09-27",
7314
+ "kind": "release",
7315
+ "surface_version": null,
7316
+ "changelog_section": "1.43.1+agent.19",
7317
+ "changelog_sha256": "48dbf60f2eb321f33e6aaf78206c06ab58107e4b295b2981a9b8d81849a08598",
7318
+ "agent_impact": "No command behaves differently: invocation policy (session-recovery bypasses, where the stale run-session closeout runs and what suppresses it, lifecycle journal exemptions, the --dry-run implementers and the qa run session auto-end) now has one owner in the CLI, and the did-you-mean command list derives from it.",
7319
+ "compatibility": "compatible",
7320
+ "migration": "none",
7321
+ "changes": [
7322
+ {
7323
+ "class": "cli_surface",
7324
+ "path": "src/cli.mjs",
7325
+ "surface_entry": "start",
7326
+ "summary": "Every command, start included, runs the same steps in the same order as before; the rules for which steps run now live in one declaration instead of in each step."
7327
+ }
7328
+ ],
7329
+ "entry_sha256": "b07d6b3c6871a4c32c913cde03e4f7612359332a82d23b132cfe178509645a76"
7330
+ },
7331
+ {
7332
+ "id": "RL-0162",
7333
+ "sequence": 161,
7334
+ "date": "2026-09-27",
7335
+ "kind": "release",
7336
+ "surface_version": null,
7337
+ "changelog_section": "1.43.1+agent.20",
7338
+ "changelog_sha256": "b504e2a11e3506ff186f434b113a3c3f461d66611a997e3cf5d6ecddb491d2ff",
7339
+ "agent_impact": "No command behaves differently. The doctor checks, packet inspection and next-step picker moved under src/doctor/, and the agent-relevant change policy now classifies a change there as a CLI-surface change, so doctor check changes keep appearing in this ledger.",
7340
+ "compatibility": "compatible",
7341
+ "migration": "none",
7342
+ "changes": [
7343
+ {
7344
+ "class": "compatibility_policy",
7345
+ "path": "contracts/agent-relevant-change-policy.v1.json",
7346
+ "surface_entry": "contracts/agent-relevant-change-policy.v1.json",
7347
+ "summary": "Classify a change under src/doctor/ as a CLI-surface change, ahead of the broad src/ ignore."
7348
+ },
7349
+ {
7350
+ "class": "cli_surface",
7351
+ "path": "src/cli.mjs",
7352
+ "surface_entry": "doctor",
7353
+ "summary": "The CLI imports the doctor checks, packet inspection, next-step picker and shared helpers from their new modules; every command behaves as before."
7354
+ },
7355
+ {
7356
+ "class": "cli_surface",
7357
+ "path": "src/doctor/checks.mjs",
7358
+ "surface_entry": "doctor",
7359
+ "summary": "The doctor check registries, packet validation and every check they run, moved unchanged out of the CLI module."
7360
+ },
7361
+ {
7362
+ "class": "cli_surface",
7363
+ "path": "src/doctor/inspect.mjs",
7364
+ "surface_entry": "doctor",
7365
+ "summary": "The doctor command, packet inspection and built-output inspection, moved unchanged out of the CLI module."
7366
+ },
7367
+ {
7368
+ "class": "cli_surface",
7369
+ "path": "src/doctor/next-step.mjs",
7370
+ "surface_entry": "next",
7371
+ "summary": "The next-step picker and the gate issues next reads from doctor, moved unchanged out of the CLI module."
7372
+ },
7373
+ {
7374
+ "class": "documentation",
7375
+ "path": "docs/release-ledger-authoring-guide.md",
7376
+ "surface_entry": "docs/release-ledger-authoring-guide.md",
7377
+ "summary": "Name src/agent/ and src/doctor/ alongside src/cli.mjs as the classified paths inside src/."
7378
+ }
7379
+ ],
7380
+ "entry_sha256": "365537b5c46368048f99250ef3b794beb170a06cd0b8e7bdfa6e44a99eddd023"
7381
+ },
7382
+ {
7383
+ "id": "RL-0163",
7384
+ "sequence": 162,
7385
+ "date": "2026-09-27",
7386
+ "kind": "release",
7387
+ "surface_version": null,
7388
+ "changelog_section": "1.43.1+agent.21",
7389
+ "changelog_sha256": "6e4df1a341d47dce5e71e045cb0c182400ea4abaf57d5fbe61b39d8cdb3be4f8",
7390
+ "agent_impact": "No command behaves differently: prepare-build, start and build publish the Design Source Package, its pending provenance record and their JSON outputs exactly as before, with that publication now owned by one module instead of restated in prepare-build.",
7391
+ "compatibility": "compatible",
7392
+ "migration": "none",
7393
+ "changes": [
7394
+ {
7395
+ "class": "cli_surface",
7396
+ "path": "src/cli.mjs",
7397
+ "surface_entry": "prepare-build",
7398
+ "summary": "prepare-build names its outputs and hands Design Source Package publication (lock, collision checks, evidence re-checks, pending provenance record, publication order) to its one owner; every on-disk name and message is unchanged."
7399
+ }
7400
+ ],
7401
+ "entry_sha256": "0b4d674dd8df3355b63f63afb8a66a6a57e6c13ee237bebacacf13a1b3317a8d"
7402
+ },
7403
+ {
7404
+ "id": "RL-0164",
7405
+ "sequence": 163,
7406
+ "date": "2026-09-28",
7407
+ "kind": "release",
7408
+ "surface_version": null,
7409
+ "changelog_section": "1.43.1+agent.22",
7410
+ "changelog_sha256": "07ef03ec9df3d1b56fae28b712eef11374e6990282b03ce0f56ea6531eafcfb7",
7411
+ "agent_impact": "None. doctor, next, prepare-build, start and build behave exactly as before; a shared path-identity helper moved out of src/doctor/ into the shared helper module, stale lock-holder comments were reworded, a private clone helper was renamed, and unused CLI imports were removed.",
7412
+ "compatibility": "compatible",
7413
+ "migration": "none",
7414
+ "changes": [
7415
+ {
7416
+ "class": "cli_surface",
7417
+ "path": "src/cli.mjs",
7418
+ "surface_entry": "prepare-build",
7419
+ "summary": "The CLI drops three imports nothing used; every command behaves as before."
7420
+ },
7421
+ {
7422
+ "class": "cli_surface",
7423
+ "path": "src/doctor/next-step.mjs",
7424
+ "surface_entry": "next",
7425
+ "summary": "The next-step picker imports the filesystem path-identity helper from the shared helper module instead of defining it; every check and message is unchanged."
7426
+ }
7427
+ ],
7428
+ "entry_sha256": "ace0043152c12322dcb17f29b86c44ca09083f4e425460eda4034cc5020068ba"
7429
+ },
7430
+ {
7431
+ "id": "RL-0165",
7432
+ "sequence": 164,
7433
+ "date": "2026-09-28",
7434
+ "kind": "release",
7435
+ "surface_version": null,
7436
+ "changelog_section": "1.43.1+agent.23",
7437
+ "changelog_sha256": "c6406bad6b7c425016e5c2944b3a6134564089364f99082adbdb63eb6792b040",
7438
+ "agent_impact": "None. doctor behaves exactly as before; a code comment in the route_root declaration check was reworded to use a neutral placeholder.",
7439
+ "compatibility": "compatible",
7440
+ "migration": "none",
7441
+ "changes": [
7442
+ {
7443
+ "class": "cli_surface",
7444
+ "path": "src/doctor/checks.mjs",
7445
+ "surface_entry": "doctor",
7446
+ "summary": "A comment in the route_root declaration check now uses a neutral placeholder for its near-miss examples; every check and message is unchanged."
7447
+ }
7448
+ ],
7449
+ "entry_sha256": "54a238fae479cad0e0ccc56eee0bb82246d73b8f30e588872e5dccfe46c2904f"
7450
+ },
7451
+ {
7452
+ "id": "RL-0166",
7453
+ "sequence": 165,
7454
+ "date": "2026-09-28",
7455
+ "kind": "release",
7456
+ "surface_version": "1.43.2",
7457
+ "changelog_section": "1.43.2",
7458
+ "changelog_sha256": "86a252e790db16c68334bb38f994da664e960b3e00512522d46cc9faf95506c5",
7459
+ "agent_impact": "None beyond the version. The 1.43.2 package ships the same-surface changes recorded as 1.43.1+agent.1 through 1.43.1+agent.23; effects.v1.json notes for the eight --dry-run invocations now point at the dryRun declaration in src/invocation.mjs instead of the removed DRY_RUN_COMMANDS set, with every declared effect unchanged.",
7460
+ "compatibility": "compatible",
7461
+ "migration": "Update to the exact 1.43.2 package and refresh bundled skills to 1.43.2+skills.1 before starting a new agent session.",
7462
+ "changes": [
7463
+ {
7464
+ "class": "compatibility_policy",
7465
+ "path": "contracts/supported-surface.json",
7466
+ "surface_entry": "contracts/supported-surface.json",
7467
+ "summary": "Advance the supported surface to 1.43.2 and record the new effects.v1.json hash."
7468
+ },
7469
+ {
7470
+ "class": "compatibility_policy",
7471
+ "path": "contracts/effects.v1.json",
7472
+ "surface_entry": "contracts/effects.v1.json",
7473
+ "summary": "Reword eight --dry-run notes to name the dryRun declaration in src/invocation.mjs instead of the removed DRY_RUN_COMMANDS set; declared effects are unchanged."
7474
+ },
7475
+ {
7476
+ "class": "named_surface",
7477
+ "path": "docs/local-setup.md",
7478
+ "surface_entry": "docs/local-setup.md",
7479
+ "summary": "Pin the copy-paste local setup install command to the 1.43.2 package release."
7480
+ },
7481
+ {
7482
+ "class": "documentation",
7483
+ "path": "docs/orientation-contract-reference.md",
7484
+ "surface_entry": "docs/orientation-contract-reference.md",
7485
+ "summary": "Restamp the generated orientation reference for surface 1.43.2."
7486
+ },
7487
+ {
7488
+ "class": "named_surface",
7489
+ "path": "docs/runtime-readiness.md",
7490
+ "surface_entry": "docs/runtime-readiness.md",
7491
+ "summary": "Restamp the generated runtime reference for surface 1.43.2."
7492
+ },
7493
+ {
7494
+ "class": "named_surface",
7495
+ "path": "docs/skills-revision.md",
7496
+ "surface_entry": "docs/skills-revision.md",
7497
+ "summary": "Update displayed bundle revision examples to 1.43.2+skills.1."
7498
+ },
7499
+ {
7500
+ "class": "generated_runtime",
7501
+ "path": "package-lock.json",
7502
+ "surface_entry": null,
7503
+ "summary": "Stamp package version 1.43.2 without changing dependency resolutions."
7504
+ },
7505
+ {
7506
+ "class": "package_export",
7507
+ "path": "package.json",
7508
+ "surface_entry": null,
7509
+ "summary": "Release package version 1.43.2 without changing exports or dependencies."
7510
+ },
7511
+ {
7512
+ "class": "skill",
7513
+ "path": "skills.json",
7514
+ "surface_entry": "skills.json",
7515
+ "summary": "Advance bundle revision to 1.43.2+skills.1 and every skill version one patch."
7516
+ },
7517
+ {
7518
+ "class": "skill",
7519
+ "path": "skills/campaign-lifecycle-orientation/SKILL.md",
7520
+ "surface_entry": null,
7521
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7522
+ },
7523
+ {
7524
+ "class": "skill",
7525
+ "path": "skills/campaign-readback-classification/SKILL.md",
7526
+ "surface_entry": null,
7527
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7528
+ },
7529
+ {
7530
+ "class": "skill",
7531
+ "path": "skills/campaign-run-evidence/SKILL.md",
7532
+ "surface_entry": null,
7533
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7534
+ },
7535
+ {
7536
+ "class": "skill",
7537
+ "path": "skills/contribution-intake/SKILL.md",
7538
+ "surface_entry": null,
7539
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7540
+ },
7541
+ {
7542
+ "class": "skill",
7543
+ "path": "skills/next-campaigns-build/SKILL.md",
7544
+ "surface_entry": null,
7545
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7546
+ },
7547
+ {
7548
+ "class": "skill",
7549
+ "path": "skills/next-campaigns-os/SKILL.md",
7550
+ "surface_entry": null,
7551
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7552
+ },
7553
+ {
7554
+ "class": "skill",
7555
+ "path": "skills/next-campaigns-os-setup/SKILL.md",
7556
+ "surface_entry": null,
7557
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7558
+ },
7559
+ {
7560
+ "class": "skill",
7561
+ "path": "skills/next-campaigns-polish/SKILL.md",
7562
+ "surface_entry": null,
7563
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7564
+ },
7565
+ {
7566
+ "class": "skill",
7567
+ "path": "skills/next-campaigns-qa/SKILL.md",
7568
+ "surface_entry": null,
7569
+ "summary": "Stamp bundle revision 1.43.2+skills.1 and advance the skill version one patch."
7570
+ }
7571
+ ],
7572
+ "entry_sha256": "7aa355a3a9aa0b93c526eb1fe426db0fa13fbdb920b96edef93fe62d49d848d6"
6149
7573
  }
6150
7574
  ]
6151
7575
  }