@openwop/spec-artifacts 2.3.3 → 2.3.4

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/CORPUS-STAMP.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "_comment": "Provenance of @openwop/spec-artifacts (RFC 0168 §D.2). files: SHA-256 per file; the conformance suite compares the installed peer against dist/spec-artifacts.lock.json at start.",
3
3
  "package": "@openwop/spec-artifacts",
4
- "version": "2.3.3",
5
- "corpusTag": "v2.3.3",
4
+ "version": "2.3.4",
5
+ "corpusTag": "v2.3.4",
6
6
  "files": {
7
7
  "api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
8
8
  "api/asyncapi.yaml": "d5ecb9ee6114582be3b1f662c84bfac9ae96dae7bacb853e461168f70a8e1c7d",
9
9
  "api/grpc/openwop.proto": "c3e72bb17cba514ee98feb6434e6c9b6ea6795bfd086489ec69fd882dd1ad977",
10
10
  "api/openapi.yaml": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
11
11
  "api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
12
- "api/seams-v2.yaml": "ac5a7fdff795eeee34d61af878afd61657ade24745dc8e87b970a18148571ed5",
13
- "api/v2/asyncapi.yaml": "1bb9761fc9e90b5dd5c05f208b01d597691b52792dd2a488d4382467390d55dd",
14
- "api/v2/openapi.yaml": "883ac5a1e6d9056b1acdd79538341d05a005f3f58fb9751237fd6d9ba0167fc9",
12
+ "api/seams-v2.yaml": "d2afa447343920474ddcbcc4b329fd24d54427e124f0e9bad3f9c39cccdc5682",
13
+ "api/v2/asyncapi.yaml": "33b035ed9e11825c71d163c2cb48e084e5dcb78810b37a08ca48d828a93c9232",
14
+ "api/v2/openapi.yaml": "bd8cf3034acdfa39976edc2040450a535c3c183b85f7d93d6d846317336b76b7",
15
15
  "api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
16
16
  "schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
17
17
  "schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
@@ -200,13 +200,13 @@
200
200
  "schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
201
201
  "spec/v1/alias-detectors.json": "fee4594ef49953953ffcd0b3813300067d16b3e65ebff2aac722034ac9b3f545",
202
202
  "spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
203
- "spec/v1/core-standard-manifest.json": "2c9150bdde2ae37e788f947110acb2503ff33299f5cf74bc522bcf32f10bd02e",
203
+ "spec/v1/core-standard-manifest.json": "ba5006cf189501c807996402baeff8227fe63081a1b32ec5af32fe5a09cad2d8",
204
204
  "spec/v1/deprecations.json": "508071308e762c281807b487e8f3840a1a69b978071894593e18f2e2d3e4b5c0",
205
205
  "spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
206
206
  "spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
207
207
  "spec/v1/event-codemap.schema.json": "d05933b2e88103aff51a2f774df97b9bda065e0fc88dbd9b114cc47a32189174",
208
208
  "spec/v1/extensions.json": "79a60754aa16cbdbdb604f8e5c00038af535a1690a4d07bd5ff7c38f0256a7bc",
209
- "spec/v1/gaps.json": "96ca051cb20f1a669b355d67a89421c56fef28aa5e6710c9519f592f26af33a3",
209
+ "spec/v1/gaps.json": "cd4875bff43ee5afd210da3b50fbff6e3675b4df481c82f822146f994067230d",
210
210
  "spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
211
211
  "spec/v1/migrations.json": "8839497d6a4830b53fa7867014a8336f0d725ef2346352e54fb580b7947897af",
212
212
  "spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
@@ -271,8 +271,8 @@
271
271
  "spec/v2/path-manifest.json": "a6f4e652e866889e8bde815874062f62929aee95dc8e58e7152c56adee262163",
272
272
  "spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
273
273
  "spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
274
- "spec/v2/release.json": "ffb0a24cba6ab87c4b99a76d51868e42eb07bd337157836cf5e59b9e13ad44e0",
274
+ "spec/v2/release.json": "fe7080a6557b3ee52e7e512c8bf31f77352e7e998e1d1fbb4b388b08532eca6f",
275
275
  "spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
276
276
  },
277
- "corpusCommit": "c2e93ea53a5c87dea90697dc166d540b6fc0f945"
277
+ "corpusCommit": "1f99dbd8df43666450a5d94902fea8dab987fa37"
278
278
  }
