@openwop/spec-artifacts 2.42.6 → 2.42.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CORPUS-STAMP.json +64 -63
  2. package/api/seams-v2.yaml +187 -322
  3. package/api/v2/asyncapi.yaml +83 -113
  4. package/api/v2/openapi.yaml +339 -724
  5. package/package.json +1 -1
  6. package/schemas/audit-verify-result.schema.json +2 -2
  7. package/schemas/v2/audit-verify-result.schema.json +2 -2
  8. package/schemas/v2/capabilities.schema.json +2 -5
  9. package/spec/v1/core-standard-manifest.json +2 -2
  10. package/spec/v1/gaps.json +171 -1
  11. package/spec/v2/README.md +34 -36
  12. package/spec/v2/core/capabilities.md +186 -119
  13. package/spec/v2/core/conformance.md +78 -27
  14. package/spec/v2/core/connection-packs.md +8 -3
  15. package/spec/v2/core/conversation.md +10 -4
  16. package/spec/v2/core/errors.md +30 -9
  17. package/spec/v2/core/events.md +116 -80
  18. package/spec/v2/core/form-content-packs.md +11 -13
  19. package/spec/v2/core/headers.md +22 -14
  20. package/spec/v2/core/host-services.md +22 -5
  21. package/spec/v2/core/idempotency.md +48 -36
  22. package/spec/v2/core/identity.md +110 -42
  23. package/spec/v2/core/interop.md +82 -21
  24. package/spec/v2/core/interrupt.md +79 -40
  25. package/spec/v2/core/node-pack-runtimes.md +18 -4
  26. package/spec/v2/core/oauth.md +40 -6
  27. package/spec/v2/core/overview.md +61 -33
  28. package/spec/v2/core/packs.md +53 -28
  29. package/spec/v2/core/persistence.md +61 -80
  30. package/spec/v2/core/replay.md +56 -42
  31. package/spec/v2/core/runs.md +198 -60
  32. package/spec/v2/core/security-defaults.md +57 -33
  33. package/spec/v2/core/tool-catalog.md +29 -6
  34. package/spec/v2/core/versioning.md +95 -49
  35. package/spec/v2/core/webhooks.md +59 -20
  36. package/spec/v2/core/workflow-chain-packs.md +16 -14
  37. package/spec/v2/corrections.json +17 -1
  38. package/spec/v2/corrections.schema.json +1 -1
  39. package/spec/v2/declaration.json +24 -7
  40. package/spec/v2/declaration.schema.json +10 -0
  41. package/spec/v2/errors.json +109 -2
  42. package/spec/v2/errors.schema.json +38 -0
  43. package/spec/v2/ext/README.md +36 -23
  44. package/spec/v2/ext/a2uiSurface/README.md +75 -89
  45. package/spec/v2/ext/brand/README.md +15 -15
  46. package/spec/v2/ext/canvas/README.md +15 -15
  47. package/spec/v2/ext/chat/README.md +15 -15
  48. package/spec/v2/ext/coordination/README.md +15 -15
  49. package/spec/v2/ext/dataIntegration/README.md +17 -20
  50. package/spec/v2/ext/entities/README.md +15 -15
  51. package/spec/v2/ext/grpc-transport/README.md +6 -8
  52. package/spec/v2/ext/kanban/README.md +15 -15
  53. package/spec/v2/ext/knowledge/README.md +15 -15
  54. package/spec/v2/ext/launchStudio/README.md +16 -16
  55. package/spec/v2/ext/messaging/README.md +15 -15
  56. package/spec/v2/ext/portability/README.md +3 -17
  57. package/spec/v2/ext/provider-idempotency/README.md +7 -10
  58. package/spec/v2/ext/restTransport/README.md +30 -19
  59. package/spec/v2/ext/sandbox-runtime-notes/README.md +7 -9
  60. package/spec/v2/ext/webResearch/README.md +16 -16
  61. package/spec/v2/profiles.json +6 -2
  62. package/spec/v2/release.json +2 -2
  63. package/spec/v2/surface-baseline.json +542 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/spec-artifacts",
