@arbiterforge/ca-pi 0.15.12 → 0.16.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 (64) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/plugins/ca-pi/CHANGELOG.md +26 -0
  4. package/plugins/ca-pi/SKILLS.md +1 -1
  5. package/plugins/ca-pi/agents/infra-author.md +7 -1
  6. package/plugins/ca-pi/agents/scout.md +40 -8
  7. package/plugins/ca-pi/generated/command-catalog.json +1 -1
  8. package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-amd64 +0 -0
  9. package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-arm64 +0 -0
  10. package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-amd64 +0 -0
  11. package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-arm64 +0 -0
  12. package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-amd64.exe +0 -0
  13. package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-arm64.exe +0 -0
  14. package/plugins/ca-pi/helpers/artifacts/release.json +104 -6
  15. package/plugins/ca-pi/hooks/_activationlib.py +97 -13
  16. package/plugins/ca-pi/hooks/_arbiterstatelib.py +7 -2
  17. package/plugins/ca-pi/hooks/_artifactauthoritylib.py +206 -2
  18. package/plugins/ca-pi/hooks/_artifactlib.py +166 -2
  19. package/plugins/ca-pi/hooks/_artifactpromptlib.py +106 -2
  20. package/plugins/ca-pi/hooks/_bashguardlib.py +14 -0
  21. package/plugins/ca-pi/hooks/_contextreportlib.py +564 -6
  22. package/plugins/ca-pi/hooks/_contextselectlib.py +464 -0
  23. package/plugins/ca-pi/hooks/_contextsnapshotlib.py +999 -0
  24. package/plugins/ca-pi/hooks/_debughandofflib.py +767 -0
  25. package/plugins/ca-pi/hooks/_hooklib.py +1 -0
  26. package/plugins/ca-pi/hooks/_host.py +1 -1
  27. package/plugins/ca-pi/hooks/_intentlib.py +5 -5
  28. package/plugins/ca-pi/hooks/_protectedlib.py +3 -3
  29. package/plugins/ca-pi/hooks/_protectedstatelib.py +152 -2
  30. package/plugins/ca-pi/hooks/_provenancelib.py +604 -34
  31. package/plugins/ca-pi/hooks/_readinjectlib.py +131 -1
  32. package/plugins/ca-pi/hooks/artifact-authority.py +20 -1
  33. package/plugins/ca-pi/hooks/debug-handoff.py +85 -0
  34. package/plugins/ca-pi/hooks/doctor.py +4 -2
  35. package/plugins/ca-pi/hooks/hostapi.py +1 -1
  36. package/plugins/ca-pi/hooks/init-codearbiter.py +143 -15
  37. package/plugins/ca-pi/hooks/prompt-submit.py +14 -0
  38. package/plugins/ca-pi/hooks/session-start.py +26 -7
  39. package/plugins/ca-pi/includes/author-tdd-workflow.md +16 -4
  40. package/plugins/ca-pi/includes/helper-invocation.md +128 -0
  41. package/plugins/ca-pi/includes/pi-host-notes.md +13 -0
  42. package/plugins/ca-pi/includes/routing-table.md +1 -1
  43. package/plugins/ca-pi/package.json +1 -1
  44. package/plugins/ca-pi/routines/INDEX.md +1 -1
  45. package/plugins/ca-pi/routines/commit-gate/SKILL.md +5 -3
  46. package/plugins/ca-pi/routines/context-check/SKILL.md +103 -17
  47. package/plugins/ca-pi/routines/context-creation/SKILL.md +290 -54
  48. package/plugins/ca-pi/routines/debug/SKILL.md +303 -55
  49. package/plugins/ca-pi/routines/debug/references/debug-handoff.schema.json +879 -0
  50. package/plugins/ca-pi/routines/debug/references/handoff.md +155 -0
  51. package/plugins/ca-pi/routines/decompose/SKILL.md +13 -0
  52. package/plugins/ca-pi/routines/subagent-driven-development/SKILL.md +34 -0
  53. package/plugins/ca-pi/routines/tdd/SKILL.md +91 -17
  54. package/plugins/ca-pi/skills/ca-commit/SKILL.md +5 -3
  55. package/plugins/ca-pi/skills/ca-context-check/SKILL.md +103 -17
  56. package/plugins/ca-pi/skills/ca-create-context/SKILL.md +290 -54
  57. package/plugins/ca-pi/skills/ca-debug/SKILL.md +303 -55
  58. package/plugins/ca-pi/skills/ca-decompose/SKILL.md +13 -0
  59. package/plugins/ca-pi/skills/ca-feature/SKILL.md +1 -1
  60. package/plugins/ca-pi/skills/ca-fix/SKILL.md +36 -3
  61. package/plugins/ca-pi/skills/ca-init/SKILL.md +19 -0
  62. package/plugins/ca-pi/skills/ca-review/SKILL.md +33 -4
  63. package/plugins/ca-pi/skills/ca-status/SKILL.md +5 -0
  64. package/plugins/ca-pi/skills/ca-task/SKILL.md +55 -8
