peer-ai-workflow 1.0.0-next.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.
@@ -0,0 +1,415 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "$schema": {
6
+ "type": "string"
7
+ },
8
+ "version": {
9
+ "type": "number",
10
+ "const": 1
11
+ },
12
+ "id": {
13
+ "type": "string",
14
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
15
+ "description": "Also the file name. Tracker keys work as they are, such as PROJ-14; a GitHub issue #42 becomes GH-42."
16
+ },
17
+ "title": {
18
+ "type": "string",
19
+ "minLength": 1
20
+ },
21
+ "kind": {
22
+ "type": "string",
23
+ "enum": [
24
+ "feature",
25
+ "bug",
26
+ "refactor",
27
+ "migration",
28
+ "gap",
29
+ "discovery",
30
+ "chore"
31
+ ]
32
+ },
33
+ "stage": {
34
+ "type": "string",
35
+ "enum": [
36
+ "prepare",
37
+ "build",
38
+ "verify",
39
+ "ship",
40
+ "done",
41
+ "cancelled"
42
+ ]
43
+ },
44
+ "track": {
45
+ "type": "string",
46
+ "minLength": 1
47
+ },
48
+ "branch": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ },
52
+ "gap": {
53
+ "description": "For kind gap: the map item this work fills.",
54
+ "anyOf": [
55
+ {
56
+ "type": "string",
57
+ "enum": [
58
+ "requirements",
59
+ "architecture",
60
+ "threat-model",
61
+ "specs",
62
+ "api-contract",
63
+ "data-model",
64
+ "data-inventory",
65
+ "dpia",
66
+ "design",
67
+ "standards",
68
+ "ci",
69
+ "environments",
70
+ "tests",
71
+ "load-testing",
72
+ "infrastructure",
73
+ "observability",
74
+ "slos",
75
+ "runbooks",
76
+ "docs"
77
+ ]
78
+ },
79
+ {
80
+ "type": "string",
81
+ "pattern": "^x-[a-z0-9]+(-[a-z0-9]+)*$"
82
+ }
83
+ ]
84
+ },
85
+ "goal": {
86
+ "description": "What done means for this item, in a sentence or two (RFC 0005).",
87
+ "type": "string",
88
+ "minLength": 1,
89
+ "maxLength": 500
90
+ },
91
+ "acceptance": {
92
+ "description": "Criteria a tester could check: given a situation, when something happens, then a result anyone can see.",
93
+ "maxItems": 20,
94
+ "type": "array",
95
+ "items": {
96
+ "type": "string",
97
+ "minLength": 1,
98
+ "maxLength": 300
99
+ }
100
+ },
101
+ "sources": {
102
+ "description": "The spec, design, requirement or issue it implements: paths in the repository, or URLs.",
103
+ "maxItems": 10,
104
+ "type": "array",
105
+ "items": {
106
+ "type": "string",
107
+ "minLength": 1
108
+ }
109
+ },
110
+ "dependsOn": {
111
+ "description": "Items that must reach ship before this one can.",
112
+ "maxItems": 20,
113
+ "type": "array",
114
+ "items": {
115
+ "type": "string",
116
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$"
117
+ }
118
+ },
119
+ "activities": {
120
+ "type": "array",
121
+ "items": {
122
+ "type": "object",
123
+ "properties": {
124
+ "id": {
125
+ "type": "string",
126
+ "enum": [
127
+ "understand",
128
+ "architect",
129
+ "specify",
130
+ "contract",
131
+ "standards",
132
+ "delivery-setup",
133
+ "plan",
134
+ "build",
135
+ "verify",
136
+ "test",
137
+ "ship",
138
+ "operate",
139
+ "document",
140
+ "retro"
141
+ ]
142
+ },
143
+ "status": {
144
+ "type": "string",
145
+ "enum": [
146
+ "pending",
147
+ "in-progress",
148
+ "done",
149
+ "skipped"
150
+ ]
151
+ },
152
+ "reason": {
153
+ "type": "string",
154
+ "minLength": 1
155
+ }
156
+ },
157
+ "required": [
158
+ "id",
159
+ "status"
160
+ ],
161
+ "additionalProperties": false
162
+ }
163
+ },
164
+ "position": {
165
+ "description": "Where work stopped, so the next session resumes exactly there.",
166
+ "type": "object",
167
+ "properties": {
168
+ "activity": {
169
+ "type": "string",
170
+ "enum": [
171
+ "understand",
172
+ "architect",
173
+ "specify",
174
+ "contract",
175
+ "standards",
176
+ "delivery-setup",
177
+ "plan",
178
+ "build",
179
+ "verify",
180
+ "test",
181
+ "ship",
182
+ "operate",
183
+ "document",
184
+ "retro"
185
+ ]
186
+ },
187
+ "step": {
188
+ "type": "integer",
189
+ "exclusiveMinimum": 0,
190
+ "maximum": 9007199254740991
191
+ }
192
+ },
193
+ "required": [
194
+ "activity",
195
+ "step"
196
+ ],
197
+ "additionalProperties": false
198
+ },
199
+ "lastVerify": {
200
+ "type": "object",
201
+ "properties": {
202
+ "result": {
203
+ "type": "string",
204
+ "enum": [
205
+ "pass",
206
+ "fail"
207
+ ]
208
+ },
209
+ "at": {
210
+ "type": "string",
211
+ "format": "date-time",
212
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
213
+ }
214
+ },
215
+ "required": [
216
+ "result",
217
+ "at"
218
+ ],
219
+ "additionalProperties": false
220
+ },
221
+ "reviews": {
222
+ "type": "array",
223
+ "items": {
224
+ "type": "object",
225
+ "properties": {
226
+ "skill": {
227
+ "type": "string",
228
+ "enum": [
229
+ "requirements-analysis",
230
+ "product-spec",
231
+ "architecture",
232
+ "system-design",
233
+ "api-design",
234
+ "data-modelling",
235
+ "threat-model",
236
+ "design-system",
237
+ "issue-planning",
238
+ "implement-ticket",
239
+ "code-review",
240
+ "security-review",
241
+ "contract-check",
242
+ "accessibility-review",
243
+ "design-review",
244
+ "performance-review",
245
+ "reliability-review",
246
+ "data-migration-review",
247
+ "dependency-review",
248
+ "compliance-review",
249
+ "test-strategy",
250
+ "qa-acceptance",
251
+ "ai-feature-review",
252
+ "release-readiness",
253
+ "infrastructure-review",
254
+ "observability-review",
255
+ "incident-response",
256
+ "documentation",
257
+ "tech-debt-triage"
258
+ ]
259
+ },
260
+ "result": {
261
+ "type": "string",
262
+ "enum": [
263
+ "pass",
264
+ "fail",
265
+ "incomplete"
266
+ ]
267
+ },
268
+ "report": {
269
+ "description": "The review report the result was worked out from.",
270
+ "type": "string",
271
+ "minLength": 1
272
+ },
273
+ "summary": {
274
+ "type": "string",
275
+ "minLength": 1,
276
+ "maxLength": 500
277
+ },
278
+ "unproven": {
279
+ "description": "Recorded without a report, so the result is the agent's word rather than proven.",
280
+ "type": "boolean"
281
+ },
282
+ "at": {
283
+ "type": "string",
284
+ "format": "date-time",
285
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
286
+ }
287
+ },
288
+ "required": [
289
+ "skill",
290
+ "result",
291
+ "at"
292
+ ],
293
+ "additionalProperties": false
294
+ }
295
+ },
296
+ "requiredReviews": {
297
+ "description": "The reviews this work needs, worked out from what the change touched when it reached verify (RFC 0004).",
298
+ "type": "array",
299
+ "items": {
300
+ "type": "object",
301
+ "properties": {
302
+ "skill": {
303
+ "type": "string",
304
+ "enum": [
305
+ "requirements-analysis",
306
+ "product-spec",
307
+ "architecture",
308
+ "system-design",
309
+ "api-design",
310
+ "data-modelling",
311
+ "threat-model",
312
+ "design-system",
313
+ "issue-planning",
314
+ "implement-ticket",
315
+ "code-review",
316
+ "security-review",
317
+ "contract-check",
318
+ "accessibility-review",
319
+ "design-review",
320
+ "performance-review",
321
+ "reliability-review",
322
+ "data-migration-review",
323
+ "dependency-review",
324
+ "compliance-review",
325
+ "test-strategy",
326
+ "qa-acceptance",
327
+ "ai-feature-review",
328
+ "release-readiness",
329
+ "infrastructure-review",
330
+ "observability-review",
331
+ "incident-response",
332
+ "documentation",
333
+ "tech-debt-triage"
334
+ ]
335
+ },
336
+ "reason": {
337
+ "type": "string",
338
+ "minLength": 1
339
+ }
340
+ },
341
+ "required": [
342
+ "skill",
343
+ "reason"
344
+ ],
345
+ "additionalProperties": false
346
+ }
347
+ },
348
+ "reopened": {
349
+ "description": "Earlier activities reopened for this item, such as a re-spec after a new decision.",
350
+ "type": "array",
351
+ "items": {
352
+ "type": "object",
353
+ "properties": {
354
+ "activity": {
355
+ "type": "string",
356
+ "enum": [
357
+ "understand",
358
+ "architect",
359
+ "specify",
360
+ "contract",
361
+ "standards",
362
+ "delivery-setup",
363
+ "plan",
364
+ "build",
365
+ "verify",
366
+ "test",
367
+ "ship",
368
+ "operate",
369
+ "document",
370
+ "retro"
371
+ ]
372
+ },
373
+ "reason": {
374
+ "type": "string",
375
+ "minLength": 1
376
+ },
377
+ "at": {
378
+ "type": "string",
379
+ "format": "date-time",
380
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
381
+ }
382
+ },
383
+ "required": [
384
+ "activity",
385
+ "reason",
386
+ "at"
387
+ ],
388
+ "additionalProperties": false
389
+ }
390
+ },
391
+ "next": {
392
+ "type": "string",
393
+ "minLength": 1,
394
+ "maxLength": 200,
395
+ "description": "One line: the next action. The fuller story lives in the goal, acceptance criteria and sources."
396
+ },
397
+ "updatedAt": {
398
+ "type": "string",
399
+ "format": "date-time",
400
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
401
+ }
402
+ },
403
+ "required": [
404
+ "version",
405
+ "id",
406
+ "title",
407
+ "kind",
408
+ "stage",
409
+ "next",
410
+ "updatedAt"
411
+ ],
412
+ "additionalProperties": false,
413
+ "title": "Peer AI work item",
414
+ "description": ".peer-ai/work/<id>.json: one piece of work, where it stands, and what comes next."
415
+ }