@agent-teams/docs-protocol 0.1.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +70 -9
  3. package/assets/catalog.json +1 -1
  4. package/assets/transition-catalog.json +1 -1
  5. package/dist/adapters/docs-command-envelope-schema-validator.d.ts.map +1 -1
  6. package/dist/adapters/docs-command-envelope-schema-validator.js +30 -8
  7. package/dist/adapters/docs-command-envelope-schema-validator.js.map +1 -1
  8. package/dist/adapters/docs-profile-schema-validator.d.ts.map +1 -1
  9. package/dist/adapters/docs-profile-schema-validator.js +13 -7
  10. package/dist/adapters/docs-profile-schema-validator.js.map +1 -1
  11. package/dist/adapters/foundation-docs-port.d.ts +10 -9
  12. package/dist/adapters/foundation-docs-port.d.ts.map +1 -1
  13. package/dist/adapters/foundation-docs-port.js +15 -10
  14. package/dist/adapters/foundation-docs-port.js.map +1 -1
  15. package/dist/adapters/node-adoption-inspector.js +2 -2
  16. package/dist/adapters/node-adoption-inspector.js.map +1 -1
  17. package/dist/adapters/node-profile-reader.d.ts +3 -3
  18. package/dist/adapters/node-profile-reader.d.ts.map +1 -1
  19. package/dist/application/authority-handshake.d.ts +4 -4
  20. package/dist/application/authority-handshake.d.ts.map +1 -1
  21. package/dist/application/compiled-document.d.ts +11 -0
  22. package/dist/application/compiled-document.d.ts.map +1 -0
  23. package/dist/application/compiled-document.js +31 -0
  24. package/dist/application/compiled-document.js.map +1 -0
  25. package/dist/application/docs-new-completion.d.ts +5 -4
  26. package/dist/application/docs-new-completion.d.ts.map +1 -1
  27. package/dist/application/docs-new-completion.js.map +1 -1
  28. package/dist/application/docs-protocol-v1-presenter.d.ts +140 -0
  29. package/dist/application/docs-protocol-v1-presenter.d.ts.map +1 -0
  30. package/dist/application/docs-protocol-v1-presenter.js +77 -0
  31. package/dist/application/docs-protocol-v1-presenter.js.map +1 -0
  32. package/dist/application/docs-protocol.d.ts +210 -3
  33. package/dist/application/docs-protocol.d.ts.map +1 -1
  34. package/dist/application/docs-protocol.js +46 -13
  35. package/dist/application/docs-protocol.js.map +1 -1
  36. package/dist/composition/cli-input.d.ts +12 -0
  37. package/dist/composition/cli-input.d.ts.map +1 -0
  38. package/dist/composition/cli-input.js +66 -0
  39. package/dist/composition/cli-input.js.map +1 -0
  40. package/dist/composition/cli.d.ts +4 -4
  41. package/dist/composition/cli.d.ts.map +1 -1
  42. package/dist/composition/cli.js +21 -144
  43. package/dist/composition/cli.js.map +1 -1
  44. package/dist/composition/docs-human-renderer.d.ts +5 -0
  45. package/dist/composition/docs-human-renderer.d.ts.map +1 -0
  46. package/dist/composition/docs-human-renderer.js +94 -0
  47. package/dist/composition/docs-human-renderer.js.map +1 -0
  48. package/dist/composition/node-docs-api.d.ts +191 -0
  49. package/dist/composition/node-docs-api.d.ts.map +1 -1
  50. package/dist/composition/node-docs-api.js +18 -0
  51. package/dist/composition/node-docs-api.js.map +1 -1
  52. package/dist/composition/qualification-cli.d.ts +2 -0
  53. package/dist/composition/qualification-cli.d.ts.map +1 -0
  54. package/dist/composition/qualification-cli.js +119 -0
  55. package/dist/composition/qualification-cli.js.map +1 -0
  56. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +1 -0
  57. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -1
  58. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +12 -4
  59. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
  60. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +10 -0
  61. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -0
  62. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +110 -0
  63. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -0
  64. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +21 -0
  65. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -0
  66. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +215 -0
  67. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -0
  68. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
  69. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +27 -95
  70. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
  71. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts +11 -0
  72. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts.map +1 -0
  73. package/dist/consumer-integration/adapters/node-consumer-repository-files.js +81 -0
  74. package/dist/consumer-integration/adapters/node-consumer-repository-files.js.map +1 -0
  75. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +19 -0
  76. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -0
  77. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +298 -0
  78. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -0
  79. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +4 -0
  80. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
  81. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +32 -1
  82. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
  83. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts +18 -0
  84. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts.map +1 -0
  85. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js +2 -0
  86. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js.map +1 -0
  87. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +2 -1
  88. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
  89. package/dist/consumer-integration/application/policies/consumer-integration-assets.js +12 -5
  90. package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
  91. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js +2 -2
  92. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js.map +1 -1
  93. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +28 -0
  94. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -0
  95. package/dist/consumer-integration/application/ports/consumer-upgrade.js +2 -0
  96. package/dist/consumer-integration/application/ports/consumer-upgrade.js.map +1 -0
  97. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +2 -2
  98. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
  99. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +13 -0
  100. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -0
  101. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +134 -0
  102. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -0
  103. package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts +2 -0
  104. package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts.map +1 -0
  105. package/dist/consumer-integration/composition/canonical-docs-skill-v2.js +2 -0
  106. package/dist/consumer-integration/composition/canonical-docs-skill-v2.js.map +1 -0
  107. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
  108. package/dist/consumer-integration/composition/consumer-integration-cli.js +50 -15
  109. package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
  110. package/dist/consumer-integration/composition/node-consumer-integration.d.ts +6 -0
  111. package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
  112. package/dist/consumer-integration/composition/node-consumer-integration.js +14 -0
  113. package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
  114. package/dist/consumer-integration/domain/model.d.ts +6 -0
  115. package/dist/consumer-integration/domain/model.d.ts.map +1 -1
  116. package/dist/consumer-integration/generated/canonical-assets.d.ts +2 -1
  117. package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
  118. package/dist/consumer-integration/generated/canonical-assets.js +2 -1
  119. package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
  120. package/dist/consumer-integration/index.d.ts +3 -2
  121. package/dist/consumer-integration/index.d.ts.map +1 -1
  122. package/dist/consumer-integration/index.js +1 -1
  123. package/dist/consumer-integration/index.js.map +1 -1
  124. package/dist/domain/model-v2.d.ts +170 -0
  125. package/dist/domain/model-v2.d.ts.map +1 -0
  126. package/dist/domain/model-v2.js +2 -0
  127. package/dist/domain/model-v2.js.map +1 -0
  128. package/dist/domain/model.d.ts +1 -99
  129. package/dist/domain/model.d.ts.map +1 -1
  130. package/dist/domain/model.js.map +1 -1
  131. package/dist/domain/profile-policy.d.ts +2 -1
  132. package/dist/domain/profile-policy.d.ts.map +1 -1
  133. package/dist/domain/profile-policy.js +20 -12
  134. package/dist/domain/profile-policy.js.map +1 -1
  135. package/dist/index.d.ts +4 -2
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +3 -2
  138. package/dist/index.js.map +1 -1
  139. package/dist/qualification/filesystem-evidence.d.ts +15 -0
  140. package/dist/qualification/filesystem-evidence.d.ts.map +1 -0
  141. package/dist/qualification/filesystem-evidence.js +325 -0
  142. package/dist/qualification/filesystem-evidence.js.map +1 -0
  143. package/dist/qualification/index.d.ts +3 -0
  144. package/dist/qualification/index.d.ts.map +1 -1
  145. package/dist/qualification/index.js +12 -326
  146. package/dist/qualification/index.js.map +1 -1
  147. package/dist/qualification/qualification-runtime.d.ts +58 -0
  148. package/dist/qualification/qualification-runtime.d.ts.map +1 -0
  149. package/dist/qualification/qualification-runtime.js +160 -0
  150. package/dist/qualification/qualification-runtime.js.map +1 -0
  151. package/dist/qualification/qualification-v2-runner.d.ts +4 -0
  152. package/dist/qualification/qualification-v2-runner.d.ts.map +1 -0
  153. package/dist/qualification/qualification-v2-runner.js +306 -0
  154. package/dist/qualification/qualification-v2-runner.js.map +1 -0
  155. package/dist/qualification/v2-contract.d.ts +91 -0
  156. package/dist/qualification/v2-contract.d.ts.map +1 -0
  157. package/dist/qualification/v2-contract.js +2 -0
  158. package/dist/qualification/v2-contract.js.map +1 -0
  159. package/package.json +8 -2
  160. package/schemas/docs-consumer-integration-profile/v2.schema.json +283 -0
  161. package/schemas/docs-consumer-upgrade-execution/v1.schema.json +44 -0
  162. package/schemas/docs-protocol-command-envelope/v2.schema.json +285 -0
  163. package/schemas/docs-protocol-profile/v2.schema.json +46 -0
  164. package/schemas/docs-protocol-qualification/v2.schema.json +78 -0
  165. package/schemas/docs-protocol-qualification-receipt/v2.schema.json +113 -0
  166. package/skills/docs/SKILL.md +3 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-teams/docs-protocol",