3
- "version": "2.42.6",
3
+ "version": "2.42.7",
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": {
@@ -55,12 +55,12 @@
55
55
  "merkleRoot": {
56
56
  "type": "string",
57
57
  "minLength": 1,
58
- "description": "Hex-encoded SHA-256 Merkle root over the canonicalized entries 0..atSequence inclusive. Verifiers re-compute and compare; mismatch implies chain mutation between two checkpoints."
58
+ "description": "Lowercase-hex Merkle root over the entries this checkpoint anchors: sequence in (P, atSequence], P the previous checkpoint's atSequence or 0. Leaves are the entries' hashes (SHA-256 of RFC 8785 JCS) in sequence order; a parent is SHA-256 of the ASCII bytes left ‖ right; a last odd node is promoted unchanged (auth-profiles.md §Audit-log integrity 3, RFC 0218). Verifiers re-compute and compare, holding the leaf count to atSequence − P; a mismatch implies chain mutation since the previous checkpoint."
59
59
  },
60
60
  "signature": {
61
61
  "type": "string",
62
62
  "minLength": 1,
63
- "description": "Base64-encoded Ed25519 signature over the checkpoint's canonical JSON (excluding the `signature` field itself), produced with the host's advertised `auditLogIntegrity.checkpointPublicKey`."
63
+ "description": "Base64-encoded Ed25519 signature over the 32 bytes `merkleRoot` hex-decodes to (not its hex text, not the checkpoint object), verifiable with the host's advertised `auditLogIntegrity.checkpointPublicKey` (RFC 0218)."
64
64
  }
65
65
  },
66
66
  "additionalProperties": false
@@ -70,12 +70,12 @@
70
70
  "merkleRoot": {
71
71
  "type": "string",
72
72
  "minLength": 1,
73
- "description": "Hex-encoded SHA-256 Merkle root over the canonicalized entries 0..atSequence inclusive. Verifiers re-compute and compare; mismatch implies chain mutation between two checkpoints."
73
+ "description": "Lowercase-hex Merkle root over the entries this checkpoint anchors: sequence in (P, atSequence], P the previous checkpoint's atSequence or 0. Leaves are the entries' hashes (SHA-256 of RFC 8785 JCS) in sequence order; a parent is SHA-256 of the ASCII bytes left ‖ right; a last odd node is promoted unchanged (auth-profiles.md §Audit-log integrity 3, RFC 0218). Verifiers re-compute and compare, holding the leaf count to atSequence − P; a mismatch implies chain mutation since the previous checkpoint."
74
74
  },
75
75
  "signature": {
76
76
  "type": "string",
77
77
  "minLength": 1,
78
- "description": "Base64-encoded Ed25519 signature over the checkpoint's canonical JSON (excluding the `signature` field itself), produced with the host's advertised `auditLogIntegrity.checkpointPublicKey`."
78
+ "description": "Base64-encoded Ed25519 signature over the 32 bytes `merkleRoot` hex-decodes to (not its hex text, not the checkpoint object), verifiable with the host's advertised `auditLogIntegrity.checkpointPublicKey` (RFC 0218)."
79
79
  }
80
80
  },
81
81
  "additionalProperties": false
@@ -118,7 +118,8 @@
118
118
  },
119
119
  "minClientVersion": {
120
120
  "type": "string",
121
- "description": "RFC 0172 row C5.8 — MUST (426 client_version_unsupported)."
121
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",
122
+ "description": "Optional. The lowest <major>.<minor> client this host serves (versioning.md §1.5). A host MAY refuse a client below it; a refusal MUST be 426 client_version_unsupported."
122
123
  },