@@ -0,0 +1,879 @@
1
+ {
2
+ "$defs": {
3
+ "blocker": {
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "kind": {
7
+ "enum": [
8
+ "access",
9
+ "evidence",
10
+ "authority",
11
+ "capability",
12
+ "safety",
13
+ "scope",
14
+ "budget",
15
+ "input"
16
+ ],
17
+ "type": "string"
18
+ },
19
+ "missing": {
20
+ "maxLength": 1500,
21
+ "minLength": 1,
22
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
23
+ "type": "string"
24
+ },
25
+ "owner": {
26
+ "anyOf": [
27
+ {
28
+ "maxLength": 300,
29
+ "minLength": 1,
30
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
31
+ "type": "string"
32
+ },
33
+ {
34
+ "type": "null"
35
+ }
36
+ ]
37
+ },
38
+ "resume_condition": {
39
+ "maxLength": 1500,
40
+ "minLength": 1,
41
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
42
+ "type": "string"
43
+ }
44
+ },
45
+ "required": [
46
+ "kind",
47
+ "missing",
48
+ "owner",
49
+ "resume_condition"
50
+ ],
51
+ "type": "object"
52
+ },
53
+ "check": {
54
+ "additionalProperties": false,
55
+ "properties": {
56
+ "authorization_basis": {
57
+ "anyOf": [
58
+ {
59
+ "maxLength": 1000,
60
+ "minLength": 1,
61
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
62
+ "type": "string"
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ]
68
+ },
69
+ "cwd": {
70
+ "anyOf": [
71
+ {
72
+ "maxLength": 512,
73
+ "minLength": 1,
74
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
75
+ "type": "string"
76
+ },
77
+ {
78
+ "type": "null"
79
+ }
80
+ ]
81
+ },
82
+ "evidence_ids": {
83
+ "items": {
84
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
85
+ "type": "string"
86
+ },
87
+ "maxItems": 32,
88
+ "minItems": 0,
89
+ "type": "array",
90
+ "uniqueItems": true
91
+ },
92
+ "exit_code": {
93
+ "anyOf": [
94
+ {
95
+ "type": "integer"
96
+ },
97
+ {
98
+ "type": "null"
99
+ }
100
+ ]
101
+ },
102
+ "expectation": {
103
+ "maxLength": 1500,
104
+ "minLength": 1,
105
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
106
+ "type": "string"
107
+ },
108
+ "id": {
109
+ "pattern": "^(?:C-[0-9]{2,4})(?![\\s\\S])",
110
+ "type": "string"
111
+ },
112
+ "observed": {
113
+ "anyOf": [
114
+ {
115
+ "maxLength": 1500,
116
+ "minLength": 1,
117
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
118
+ "type": "string"
119
+ },
120
+ {
121
+ "type": "null"
122
+ }
123
+ ]
124
+ },
125
+ "operation": {
126
+ "maxLength": 2000,
127
+ "minLength": 1,
128
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
129
+ "type": "string"
130
+ },
131
+ "side_effects": {
132
+ "maxLength": 1500,
133
+ "minLength": 1,
134
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
135
+ "type": "string"
136
+ },
137
+ "status": {
138
+ "enum": [
139
+ "planned",
140
+ "completed",
141
+ "not_run",
142
+ "interrupted"
143
+ ],
144
+ "type": "string"
145
+ }
146
+ },
147
+ "required": [
148
+ "authorization_basis",
149
+ "cwd",
150
+ "evidence_ids",
151
+ "exit_code",
152
+ "expectation",
153
+ "id",
154
+ "observed",
155
+ "operation",
156
+ "side_effects",
157
+ "status"
158
+ ],
159
+ "type": "object"
160
+ },
161
+ "disposition": {
162
+ "additionalProperties": false,
163
+ "properties": {
164
+ "blockers": {
165
+ "items": {
166
+ "$ref": "#/$defs/blocker"
167
+ },
168
+ "maxItems": 8,
169
+ "minItems": 0,
170
+ "type": "array"
171
+ },
172
+ "cause_ids": {
173
+ "items": {
174
+ "pattern": "^(?:H-[0-9]{2,4})(?![\\s\\S])",
175
+ "type": "string"
176
+ },
177
+ "maxItems": 16,
178
+ "minItems": 0,
179
+ "type": "array",
180
+ "uniqueItems": true
181
+ },
182
+ "evidence_ids": {
183
+ "items": {
184
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
185
+ "type": "string"
186
+ },
187
+ "maxItems": 32,
188
+ "minItems": 0,
189
+ "type": "array",
190
+ "uniqueItems": true
191
+ },
192
+ "kind": {
193
+ "enum": [
194
+ "confirmed_code_defect",
195
+ "confirmed_noncode_cause",
196
+ "design_question",
197
+ "no_action",
198
+ "unresolved"
199
+ ],
200
+ "type": "string"
201
+ },
202
+ "rationale": {
203
+ "maxLength": 2000,
204
+ "minLength": 1,
205
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
206
+ "type": "string"
207
+ }
208
+ },
209
+ "required": [
210
+ "blockers",
211
+ "cause_ids",
212
+ "evidence_ids",
213
+ "kind",
214
+ "rationale"
215
+ ],
216
+ "type": "object"
217
+ },
218
+ "evidence": {
219
+ "additionalProperties": false,
220
+ "properties": {
221
+ "check_id": {
222
+ "anyOf": [
223
+ {
224
+ "pattern": "^(?:C-[0-9]{2,4})(?![\\s\\S])",
225
+ "type": "string"
226
+ },
227
+ {
228
+ "type": "null"
229
+ }
230
+ ]
231
+ },
232
+ "coverage": {
233
+ "enum": [
234
+ "complete_for_claim",
235
+ "partial",
236
+ "unknown"
237
+ ],
238
+ "type": "string"
239
+ },
240
+ "id": {
241
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
242
+ "type": "string"
243
+ },
244
+ "kind": {
245
+ "enum": [
246
+ "source",
247
+ "observation",
248
+ "user_report",
249
+ "command_result",
250
+ "contract"
251
+ ],
252
+ "type": "string"
253
+ },
254
+ "limitations": {
255
+ "anyOf": [
256
+ {
257
+ "maxLength": 1500,
258
+ "minLength": 1,
259
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
260
+ "type": "string"
261
+ },
262
+ {
263
+ "type": "null"
264
+ }
265
+ ]
266
+ },
267
+ "locator": {
268
+ "maxLength": 1000,
269
+ "minLength": 1,
270
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
271
+ "type": "string"
272
+ },
273
+ "observation": {
274
+ "maxLength": 2000,
275
+ "minLength": 1,
276
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
277
+ "type": "string"
278
+ },
279
+ "observed_at": {
280
+ "anyOf": [
281
+ {
282
+ "format": "date-time",
283
+ "pattern": "^(?:([0-9]{4})-([0-9]{2})-([0-9]{2})[Tt](?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(?:[Zz]|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9]))(?![\\s\\S])",
284
+ "type": "string"
285
+ },
286
+ {
287
+ "type": "null"
288
+ }
289
+ ]
290
+ },
291
+ "snapshot_id": {
292
+ "anyOf": [
293
+ {
294
+ "pattern": "^(?:S-[0-9]{2,4})(?![\\s\\S])",
295
+ "type": "string"
296
+ },
297
+ {
298
+ "type": "null"
299
+ }
300
+ ]
301
+ }
302
+ },
303
+ "required": [
304
+ "check_id",
305
+ "coverage",
306
+ "id",
307
+ "kind",
308
+ "limitations",
309
+ "locator",
310
+ "observation",
311
+ "observed_at",
312
+ "snapshot_id"
313
+ ],
314
+ "type": "object"
315
+ },
316
+ "hypothesis": {
317
+ "additionalProperties": false,
318
+ "properties": {
319
+ "discriminator": {
320
+ "maxLength": 1500,
321
+ "minLength": 1,
322
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
323
+ "type": "string"
324
+ },
325
+ "id": {
326
+ "pattern": "^(?:H-[0-9]{2,4})(?![\\s\\S])",
327
+ "type": "string"
328
+ },
329
+ "limitations": {
330
+ "anyOf": [
331
+ {
332
+ "maxLength": 1500,
333
+ "minLength": 1,
334
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
335
+ "type": "string"
336
+ },
337
+ {
338
+ "type": "null"
339
+ }
340
+ ]
341
+ },
342
+ "mechanism": {
343
+ "maxLength": 2000,
344
+ "minLength": 1,
345
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
346
+ "type": "string"
347
+ },
348
+ "opposing_evidence_ids": {
349
+ "items": {
350
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
351
+ "type": "string"
352
+ },
353
+ "maxItems": 32,
354
+ "minItems": 0,
355
+ "type": "array",
356
+ "uniqueItems": true
357
+ },
358
+ "status": {
359
+ "enum": [
360
+ "supported",
361
+ "refuted",
362
+ "inconclusive"
363
+ ],
364
+ "type": "string"
365
+ },
366
+ "supporting_evidence_ids": {
367
+ "items": {
368
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
369
+ "type": "string"
370
+ },
371
+ "maxItems": 32,
372
+ "minItems": 0,
373
+ "type": "array",
374
+ "uniqueItems": true
375
+ }
376
+ },
377
+ "required": [
378
+ "discriminator",
379
+ "id",
380
+ "limitations",
381
+ "mechanism",
382
+ "opposing_evidence_ids",
383
+ "status",
384
+ "supporting_evidence_ids"
385
+ ],
386
+ "type": "object"
387
+ },
388
+ "next_step": {
389
+ "additionalProperties": false,
390
+ "properties": {
391
+ "action": {
392
+ "anyOf": [
393
+ {
394
+ "maxLength": 1500,
395
+ "minLength": 1,
396
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
397
+ "type": "string"
398
+ },
399
+ {
400
+ "type": "null"
401
+ }
402
+ ]
403
+ },
404
+ "completion_evidence": {
405
+ "anyOf": [
406
+ {
407
+ "maxLength": 1500,
408
+ "minLength": 1,
409
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
410
+ "type": "string"
411
+ },
412
+ {
413
+ "type": "null"
414
+ }
415
+ ]
416
+ },
417
+ "owner": {
418
+ "anyOf": [
419
+ {
420
+ "maxLength": 300,
421
+ "minLength": 1,
422
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
423
+ "type": "string"
424
+ },
425
+ {
426
+ "type": "null"
427
+ }
428
+ ]
429
+ },
430
+ "target": {
431
+ "enum": [
432
+ "none",
433
+ "fix",
434
+ "adr",
435
+ "existing_owner",
436
+ "evidence"
437
+ ],
438
+ "type": "string"
439
+ }
440
+ },
441
+ "required": [
442
+ "action",
443
+ "completion_evidence",
444
+ "owner",
445
+ "target"
446
+ ],
447
+ "type": "object"
448
+ },
449
+ "packet": {
450
+ "additionalProperties": false,
451
+ "properties": {
452
+ "case_id": {
453
+ "pattern": "^(?:DBG-[A-Za-z0-9][A-Za-z0-9_-]{2,63})(?![\\s\\S])",
454
+ "type": "string"
455
+ },
456
+ "checks": {
457
+ "items": {
458
+ "$ref": "#/$defs/check"
459
+ },
460
+ "maxItems": 24,
461
+ "minItems": 0,
462
+ "type": "array"
463
+ },
464
+ "disposition": {
465
+ "$ref": "#/$defs/disposition"
466
+ },
467
+ "evidence": {
468
+ "items": {
469
+ "$ref": "#/$defs/evidence"
470
+ },
471
+ "maxItems": 32,
472
+ "minItems": 1,
473
+ "type": "array"
474
+ },
475
+ "hypotheses": {
476
+ "items": {
477
+ "$ref": "#/$defs/hypothesis"
478
+ },
479
+ "maxItems": 16,
480
+ "minItems": 0,
481
+ "type": "array"
482
+ },
483
+ "next_step": {
484
+ "$ref": "#/$defs/next_step"
485
+ },
486
+ "protocol": {
487
+ "const": "codearbiter.debug-handoff/1.0.0",
488
+ "type": "string"
489
+ },
490
+ "regression": {
491
+ "anyOf": [
492
+ {
493
+ "$ref": "#/$defs/regression"
494
+ },
495
+ {
496
+ "type": "null"
497
+ }
498
+ ]
499
+ },
500
+ "reproduction": {
501
+ "$ref": "#/$defs/reproduction"
502
+ },
503
+ "request": {
504
+ "$ref": "#/$defs/request"
505
+ },
506
+ "snapshots": {
507
+ "items": {
508
+ "$ref": "#/$defs/snapshot"
509
+ },
510
+ "maxItems": 4,
511
+ "minItems": 0,
512
+ "type": "array"
513
+ },
514
+ "symptom": {
515
+ "$ref": "#/$defs/symptom"
516
+ }
517
+ },
518
+ "required": [
519
+ "case_id",
520
+ "checks",
521
+ "disposition",
522
+ "evidence",
523
+ "hypotheses",
524
+ "next_step",
525
+ "protocol",
526
+ "regression",
527
+ "reproduction",
528
+ "request",
529
+ "snapshots",
530
+ "symptom"
531
+ ],
532
+ "type": "object"
533
+ },
534
+ "recipe": {
535
+ "additionalProperties": false,
536
+ "properties": {
537
+ "cwd": {
538
+ "maxLength": 512,
539
+ "minLength": 1,
540
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
541
+ "type": "string"
542
+ },
543
+ "failure_signature": {
544
+ "maxLength": 1000,
545
+ "minLength": 1,
546
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
547
+ "type": "string"
548
+ },
549
+ "preconditions": {
550
+ "maxLength": 1000,
551
+ "minLength": 1,
552
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
553
+ "type": "string"
554
+ },
555
+ "steps": {
556
+ "items": {
557
+ "maxLength": 500,
558
+ "minLength": 1,
559
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
560
+ "type": "string"
561
+ },
562
+ "maxItems": 8,
563
+ "minItems": 1,
564
+ "type": "array"
565
+ }
566
+ },
567
+ "required": [
568
+ "cwd",
569
+ "failure_signature",
570
+ "preconditions",
571
+ "steps"
572
+ ],
573
+ "type": "object"
574
+ },
575
+ "regression": {
576
+ "additionalProperties": false,
577
+ "properties": {
578
+ "basis": {
579
+ "enum": [
580
+ "reproduction",
581
+ "causal_trace"
582
+ ],
583
+ "type": "string"
584
+ },
585
+ "candidate_test_id": {
586
+ "anyOf": [
587
+ {
588
+ "maxLength": 500,
589
+ "minLength": 1,
590
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
591
+ "type": "string"
592
+ },
593
+ {
594
+ "type": "null"
595
+ }
596
+ ]
597
+ },
598
+ "evidence_ids": {
599
+ "items": {
600
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
601
+ "type": "string"
602
+ },
603
+ "maxItems": 32,
604
+ "minItems": 0,
605
+ "type": "array",
606
+ "uniqueItems": true
607
+ },
608
+ "obligation": {
609
+ "maxLength": 2000,
610
+ "minLength": 1,
611
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
612
+ "type": "string"
613
+ },
614
+ "oracle": {
615
+ "maxLength": 1500,
616
+ "minLength": 1,
617
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
618
+ "type": "string"
619
+ },
620
+ "reuse_existing": {
621
+ "type": "boolean"
622
+ },
623
+ "snapshot_id": {
624
+ "pattern": "^(?:S-[0-9]{2,4})(?![\\s\\S])",
625
+ "type": "string"
626
+ }
627
+ },
628
+ "required": [
629
+ "basis",
630
+ "candidate_test_id",
631
+ "evidence_ids",
632
+ "obligation",
633
+ "oracle",
634
+ "reuse_existing",
635
+ "snapshot_id"
636
+ ],
637
+ "type": "object"
638
+ },
639
+ "reproduction": {
640
+ "additionalProperties": false,
641
+ "properties": {
642
+ "evidence_ids": {
643
+ "items": {
644
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
645
+ "type": "string"
646
+ },
647
+ "maxItems": 32,
648
+ "minItems": 0,
649
+ "type": "array",
650
+ "uniqueItems": true
651
+ },
652
+ "limitations": {
653
+ "anyOf": [
654
+ {
655
+ "maxLength": 1500,
656
+ "minLength": 1,
657
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
658
+ "type": "string"
659
+ },
660
+ {
661
+ "type": "null"
662
+ }
663
+ ]
664
+ },
665
+ "recipe": {
666
+ "anyOf": [
667
+ {
668
+ "$ref": "#/$defs/recipe"
669
+ },
670
+ {
671
+ "type": "null"
672
+ }
673
+ ]
674
+ },
675
+ "status": {
676
+ "enum": [
677
+ "reproduced",
678
+ "intermittent",
679
+ "not_yet_reproduced",
680
+ "unsafe_to_replay",
681
+ "unavailable"
682
+ ],
683
+ "type": "string"
684
+ }
685
+ },
686
+ "required": [
687
+ "evidence_ids",
688
+ "limitations",
689
+ "recipe",
690
+ "status"
691
+ ],
692
+ "type": "object"
693
+ },
694
+ "request": {
695
+ "additionalProperties": false,
696
+ "properties": {
697
+ "intent": {
698
+ "enum": [
699
+ "diagnosis_only",
700
+ "repair_requested"
701
+ ],
702
+ "type": "string"
703
+ },
704
+ "request_ref": {
705
+ "maxLength": 512,
706
+ "minLength": 1,
707
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
708
+ "type": "string"
709
+ },
710
+ "restrictions": {
711
+ "items": {
712
+ "maxLength": 500,
713
+ "minLength": 1,
714
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
715
+ "type": "string"
716
+ },
717
+ "maxItems": 12,
718
+ "minItems": 0,
719
+ "type": "array"
720
+ },
721
+ "scope": {
722
+ "maxLength": 2000,
723
+ "minLength": 1,
724
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
725
+ "type": "string"
726
+ }
727
+ },
728
+ "required": [
729
+ "intent",
730
+ "request_ref",
731
+ "restrictions",
732
+ "scope"
733
+ ],
734
+ "type": "object"
735
+ },
736
+ "snapshot": {
737
+ "additionalProperties": false,
738
+ "properties": {
739
+ "commit": {
740
+ "anyOf": [
741
+ {
742
+ "pattern": "^(?:(?:[0-9a-f]{40}|[0-9a-f]{64}))(?![\\s\\S])",
743
+ "type": "string"
744
+ },
745
+ {
746
+ "type": "null"
747
+ }
748
+ ]
749
+ },
750
+ "dirty_state": {
751
+ "enum": [
752
+ "clean",
753
+ "dirty",
754
+ "unknown"
755
+ ],
756
+ "type": "string"
757
+ },
758
+ "fingerprint": {
759
+ "anyOf": [
760
+ {
761
+ "pattern": "^(?:sha256:[0-9a-f]{64})(?![\\s\\S])",
762
+ "type": "string"
763
+ },
764
+ {
765
+ "type": "null"
766
+ }
767
+ ]
768
+ },
769
+ "fingerprint_recipe": {
770
+ "anyOf": [
771
+ {
772
+ "pattern": "^(?:[a-z][a-z0-9-]{0,63}/[1-9][0-9]{0,3})(?![\\s\\S])",
773
+ "type": "string"
774
+ },
775
+ {
776
+ "type": "null"
777
+ }
778
+ ]
779
+ },
780
+ "id": {
781
+ "pattern": "^(?:S-[0-9]{2,4})(?![\\s\\S])",
782
+ "type": "string"
783
+ },
784
+ "limitations": {
785
+ "anyOf": [
786
+ {
787
+ "maxLength": 1500,
788
+ "minLength": 1,
789
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
790
+ "type": "string"
791
+ },
792
+ {
793
+ "type": "null"
794
+ }
795
+ ]
796
+ },
797
+ "repository": {
798
+ "maxLength": 512,
799
+ "minLength": 1,
800
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
801
+ "type": "string"
802
+ },
803
+ "runtime_identity": {
804
+ "anyOf": [
805
+ {
806
+ "maxLength": 500,
807
+ "minLength": 1,
808
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
809
+ "type": "string"
810
+ },
811
+ {
812
+ "type": "null"
813
+ }
814
+ ]
815
+ },
816
+ "worktree": {
817
+ "maxLength": 512,
818
+ "minLength": 1,
819
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
820
+ "type": "string"
821
+ }
822
+ },
823
+ "required": [
824
+ "commit",
825
+ "dirty_state",
826
+ "fingerprint",
827
+ "fingerprint_recipe",
828
+ "id",
829
+ "limitations",
830
+ "repository",
831
+ "runtime_identity",
832
+ "worktree"
833
+ ],
834
+ "type": "object"
835
+ },
836
+ "symptom": {
837
+ "additionalProperties": false,
838
+ "properties": {
839
+ "expected": {
840
+ "anyOf": [
841
+ {
842
+ "maxLength": 1500,
843
+ "minLength": 1,
844
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
845
+ "type": "string"
846
+ },
847
+ {
848
+ "type": "null"
849
+ }
850
+ ]
851
+ },
852
+ "expected_evidence_ids": {
853
+ "items": {
854
+ "pattern": "^(?:E-[0-9]{2,4})(?![\\s\\S])",
855
+ "type": "string"
856
+ },
857
+ "maxItems": 32,
858
+ "minItems": 0,
859
+ "type": "array",
860
+ "uniqueItems": true
861
+ },
862
+ "observed": {
863
+ "maxLength": 1500,
864
+ "minLength": 1,
865
+ "pattern": "^(?=[\\s\\S]*[^\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000])(?![\\s\\S]*[\\uD800-\\uDFFF])",
866
+ "type": "string"
867
+ }
868
+ },
869
+ "required": [
870
+ "expected",
871
+ "expected_evidence_ids",
872
+ "observed"
873
+ ],
874
+ "type": "object"
875
+ }
876
+ },
877
+ "$ref": "#/$defs/packet",
878
+ "$schema": "https://json-schema.org/draft/2020-12/schema"
879
+ }