package/api/seams-v2.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP conformance seams profile (openwop-conformance-seams-v2)
4
- version: 2.3.3
4
+ version: 2.3.4
5
5
  description: 'GENERATED by scripts/derive-v2-api.py. RFC 0168 §C: the seams are a versioned conformance profile with their
6
6
  own document and path space (/conformance/seams/…), validated against the canonical v2 schemas with no tolerance path,
7
7
  forbidden from the capability namespace (a host advertises the profile, never a testSeams flag). This document carries
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 event streams
4
- version: 2.3.3
4
+ version: 2.3.4
5
5
  description: GENERATED by scripts/derive-v2-api.py (RFC 0171 §E.1, RFC 0172 §C.2). One run-events channel whose address
6
6
  is the OpenAPI path key; the server pathname is empty (bare origin). streamMode is a pattern over the closed set and its
7
7
  comma-separated combinations (`values` never combines). hostEvents has a real address (RFC 0171 §E.1) — the documented
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 API
4
- version: 2.3.3
4
+ version: 2.3.4
5
5
  summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
6
6
  description: GENERATED by scripts/derive-v2-api.py from api/openapi.yaml and the RFC 0167 children (v2 charter Phase 3,
7
7
  P3-C). Bare origin, unversioned path keys, negotiation by `OpenWOP-Version` + `protocolVersions[]` (RFC 0172 §A). No seam
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/spec-artifacts",
3
- "version": "2.3.3",
3
+ "version": "2.3.4",
4
4
  "description": "The OpenWOP machine-readable contract: api/ (OpenAPI, AsyncAPI, the seams profile), schemas/ (v1 and v2 JSON Schemas), the spec/v1 and spec/v2 registries (errors, event codemap, declaration, deprecations, migrations, gaps) and CORPUS-STAMP.json — published from the openwop/openwop corpus tag; the peer dependency @openwop/openwop-conformance digest-checks at start (RFC 0168 §D.2).",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -4,7 +4,7 @@
4
4
  "provenance": {
5
5
  "suite": {
6
6
  "package": "@openwop/openwop-conformance",
7
- "version": "2.3.3"
7
+ "version": "2.3.4"
8
8
  },
9
9
  "note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
10
10
  },
@@ -419,5 +419,5 @@
419
419
  "$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
420
420
  }
421
421
  ],
422
- "digest": "3a85ec92db2a5a9f8a87e25d42863f34741f5e21f16381a28e86172e642ae4eb"
422
+ "digest": "40499ac118731a823f51134966a26523c42387f97e0c3b31f0e02fd01d6114f9"
423
423
  }
package/spec/v1/gaps.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "./gaps.schema.json",
3
3
  "version": 1,