3
- "version": "0.1.4",
3
+ "version": "0.3.0",
4
4
  "description": "Unified deterministic documentation authoring protocol for Agent Teams repositories.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -24,10 +24,16 @@
24
24
  "dist",
25
25
  "schemas/docs-protocol/v1.schema.json",
26
26
  "schemas/docs-protocol-profile/v1.schema.json",
27
+ "schemas/docs-protocol-profile/v2.schema.json",
27
28
  "schemas/docs-protocol-command-envelope/v1.schema.json",
29
+ "schemas/docs-protocol-command-envelope/v2.schema.json",
28
30
  "schemas/docs-consumer-integration-execution/v1.schema.json",
29
31
  "schemas/docs-consumer-integration-plan/v1.schema.json",
30
32
  "schemas/docs-consumer-integration-profile/v1.schema.json",
33
+ "schemas/docs-consumer-integration-profile/v2.schema.json",
34
+ "schemas/docs-consumer-upgrade-execution/v1.schema.json",
35
+ "schemas/docs-protocol-qualification/v2.schema.json",
36
+ "schemas/docs-protocol-qualification-receipt/v2.schema.json",
31
37
  "schemas/docs-consumer-managed-state/v1.schema.json",
32
38
  "schemas/qualified-docs-cohort/v1.schema.json",