123
124
  "runtimeCapabilities": {
124
125
  "type": "array",
@@ -2535,10 +2536,6 @@
2535
2536
  "required": [
2536
2537
  "version"
2537
2538
  ],
2538
- "if": {
2539
- "properties": {}
2540
- },
2541
- "then": {},
2542
2539
  "properties": {
2543
2540
  "version": {
2544
2541
  "type": "integer",
@@ -4,7 +4,7 @@
4
4
  "provenance": {
5
5
  "suite": {
6
6
  "package": "@openwop/openwop-conformance",
7
- "version": "2.42.6"
7
+ "version": "2.42.7"
8
8
  },
9
9
  "note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
10
10
  },
@@ -421,5 +421,5 @@
421
421
  "$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
422
422
  }
423
423
  ],
424
- "digest": "30878bc2bfc8d91cdb69401176b66daf9f2684e328e7e76d703f5bd755784a38"
424
+ "digest": "2da5e56166f26214299fff10d28db4e2c2d0c5e42f81aebcc20d66dc9a28c3c0"
425
425
  }
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-26",
4
+ "updated": "2026-09-27",
5
5
  "witnessClasses": [
6
6
  "witnessable-unaided",
7
7
  "witnessable-gated",
@@ -12898,6 +12898,176 @@
12898
12898
  }
12899
12899
  ]
12900
12900
  },