4
- "updated": "2026-09-04",
4
+ "updated": "2026-09-17",
5
5
  "witnessClasses": [
6
6
  "witnessable-unaided",
7
7
  "witnessable-gated",
@@ -9370,7 +9370,7 @@
9370
9370
  "surface": "The C.5 header-negotiation rule has no v1 precedent: a v1 client never sends `OpenWOP-Version`, so the rule for an unversioned path with no header (default to `preferredVersion`) is asserted here and witnessed only by the Phase 3 dual-stack scenario.",
9371
9371
  "witness": "witnessable-gated",
9372
9372
  "requirementId": null,
9373
- "disposition": "open",
9373
+ "disposition": "closed",
9374
9374
  "target": null,
9375
9375
  "sources": [
9376
9376
  {
@@ -9387,7 +9387,7 @@
9387
9387
  "surface": "Eighteen axes were found by grep; the umbrella cannot prove the enumeration is complete. A nineteenth found later is added to the table by the child that meets it, not silently.",
9388
9388
  "witness": "negative-existence",
9389
9389
  "requirementId": null,
9390
- "disposition": "open",
9390
+ "disposition": "closed",
9391
9391
  "target": null,
9392
9392
  "sources": [
9393
9393
  {
@@ -9404,7 +9404,7 @@
9404
9404
  "surface": "Codemods are pure transforms over persisted artifacts; nothing rewrites an SDK consumer's source. The migration guide carries that; no gate proves the guide is complete.",
9405
9405
  "witness": "claims-check",
9406
9406
  "requirementId": null,
9407
- "disposition": "open",
9407
+ "disposition": "closed",
9408
9408
  "target": null,
9409
9409
  "sources": [
9410
9410
  {
@@ -9421,7 +9421,7 @@
9421
9421
  "surface": "v2 MUST-NOTs cannot enter `SECURITY/invariants.yaml` at Draft (`check-security-invariants.sh` requires a v1 public test), so they live as child falsifiability rows in `gaps.json` until Phase 3. The witness-class gate does not see them until then.",
9422
9422
  "witness": "witnessable-unaided",
9423
9423
  "requirementId": null,
9424
- "disposition": "open",
9424
+ "disposition": "closed",
9425
9425
  "target": null,
9426
9426
  "sources": [
9427
9427
  {
@@ -9438,7 +9438,7 @@
9438
9438
  "surface": "The org question for `openwop.dev/spec/v2/`.",
9439
9439
  "witness": "claims-check",
9440
9440
  "requirementId": null,
9441
- "disposition": "open",
9441
+ "disposition": "closed",
9442
9442
  "target": null,
9443
9443
  "sources": [
9444
9444
  {
@@ -9455,7 +9455,7 @@
9455
9455
  "surface": "Whether the bundle attestation is a bare Ed25519 envelope or an in-toto statement.",
9456
9456
  "witness": "witnessable-unaided",
9457
9457
  "requirementId": null,
9458
- "disposition": "open",
9458
+ "disposition": "closed",
9459
9459
  "target": null,
9460
9460
  "sources": [
9461
9461
  {
@@ -9472,7 +9472,7 @@
9472
9472
  "surface": "`@openwop/spec-artifacts` does not exist; its publish is tag-triggered like the suite's and needs its own identity check (`check-published-suite-identity.mjs` generalized).",
9473
9473
  "witness": "witnessable-unaided",
9474
9474
  "requirementId": null,
9475
- "disposition": "open",
9475
+ "disposition": "closed",
9476
9476
  "target": null,
9477
9477
  "sources": [
9478
9478
  {
@@ -9489,7 +9489,7 @@
9489
9489
  "surface": "23 interpolated test titles can never derive a stable id; they need explicit ids minted by hand before the lint can be total.",
9490
9490
  "witness": "witnessable-unaided",
9491
9491
  "requirementId": null,
9492
- "disposition": "open",
9492
+ "disposition": "closed",
9493
9493
  "target": null,
9494
9494
  "sources": [
9495
9495
  {
@@ -9506,7 +9506,7 @@
9506
9506
  "surface": "55 `unwitnessable` invariants exist; the protocol-tier subset must be given a path, demoted, or fail the gate at the cut. The count is measured, not decided, here.",
9507
9507
  "witness": "unwitnessable",
9508
9508
  "requirementId": null,
9509
- "disposition": "open",
9509
+ "disposition": "closed",
9510
9510
  "target": null,
9511
9511
  "sources": [
9512
9512
  {
@@ -9608,7 +9608,7 @@
9608
9608
  "surface": "The Subject MUST on the `run.started` echo is unenforceable while `runStarted` is `additionalProperties: true` (63 of 120 payload defs open).",
9609
9609
  "witness": "witnessable-unaided",
9610
9610
  "requirementId": null,
9611
- "disposition": "open",
9611
+ "disposition": "closed",
9612
9612
  "target": null,
9613
9613
  "sources": [
9614
9614
  {
@@ -9625,8 +9625,8 @@
9625
9625
  "surface": "mTLS revocation: CRL, OCSP, or short-lived certificates — which a host advertises is its choice, but no host has any today, and the corpus has no CRL/OCSP text at all.",
9626
9626
  "witness": "seam-gated",
9627
9627
  "requirementId": null,
9628
- "disposition": "open",
9629
- "target": null,
9628
+ "disposition": "externally-gated",
9629
+ "target": "non-steward-host",
9630
9630
  "sources": [
9631
9631
  {
9632
9632
  "file": "RFCS/registers/0170-v2-identity.gaps.md",
@@ -9642,7 +9642,7 @@
9642
9642
  "surface": "DPoP availability across the three SDKs is unmeasured (RFC 0154 G2).",
9643
9643
  "witness": "claims-check",
9644
9644
  "requirementId": null,
9645
- "disposition": "open",
9645
+ "disposition": "closed",
9646
9646
  "target": null,
9647
9647
  "sources": [
9648
9648
  {
@@ -9659,7 +9659,7 @@
9659
9659
  "surface": "Whether `tenantId` itself needs a grammar beyond the opaque form (host-minted vs operator-chosen).",
9660
9660
  "witness": "claims-check",
9661
9661
  "requirementId": null,
9662
- "disposition": "open",
9662
+ "disposition": "closed",
9663
9663
  "target": null,
9664
9664
  "sources": [
9665
9665
  {
@@ -9676,7 +9676,7 @@
9676
9676
  "surface": "Eight invariants named here enter `SECURITY/invariants.yaml` only with tests (RFC 0167 §C rule); until Phase 3 they exist as falsifiability rows.",
9677
9677
  "witness": "witnessable-unaided",
9678
9678
  "requirementId": null,
9679
- "disposition": "open",
9679
+ "disposition": "closed",
9680
9680
  "target": null,
9681
9681
  "sources": [
9682
9682
  {
@@ -9693,7 +9693,7 @@
9693
9693
  "surface": "Whether `keyClass` extends to `oidc` (a stable `sub` is `opaque-idp` by RFC 0163's argument).",
9694
9694
  "witness": "claims-check",
9695
9695
  "requirementId": null,
9696
- "disposition": "open",
9696
+ "disposition": "closed",
9697
9697
  "target": null,
9698
9698
  "sources": [
9699
9699
  {
@@ -9710,7 +9710,7 @@
9710
9710
  "surface": "The generator folded 21 three-segment types silently; two are recorded exceptions (`envelope.nl-to-format-engaged`, `trigger.subscription-state-changed`) and the rest fold cleanly — re-verified in this PR; the corpus gate over the enum lands in Phase 3.",
9711
9711
  "witness": "witnessable-unaided",
9712
9712
  "requirementId": null,
9713
- "disposition": "open",
9713
+ "disposition": "closed",
9714
9714
  "target": null,
9715
9715
  "sources": [
9716
9716
  {
@@ -9727,7 +9727,7 @@
9727
9727
  "surface": "The poll response shape disagreed between `version-negotiation.md:300–308` (five fields, `isTerminal`) and `api/openapi.yaml:427–435` (two fields, `isComplete`) and no register recorded it; hosts implemented the OpenAPI shape.",
9728
9728
  "witness": "witnessable-unaided",
9729
9729
  "requirementId": null,
9730
- "disposition": "open",
9730
+ "disposition": "closed",
9731
9731
  "target": null,
9732
9732
  "sources": [
9733
9733
  {
@@ -9744,7 +9744,7 @@
9744
9744
  "surface": "`hostEvents` (heartbeat) needs a declared delivery address; whether a normative transport is required is undecided.",
9745
9745
  "witness": "claims-check",
9746
9746
  "requirementId": null,
9747
- "disposition": "open",
9747
+ "disposition": "closed",
9748
9748
  "target": null,
9749
9749
  "sources": [
9750
9750
  {
@@ -9761,7 +9761,7 @@
9761
9761
  "surface": "The suite's `LEGACY` tolerance for two retired idempotency spellings leaves at the cut; a host still emitting one fails `error-registry`.",
9762
9762
  "witness": "witnessable-unaided",
9763
9763
  "requirementId": null,
9764
- "disposition": "open",
9764
+ "disposition": "closed",
9765
9765
  "target": null,
9766
9766
  "sources": [
9767
9767
  {
@@ -9778,7 +9778,7 @@
9778
9778
  "surface": "E1 (partial reassembly) and E2 (multi-turn correlation) get a contract in `spec/v2/core/events.md`; the contract text is not written here.",
9779
9779
  "witness": "claims-check",
9780
9780
  "requirementId": null,
9781
- "disposition": "open",
9781
+ "disposition": "closed",
9782
9782
  "target": null,
9783
9783
  "sources": [
9784
9784
  {
@@ -9795,7 +9795,7 @@
9795
9795
  "surface": "The header-less default to `preferredVersion` has no v1 precedent on the protocol surface (the A2A lane has one); witnessed only by the dual-stack scenario on a host advertising two majors. Carried from RFC 0167 G1.",
9796
9796
  "witness": "witnessable-gated",
9797
9797
  "requirementId": null,
9798
- "disposition": "open",
9798
+ "disposition": "closed",
9799
9799
  "target": null,
9800
9800
  "sources": [
9801
9801
  {
@@ -9812,7 +9812,7 @@
9812
9812
  "surface": "MAINTAINERS §\"Major bump\" step 6 edits `spec/v1/auth.md`'s status legend at the cut while RFC 0167 says the v1 tree is read-only from the cut.",
9813
9813
  "witness": "claims-check",
9814
9814
  "requirementId": null,
9815
- "disposition": "open",
9815
+ "disposition": "closed",
9816
9816
  "target": null,
9817
9817
  "sources": [
9818
9818
  {
@@ -9829,7 +9829,7 @@
9829
9829
  "surface": "Whether `OpenWOP-Version` on requests accepts `major.minor`.",
9830
9830
  "witness": "claims-check",
9831
9831
  "requirementId": null,
9832
- "disposition": "open",
9832
+ "disposition": "closed",
9833
9833
  "target": null,
9834
9834
  "sources": [
9835
9835
  {
@@ -9863,8 +9863,8 @@
9863
9863
  "surface": "The effect-seam manifest is a host self-declaration; a seam omitted from it is invisible to the suite (`negative-existence`). The RFC 0140 R5 audit class (outbound clients vs the manifest) is the only check and is not a corpus gate.",
9864
9864
  "witness": "negative-existence",
9865
9865
  "requirementId": null,
9866
- "disposition": "open",
9867
- "target": null,
9866
+ "disposition": "externally-gated",
9867
+ "target": "non-steward-host",
9868
9868
  "sources": [
9869
9869
  {
9870
9870
  "file": "RFCS/registers/0173-v2-security-defaults.gaps.md",
@@ -9880,7 +9880,7 @@
9880
9880
  "surface": "`approversList` enforcement on a host with no RBAC surface (`refKinds` group or role).",
9881
9881
  "witness": "witnessable-gated",
9882
9882
  "requirementId": null,
9883
- "disposition": "open",
9883
+ "disposition": "closed",
9884
9884
  "target": null,
9885
9885
  "sources": [
9886
9886
  {
@@ -9897,7 +9897,7 @@
9897
9897
  "surface": "Compensation and Layer 2 are core obligations *of their surfaces* with declared witnesses; either may still end in `ext/` at the cut if the witness (read projection, fixture provider) does not land.",
9898
9898
  "witness": "seam-gated",
9899
9899
  "requirementId": null,
9900
- "disposition": "open",
9900
+ "disposition": "closed",
9901
9901
  "target": null,
9902
9902
  "sources": [
9903
9903
  {
@@ -9914,7 +9914,7 @@
9914
9914
  "surface": "`interrupt.approverRouting` has two named advertisers in RFC 0104's header and no INTEROP-MATRIX row; `compensation.supported`'s advertiser status is recorded three ways (extensions.json, two matrix rows).",
9915
9915
  "witness": "witnessable-unaided",
9916
9916
  "requirementId": null,
9917
- "disposition": "open",
9917
+ "disposition": "closed",
9918
9918
  "target": null,
9919
9919
  "sources": [
9920
9920
  {
@@ -9999,8 +9999,8 @@
9999
9999
  "surface": "The 90-day refresh SLA is the shortest window both upstreams' lifecycle policies exceed; it has not been measured against an actual upstream release cadence.",
10000
10000
  "witness": "unwitnessable",
10001
10001
  "requirementId": null,
10002
- "disposition": "open",
10003
- "target": null,
10002
+ "disposition": "transferred",
10003
+ "target": "ROADMAP.md#implementation-ecosystem",
10004
10004
  "sources": [
10005
10005
  {
10006
10006
  "file": "RFCS/registers/0175-v2-transports-and-embedded-protocols.gaps.md",
@@ -10016,7 +10016,7 @@
10016
10016
  "surface": "Authenticated negotiation and the floor are witnessed only through the C.1 seams profile (the wire toward a peer is unobservable from the host's own API); the `negotiation.decided` event is the normative surface.",
10017
10017
  "witness": "seam-gated",
10018
10018
  "requirementId": null,
10019
- "disposition": "open",
10019
+ "disposition": "closed",
10020
10020
  "target": null,
10021
10021
  "sources": [
10022
10022
  {
@@ -10050,7 +10050,7 @@
10050
10050
  "surface": "Whether `negotiation.decided` carries the peer origin in clear or as a digest.",
10051
10051
  "witness": "witnessable-unaided",
10052
10052
  "requirementId": null,
10053
- "disposition": "open",
10053
+ "disposition": "closed",
10054
10054
  "target": null,
10055
10055
  "sources": [
10056
10056
  {
@@ -10067,7 +10067,7 @@
10067
10067
  "surface": "Whether the atomic per-run backfill (stamp `3`, rewrite `type` under the same key, original preserved) is allowed in v2.0 or deferred to a later RFC.",
10068
10068
  "witness": "witnessable-unaided",
10069
10069
  "requirementId": null,
10070
- "disposition": "open",
10070
+ "disposition": "closed",
10071
10071
  "target": null,
10072
10072
  "sources": [
10073
10073
  {
@@ -10101,7 +10101,7 @@
10101
10101
  "surface": "The corpus-tag pin was recorded as a done Phase 0 item; the inventory finds 1 of 3 consumers pinned (openwop-app) — openwop-sdks tracks `main`, MyndHyve has no vendored corpus and a caret range, and the registry is unpinned and drifted (RFC 0177 §C.6).",
10102
10102
  "witness": "witnessable-unaided",
10103
10103
  "requirementId": null,
10104
- "disposition": "open",
10104
+ "disposition": "closed",
10105
10105
  "target": null,
10106
10106
  "sources": [
10107
10107
  {
@@ -10152,7 +10152,7 @@
10152
10152
  "surface": "Whether `registry/v2/` carries steward re-signs of `core.openwop.*` / `vendor.openwop*` or only author re-publications.",
10153
10153
  "witness": "unwitnessable",
10154
10154
  "requirementId": null,
10155
- "disposition": "open",
10155
+ "disposition": "closed",
10156
10156
  "target": null,
10157
10157
  "sources": [
10158
10158
  {
@@ -10169,7 +10169,7 @@
10169
10169
  "surface": "The alias table cannot be generated until `spec/v2/declaration.json` exists (RFC 0169, Phase 3); the seven guaranteed rows are known from the inventory.",
10170
10170
  "witness": "witnessable-unaided",
10171
10171
  "requirementId": null,
10172
- "disposition": "open",
10172
+ "disposition": "closed",
10173
10173
  "target": null,
10174
10174
  "sources": [
10175
10175
  {
@@ -10203,8 +10203,8 @@
10203
10203
  "surface": "The portable `{{params.*}}` deferral (WCP4): expansion materializes `parameters` into workflow `variables[]` and rewrites `{{params.x}}` into a PromptTemplate `{{varName}}` with `source: \"variable\"`, gated behind a capability with replay determinism for the run-scoped bag. Not in v2.0.",
10204
10204
  "witness": "unwitnessable",
10205
10205
  "requirementId": null,
10206
- "disposition": "open",
10207
- "target": null,
10206
+ "disposition": "transferred",
10207
+ "target": "ROADMAP.md#implementation-ecosystem",
10208
10208
  "sources": [
10209
10209
  {
10210
10210
  "file": "RFCS/registers/0177-v2-registry-packs-and-extension-tail.gaps.md",
@@ -10220,7 +10220,7 @@
10220
10220
  "surface": "The registry's vendored `node-pack-manifest.schema.json` lacks the RFC 0138 hatch (drifted, unpinned) — the registry rejects the field the protocol requires; 7 of 13 vendored schemas drift from the corpus.",
10221
10221
  "witness": "witnessable-unaided",
10222
10222
  "requirementId": null,
10223
- "disposition": "open",
10223
+ "disposition": "closed",
10224
10224
  "target": null,
10225
10225
  "sources": [
10226
10226
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$comment": "RFC 0172 §D.1 — the one release identity the v2 artifacts derive from. `version` is the next corpus tag `v<version>` (the publish workflow's coordinated-release tag pattern `v*`; RFC 0172's `openwop/v2.<minor>.<patch>` spelling is amended to this at its flip). api/v2/*.yaml info.version, the suite's 2.x version and @openwop/spec-artifacts read it. Bumped by the release PR that cuts the tag, never by hand elsewhere.",
3
- "version": "2.3.3",
4
- "corpusTag": "v2.3.3",
3
+ "version": "2.3.4",
4
+ "corpusTag": "v2.3.4",
5
5
  "updated": "2026-09-16"
6
6
  }