33
39
  "skills/docs/SKILL.md",
@@ -59,7 +65,7 @@
59
65
  "ajv-formats": "3.0.1",
60
66
  "jsonc-parser": "3.3.1",
61
67
  "yaml": "2.9.0",
62
- "@agent-teams/engineering-foundation": "0.19.0"
68
+ "@agent-teams/engineering-foundation": "0.20.0"
63
69
  },
64
70
  "devDependencies": {
65
71
  "@types/node": "24.13.3",
@@ -0,0 +1,283 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-teams.ai/schemas/docs-consumer-integration-profile/v2",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "schemaVersion",
8
+ "repository",
9
+ "integrationRoot",
10
+ "packageManager",
11
+ "profilePath",
12
+ "skillPath",
13
+ "callerWorkflowPath",
14
+ "managedStatePath",
15
+ "cohort",
16
+ "qualification"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": {
20
+ "const": 2
21
+ },
22
+ "repository": {
23
+ "type": "object",
24
+ "additionalProperties": false,
25
+ "required": [
26
+ "provider",
27
+ "id",
28
+ "nameWithOwner"
29
+ ],
30
+ "properties": {
31
+ "provider": {
32
+ "const": "github"
33
+ },
34
+ "id": {
35
+ "type": "string",
36
+ "pattern": "^[1-9][0-9]*$"
37
+ },
38
+ "nameWithOwner": {
39
+ "type": "string",
40
+ "pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"
41
+ }
42
+ }
43
+ },
44
+ "integrationRoot": {
45
+ "const": "."
46
+ },
47
+ "packageManager": {
48
+ "const": "pnpm"
49
+ },
50
+ "profilePath": {
51
+ "const": "architecture/foundation/docs-protocol.yaml"
52
+ },
53
+ "skillPath": {
54
+ "const": ".agents/skills/docs-authoring/SKILL.md"
55
+ },
56
+ "callerWorkflowPath": {
57
+ "const": ".github/workflows/docs-protocol.yml"
58
+ },
59
+ "managedStatePath": {
60
+ "const": "architecture/foundation/docs-protocol-managed-state.json"
61
+ },
62
+ "qualification": {
63
+ "type": "object",
64
+ "additionalProperties": false,
65
+ "required": [
66
+ "contractPath",
67
+ "gateCommand"
68
+ ],
69
+ "properties": {
70
+ "contractPath": {
71
+ "const": "architecture/foundation/docs-protocol-qualification.json"
72
+ },
73
+ "gateCommand": {
74
+ "const": "pnpm docs:protocol:check"
75
+ }
76
+ }
77
+ },
78
+ "governedDocsRoots": {
79
+ "type": "array",
80
+ "minItems": 1,
81
+ "maxItems": 32,
82
+ "uniqueItems": true,
83
+ "items": {
84
+ "type": "string",
85
+ "minLength": 1,
86
+ "maxLength": 512,
87
+ "pattern": "^(?!.*(?:^|/)\\.{1,2}(?:/|$))[A-Za-z0-9._@-]{1,255}(?:/[A-Za-z0-9._@-]{1,255})*$"
88
+ }
89
+ },
90
+ "cohort": {
91
+ "$ref": "#/$defs/cohortBinding"
92
+ }
93
+ },
94
+ "$defs": {
95
+ "cohortBinding": {
96
+ "type": "object",
97
+ "additionalProperties": false,
98
+ "required": [
99
+ "schemaVersion",
100
+ "cohortId",
101
+ "channel",
102
+ "recordDigest",
103
+ "qualificationEventDigest",
104
+ "eligibleAfter",
105
+ "upgradeFrom",
106
+ "rollbackTo",
107
+ "packages",
108
+ "workflow",
109
+ "assets",
110
+ "schemas",
111
+ "runtime"
112
+ ],
113
+ "properties": {
114
+ "schemaVersion": {
115
+ "const": 1
116
+ },
117
+ "cohortId": {
118
+ "type": "string",
119
+ "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
120
+ },
121
+ "channel": {
122
+ "enum": [
123
+ "rc",
124
+ "stable"
125
+ ]
126
+ },
127
+ "recordDigest": {
128
+ "$ref": "#/$defs/nonzeroSha256"
129
+ },
130
+ "qualificationEventDigest": {
131
+ "$ref": "#/$defs/nonzeroSha256"
132
+ },
133
+ "eligibleAfter": {
134
+ "type": "string",
135
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
136
+ },
137
+ "upgradeFrom": {
138
+ "$ref": "#/$defs/cohortIds"
139
+ },
140
+ "rollbackTo": {
141
+ "$ref": "#/$defs/cohortIds"
142
+ },
143
+ "packages": {
144
+ "type": "object",
145
+ "additionalProperties": false,
146
+ "required": [
147
+ "docsProtocol",
148
+ "engineeringFoundation"
149
+ ],
150
+ "properties": {
151
+ "docsProtocol": {
152
+ "$ref": "#/$defs/package"
153
+ },
154
+ "engineeringFoundation": {
155
+ "$ref": "#/$defs/package"
156
+ }
157
+ }
158
+ },
159
+ "workflow": {
160
+ "type": "object",
161
+ "additionalProperties": false,
162
+ "required": [
163
+ "repository",
164
+ "path",
165
+ "revision",
166
+ "blobSha"
167
+ ],
168
+ "properties": {
169
+ "repository": {
170
+ "const": "agent-teams-ai/.github"
171
+ },
172
+ "path": {
173
+ "const": ".github/workflows/docs-protocol-check.yml"
174
+ },
175
+ "revision": {
176
+ "type": "string",
177
+ "pattern": "^(?!0{40}$)[0-9a-f]{40}$"
178
+ },
179
+ "blobSha": {
180
+ "type": "string",
181
+ "pattern": "^(?!0{40}$)[0-9a-f]{40}$"
182
+ }
183
+ }
184
+ },
185
+ "assets": {
186
+ "type": "object",
187
+ "additionalProperties": false,
188
+ "required": [
189
+ "skillDigest",
190
+ "callerWorkflowDigest",
191
+ "assetCatalogDigest",
192
+ "transitionCatalogDigest"
193
+ ],
194
+ "properties": {
195
+ "skillDigest": {
196
+ "$ref": "#/$defs/nonzeroSha256"
197
+ },
198
+ "callerWorkflowDigest": {
199
+ "$ref": "#/$defs/nonzeroSha256"
200
+ },
201
+ "assetCatalogDigest": {
202
+ "$ref": "#/$defs/nonzeroSha256"
203
+ },
204
+ "transitionCatalogDigest": {
205
+ "$ref": "#/$defs/nonzeroSha256"
206
+ }
207
+ }
208
+ },
209
+ "schemas": {
210
+ "type": "object",
211
+ "additionalProperties": false,
212
+ "required": [
213
+ "consumerIntegration",
214
+ "managedState",
215
+ "docsProtocol"
216
+ ],
217
+ "properties": {
218
+ "consumerIntegration": {
219
+ "const": 1
220
+ },
221
+ "managedState": {
222
+ "const": 1
223
+ },
224
+ "docsProtocol": {
225
+ "const": 1
226
+ }
227
+ }
228
+ },
229
+ "runtime": {
230
+ "type": "object",
231
+ "additionalProperties": false,
232
+ "required": [
233
+ "node",
234
+ "pnpm",
235
+ "runtimeClosureDigest"
236
+ ],
237
+ "properties": {
238
+ "node": {
239
+ "const": ">=24.18.0 <25"
240
+ },
241
+ "pnpm": {
242
+ "const": ">=11.17.0 <12"
243
+ },
244
+ "runtimeClosureDigest": {
245
+ "$ref": "#/$defs/nonzeroSha256"
246
+ }
247
+ }
248
+ }
249
+ }
250
+ },
251
+ "nonzeroSha256": {
252
+ "type": "string",
253
+ "pattern": "^sha256:(?!0{64}$)[0-9a-f]{64}$"
254
+ },
255
+ "cohortIds": {
256
+ "type": "array",
257
+ "maxItems": 32,
258
+ "uniqueItems": true,
259
+ "items": {
260
+ "type": "string",
261
+ "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
262
+ }
263
+ },
264
+ "package": {
265
+ "type": "object",
266
+ "additionalProperties": false,
267
+ "required": [
268
+ "version",
269
+ "integrity"
270
+ ],
271
+ "properties": {
272
+ "version": {
273
+ "type": "string",
274
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z.-]+)?$"
275
+ },
276
+ "integrity": {
277
+ "type": "string",
278
+ "pattern": "^sha512-[A-Za-z0-9+/]{86}==$"
279
+ }
280
+ }
281
+ }
282
+ }
283
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-teams.ai/schemas/docs-consumer-upgrade-execution/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["schemaVersion", "command", "outcome", "issues"],
7
+ "properties": {
8
+ "schemaVersion": { "const": 1 },
9
+ "command": { "const": "consumer.upgrade" },
10
+ "outcome": { "enum": ["blocked", "current", "upgraded"] },
11
+ "issues": {
12
+ "type": "array",
13
+ "maxItems": 64,
14
+ "items": {
15
+ "type": "object",
16
+ "additionalProperties": false,
17
+ "required": ["code", "severity", "subject", "message"],
18
+ "properties": {
19
+ "code": { "type": "string", "pattern": "^[A-Z0-9_]+$", "maxLength": 128 },
20
+ "severity": { "enum": ["error", "warning"] },
21
+ "subject": { "type": "string", "maxLength": 2048 },
22
+ "message": { "type": "string", "maxLength": 4096 }
23
+ }
24
+ }
25
+ },
26
+ "authority": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["repository", "path", "revision", "cohortId", "recordDigest", "qualificationEventDigest"],
30
+ "properties": {
31
+ "repository": { "const": "agent-teams-ai/.github" },
32
+ "path": { "const": "governance/docs-qualified-cohorts.json" },
33
+ "revision": { "type": "string", "pattern": "^(?!0{40}$)[0-9a-f]{40}$" },
34
+ "cohortId": { "type": "string", "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$" },
35
+ "recordDigest": { "$ref": "#/$defs/sha256" },
36
+ "qualificationEventDigest": { "$ref": "#/$defs/sha256" }
37
+ }
38
+ },
39
+ "receipt": { "$ref": "https://agent-teams.ai/schemas/known-file-transaction-receipt/v1" }
40
+ },
41
+ "$defs": {
42
+ "sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }
43
+ }
44
+ }