@nextcommerce/campaigns-os 1.37.3 → 1.43.1
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/AGENTS.md +114 -10
- package/CHANGELOG.md +708 -0
- package/README.md +44 -31
- package/agents/claude/CLAUDE.md +5 -1
- package/campaign-spec/dist/types.d.ts +2 -0
- package/contracts/agent-relevant-change-policy.v1.json +11 -1
- package/contracts/effects.v1.json +4887 -0
- package/contracts/migration-sidecar-bundle.v0.json +9 -0
- package/contracts/release-ledger.json +1541 -0
- package/contracts/supported-surface.json +33 -12
- package/docs/build-packet.md +83 -22
- package/docs/campaigns-os-build-flow.md +2 -2
- package/docs/demo-preview.md +1 -1
- package/docs/diagnostics.md +7 -4
- package/docs/effects.md +350 -0
- package/docs/gateway-login.md +113 -0
- package/docs/local-setup.md +51 -0
- package/docs/migration-sidecar-bundle.md +6 -1
- package/docs/orientation-contract-reference.md +4 -1
- package/docs/progress-snapshots.md +9 -3
- package/docs/qa-and-test-orders.md +29 -13
- package/docs/readback.md +523 -0
- package/docs/runtime-readiness.md +1 -1
- package/docs/sdk-storage-compatibility.md +1 -1
- package/docs/skills-revision.md +364 -0
- package/docs/supported-surface.md +11 -3
- package/docs/versioning.md +8 -4
- package/package.json +10 -4
- package/schemas/campaign-runtime-assembly-report.v0.schema.json +6 -1
- package/schemas/campaign-runtime-build-packet.v0.schema.json +11 -1
- package/schemas/campaign-spec.v4.schema.json +4 -0
- package/schemas/campaigns-os-effects.v1.schema.json +211 -0
- package/schemas/campaigns-os-progress-snapshot.v0.schema.json +1 -0
- package/schemas/campaigns-os-qa-verdict-sidecar.v0.schema.json +1 -0
- package/schemas/campaigns-os-qa-verdict.v0.schema.json +1 -0
- package/schemas/campaigns-os-readback.v2.schema.json +267 -0
- package/schemas/campaigns-os-run-record.v0.schema.json +1 -0
- package/skills/campaign-lifecycle-orientation/SKILL.md +179 -0
- package/skills/campaign-readback-classification/SKILL.md +230 -0
- package/skills/campaign-run-evidence/SKILL.md +142 -0
- package/skills/contribution-intake/SKILL.md +85 -0
- package/skills/next-campaigns-build/SKILL.md +33 -12
- package/skills/next-campaigns-os/SKILL.md +59 -22
- package/skills/next-campaigns-os/references/session-intake.md +4 -4
- package/skills/next-campaigns-os-setup/SKILL.md +35 -14
- package/skills/next-campaigns-polish/SKILL.md +43 -17
- package/skills/next-campaigns-qa/SKILL.md +53 -28
- package/skills.json +40 -7
- package/src/admin-transport.mjs +123 -0
- package/src/cli.mjs +1178 -270
- package/src/credential-store.mjs +183 -0
- package/src/deviation.mjs +3 -2
- package/src/diagnostic.mjs +4 -1
- package/src/finding-cause.mjs +14 -10
- package/src/gate-actions.mjs +2 -2
- package/src/install-mode.mjs +17 -9
- package/src/lifecycle.mjs +96 -0
- package/src/login.mjs +152 -0
- package/src/package-install-fixture.mjs +3 -2
- package/src/polish-node.mjs +5 -2
- package/src/progress-node.mjs +3 -2
- package/src/progress.mjs +5 -3
- package/src/qa-node.mjs +105 -36
- package/src/qa-publish.mjs +112 -2
- package/src/qa-sidecar.mjs +2 -0
- package/src/qa-verdict-discovery.mjs +11 -0
- package/src/qa-verdict-publish.mjs +1 -0
- package/src/qa-verdict.mjs +8 -1
- package/src/readback.mjs +1937 -0
- package/src/remit.mjs +17 -3
- package/src/run-record-closeout.mjs +3 -4
- package/src/run-record.mjs +4 -0
- package/src/sidecar-bundle.mjs +21 -0
- package/src/spec-source-identity.mjs +44 -0
- package/src/stage-ledger.mjs +4 -1
- package/src/tooling-setup.mjs +160 -0
|
@@ -5357,6 +5357,1547 @@
|
|
|
5357
5357
|
}
|
|
5358
5358
|
],
|
|
5359
5359
|
"entry_sha256": "fb317fe901bbab34f0c909b523a9e4e07040285a5f6883ee572c6f927681c0b1"
|
|
5360
|
+
},
|
|
5361
|
+
{
|
|
5362
|
+
"id": "RL-0131",
|
|
5363
|
+
"sequence": 131,
|
|
5364
|
+
"date": "2026-09-19",
|
|
5365
|
+
"kind": "release",
|
|
5366
|
+
"surface_version": null,
|
|
5367
|
+
"changelog_section": "1.37.3+agent.1",
|
|
5368
|
+
"changelog_sha256": "46f21d1154cbd769f70ad006d60c7e37664367ca7e1f91a964ee92ec2753789d",
|
|
5369
|
+
"agent_impact": "docs/versioning.md no longer states a package version literal; read the number from package.json, surface_version, or the registry. The progress export is documented as shipped in 1.37.1 and later, not as a candidate. No command, schema, skill or export changed.",
|
|
5370
|
+
"compatibility": "compatible",
|
|
5371
|
+
"migration": "none",
|
|
5372
|
+
"changes": [
|
|
5373
|
+
{
|
|
5374
|
+
"class": "compatibility_policy",
|
|
5375
|
+
"path": "docs/versioning.md",
|
|
5376
|
+
"surface_entry": "docs/versioning.md",
|
|
5377
|
+
"summary": "Drop the restated package version; point at package.json, surface_version and the registry instead."
|
|
5378
|
+
},
|
|
5379
|
+
{
|
|
5380
|
+
"class": "named_surface",
|
|
5381
|
+
"path": "docs/progress-snapshots.md",
|
|
5382
|
+
"surface_entry": "docs/progress-snapshots.md",
|
|
5383
|
+
"summary": "Describe the progress export as shipped in 1.37.1 and later, not a candidate absent from the published install."
|
|
5384
|
+
},
|
|
5385
|
+
{
|
|
5386
|
+
"class": "documentation",
|
|
5387
|
+
"path": "AGENTS.md",
|
|
5388
|
+
"surface_entry": "AGENTS.md",
|
|
5389
|
+
"summary": "Describe 1.36.0 progress observations as published in 1.37.1 and later, not a candidate."
|
|
5390
|
+
},
|
|
5391
|
+
{
|
|
5392
|
+
"class": "compatibility_policy",
|
|
5393
|
+
"path": "docs/supported-surface.md",
|
|
5394
|
+
"surface_entry": "docs/supported-surface.md",
|
|
5395
|
+
"summary": "Describe the 1.36.0 progress export as published in 1.37.1 and later, not a candidate."
|
|
5396
|
+
}
|
|
5397
|
+
],
|
|
5398
|
+
"entry_sha256": "2d229149aed64ab580016056719f83edb65634dabacb824c0f4d89c003a9b4ae"
|
|
5399
|
+
},
|
|
5400
|
+
{
|
|
5401
|
+
"id": "RL-0132",
|
|
5402
|
+
"sequence": 132,
|
|
5403
|
+
"date": "2026-09-21",
|
|
5404
|
+
"kind": "release",
|
|
5405
|
+
"surface_version": "1.38.0",
|
|
5406
|
+
"changelog_section": "1.38.0",
|
|
5407
|
+
"changelog_sha256": "d5fcdc641de2c9fa774e4802732cb54b835243e1252b98cfb68bf9cb92c9170c",
|
|
5408
|
+
"agent_impact": "Login/logout are additive; spec derive --from-store now requires gateway login by default. Existing direct callers must explicitly name their Admin-token environment variable. Store derivation rules remain unchanged. Gateway availability is limited to the admitted owned-store private pilot.",
|
|
5409
|
+
"compatibility": "breaking",
|
|
5410
|
+
"migration": "For admitted pilot stores, run campaigns-os login --store <subdomain> before default store derivation. To retain existing direct Admin reads, explicitly add --store-token-source env:<VAR> using the existing variable. No implicit environment fallback remains. Publication and external trials are separately gated.",
|
|
5411
|
+
"changes": [
|
|
5412
|
+
{
|
|
5413
|
+
"class": "compatibility_policy",
|
|
5414
|
+
"path": "contracts/supported-surface.json",
|
|
5415
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
5416
|
+
"summary": "Register login/logout and the gateway guide; bump supported surface to 1.38.0."
|
|
5417
|
+
},
|
|
5418
|
+
{
|
|
5419
|
+
"class": "named_surface",
|
|
5420
|
+
"path": "docs/build-packet.md",
|
|
5421
|
+
"surface_entry": "docs/build-packet.md",
|
|
5422
|
+
"summary": "Replace implicit Admin environment lookup with gateway default and explicit direct-token migration."
|
|
5423
|
+
},
|
|
5424
|
+
{
|
|
5425
|
+
"class": "named_surface",
|
|
5426
|
+
"path": "docs/gateway-login.md",
|
|
5427
|
+
"surface_entry": "docs/gateway-login.md",
|
|
5428
|
+
"summary": "Explain browser consent, credential storage, refresh/logout recovery, explicit direct migration and private-pilot limits."
|
|
5429
|
+
},
|
|
5430
|
+
{
|
|
5431
|
+
"class": "documentation",
|
|
5432
|
+
"path": "docs/orientation-contract-reference.md",
|
|
5433
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
5434
|
+
"summary": "Regenerate supported-surface version reference for 1.38.0."
|
|
5435
|
+
},
|
|
5436
|
+
{
|
|
5437
|
+
"class": "named_surface",
|
|
5438
|
+
"path": "docs/runtime-readiness.md",
|
|
5439
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
5440
|
+
"summary": "Regenerate supported-surface version reference for 1.38.0."
|
|
5441
|
+
},
|
|
5442
|
+
{
|
|
5443
|
+
"class": "compatibility_policy",
|
|
5444
|
+
"path": "docs/supported-surface.md",
|
|
5445
|
+
"surface_entry": "docs/supported-surface.md",
|
|
5446
|
+
"summary": "Document login commands and breaking gateway-default migration within the private pilot."
|
|
5447
|
+
},
|
|
5448
|
+
{
|
|
5449
|
+
"class": "generated_runtime",
|
|
5450
|
+
"path": "package-lock.json",
|
|
5451
|
+
"surface_entry": null,
|
|
5452
|
+
"summary": "Align root package version to 1.38.0 without dependency changes."
|
|
5453
|
+
},
|
|
5454
|
+
{
|
|
5455
|
+
"class": "package_export",
|
|
5456
|
+
"path": "package.json",
|
|
5457
|
+
"surface_entry": null,
|
|
5458
|
+
"summary": "Advance package to 1.38.0 and ship the gateway guide for login commands and breaking default transport migration."
|
|
5459
|
+
},
|
|
5460
|
+
{
|
|
5461
|
+
"class": "cli_surface",
|
|
5462
|
+
"path": "src/cli.mjs",
|
|
5463
|
+
"surface_entry": "login",
|
|
5464
|
+
"summary": "Add login/logout wiring, gateway-default store reads with explicit warned direct-token migration, local safe status and separate telemetry warning; clarify lifecycle exclusions."
|
|
5465
|
+
}
|
|
5466
|
+
],
|
|
5467
|
+
"entry_sha256": "7a48d75f0b2e9413126d288faced22a2f5dbb58bd7548374631bb42f8e979a14"
|
|
5468
|
+
},
|
|
5469
|
+
{
|
|
5470
|
+
"id": "RL-0133",
|
|
5471
|
+
"sequence": 133,
|
|
5472
|
+
"date": "2026-09-21",
|
|
5473
|
+
"kind": "release",
|
|
5474
|
+
"surface_version": null,
|
|
5475
|
+
"changelog_section": "1.38.0+agent.1",
|
|
5476
|
+
"changelog_sha256": "48e5f9e0cd7d0be7c34bebfa811c3671a1722840f69dccc513f3d98c027ccc78",
|
|
5477
|
+
"agent_impact": "The packaged lifecycle skill now matches the 1.38.0 gateway-default store-read behavior. Existing direct Admin callers must explicitly select env:<VAR>; implicit environment lookup and gateway-failure fallback are not supported.",
|
|
5478
|
+
"compatibility": "compatible",
|
|
5479
|
+
"migration": "Refresh the installed next-campaigns-os skill to 1.0.18. The runtime migration remains the one recorded in RL-0132: use an admitted gateway login or explicitly select --store-token-source env:<VAR>.",
|
|
5480
|
+
"changes": [
|
|
5481
|
+
{
|
|
5482
|
+
"class": "skill",
|
|
5483
|
+
"path": "skills.json",
|
|
5484
|
+
"surface_entry": "skills.json",
|
|
5485
|
+
"summary": "Align only the next-campaigns-os manifest version to 1.0.18."
|
|
5486
|
+
},
|
|
5487
|
+
{
|
|
5488
|
+
"class": "skill",
|
|
5489
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
5490
|
+
"surface_entry": null,
|
|
5491
|
+
"summary": "Correct step 5 to gateway login default and explicit warned direct-token selection; bump skill to 1.0.18."
|
|
5492
|
+
}
|
|
5493
|
+
],
|
|
5494
|
+
"entry_sha256": "c31d5b0fe0f4bcd871897d923466d529f5399010b0bb009326789d69294e00c8"
|
|
5495
|
+
},
|
|
5496
|
+
{
|
|
5497
|
+
"id": "RL-0134",
|
|
5498
|
+
"sequence": 134,
|
|
5499
|
+
"date": "2026-09-22",
|
|
5500
|
+
"kind": "release",
|
|
5501
|
+
"surface_version": null,
|
|
5502
|
+
"changelog_section": "1.38.0+agent.2",
|
|
5503
|
+
"changelog_sha256": "0d1bfe9525ba8a6c5e94af7763683b26f2bc11b45035905ea95b48ba67e12497",
|
|
5504
|
+
"agent_impact": "Facts about the lifecycle journal, however the journal was selected (--lifecycle-journal, CAMPAIGNS_OS_LIFECYCLE_LOG, or an active run session). A known command run with --no-write no longer appends an entry. A refused invocation — an unknown command, an unknown subcommand refused before its handler runs, or a flag the command refuses up front — never appends one and creates no file of its own, with or without --no-write. A command that fails inside its handler still appends; `next <unknown-stage>` is such a failure, because it resolves the workspace before it rejects the stage. `run status` never appends one, with or without --no-write. One effect still precedes argument refusal: `start`, `prepare-build`, `build`, `run start` and `run end` close out a stale run session at the root they are about to act on (Run Record assembled and remitted under the usual consent, session file cleared) before argv is refused — a declared effect of those commands, now suppressed by --no-write, which therefore leaves the target byte-identical. A workflow that needs a journal entry for an inspection must run a known command without --no-write; removing --no-write from a refused invocation or from `run status` will not produce one. A workflow that relied on `run end --no-write` reporting a stale closeout gets \"no active run session to end\" instead: --no-write no longer performs the closeout it could not record.",
|
|
5505
|
+
"compatibility": "compatible",
|
|
5506
|
+
"migration": "none",
|
|
5507
|
+
"changes": [
|
|
5508
|
+
{
|
|
5509
|
+
"class": "cli_surface",
|
|
5510
|
+
"path": "src/cli.mjs",
|
|
5511
|
+
"surface_entry": "run",
|
|
5512
|
+
"summary": "--no-write writes nothing: it suppresses the lifecycle-journal append for every command and the pre-dispatch stale-session closeout that start/prepare-build/build/run start/run end perform. A refused invocation (unknown command, an unknown subcommand refused before its handler runs, or a flag the command refuses up front) and `run status` never append an entry; help text states both and names the closeout as the one effect that precedes refusal."
|
|
5513
|
+
},
|
|
5514
|
+
{
|
|
5515
|
+
"class": "documentation",
|
|
5516
|
+
"path": "AGENTS.md",
|
|
5517
|
+
"surface_entry": "AGENTS.md",
|
|
5518
|
+
"summary": "State the Run Telemetry default: remit on by default for the canonical endpoint, announced on stderr, capture local and opt-in (a journal selected by flag, env or an active run session), the three ways to turn remit off, and what a refused invocation does and does not write."
|
|
5519
|
+
}
|
|
5520
|
+
],
|
|
5521
|
+
"entry_sha256": "acc83968f757fbcb96577b1232f0af280bea6d7e98b401d7b14e61aeaed144c0"
|
|
5522
|
+
},
|
|
5523
|
+
{
|
|
5524
|
+
"id": "RL-0135",
|
|
5525
|
+
"sequence": 135,
|
|
5526
|
+
"date": "2026-09-22",
|
|
5527
|
+
"kind": "release",
|
|
5528
|
+
"surface_version": "1.39.0",
|
|
5529
|
+
"changelog_section": "1.39.0",
|
|
5530
|
+
"changelog_sha256": "7fa7017fbcb7b6d82f2571e3179d54193f60d012e11683e0a831f692bb8deb44",
|
|
5531
|
+
"agent_impact": "A new supported CLI command, `campaigns-os readback <target-repo-root> [--json]`, projects a read-only view of a run's emitted artifacts and writes nothing under the target (no lifecycle journal entry either). Its JSON payload is the new `campaigns-os-readback/v2` contract: staleness is assessed per artifact, so `staleness.stale` is true when ANY loaded artifact predates the checkout's last HEAD movement, where the previous projection compared only the newest artifact and reported such a set fresh. A consumer gating on freshness should accept `campaigns-os-readback/v2` and read `staleness.stale_keys` or `staleness.artifacts` to name the stale artifacts. An artifact that recorded a `generated_at` the readback cannot parse has an age it never established: `staleness.unparseable_keys` names those artifacts in render order, their artifact rows carry the shape of the refused value rather than the value, and `clean` is false whenever that list is non-empty, so an unknown age can no longer ride along on a fresh sibling. `computable` and `stale` keep their meanings, and an artifact carrying no `generated_at` key at all is unchanged — it recorded no age to check, so it stays out of the comparison and is not by itself unclean. Separately, the four mutating commands that lacked one gain `--dry-run`: `run-record`, `qa publish`, `checkpoint waive` and `theme waive`. Each validates and assembles exactly as the real command does, writes nothing under the target and opens no connection, and exits as the real command would — so an agent can preview a Run Record, a verdict publish or a waiver before committing to it. Validation is not weaker under the flag: every check on the route from argv to the first effect runs, by the same code, including the ones that live inside the effect — an invalid Run Record is refused with the writer's own message and exit 1, a waive over a report that is not an Assembly Report object is refused as the commit refuses it, and a `--proxy-base` the transport declines before it opens a socket fails `qa publish --dry-run` with `publish_failed` and exit 1 exactly as the real publish does. The envelopes gain `dry_run: true` plus `would_write`/`would_remit` and `would_remit_refused` (run-record), `would_publish`/`would_post` with `status: \"dry_run\"` (qa publish), and `would_write` with `status: \"dry_run\"` (both waives); `run end` carries the flag through and leaves the session open. On those commands a `--dry-run` invocation also appends no command-lifecycle entry and runs no stale-session closeout, so an idle session is left on disk for a real invocation and `run end --dry-run` at a root whose only session is stale refuses with `No active run session to end`; on a command that does not implement the flag (`qa run`, say) the shared parser still accepts it and the command behaves exactly as before, lifecycle entry included. No existing command, flag or output changed.",
|
|
5532
|
+
"compatibility": "additive",
|
|
5533
|
+
"migration": "none",
|
|
5534
|
+
"changes": [
|
|
5535
|
+
{
|
|
5536
|
+
"class": "compatibility_policy",
|
|
5537
|
+
"path": "contracts/supported-surface.json",
|
|
5538
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
5539
|
+
"summary": "Advance surface_version to 1.39.0 and add the readback command, its v2 schema and its contract doc to the supported surface."
|
|
5540
|
+
},
|
|
5541
|
+
{
|
|
5542
|
+
"class": "cli_surface",
|
|
5543
|
+
"path": "src/cli.mjs",
|
|
5544
|
+
"surface_entry": "readback",
|
|
5545
|
+
"summary": "Dispatch the new read-only readback command, document it in help, and exempt it from lifecycle-journal capture and from run-session resolution and stale-session sweeping, so its --packet is read only by the readback's own bounded reader. Add --dry-run to run-record, qa publish, checkpoint waive and theme waive (help, envelopes and exit codes unchanged for the real invocations), carry it through run end without clearing the session, route both waive paths through commitAssemblyReport itself so a dry run makes every check the commit makes and differs only in returning no report to write, validate the Run Record on both paths before the write that would otherwise be the only caller of the validator, put the remit destination through the transport's own gate under the flag, and exempt --dry-run invocations of the commands that implement the flag (DRY_RUN_COMMANDS) from lifecycle-journal capture and from the pre-dispatch stale-session sweep, leaving every other command's behaviour under the flag unchanged."
|
|
5546
|
+
},
|
|
5547
|
+
{
|
|
5548
|
+
"class": "schema",
|
|
5549
|
+
"path": "schemas/campaigns-os-readback.v2.schema.json",
|
|
5550
|
+
"surface_entry": "schemas/campaigns-os-readback.v2.schema.json",
|
|
5551
|
+
"summary": "Publish the campaigns-os-readback/v2 payload shape, including per-artifact staleness, the any-artifact aggregate, and staleness.unparseable_keys with the clean rule that an artifact of unestablished age makes the projection unclean."
|
|
5552
|
+
},
|
|
5553
|
+
{
|
|
5554
|
+
"class": "named_surface",
|
|
5555
|
+
"path": "docs/readback.md",
|
|
5556
|
+
"surface_entry": "docs/readback.md",
|
|
5557
|
+
"summary": "Document the readback contract: fields, the clean rule including the unknown-age condition and how it differs from an artifact that recorded no generated_at, exit codes, the bundled --example sample, and the v1 to v2 delta."
|
|
5558
|
+
},
|
|
5559
|
+
{
|
|
5560
|
+
"class": "documentation",
|
|
5561
|
+
"path": "docs/orientation-contract-reference.md",
|
|
5562
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
5563
|
+
"summary": "Regenerate the orientation reference for surface version 1.39.0 and the readback command."
|
|
5564
|
+
},
|
|
5565
|
+
{
|
|
5566
|
+
"class": "named_surface",
|
|
5567
|
+
"path": "docs/runtime-readiness.md",
|
|
5568
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
5569
|
+
"summary": "Regenerate the runtime reference for surface version 1.39.0."
|
|
5570
|
+
},
|
|
5571
|
+
{
|
|
5572
|
+
"class": "package_export",
|
|
5573
|
+
"path": "package.json",
|
|
5574
|
+
"surface_entry": null,
|
|
5575
|
+
"summary": "Version 1.39.0 and ship docs/readback.md in the npm pack."
|
|
5576
|
+
},
|
|
5577
|
+
{
|
|
5578
|
+
"class": "generated_runtime",
|
|
5579
|
+
"path": "package-lock.json",
|
|
5580
|
+
"surface_entry": null,
|
|
5581
|
+
"summary": "Regenerated lockfile version fields for 1.39.0."
|
|
5582
|
+
}
|
|
5583
|
+
],
|
|
5584
|
+
"entry_sha256": "ebd6da5237985b3bc5dbb4b3486818a32b97a5259d17a9d981662fc4d009658b"
|
|
5585
|
+
},
|
|
5586
|
+
{
|
|
5587
|
+
"id": "RL-0136",
|
|
5588
|
+
"sequence": 136,
|
|
5589
|
+
"date": "2026-09-23",
|
|
5590
|
+
"kind": "release",
|
|
5591
|
+
"surface_version": "1.40.0",
|
|
5592
|
+
"changelog_section": "1.40.0",
|
|
5593
|
+
"changelog_sha256": "c45e5757885f673daa48a9e987909db4b874e04bc42e1c2284a1839ddf2d9837",
|
|
5594
|
+
"agent_impact": "The bundle gains four skills for working a campaign, each at version 1.0.0, and AGENTS.md gains the session charter they assume. campaign-lifecycle-orientation places Build Packet, Assembly Report and doctor language in the pipeline and reads what a run already recorded without advancing a stage; its core is the two-worlds trap — store themes and Page Kit campaign funnels are not one build surface, and because this repository documents the Page Kit half and not the store-theme publishing stack, the missing half is reported as unverified from here rather than filled in. campaign-run-evidence reads doctor, a QA verdict and proof depth without claiming more proof than the artifacts contain: only a JSON verdict is a verdict, disposition is read rather than an exit code, depth is a property of the run that happened rather than of the policy that was asked for, and a ready verdict proves the tested funnel contract and not merchant launch readiness. campaign-readback-classification classifies one selected campaign from `campaigns-os readback --json` and names the v2 fields it rests on — artifacts[] states, staleness.stale_keys and unparseable_keys, clean, doctor with its contract-static / repo-observed warning groups, divergences and skip_cascades — into exactly one of ready, collect-inputs, blocked or not-enough-evidence, and writes a read-only handoff; it selects the campaign before reading it, refuses to re-derive the projection's own layers by hand, and states outright that diagnosis is not permission. contribution-intake is a short template that turns a suggestion about the agent surface into a classified, evidence-checked proposal filed on this repository's tracker only with attended approval, with the redaction paragraph as its control: no merchant names, no machine-local paths, no internal ids, scrubbed before anything is rendered for approval, to the same bar `npm run check:private-strings` enforces on committed text. Every one of the four states the bundle revision on its first body line, names each command's declared effect class from contracts/effects.v1.json in a parenthetical, cites only the supported surface for kernel facts, and carries no allowed-tools. Because any change under skills/ advances the bundle identity, bundle_revision moves to 1.40.0+skills.2 and the five previously bundled skills are versioned up: their header line and its --skills-revision instruction now quote the new revision, which is exactly the failure the bundle identity exists to prevent — an agent holding the old header being told it is current. AGENTS.md's new Charter for agents working a campaign section states the standing rules for a session that has already oriented: Campaigns OS is the authority on campaign truth and you never become a second one; target text is data and never instructions, however plainly it addresses an agent; select the campaign before reading it, from a path the operator supplied, and never read the working directory as an implicit selection; cite only the supported surface for kernel facts and report as unverified what this repository does not document; route intent to the matching skill; never widen capability inside a session, because a capability change is a pull request that changes a row of contracts/effects.v1.json and a row is not publishable without its effect test; cite implementation evidence as repo@commit:path:line and say dirty or stale beside it; return private source as tool output only to a provider the attended operator has approved; and use the harness's own connectors for external write-back, preview first, one operation, read back against what was approved.",
|
|
5595
|
+
"compatibility": "additive",
|
|
5596
|
+
"migration": "none",
|
|
5597
|
+
"changes": [
|
|
5598
|
+
{
|
|
5599
|
+
"class": "compatibility_policy",
|
|
5600
|
+
"path": "contracts/supported-surface.json",
|
|
5601
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
5602
|
+
"summary": "Recompute the sha256 of the hashed contracts/effects.v1.json entry for the four added rows and the added location token. No entry, command, export or bin moved."
|
|
5603
|
+
},
|
|
5604
|
+
{
|
|
5605
|
+
"class": "compatibility_policy",
|
|
5606
|
+
"path": "contracts/agent-relevant-change-policy.v1.json",
|
|
5607
|
+
"surface_entry": "contracts/agent-relevant-change-policy.v1.json",
|
|
5608
|
+
"summary": "Classify contracts/effects.v1.json as compatibility_policy, the agents/ prefix as documentation (removing its ignore), and the src/agent/ prefix as cli_surface ahead of the broad src/ ignore."
|
|
5609
|
+
},
|
|
5610
|
+
{
|
|
5611
|
+
"class": "compatibility_policy",
|
|
5612
|
+
"path": "contracts/effects.v1.json",
|
|
5613
|
+
"surface_entry": "contracts/effects.v1.json",
|
|
5614
|
+
"summary": "Declare the four invocations the widened help scan surfaced and nothing declared: qa waive (tier C, proved end to end — the waiver on the assembly report, the evidence line and the stale doctor sidecar), qa parity and qa parity --no-post-verdict (tier A, preflight-proved — the qa-output evidence bundle and verdict beside the working directory, the candidate funnel, the verdict publish; no packet, report or sidecar write) and qa install-browser (tier A, preflight-proved — the Playwright browser registry on the user's machine and the Chromium build fetch). 87 rows -> 91. Adds one location token, {playwright-download-host}: the first destination in the file that is not a Campaigns OS endpoint."
|
|
5615
|
+
},
|
|
5616
|
+
{
|
|
5617
|
+
"class": "schema",
|
|
5618
|
+
"path": "schemas/campaigns-os-effects.v1.schema.json",
|
|
5619
|
+
"surface_entry": "schemas/campaigns-os-effects.v1.schema.json",
|
|
5620
|
+
"summary": "Publish the campaigns-os-effects/v1 shape: the row, its write and send entries, the location-token vocabulary, the effect-changing flag list, the five conditions, the two test scopes, and the preflight allowances a preflight row must declare."
|
|
5621
|
+
},
|
|
5622
|
+
{
|
|
5623
|
+
"class": "named_surface",
|
|
5624
|
+
"path": "docs/effects.md",
|
|
5625
|
+
"surface_entry": "docs/effects.md",
|
|
5626
|
+
"summary": "Say that the coverage scan reads every help block the CLI prints, not one file's, and name the gap that made the point (qa parity, qa waive and qa install-browser owed no row while only src/cli.mjs was read). Add {playwright-download-host} to the location-token table and the three new preflight rows to the table of what the offline fixture cannot reach."
|
|
5627
|
+
},
|
|
5628
|
+
{
|
|
5629
|
+
"class": "documentation",
|
|
5630
|
+
"path": "docs/orientation-contract-reference.md",
|
|
5631
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
5632
|
+
"summary": "Regenerate the orientation reference for surface version 1.40.0."
|
|
5633
|
+
},
|
|
5634
|
+
{
|
|
5635
|
+
"class": "named_surface",
|
|
5636
|
+
"path": "docs/runtime-readiness.md",
|
|
5637
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
5638
|
+
"summary": "Regenerate the runtime reference for surface version 1.40.0."
|
|
5639
|
+
},
|
|
5640
|
+
{
|
|
5641
|
+
"class": "package_export",
|
|
5642
|
+
"path": "package.json",
|
|
5643
|
+
"surface_entry": null,
|
|
5644
|
+
"summary": "Ship docs/skills-revision.md in the npm pack, as every named surface entry must be."
|
|
5645
|
+
},
|
|
5646
|
+
{
|
|
5647
|
+
"class": "generated_runtime",
|
|
5648
|
+
"path": "package-lock.json",
|
|
5649
|
+
"surface_entry": null,
|
|
5650
|
+
"summary": "Regenerated lockfile version fields for 1.40.0."
|
|
5651
|
+
},
|
|
5652
|
+
{
|
|
5653
|
+
"class": "skill",
|
|
5654
|
+
"path": "skills.json",
|
|
5655
|
+
"surface_entry": "skills.json",
|
|
5656
|
+
"summary": "Publish the four new skill packages (id, name, version 1.0.0, path, domain campaigns, description) and advance bundle_revision 1.40.0+skills.1 -> 1.40.0+skills.2, which check-skill-versions.mjs --base requires because files under skills/ changed. Version every previously bundled skill up for the header line that moved with it: next-campaigns-os 1.0.19 -> 1.0.20, next-campaigns-os-setup 2.0.2 -> 2.0.3, next-campaigns-build 1.0.4 -> 1.0.5, next-campaigns-polish 1.1.3 -> 1.1.4, next-campaigns-qa 1.3.3 -> 1.3.4."
|
|
5657
|
+
},
|
|
5658
|
+
{
|
|
5659
|
+
"class": "skill",
|
|
5660
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
5661
|
+
"surface_entry": null,
|
|
5662
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it (1.40.0+skills.1 -> 1.40.0+skills.2); version 1.0.19 -> 1.0.20. No other change."
|
|
5663
|
+
},
|
|
5664
|
+
{
|
|
5665
|
+
"class": "skill",
|
|
5666
|
+
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
5667
|
+
"surface_entry": null,
|
|
5668
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 2.0.2 -> 2.0.3. No other change."
|
|
5669
|
+
},
|
|
5670
|
+
{
|
|
5671
|
+
"class": "skill",
|
|
5672
|
+
"path": "skills/next-campaigns-build/SKILL.md",
|
|
5673
|
+
"surface_entry": null,
|
|
5674
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.0.4 -> 1.0.5. No other change."
|
|
5675
|
+
},
|
|
5676
|
+
{
|
|
5677
|
+
"class": "skill",
|
|
5678
|
+
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
5679
|
+
"surface_entry": null,
|
|
5680
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.1.3 -> 1.1.4. No other change."
|
|
5681
|
+
},
|
|
5682
|
+
{
|
|
5683
|
+
"class": "skill",
|
|
5684
|
+
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
5685
|
+
"surface_entry": null,
|
|
5686
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.3.3 -> 1.3.4. Also correct one command reference the new reference test refused: the diagnostic fallback is `campaigns-os qa run --legacy-api-test-order`, not `campaigns-os qa --legacy-api-test-order` — the flag belongs to the qa run invocation, and bare `qa` declares no effects row."
|
|
5687
|
+
},
|
|
5688
|
+
{
|
|
5689
|
+
"class": "cli_surface",
|
|
5690
|
+
"path": "src/cli.mjs",
|
|
5691
|
+
"surface_entry": "tooling",
|
|
5692
|
+
"summary": "Add tooling status --skills-revision <bundle-revision|skill-id@version>: revision_check reports match, mismatch or unchecked in --json beside a skills_revision object, the text view prints one named header line, a mismatch prints the full status and then exits 2 with an action naming the fresh session, the on-disk revision is reported as on-disk, <skill-id>@<version> is accepted as a fallback spelling, and the flag is refused when given without a value."
|
|
5693
|
+
},
|
|
5694
|
+
{
|
|
5695
|
+
"class": "compatibility_policy",
|
|
5696
|
+
"path": "docs/supported-surface.md",
|
|
5697
|
+
"surface_entry": "docs/supported-surface.md",
|
|
5698
|
+
"summary": "Extend the skills row: the manifest now also carries bundle_revision, every SKILL.md states it, tooling status --skills-revision checks it, and it must advance whenever any bundled skill changes."
|
|
5699
|
+
},
|
|
5700
|
+
{
|
|
5701
|
+
"class": "named_surface",
|
|
5702
|
+
"path": "docs/skills-revision.md",
|
|
5703
|
+
"surface_entry": "docs/skills-revision.md",
|
|
5704
|
+
"summary": "State that nine skills are bundled as of 1.40.0 and refresh the fallback-spelling example to the shipped skill version."
|
|
5705
|
+
},
|
|
5706
|
+
{
|
|
5707
|
+
"class": "skill",
|
|
5708
|
+
"path": "skills/campaign-lifecycle-orientation/SKILL.md",
|
|
5709
|
+
"surface_entry": null,
|
|
5710
|
+
"summary": "New skill at 1.0.0: orient a reader to the lifecycle artifacts a run has already emitted without advancing their state — the CONTEXT.md vocabulary, the Map ID / public route slug split, the page-type vocabulary, doctor as the gate whose recorded result (never an exit code) is read, the stage record and its completed/skipped terminal statuses, and the readback as the first thing to open. The two-worlds paragraph is the core: store themes and Page Kit funnels are not one build surface, and the store-theme half is reported as unverified from here. Identity comes from `campaigns-os tooling status --json`, never from a file beside the session."
|
|
5711
|
+
},
|
|
5712
|
+
{
|
|
5713
|
+
"class": "skill",
|
|
5714
|
+
"path": "skills/campaign-run-evidence/SKILL.md",
|
|
5715
|
+
"surface_entry": null,
|
|
5716
|
+
"summary": "New skill at 1.0.0: interpret doctor, QA and proof depth without overclaiming. Only a JSON verdict is a verdict; disposition is one of ready / ready_with_exceptions / blocked and is read rather than inferred from an exit code; manual_review is not pass and ready_with_exceptions is not approval; persisted order read-back is the commerce authority and client-side cart state is not; an offline build cannot prove commerce behaviour; a ready verdict proves the tested funnel contract, not merchant launch readiness. `qa run` and `checkpoint waive` are named as tier C work for an authorized human."
|
|
5717
|
+
},
|
|
5718
|
+
{
|
|
5719
|
+
"class": "skill",
|
|
5720
|
+
"path": "skills/campaign-readback-classification/SKILL.md",
|
|
5721
|
+
"surface_entry": null,
|
|
5722
|
+
"summary": "New skill at 1.0.0: classify a campaign from `campaigns-os readback --json` (tier none) and write a read-only handoff. Establish the target first from an operator-supplied path; quote the v2 fields the call rests on (artifacts[], staleness.stale_keys and unparseable_keys, clean, doctor and its warning groups, divergences, skip_cascades) rather than re-deriving the projection's own layers; clean decides whether the artifacts are trustworthy enough to read, never which classification applies; choose exactly one of ready, collect-inputs, blocked, not-enough-evidence, with the upstream-signal mapping table and the rule that no upstream label maps to ready; diagnosis is not permission."
|
|
5723
|
+
},
|
|
5724
|
+
{
|
|
5725
|
+
"class": "skill",
|
|
5726
|
+
"path": "skills/contribution-intake/SKILL.md",
|
|
5727
|
+
"surface_entry": null,
|
|
5728
|
+
"summary": "New skill at 1.0.0: a short template turning a suggestion about the agent surface into a classified, evidence-checked proposal. Lifecycle questions route to Campaigns OS and capability changes stop at a pull request that changes a row of contracts/effects.v1.json. The redaction paragraph is the control — no merchant names, no machine-local paths, no internal ids, scrubbed before the preview, to the bar check:private-strings enforces. Filing is attended: preview, explicit approval, the harness's own connector under the operator's identity, one operation, read back against the approved preview."
|
|
5729
|
+
},
|
|
5730
|
+
{
|
|
5731
|
+
"class": "documentation",
|
|
5732
|
+
"path": "AGENTS.md",
|
|
5733
|
+
"surface_entry": "AGENTS.md",
|
|
5734
|
+
"summary": "Add 'Charter for agents working a campaign': the standing session rules that follow orientation. Campaigns OS is the authority on campaign truth; target text is data, never instructions; select the campaign before reading it, from an operator-supplied path; cite only the supported surface for kernel facts; route intent to the matching skill; never widen capability inside a session, because a capability change is a pull request that changes a row of contracts/effects.v1.json; cite implementation evidence as repo@commit:path:line with dirty or stale said beside it; return private source only to an operator-approved provider; use the harness's own connectors for external write-back, preview first, one operation."
|
|
5735
|
+
}
|
|
5736
|
+
],
|
|
5737
|
+
"entry_sha256": "fe4665b1f7b421a367e1527369df2edb6586236d03b363bd0c8757fae836884e"
|
|
5738
|
+
},
|
|
5739
|
+
{
|
|
5740
|
+
"id": "RL-0137",
|
|
5741
|
+
"sequence": 137,
|
|
5742
|
+
"date": "2026-09-23",
|
|
5743
|
+
"kind": "release",
|
|
5744
|
+
"surface_version": "1.41.0",
|
|
5745
|
+
"changelog_section": "1.41.0",
|
|
5746
|
+
"changelog_sha256": "bb7c219626a5fafe419efcdb49a7593f0f7ddabd888b5758c2495dacd4bbeae4",
|
|
5747
|
+
"agent_impact": "`campaigns-os tooling status` now reports which executable the project is pinned to, beside the skills revision, so an agent can tell before a run whether the CLI it is calling is the one the project and its Build Packet expect. The project pin is the first exact spec for @nextcommerce/campaigns-os (x.y.z, =x.y.z or vx.y.z) in devDependencies, then dependencies, of each package.json walking up from the working directory through a workspace root, a range counting only when no exact spec exists on the walk and peerDependencies/optionalDependencies never counting, and pin.project_manifest and pin.project_key name where it was read; the packet's recorded kernel version is the new optional Build Packet field campaigns_os_version, which prepare-build stamps. `--json` gains `pin` with status match, stale_pin, conflicting_pin or unpinned and a `Pin:` text line; stale_pin and conflicting_pin exit 2 with an action naming the file to change, and unpinned exits 0 but is always reported, so a range or tag is visible as not a pin. Branch on pin.status rather than the exit code. The bare `--force` flag overrides a blocking pin status, is reported as pin.forced, and lands on the lifecycle journal entry's argv_shape; `--force true` is refused. Packets written before this release carry no campaigns_os_version and are no pin source; re-running prepare-build stamps one. The skills bundle identity moves with this release to 1.41.0+skills.1: every bundled skill now opens with that value and instructs `tooling status --skills-revision 1.41.0+skills.1`, so an agent still holding 1.40.0+skills.2 skill text reports `mismatch` against a 1.41.0 install and must start a fresh session.",
|
|
5748
|
+
"compatibility": "additive",
|
|
5749
|
+
"migration": "none",
|
|
5750
|
+
"changes": [
|
|
5751
|
+
{
|
|
5752
|
+
"class": "cli_surface",
|
|
5753
|
+
"path": "src/cli.mjs",
|
|
5754
|
+
"surface_entry": "tooling",
|
|
5755
|
+
"summary": "tooling status resolves the project pin and the packet's campaigns_os_version, reports pin { source, version, running, status, range, packet_version, project_version, project_manifest, project_key, forced, message } and a Pin: line naming the key the project pin was read from, exits 2 on stale_pin or conflicting_pin unless --force, and refuses --force with a value and --no-force up front. It accepts --packet <path>. prepare-build stamps campaigns_os_version on the Build Packet. The help line gains [--packet <campaign-runtime.build.json>] [--force]. The Pin: line (pin.message) carries its provenance for every status: the key and manifest of each project version or range it quotes, the nearest manifest when there is no project pin, and the packet file of each packet version it quotes; only an installed package's own manifest (node_modules/<name> or node_modules/@<scope>/<name>) is skipped as never the project, a manifest that names nothing is walked through, a leading BOM is accepted, an unreadable or malformed ancestor manifest ends the walk with a warning, and pin.packet_version_ignored carries a prefixed packet value the Pin: line names as ignored rather than absent."
|
|
5756
|
+
},
|
|
5757
|
+
{
|
|
5758
|
+
"class": "schema",
|
|
5759
|
+
"path": "schemas/campaign-runtime-build-packet.v0.schema.json",
|
|
5760
|
+
"surface_entry": "schemas/campaign-runtime-build-packet.v0.schema.json",
|
|
5761
|
+
"summary": "Add the optional top-level campaigns_os_version (an exact version), the kernel version that prepared the packet. Additive: schema_version stays campaign-runtime-build-packet/v0 and packets without it stay valid. Its description states the bare x.y.z form and the project pin it follows as built: the first exact spec on the walk up from the nearest package.json, devDependencies then dependencies, a workspace root entered and ending the walk, peer and optional dependencies never."
|
|
5762
|
+
},
|
|
5763
|
+
{
|
|
5764
|
+
"class": "compatibility_policy",
|
|
5765
|
+
"path": "contracts/effects.v1.json",
|
|
5766
|
+
"surface_entry": "contracts/effects.v1.json",
|
|
5767
|
+
"summary": "Declare tooling status --force (tier B, the lifecycle journal only, proved by effects: tooling status --force): --force is an effect-changing flag in the contract's vocabulary, and here it changes the exit status only. 91 rows -> 92."
|
|
5768
|
+
},
|
|
5769
|
+
{
|
|
5770
|
+
"class": "compatibility_policy",
|
|
5771
|
+
"path": "contracts/supported-surface.json",
|
|
5772
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
5773
|
+
"summary": "surface_version 1.41.0; recompute the sha256 of the hashed contracts/effects.v1.json and schemas/campaign-runtime-build-packet.v0.schema.json entries. No entry, command, export or bin moved."
|
|
5774
|
+
},
|
|
5775
|
+
{
|
|
5776
|
+
"class": "named_surface",
|
|
5777
|
+
"path": "docs/skills-revision.md",
|
|
5778
|
+
"surface_entry": "docs/skills-revision.md",
|
|
5779
|
+
"summary": "Replace the Not yet built section with the pin check as built: sources and precedence (which keys count, the exact forms, the manifest walk and project_manifest/project_key, and that peer and optional dependencies are not pins; the walk through neutral manifests, the installed-package skip, the stop at an unreadable or malformed manifest, and the stray-ancestor residual), the four statuses, exit codes, --force, and JSON and text output from real runs; restate the shipped bundle identity as 1.41.0+skills.1 in every example that quotes it."
|
|
5780
|
+
},
|
|
5781
|
+
{
|
|
5782
|
+
"class": "package_export",
|
|
5783
|
+
"path": "package.json",
|
|
5784
|
+
"surface_entry": null,
|
|
5785
|
+
"summary": "Version 1.41.0."
|
|
5786
|
+
},
|
|
5787
|
+
{
|
|
5788
|
+
"class": "generated_runtime",
|
|
5789
|
+
"path": "package-lock.json",
|
|
5790
|
+
"surface_entry": null,
|
|
5791
|
+
"summary": "Version 1.41.0, regenerated with npm version; no dependency moved."
|
|
5792
|
+
},
|
|
5793
|
+
{
|
|
5794
|
+
"class": "skill",
|
|
5795
|
+
"path": "skills.json",
|
|
5796
|
+
"surface_entry": "skills.json",
|
|
5797
|
+
"summary": "Advance bundle_revision 1.40.0+skills.2 -> 1.41.0+skills.1: the prefix names the package version the skills ship with, so the package release moves it and the counter resets. Version every bundled skill up for the header line that moved with it: next-campaigns-os 1.0.20 -> 1.0.21, next-campaigns-os-setup 2.0.3 -> 2.0.4, next-campaigns-build 1.0.5 -> 1.0.6, next-campaigns-polish 1.1.4 -> 1.1.5, next-campaigns-qa 1.3.4 -> 1.3.5, campaign-lifecycle-orientation 1.0.0 -> 1.0.1, campaign-run-evidence 1.0.0 -> 1.0.1, campaign-readback-classification 1.0.0 -> 1.0.1, contribution-intake 1.0.0 -> 1.0.1."
|
|
5798
|
+
},
|
|
5799
|
+
{
|
|
5800
|
+
"class": "skill",
|
|
5801
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
5802
|
+
"surface_entry": null,
|
|
5803
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it (1.40.0+skills.2 -> 1.41.0+skills.1); version 1.0.20 -> 1.0.21. No other change."
|
|
5804
|
+
},
|
|
5805
|
+
{
|
|
5806
|
+
"class": "skill",
|
|
5807
|
+
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
5808
|
+
"surface_entry": null,
|
|
5809
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 2.0.3 -> 2.0.4. No other change."
|
|
5810
|
+
},
|
|
5811
|
+
{
|
|
5812
|
+
"class": "skill",
|
|
5813
|
+
"path": "skills/next-campaigns-build/SKILL.md",
|
|
5814
|
+
"surface_entry": null,
|
|
5815
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.0.5 -> 1.0.6. No other change."
|
|
5816
|
+
},
|
|
5817
|
+
{
|
|
5818
|
+
"class": "skill",
|
|
5819
|
+
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
5820
|
+
"surface_entry": null,
|
|
5821
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.1.4 -> 1.1.5. No other change."
|
|
5822
|
+
},
|
|
5823
|
+
{
|
|
5824
|
+
"class": "skill",
|
|
5825
|
+
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
5826
|
+
"surface_entry": null,
|
|
5827
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.3.4 -> 1.3.5. No other change."
|
|
5828
|
+
},
|
|
5829
|
+
{
|
|
5830
|
+
"class": "skill",
|
|
5831
|
+
"path": "skills/campaign-lifecycle-orientation/SKILL.md",
|
|
5832
|
+
"surface_entry": null,
|
|
5833
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.0.0 -> 1.0.1. No other change."
|
|
5834
|
+
},
|
|
5835
|
+
{
|
|
5836
|
+
"class": "skill",
|
|
5837
|
+
"path": "skills/campaign-run-evidence/SKILL.md",
|
|
5838
|
+
"surface_entry": null,
|
|
5839
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.0.0 -> 1.0.1. No other change."
|
|
5840
|
+
},
|
|
5841
|
+
{
|
|
5842
|
+
"class": "skill",
|
|
5843
|
+
"path": "skills/campaign-readback-classification/SKILL.md",
|
|
5844
|
+
"surface_entry": null,
|
|
5845
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.0.0 -> 1.0.1. No other change."
|
|
5846
|
+
},
|
|
5847
|
+
{
|
|
5848
|
+
"class": "skill",
|
|
5849
|
+
"path": "skills/contribution-intake/SKILL.md",
|
|
5850
|
+
"surface_entry": null,
|
|
5851
|
+
"summary": "Quote the advanced bundle revision on the first body line and in the --skills-revision instruction beside it; version 1.0.0 -> 1.0.1. No other change."
|
|
5852
|
+
},
|
|
5853
|
+
{
|
|
5854
|
+
"class": "documentation",
|
|
5855
|
+
"path": "docs/orientation-contract-reference.md",
|
|
5856
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
5857
|
+
"summary": "Regenerate the orientation reference for surface version 1.41.0."
|
|
5858
|
+
},
|
|
5859
|
+
{
|
|
5860
|
+
"class": "named_surface",
|
|
5861
|
+
"path": "docs/runtime-readiness.md",
|
|
5862
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
5863
|
+
"summary": "Regenerate the runtime reference for surface version 1.41.0."
|
|
5864
|
+
}
|
|
5865
|
+
],
|
|
5866
|
+
"entry_sha256": "5f28020beb6b8f6e96aa1f3c0ff5aafa823c59e6dda0a40a8884425ece00a089"
|
|
5867
|
+
},
|
|
5868
|
+
{
|
|
5869
|
+
"id": "RL-0138",
|
|
5870
|
+
"sequence": 138,
|
|
5871
|
+
"date": "2026-09-23",
|
|
5872
|
+
"kind": "release",
|
|
5873
|
+
"surface_version": "1.41.1",
|
|
5874
|
+
"changelog_section": "1.41.1",
|
|
5875
|
+
"changelog_sha256": "1c8751b1faffac138454f86781de36a8bb781b0c8f4b6a049988caa96cb2f44f",
|
|
5876
|
+
"agent_impact": "The revision check every bundled skill asks for now works on the documented install and cannot fetch a stranger's package. `campaigns-os tooling status` without --platform or --target checks skill freshness only on the platform directories where Campaigns OS skills are installed, so a single-platform install is no longer reported stale for the other two and no longer exits 2 with an install-everywhere action. A Ready: line names the skipped platforms. The refresh action names each stale installed platform, or `--platform all` when all three are installed and stale. With nothing installed, the action asks for an install on the harness in use. --json adds skills.scope (requested, installed_platforms, no_platform_installed) and skills.not_installed_platforms, and `tooling diagnose` exports the unnamed scope as platform: installed when status narrowed to installed platforms. `--platform all` keeps checking all three. Every skill header now runs the check as `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder. `--no-install` matters because campaigns-os is only the bin of @nextcommerce/campaigns-os: outside a pinned folder a plain npx would look it up as a registry package and install it without asking. The header also says that output with no `Skills revision:` line (no revision_check under --json) came from another copy, whose actions must not be followed: a pre-1.40.0 global copy ignores --skills-revision and prints an install-skills action that replaces part of the bundle with older text. An agent holding 1.41.0+skills.1 skill text reports mismatch against a 1.41.1 install and must start a fresh session. Separately, refusals ahead of the first effect in theme waive, qa waive and qa policy set are tagged and journal nothing (campaigns-os#465), including the shared waiver-attribution and --order-path-depth validators at those call sites. Failures after the target has been read stay journaled.",
|
|
5877
|
+
"compatibility": "additive",
|
|
5878
|
+
"migration": "none",
|
|
5879
|
+
"changes": [
|
|
5880
|
+
{
|
|
5881
|
+
"class": "cli_surface",
|
|
5882
|
+
"path": "src/cli.mjs",
|
|
5883
|
+
"surface_entry": "tooling",
|
|
5884
|
+
"summary": "Without --platform or --target, tooling status scopes the skill freshness check to platforms where Campaigns OS skills are installed: a slot under a bundled name (unchanged or updated) or our own copy under a retired name. It reports skills.scope and skills.not_installed_platforms and prints a Ready: line naming the skipped platforms, singular or plural. The refresh action names each stale installed platform, or --platform all when all three are installed and stale. With nothing installed, it asks for a runnable install-skills --platform claude and names codex and agents as the alternatives. The gateway login hint uses the printed invocation prefix. tooling diagnose forwards --platform only when given and exports the unnamed scope as installed when status narrowed to installed platforms, all otherwise. theme waive's --reason check and its waiver-attribution validation (through refusing()) are tagged refusals. The qa waive and qa policy set refusals of campaigns-os#465 live in src/qa-node.mjs, dispatched from here."
|
|
5885
|
+
},
|
|
5886
|
+
{
|
|
5887
|
+
"class": "compatibility_policy",
|
|
5888
|
+
"path": "contracts/supported-surface.json",
|
|
5889
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
5890
|
+
"summary": "surface_version 1.41.1; no hashed entry changed."
|
|
5891
|
+
},
|
|
5892
|
+
{
|
|
5893
|
+
"class": "named_surface",
|
|
5894
|
+
"path": "docs/skills-revision.md",
|
|
5895
|
+
"surface_entry": "docs/skills-revision.md",
|
|
5896
|
+
"summary": "The check runs as `npx --no-install campaigns-os tooling status --skills-revision <revision>` from the Page Kit folder. New paragraphs explain why (--no-install: the unscoped bin name must not be installed from the registry; PATH shadowing by an older global copy, the missing Skills revision: line as its sign, and why only the freshness check sees a downgrade) and describe the platform scoping and skills.scope. The header description and the literals move to 1.41.1+skills.1."
|
|
5897
|
+
},
|
|
5898
|
+
{
|
|
5899
|
+
"class": "named_surface",
|
|
5900
|
+
"path": "docs/diagnostics.md",
|
|
5901
|
+
"surface_entry": "docs/diagnostics.md",
|
|
5902
|
+
"summary": "Without --platform, diagnose checks only the platforms where Campaigns OS skills are installed and exports platform: installed (all when none are installed and every platform was checked); --platform claude checks one profile and --platform all every one."
|
|
5903
|
+
},
|
|
5904
|
+
{
|
|
5905
|
+
"class": "package_export",
|
|
5906
|
+
"path": "package.json",
|
|
5907
|
+
"surface_entry": null,
|
|
5908
|
+
"summary": "Version 1.41.1."
|
|
5909
|
+
},
|
|
5910
|
+
{
|
|
5911
|
+
"class": "generated_runtime",
|
|
5912
|
+
"path": "package-lock.json",
|
|
5913
|
+
"surface_entry": null,
|
|
5914
|
+
"summary": "Version 1.41.1; no dependency moved."
|
|
5915
|
+
},
|
|
5916
|
+
{
|
|
5917
|
+
"class": "skill",
|
|
5918
|
+
"path": "skills.json",
|
|
5919
|
+
"surface_entry": "skills.json",
|
|
5920
|
+
"summary": "Advance bundle_revision 1.41.0+skills.1 -> 1.41.1+skills.1 with the package version, and each bundled skill's version one patch."
|
|
5921
|
+
},
|
|
5922
|
+
{
|
|
5923
|
+
"class": "skill",
|
|
5924
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
5925
|
+
"surface_entry": null,
|
|
5926
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5927
|
+
},
|
|
5928
|
+
{
|
|
5929
|
+
"class": "skill",
|
|
5930
|
+
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
5931
|
+
"surface_entry": null,
|
|
5932
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5933
|
+
},
|
|
5934
|
+
{
|
|
5935
|
+
"class": "skill",
|
|
5936
|
+
"path": "skills/next-campaigns-build/SKILL.md",
|
|
5937
|
+
"surface_entry": null,
|
|
5938
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5939
|
+
},
|
|
5940
|
+
{
|
|
5941
|
+
"class": "skill",
|
|
5942
|
+
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
5943
|
+
"surface_entry": null,
|
|
5944
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5945
|
+
},
|
|
5946
|
+
{
|
|
5947
|
+
"class": "skill",
|
|
5948
|
+
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
5949
|
+
"surface_entry": null,
|
|
5950
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5951
|
+
},
|
|
5952
|
+
{
|
|
5953
|
+
"class": "skill",
|
|
5954
|
+
"path": "skills/campaign-lifecycle-orientation/SKILL.md",
|
|
5955
|
+
"surface_entry": null,
|
|
5956
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5957
|
+
},
|
|
5958
|
+
{
|
|
5959
|
+
"class": "skill",
|
|
5960
|
+
"path": "skills/campaign-run-evidence/SKILL.md",
|
|
5961
|
+
"surface_entry": null,
|
|
5962
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5963
|
+
},
|
|
5964
|
+
{
|
|
5965
|
+
"class": "skill",
|
|
5966
|
+
"path": "skills/campaign-readback-classification/SKILL.md",
|
|
5967
|
+
"surface_entry": null,
|
|
5968
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5969
|
+
},
|
|
5970
|
+
{
|
|
5971
|
+
"class": "skill",
|
|
5972
|
+
"path": "skills/contribution-intake/SKILL.md",
|
|
5973
|
+
"surface_entry": null,
|
|
5974
|
+
"summary": "Quote bundle revision 1.41.1+skills.1 on the first body line, and rewrite the instruction beside it: run `npx --no-install campaigns-os tooling status --skills-revision 1.41.1+skills.1` from the campaign's Page Kit folder, where it runs the project's pinned copy and never installs one, and treat output with no `Skills revision:` line (no revision_check under --json) as another copy's, whose actions are not to be followed. The skill version advances one patch."
|
|
5975
|
+
},
|
|
5976
|
+
{
|
|
5977
|
+
"class": "documentation",
|
|
5978
|
+
"path": "docs/orientation-contract-reference.md",
|
|
5979
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
5980
|
+
"summary": "Regenerate the orientation reference for surface version 1.41.1."
|
|
5981
|
+
},
|
|
5982
|
+
{
|
|
5983
|
+
"class": "named_surface",
|
|
5984
|
+
"path": "docs/runtime-readiness.md",
|
|
5985
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
5986
|
+
"summary": "Regenerate the runtime reference for surface version 1.41.1."
|
|
5987
|
+
}
|
|
5988
|
+
],
|
|
5989
|
+
"entry_sha256": "0f8cfb705bf1ced5e78894a8d6e2d6b5b25720fca58917a86699fe551cf31e36"
|
|
5990
|
+
},
|
|
5991
|
+
{
|
|
5992
|
+
"id": "RL-0139",
|
|
5993
|
+
"sequence": 139,
|
|
5994
|
+
"date": "2026-09-23",
|
|
5995
|
+
"kind": "release",
|
|
5996
|
+
"surface_version": "1.41.2",
|
|
5997
|
+
"changelog_section": "1.41.2",
|
|
5998
|
+
"changelog_sha256": "ca77d81f868f9966f0f734bfbac60871b6e65506ec2f1ce7e5ac2bb1a1351017",
|
|
5999
|
+
"agent_impact": "Every command Campaigns OS prints for a project-local (node_modules) install, and every command in the bundled skills and the docs, is now spelled `npx --no-install campaigns-os …`. campaigns-os is only the bin name of @nextcommerce/campaigns-os: in a folder where the package is not installed, a plain `npx campaigns-os` looks the bin name up as a registry package and, with no terminal to ask, installs and runs whatever it finds; with --no-install, npx runs the pinned copy or fails. For a node_modules install, tooling status reports cli.invocation_prefix `npx --no-install campaigns-os` and cli.invocation `npx --no-install campaigns-os <command>`, and next, doctor, gate and checkpoint remediations, the skill-refresh and login actions, the PATH warnings, the stale project-pin action and the browser-missing hints use the same spelling. A checkout, a global install and an npx cache keep their spellings. Run printed commands as printed. A command printed or documented by an earlier release lacks the flag: add --no-install after npx when reusing it. An agent holding 1.41.1+skills.1 skill text reports mismatch against a 1.41.2 install and must start a fresh session.",
|
|
6000
|
+
"compatibility": "compatible",
|
|
6001
|
+
"migration": "Add --no-install after npx in any saved or scripted `npx campaigns-os …` command, and accept `npx --no-install campaigns-os` wherever cli.invocation_prefix is compared with a literal.",
|
|
6002
|
+
"changes": [
|
|
6003
|
+
{
|
|
6004
|
+
"class": "cli_surface",
|
|
6005
|
+
"path": "src/cli.mjs",
|
|
6006
|
+
"surface_entry": "tooling",
|
|
6007
|
+
"summary": "For a node_modules install, tooling status reports cli.invocation_prefix `npx --no-install campaigns-os` and cli.invocation `npx --no-install campaigns-os <command>`, and its skill-refresh and gateway login actions use that prefix. The PATH warnings (campaigns-os not on PATH, or a different install on PATH) say to run commands as `npx --no-install campaigns-os <command>`, and the action for a stale project pin names `npx --no-install campaigns-os` as the pinned executable."
|
|
6008
|
+
},
|
|
6009
|
+
{
|
|
6010
|
+
"class": "cli_surface",
|
|
6011
|
+
"path": null,
|
|
6012
|
+
"surface_entry": "next",
|
|
6013
|
+
"summary": "Commands printed for a node_modules install are spelled `npx --no-install campaigns-os …`: next text and --json (next_actions[].command, required actions, prompts), doctor required actions, gate and checkpoint remediations, spec derive's doctor pointer, and the QA and polish browser-missing hints. Run-session deviation tracking reads the command word through the new prefix and through the `npx campaigns-os` of earlier versions."
|
|
6014
|
+
},
|
|
6015
|
+
{
|
|
6016
|
+
"class": "compatibility_policy",
|
|
6017
|
+
"path": "contracts/supported-surface.json",
|
|
6018
|
+
"surface_entry": "contracts/supported-surface.json",
|
|
6019
|
+
"summary": "surface_version 1.41.2; no hashed entry changed."
|
|
6020
|
+
},
|
|
6021
|
+
{
|
|
6022
|
+
"class": "documentation",
|
|
6023
|
+
"path": "AGENTS.md",
|
|
6024
|
+
"surface_entry": "AGENTS.md",
|
|
6025
|
+
"summary": "The primary run path is `npx --no-install campaigns-os …` from the Page Kit folder, with why the flag matters, and a project-local installation prints `npx --no-install campaigns-os` (`npx campaigns-os` before 1.41.2)."
|
|
6026
|
+
},
|
|
6027
|
+
{
|
|
6028
|
+
"class": "named_surface",
|
|
6029
|
+
"path": "docs/skills-revision.md",
|
|
6030
|
+
"surface_entry": "docs/skills-revision.md",
|
|
6031
|
+
"summary": "The Page Kit folder sentence names `npx --no-install campaigns-os`; the header description and the literals move to 1.41.2+skills.1."
|
|
6032
|
+
},
|
|
6033
|
+
{
|
|
6034
|
+
"class": "named_surface",
|
|
6035
|
+
"path": "docs/diagnostics.md",
|
|
6036
|
+
"surface_entry": "docs/diagnostics.md",
|
|
6037
|
+
"summary": "The diagnose examples run as `npx --no-install campaigns-os tooling diagnose …`."
|
|
6038
|
+
},
|
|
6039
|
+
{
|
|
6040
|
+
"class": "named_surface",
|
|
6041
|
+
"path": "docs/demo-preview.md",
|
|
6042
|
+
"surface_entry": "docs/demo-preview.md",
|
|
6043
|
+
"summary": "The demo example runs as `npx --no-install campaigns-os demo …`."
|
|
6044
|
+
},
|
|
6045
|
+
{
|
|
6046
|
+
"class": "named_surface",
|
|
6047
|
+
"path": "docs/qa-and-test-orders.md",
|
|
6048
|
+
"surface_entry": "docs/qa-and-test-orders.md",
|
|
6049
|
+
"summary": "Browser installation from a campaign project is `npx --no-install campaigns-os qa install-browser`."
|
|
6050
|
+
},
|
|
6051
|
+
{
|
|
6052
|
+
"class": "named_surface",
|
|
6053
|
+
"path": "docs/sdk-storage-compatibility.md",
|
|
6054
|
+
"surface_entry": "docs/sdk-storage-compatibility.md",
|
|
6055
|
+
"summary": "The storage-check example runs as `npx --no-install campaigns-os sdk storage-check …`."
|
|
6056
|
+
},
|
|
6057
|
+
{
|
|
6058
|
+
"class": "named_surface",
|
|
6059
|
+
"path": "docs/build-packet.md",
|
|
6060
|
+
"surface_entry": "docs/build-packet.md",
|
|
6061
|
+
"summary": "The commerce-catalog note names `npx --no-install campaigns-os` as the package-install invocation under which the same packet resolves."
|
|
6062
|
+
},
|
|
6063
|
+
{
|
|
6064
|
+
"class": "package_export",
|
|
6065
|
+
"path": "package.json",
|
|
6066
|
+
"surface_entry": null,
|
|
6067
|
+
"summary": "Version 1.41.2."
|
|
6068
|
+
},
|
|
6069
|
+
{
|
|
6070
|
+
"class": "generated_runtime",
|
|
6071
|
+
"path": "package-lock.json",
|
|
6072
|
+
"surface_entry": null,
|
|
6073
|
+
"summary": "Version 1.41.2; no dependency moved."
|
|
6074
|
+
},
|
|
6075
|
+
{
|
|
6076
|
+
"class": "skill",
|
|
6077
|
+
"path": "skills.json",
|
|
6078
|
+
"surface_entry": "skills.json",
|
|
6079
|
+
"summary": "Advance bundle_revision 1.41.1+skills.1 -> 1.41.2+skills.1 with the package version, and each bundled skill's version one patch."
|
|
6080
|
+
},
|
|
6081
|
+
{
|
|
6082
|
+
"class": "skill",
|
|
6083
|
+
"path": "skills/next-campaigns-os/SKILL.md",
|
|
6084
|
+
"surface_entry": null,
|
|
6085
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 in the header. Installed toolkit commands spells the preflight, the meaning of a bare `campaigns-os …` and browser installation as `npx --no-install campaigns-os …`, and says why the flag stays: campaigns-os is only the bin name, so where no pinned copy is installed a plain npx looks it up on the registry and installs what it finds. The Polish and QA steps install the browser with `npx --no-install campaigns-os qa install-browser`. The skill version advances one patch."
|
|
6086
|
+
},
|
|
6087
|
+
{
|
|
6088
|
+
"class": "skill",
|
|
6089
|
+
"path": "skills/next-campaigns-os-setup/SKILL.md",
|
|
6090
|
+
"surface_entry": null,
|
|
6091
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 in the header. Installed toolkit commands spells the preflight, the meaning of a bare `campaigns-os …` and browser installation as `npx --no-install campaigns-os …`, and says why the flag stays: campaigns-os is only the bin name, so where no pinned copy is installed a plain npx looks it up on the registry and installs what it finds. The skill version advances one patch."
|
|
6092
|
+
},
|
|
6093
|
+
{
|
|
6094
|
+
"class": "skill",
|
|
6095
|
+
"path": "skills/next-campaigns-build/SKILL.md",
|
|
6096
|
+
"surface_entry": null,
|
|
6097
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 in the header. Installed toolkit commands spells the preflight, the meaning of a bare `campaigns-os …` and browser installation as `npx --no-install campaigns-os …`, and says why the flag stays: campaigns-os is only the bin name, so where no pinned copy is installed a plain npx looks it up on the registry and installs what it finds. The skill version advances one patch."
|
|
6098
|
+
},
|
|
6099
|
+
{
|
|
6100
|
+
"class": "skill",
|
|
6101
|
+
"path": "skills/next-campaigns-polish/SKILL.md",
|
|
6102
|
+
"surface_entry": null,
|
|
6103
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 in the header. Installed toolkit commands spells the preflight, the meaning of a bare `campaigns-os …` and browser installation as `npx --no-install campaigns-os …`, and says why the flag stays: campaigns-os is only the bin name, so where no pinned copy is installed a plain npx looks it up on the registry and installs what it finds. The terminal-Polish step installs the browser with `npx --no-install campaigns-os qa install-browser`. The skill version advances one patch."
|
|
6104
|
+
},
|
|
6105
|
+
{
|
|
6106
|
+
"class": "skill",
|
|
6107
|
+
"path": "skills/next-campaigns-qa/SKILL.md",
|
|
6108
|
+
"surface_entry": null,
|
|
6109
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 in the header. Installed toolkit commands spells the preflight, the meaning of a bare `campaigns-os …` and browser installation as `npx --no-install campaigns-os …`, and says why the flag stays: campaigns-os is only the bin name, so where no pinned copy is installed a plain npx looks it up on the registry and installs what it finds. The QA command block and the install-browser note run as `npx --no-install campaigns-os qa …`. The skill version advances one patch."
|
|
6110
|
+
},
|
|
6111
|
+
{
|
|
6112
|
+
"class": "skill",
|
|
6113
|
+
"path": "skills/campaign-lifecycle-orientation/SKILL.md",
|
|
6114
|
+
"surface_entry": null,
|
|
6115
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 on the first body line and in the `npx --no-install campaigns-os tooling status --skills-revision` check beside it. The skill version advances one patch."
|
|
6116
|
+
},
|
|
6117
|
+
{
|
|
6118
|
+
"class": "skill",
|
|
6119
|
+
"path": "skills/campaign-run-evidence/SKILL.md",
|
|
6120
|
+
"surface_entry": null,
|
|
6121
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 on the first body line and in the `npx --no-install campaigns-os tooling status --skills-revision` check beside it. The skill version advances one patch."
|
|
6122
|
+
},
|
|
6123
|
+
{
|
|
6124
|
+
"class": "skill",
|
|
6125
|
+
"path": "skills/campaign-readback-classification/SKILL.md",
|
|
6126
|
+
"surface_entry": null,
|
|
6127
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 on the first body line and in the `npx --no-install campaigns-os tooling status --skills-revision` check beside it. The skill version advances one patch."
|
|
6128
|
+
},
|
|
6129
|
+
{
|
|
6130
|
+
"class": "skill",
|
|
6131
|
+
"path": "skills/contribution-intake/SKILL.md",
|
|
6132
|
+
"surface_entry": null,
|
|
6133
|
+
"summary": "Quote bundle revision 1.41.2+skills.1 on the first body line and in the `npx --no-install campaigns-os tooling status --skills-revision` check beside it. The skill version advances one patch."
|
|
6134
|
+
},
|
|
6135
|
+
{
|
|
6136
|
+
"class": "documentation",
|
|
6137
|
+
"path": "docs/orientation-contract-reference.md",
|
|
6138
|
+
"surface_entry": "docs/orientation-contract-reference.md",
|
|
6139
|
+
"summary": "Regenerate the orientation reference for surface version 1.41.2."
|
|
6140
|
+
},
|
|
6141
|
+
{
|
|
6142
|
+
"class": "named_surface",
|
|
6143
|
+
"path": "docs/runtime-readiness.md",
|
|
6144
|
+
"surface_entry": "docs/runtime-readiness.md",
|
|
6145
|
+
"summary": "Regenerate the runtime reference for surface version 1.41.2."
|
|
6146
|
+
}
|
|
6147
|
+
],
|
|
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"
|
|
5360
6901
|
}
|
|
5361
6902
|
]
|
|
5362
6903
|
}
|