12901
+ {
12902
+ "id": "openwop.gap.0218.1",
12903
+ "rfc": "0218",
12904
+ "local": "G1",
12905
+ "section": "§A",
12906
+ "surface": "`auth-profiles.md` §3's emitted checkpoint carries `ts`, but `audit-verify-result.schema.json`'s `Checkpoint` is closed over `{checkpoint, atSequence, merkleRoot, signature}`, so a verify result cannot echo it.",
12907
+ "witness": "unclassified",
12908
+ "requirementId": null,
12909
+ "disposition": "transferred",
12910
+ "target": "spec/v1",
12911
+ "sources": [
12912
+ {
12913
+ "file": "RFCS/registers/0218-audit-checkpoint-preimage.gaps.md",
12914
+ "token": "G1"
12915
+ }
12916
+ ]
12917
+ },
12918
+ {
12919
+ "id": "openwop.gap.0219.1",
12920
+ "rfc": "0219",
12921
+ "local": "G1",
12922
+ "section": "§Compatibility / §C.2",
12923
+ "surface": "Two of the three certified hosts read a malformed value as `0.0` and refuse it (`openwop-examples` v2 reference host `router.ts`, openwop-app `protocolVersion.ts`). Under §C.2 both fail the planned `malformed-not-refused` leg.",
12924
+ "witness": "unclassified",
12925
+ "requirementId": null,
12926
+ "disposition": "transferred",
12927
+ "target": "rfc-0219",
12928
+ "sources": [
12929
+ {
12930
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
12931
+ "token": "G1"
12932
+ }
12933
+ ]
12934
+ },
12935
+ {
12936
+ "id": "openwop.gap.0219.2",
12937
+ "rfc": "0219",
12938
+ "local": "G2",
12939
+ "section": "§A / Unresolved question 1",
12940
+ "surface": "Whether the value names the corpus release the client implements (this RFC) or a product version (v1's `openwop-sdk/<v>`).",
12941
+ "witness": "unclassified",
12942
+ "requirementId": null,
12943
+ "disposition": "transferred",
12944
+ "target": "rfc-0219",
12945
+ "sources": [
12946
+ {
12947
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
12948
+ "token": "G2"
12949
+ }
12950
+ ]
12951
+ },
12952
+ {
12953
+ "id": "openwop.gap.0219.3",
12954
+ "rfc": "0219",
12955
+ "local": "G3",
12956
+ "section": "Unresolved question 3",
12957
+ "surface": "RFC 9110 §15.5.22 requires `Upgrade` on every `426`; none of the three hosts sends it and no v2 text names a value.",
12958
+ "witness": "unclassified",
12959
+ "requirementId": null,
12960
+ "disposition": "transferred",
12961
+ "target": "spec/v2/core/versioning.md",
12962
+ "sources": [
12963
+ {
12964
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
12965
+ "token": "G3"
12966
+ }
12967
+ ]
12968
+ },
12969
+ {
12970
+ "id": "openwop.gap.0219.4",
12971
+ "rfc": "0219",
12972
+ "local": "G4",
12973
+ "section": "Unresolved question 5",
12974
+ "surface": "`client_version_unsupported` has `details: null`. Two hosts send `details.minClientVersion`, MyndHyve sends none.",
12975
+ "witness": "unclassified",
12976
+ "requirementId": null,
12977
+ "disposition": "transferred",
12978
+ "target": "spec/v2/core/errors.md",
12979
+ "sources": [
12980
+ {
12981
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
12982
+ "token": "G4"
12983
+ }
12984
+ ]
12985
+ },
12986
+ {
12987
+ "id": "openwop.gap.0219.5",
12988
+ "rfc": "0219",
12989
+ "local": "G5",
12990
+ "section": "Unresolved question 2",
12991
+ "surface": "The header's meaning on a `/v1/…` path during the overlap. The reference host applies the floor there; openwop-app does not.",
12992
+ "witness": "unclassified",
12993
+ "requirementId": null,
12994
+ "disposition": "transferred",
12995
+ "target": "rfc-0219",
12996
+ "sources": [
12997
+ {
12998
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
12999
+ "token": "G5"
13000
+ }
13001
+ ]
13002
+ },
13003
+ {
13004
+ "id": "openwop.gap.0219.6",
13005
+ "rfc": "0219",
13006
+ "local": "G6",
13007
+ "section": "§Implementation notes",
13008
+ "surface": "No v2 SDK sends the header today (`openwop-sdks`: `sdk/typescript-v2`, `sdk/python-v2`, Go).",
13009
+ "witness": "unclassified",
13010
+ "requirementId": null,
13011
+ "disposition": "transferred",
13012
+ "target": "rfc-0219",
13013
+ "sources": [
13014
+ {
13015
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
13016
+ "token": "G6"
13017
+ }
13018
+ ]
13019
+ },
13020
+ {
13021
+ "id": "openwop.gap.0220.1",
13022
+ "rfc": "0220",
13023
+ "local": "G1",
13024
+ "section": "§C.2",
13025
+ "surface": "`a2uiSurface` has no tier-2 witness path. MyndHyve's v2 discovery drops `schemaVersions.kinds`, it serves no `POST /conformance/seams/sample/a2ui/emit-surface`, and its seams profile is off.",
13026
+ "witness": "unclassified",
13027
+ "requirementId": null,
13028
+ "disposition": "transferred",
13029
+ "target": "myndhyve/services/workflow-runtime",
13030
+ "sources": [
13031
+ {
13032
+ "file": "RFCS/registers/0220-ext-families-graduate-on-evidence.gaps.md",
13033
+ "token": "G1"
13034
+ }
13035
+ ]
13036
+ },
13037
+ {
13038
+ "id": "openwop.gap.0220.2",
13039
+ "rfc": "0220",
13040
+ "local": "G2",
13041
+ "section": "§B",
13042
+ "surface": "The 11 reservations have no portable contract, so their `Stable` means \"advertised correctly by a tier-2 host\", not interoperation.",
13043
+ "witness": "unclassified",
13044
+ "requirementId": null,
13045
+ "disposition": "externally-gated",
13046
+ "target": "cross-host-demand",
13047
+ "sources": [
13048
+ {
13049
+ "file": "RFCS/registers/0220-ext-families-graduate-on-evidence.gaps.md",
13050
+ "token": "G2"
13051
+ }
13052
+ ]
13053
+ },
13054
+ {
13055
+ "id": "openwop.gap.0220.3",
13056
+ "rfc": "0220",
13057
+ "local": "G3",
13058
+ "section": "§D",
13059
+ "surface": "`evidence/host-tiers.json` has no tier-3 row; the first independent host adds one.",
13060
+ "witness": "unclassified",
13061
+ "requirementId": null,
13062
+ "disposition": "externally-gated",
13063
+ "target": "tier-3-host",
13064
+ "sources": [
13065
+ {
13066
+ "file": "RFCS/registers/0220-ext-families-graduate-on-evidence.gaps.md",
13067
+ "token": "G3"
13068
+ }
13069
+ ]
13070
+ },
12901
13071
  {
12902
13072
  "id": "openwop.gap.spec.a2a-integration.g1",
12903
13073
  "rfc": "0152",
package/spec/v2/README.md CHANGED
@@ -3,15 +3,15 @@
3
3
  > **Status: released · current corpus.** The authoritative version is
4
4
  > [`release.json`](./release.json). Target v2 for new implementations.
5
5
 
6
- OpenWOP v2 is the current protocol major. Its contract consists of this
7
- directory, [`schemas/v2/`](../../schemas/v2/), and
8
- [`api/v2/`](../../api/v2/). Those artifacts are published together in
9
- `@openwop/spec-artifacts` and measured by `@openwop/openwop-conformance` 2.x.
6
+ OpenWOP v2 is the current protocol major. Its contract is this directory,
7
+ [`schemas/v2/`](../../schemas/v2/), and [`api/v2/`](../../api/v2/). They are
8
+ published together as `@openwop/spec-artifacts` and tested by
9
+ `@openwop/openwop-conformance` 2.x.
10
10
 
11
- v1 remains available during the overlap period. Dual-stack requirements and
12
- the retirement rule are defined in
13
- [`core/versioning.md`](./core/versioning.md#5-the-overlap-rfc-0167-b5-rfc-0176)
14
- and [`core/overview.md`](./core/overview.md).
11
+ v1 is still supported during the overlap period.
12
+ [`core/versioning.md`](./core/versioning.md#5-the-overlap)
13
+ and [`core/overview.md`](./core/overview.md) define how a host serves both and
14
+ when v1 ends.
15
15
 
16
16
  ## Start here
17
17
 
@@ -19,43 +19,41 @@ and [`core/overview.md`](./core/overview.md).
19
19
  lifecycle.
20
20
  2. [`core/versioning.md`](./core/versioning.md) — discovery and major-version
21
21
  negotiation.
22
- 3. [`core/capabilities.md`](./core/capabilities.md) — the closed discovery
23
- document.
22
+ 3. [`core/capabilities.md`](./core/capabilities.md) — the discovery document.
24
23
  4. [`core/runs.md`](./core/runs.md), [`core/events.md`](./core/events.md), and
25
24
  [`core/interrupt.md`](./core/interrupt.md) — the execution model.
26
25
  5. [`core/security-defaults.md`](./core/security-defaults.md) and
27
26
  [`core/conformance.md`](./core/conformance.md) — mandatory safety defaults
28
27
  and evidence rules.
29
28
 
30
- ## Source-of-truth map
31
-
32
- | Path | Purpose |
33
- | --- | --- |
34
- | [`declaration.json`](./declaration.json) | Hand-reviewed inventory of discovery keys, capability families, maturity, witnesses, facets, profiles, and peer-dependency identifiers. |
35
- | [`declaration.schema.json`](./declaration.schema.json) | Schema for the declaration. |
36
- | [`core/`](./core/) | Normative protocol prose. |
37
- | [`ext/`](./ext/) | Optional extensions and explicitly non-core notes. See the extension maturity rules in [`ext/README.md`](./ext/README.md). |
38
- | [`facets/`](./facets/) | Hand-reviewed capability facet schemas. |
39
- | [`errors.json`](./errors.json) | Error-code registry. |
40
- | [`event-codemap.json`](./event-codemap.json) | v1-to-v2 event-name mapping. |
41
- | [`path-manifest.json`](./path-manifest.json) | Canonical operation and channel paths. |
42
- | [`profiles.json`](./profiles.json) | Generated profile predicates. |
43
- | [`peer-dependency-aliases.json`](./peer-dependency-aliases.json) | Generated v1 alias mapping. |
44
- | [`release.json`](./release.json) | Authoritative corpus release identity. |
45
- | [`migrations.json`](./migrations.json) | RFC 0197 — the v2→v2 migration register: what a 2.x minor replaced and which deprecation row schedules the old surface out. Empty is a legal state. |
46
- | [`corrections.json`](./corrections.json) | RFC 0197 §A.4 — W3C Class-3 corrections that changed a v2 shape, each with the bundle and registry census that showed nothing conforming stopped conforming. |
47
- | [`surface-baseline.json`](./surface-baseline.json) | RFC 0197 §A.1 — GENERATED census of every v2 surface, enumerated by instance path; `check-v2-surface-monotone.mjs` diffs the tree against it. Regenerated by the release PR. |
48
-
49
- Generated files identify their generator in `$comment` or their header. Do not
50
- edit generated outputs directly. Machine artifacts are published in
51
- `@openwop/spec-artifacts`; the conformance package consumes them as an
52
- exact-version peer dependency.
53
-
54
29
  ## Core documents
55
30
 
56
31
  | Area | Documents |
57
32
  | --- | --- |
58
33
  | Foundation | [`overview`](./core/overview.md), [`versioning`](./core/versioning.md), [`headers`](./core/headers.md), [`identity`](./core/identity.md), [`oauth`](./core/oauth.md), [`capabilities`](./core/capabilities.md) |
59
- | Execution | [`runs`](./core/runs.md), [`events`](./core/events.md), [`interrupt`](./core/interrupt.md), [`persistence`](./core/persistence.md), [`idempotency`](./core/idempotency.md), [`replay`](./core/replay.md) |
60
- | Integration | [`webhooks`](./core/webhooks.md), [`interop`](./core/interop.md), [`packs`](./core/packs.md), [`node-pack runtimes`](./core/node-pack-runtimes.md), [`connection packs`](./core/connection-packs.md), [`form-content packs`](./core/form-content-packs.md), [`workflow-chain packs`](./core/workflow-chain-packs.md) |
34
+ | Execution | [`runs`](./core/runs.md), [`events`](./core/events.md), [`interrupt`](./core/interrupt.md), [`conversation`](./core/conversation.md), [`persistence`](./core/persistence.md), [`idempotency`](./core/idempotency.md), [`replay`](./core/replay.md) |
35
+ | Integration | [`webhooks`](./core/webhooks.md), [`interop`](./core/interop.md), [`host services`](./core/host-services.md), [`tool catalog`](./core/tool-catalog.md), [`packs`](./core/packs.md), [`node-pack runtimes`](./core/node-pack-runtimes.md), [`connection packs`](./core/connection-packs.md), [`form-content packs`](./core/form-content-packs.md), [`workflow-chain packs`](./core/workflow-chain-packs.md) |
61
36
  | Reliability | [`errors`](./core/errors.md), [`security defaults`](./core/security-defaults.md), [`conformance`](./core/conformance.md) |
37
+
38
+ ## Source-of-truth map
39
+
40
+ | Path | Contents |
41
+ | --- | --- |
42
+ | [`core/`](./core/) | The normative protocol documents |
43
+ | [`ext/`](./ext/) | Optional extensions and non-core notes ([maturity rules](./ext/README.md)) |
44
+ | [`declaration.json`](./declaration.json) | Inventory of discovery keys, capability families, maturity, witnesses, facets, profiles, and peer-dependency ids |
45
+ | [`declaration.schema.json`](./declaration.schema.json) | Schema for the declaration |
46
+ | [`facets/`](./facets/) | Capability facet schemas |
47
+ | [`errors.json`](./errors.json) | Error-code registry |
48
+ | [`event-codemap.json`](./event-codemap.json) | v1-to-v2 event-name mapping |
49
+ | [`path-manifest.json`](./path-manifest.json) | Canonical operation and channel paths |
50
+ | [`profiles.json`](./profiles.json) | Profile predicates (generated) |
51
+ | [`peer-dependency-aliases.json`](./peer-dependency-aliases.json) | v1 alias mapping (generated) |
52
+ | [`release.json`](./release.json) | Corpus release identity |
53
+ | [`migrations.json`](./migrations.json) | Surfaces a 2.x minor replaced, and the deprecation row that retires each |
54
+ | [`corrections.json`](./corrections.json) | Corrections that changed a v2 shape without breaking a conforming host |
55
+ | [`surface-baseline.json`](./surface-baseline.json) | Every v2 surface, used to check that minors only add (generated) |
56
+
57
+ Do not edit generated files by hand; each names its generator in `$comment` or
58
+ its header. Machine artifacts are published in `@openwop/spec-artifacts`, which
59
+ the conformance package consumes as an exact-version peer dependency.