@ixo/topic-protocol 1.0.0-rc.2 → 1.0.0-rc.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.
Files changed (77) hide show
  1. package/README.md +5 -2
  2. package/dist/profiles/releases/1.0.0-rc.3.json +8442 -0
  3. package/dist/schemas/external-project-snapshot.schema.json +121 -0
  4. package/dist/schemas/external-work-state-map.schema.json +1 -1
  5. package/dist/schemas/project-plan.schema.json +75 -0
  6. package/dist/schemas/project-projection.schema.json +187 -0
  7. package/dist/schemas/topic-contract-body.schema.json +1 -0
  8. package/dist/schemas/topic-operation.schema.json +155 -13
  9. package/dist/schemas/topic-recipe.schema.json +53 -3
  10. package/dist/schemas/topic-root.schema.json +1 -1
  11. package/dist/schemas/topic-shape.schema.json +1 -1
  12. package/dist/schemas/topic-state.schema.json +1 -0
  13. package/dist/src/contracts/schemas.d.ts +734 -54
  14. package/dist/src/contracts/schemas.js +6 -0
  15. package/dist/src/contracts/schemas.js.map +1 -1
  16. package/dist/src/contracts/topic-contract.d.ts +4 -2
  17. package/dist/src/contracts/topic-contract.js +6 -1
  18. package/dist/src/contracts/topic-contract.js.map +1 -1
  19. package/dist/src/contracts/validator.js +53 -3
  20. package/dist/src/contracts/validator.js.map +1 -1
  21. package/dist/src/index.d.ts +11 -2
  22. package/dist/src/index.js +9 -0
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/projector/payload.d.ts +53 -3
  25. package/dist/src/projector/payload.js +107 -15
  26. package/dist/src/projector/payload.js.map +1 -1
  27. package/dist/src/projector/project.js +3 -3
  28. package/dist/src/projector/project.js.map +1 -1
  29. package/dist/src/projector/state.d.ts +2 -2
  30. package/dist/src/projector/state.js +103 -3
  31. package/dist/src/projector/state.js.map +1 -1
  32. package/dist/src/projector/types.d.ts +10 -4
  33. package/dist/src/projector/types.js +1 -0
  34. package/dist/src/projector/types.js.map +1 -1
  35. package/dist/src/projects/project.d.ts +7 -0
  36. package/dist/src/projects/project.js +294 -0
  37. package/dist/src/projects/project.js.map +1 -0
  38. package/dist/src/projects/types.d.ts +127 -0
  39. package/dist/src/projects/types.js +14 -0
  40. package/dist/src/projects/types.js.map +1 -0
  41. package/dist/src/shapes/availability.d.ts +2 -0
  42. package/dist/src/shapes/availability.js +19 -0
  43. package/dist/src/shapes/availability.js.map +1 -0
  44. package/dist/src/shapes/commands.d.ts +3 -0
  45. package/dist/src/shapes/commands.js +10 -0
  46. package/dist/src/shapes/commands.js.map +1 -0
  47. package/dist/src/shapes/fields.d.ts +9 -0
  48. package/dist/src/shapes/fields.js +41 -0
  49. package/dist/src/shapes/fields.js.map +1 -0
  50. package/dist/src/shapes/now.js +4 -1
  51. package/dist/src/shapes/now.js.map +1 -1
  52. package/dist/src/shapes/progress.d.ts +5 -1
  53. package/dist/src/shapes/progress.js +99 -49
  54. package/dist/src/shapes/progress.js.map +1 -1
  55. package/dist/src/shapes/reachability.d.ts +3 -0
  56. package/dist/src/shapes/reachability.js +29 -0
  57. package/dist/src/shapes/reachability.js.map +1 -0
  58. package/dist/src/shapes/recipes.js +124 -21
  59. package/dist/src/shapes/recipes.js.map +1 -1
  60. package/dist/src/shapes/releases.d.ts +9 -0
  61. package/dist/src/shapes/releases.js +12 -0
  62. package/dist/src/shapes/releases.js.map +1 -0
  63. package/dist/src/shapes/resolver.d.ts +3 -0
  64. package/dist/src/shapes/resolver.js +62 -16
  65. package/dist/src/shapes/resolver.js.map +1 -1
  66. package/dist/src/shapes/types.d.ts +16 -2
  67. package/dist/src/shapes/types.js +2 -0
  68. package/dist/src/shapes/types.js.map +1 -1
  69. package/dist/src/work-bridge/types.d.ts +14 -1
  70. package/package.json +1 -1
  71. package/profiles/releases/1.0.0-rc.3.json +8442 -0
  72. package/recipes/agent-delivery.json +54 -4
  73. package/recipes/blueprint-design.json +613 -0
  74. package/recipes/registry.json +30 -6
  75. package/recipes/research-brief.json +53 -2
  76. package/recipes/software-build.json +566 -0
  77. package/recipes/verified-work-payment.json +56 -5
@@ -2,7 +2,7 @@
2
2
  "version": 1,
3
3
  "code": "agent-delivery",
4
4
  "id": "https://topic-protocol.ixo.world/recipes/agent-delivery",
5
- "recipeVersion": "1.0.0-rc.2",
5
+ "recipeVersion": "1.0.0-rc.4",
6
6
  "label": "Agent delivery",
7
7
  "description": "Commission agent work, review its delivery, and explicitly confirm any external Action.",
8
8
  "baseRecipe": "flow",
@@ -514,7 +514,8 @@
514
514
  "evidence": {
515
515
  "kind": "record",
516
516
  "type": "ixo.evaluation",
517
- "finality": "accepted"
517
+ "finality": "accepted",
518
+ "status": "verified"
518
519
  },
519
520
  "handoff": {
520
521
  "kind": "flow",
@@ -560,7 +561,8 @@
560
561
  "evidence": {
561
562
  "kind": "record",
562
563
  "type": "ixo.decision",
563
- "finality": "accepted"
564
+ "finality": "accepted",
565
+ "status": "approved"
564
566
  },
565
567
  "presentation": {
566
568
  "reasonCode": "decision-required",
@@ -643,7 +645,8 @@
643
645
  "evidence": {
644
646
  "kind": "receipt",
645
647
  "type": "ixo.action-receipt",
646
- "finality": "final"
648
+ "finality": "final",
649
+ "status": "succeeded"
647
650
  },
648
651
  "handoff": {
649
652
  "kind": "flow",
@@ -657,6 +660,53 @@
657
660
  "unlocksKey": "topic.action.confirm-action.unlocks",
658
661
  "priority": 900
659
662
  }
663
+ },
664
+ {
665
+ "code": "retry-action",
666
+ "phase": "effecting",
667
+ "predecessor": {
668
+ "axis": "effect",
669
+ "state": "requested"
670
+ },
671
+ "target": {
672
+ "axis": "effect",
673
+ "state": "requested"
674
+ },
675
+ "command": "topic.request-action",
676
+ "requiredAbility": "topic/request-action",
677
+ "assignedTo": {
678
+ "kind": "role",
679
+ "value": "action-requester"
680
+ },
681
+ "gates": [
682
+ {
683
+ "kind": "receipt",
684
+ "type": "ixo.action-receipt",
685
+ "status": "failed"
686
+ },
687
+ {
688
+ "kind": "binding",
689
+ "type": "flow"
690
+ }
691
+ ],
692
+ "confirmation": "viewer",
693
+ "consequence": "external-effect",
694
+ "evidence": {
695
+ "kind": "operation",
696
+ "type": "request-action"
697
+ },
698
+ "handoff": {
699
+ "kind": "flow",
700
+ "binding": "action"
701
+ },
702
+ "presentation": {
703
+ "reasonCode": "action-retry-required",
704
+ "actionLabelKey": "topic.action.retry-action.label",
705
+ "bodyKey": "topic.action.retry-action.prompt",
706
+ "purposeKey": "topic.action.retry-action.purpose",
707
+ "unlocksKey": "topic.action.retry-action.unlocks",
708
+ "priority": 900
709
+ }
660
710
  }
661
711
  ],
662
712
  "progressRules": [
@@ -0,0 +1,613 @@
1
+ {
2
+ "version": 1,
3
+ "code": "blueprint-design",
4
+ "id": "https://topic-protocol.ixo.world/recipes/blueprint-design",
5
+ "recipeVersion": "1.0.0-rc.4",
6
+ "label": "Blueprint Design",
7
+ "description": "Coordinate a pinned design method and require independent-review evidence before explicitly closing the blueprint Project.",
8
+ "baseRecipe": "project",
9
+ "creates": "draft",
10
+ "shape": {
11
+ "version": 1,
12
+ "code": "recipe/blueprint-design",
13
+ "axes": [
14
+ {
15
+ "code": "contract",
16
+ "phase": "forming",
17
+ "required": true,
18
+ "initialState": "proposed",
19
+ "states": [
20
+ {
21
+ "code": "proposed"
22
+ },
23
+ {
24
+ "code": "effective",
25
+ "terminal": true
26
+ }
27
+ ]
28
+ },
29
+ {
30
+ "code": "work",
31
+ "phase": "working",
32
+ "required": true,
33
+ "initialState": "pending",
34
+ "states": [
35
+ {
36
+ "code": "pending"
37
+ },
38
+ {
39
+ "code": "in-progress"
40
+ },
41
+ {
42
+ "code": "submitted",
43
+ "terminal": true
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "code": "verification",
49
+ "phase": "verifying",
50
+ "required": true,
51
+ "initialState": "pending",
52
+ "states": [
53
+ {
54
+ "code": "pending"
55
+ },
56
+ {
57
+ "code": "verified",
58
+ "terminal": true
59
+ }
60
+ ]
61
+ },
62
+ {
63
+ "code": "topic",
64
+ "phase": "complete",
65
+ "required": true,
66
+ "initialState": "open",
67
+ "states": [
68
+ {
69
+ "code": "open"
70
+ },
71
+ {
72
+ "code": "complete",
73
+ "terminal": true
74
+ }
75
+ ]
76
+ }
77
+ ],
78
+ "transitions": [
79
+ {
80
+ "code": "edit-setup",
81
+ "phase": "forming",
82
+ "predecessor": {
83
+ "axis": "contract",
84
+ "state": "proposed"
85
+ },
86
+ "target": {
87
+ "axis": "contract",
88
+ "state": "proposed"
89
+ },
90
+ "command": "topic.edit-setup",
91
+ "requiredAbility": "topic/write",
92
+ "assignedTo": {
93
+ "kind": "role",
94
+ "value": "setup-editor"
95
+ },
96
+ "gates": [],
97
+ "confirmation": "none",
98
+ "consequence": "shared-state",
99
+ "evidence": {
100
+ "kind": "operation",
101
+ "type": "update-contract"
102
+ },
103
+ "presentation": {
104
+ "reasonCode": "setup-needs-input",
105
+ "actionLabelKey": "topic.action.edit-setup.label",
106
+ "bodyKey": "topic.setup.edit.body",
107
+ "purposeKey": "topic.setup.edit.purpose",
108
+ "unlocksKey": "topic.setup.edit.unlocks",
109
+ "priority": 800
110
+ }
111
+ },
112
+ {
113
+ "code": "confirm-setup",
114
+ "phase": "forming",
115
+ "predecessor": {
116
+ "axis": "contract",
117
+ "state": "proposed"
118
+ },
119
+ "target": {
120
+ "axis": "contract",
121
+ "state": "effective"
122
+ },
123
+ "command": "topic.confirm-setup",
124
+ "requiredAbility": "topic/confirm-setup",
125
+ "assignedTo": {
126
+ "kind": "role",
127
+ "value": "setup-confirmer"
128
+ },
129
+ "gates": [],
130
+ "confirmation": "authority",
131
+ "consequence": "shared-state",
132
+ "evidence": {
133
+ "kind": "operation",
134
+ "type": "confirm-setup"
135
+ },
136
+ "presentation": {
137
+ "reasonCode": "setup-awaits-confirmation",
138
+ "actionLabelKey": "topic.action.confirm-setup.label",
139
+ "bodyKey": "topic.setup.confirm.body",
140
+ "purposeKey": "topic.setup.confirm.purpose",
141
+ "unlocksKey": "topic.setup.confirm.unlocks",
142
+ "priority": 700
143
+ }
144
+ },
145
+ {
146
+ "code": "start-work",
147
+ "phase": "working",
148
+ "predecessor": {
149
+ "axis": "work",
150
+ "state": "pending"
151
+ },
152
+ "target": {
153
+ "axis": "work",
154
+ "state": "in-progress"
155
+ },
156
+ "command": "topic.start-work",
157
+ "requiredAbility": "topic/write",
158
+ "assignedTo": {
159
+ "kind": "role",
160
+ "value": "worker"
161
+ },
162
+ "gates": [
163
+ {
164
+ "kind": "axis",
165
+ "axis": "contract",
166
+ "states": [
167
+ "effective"
168
+ ]
169
+ }
170
+ ],
171
+ "confirmation": "none",
172
+ "consequence": "shared-state",
173
+ "evidence": {
174
+ "kind": "operation",
175
+ "type": "change-progress"
176
+ },
177
+ "presentation": {
178
+ "reasonCode": "start-work",
179
+ "actionLabelKey": "topic.action.start-work.label",
180
+ "bodyKey": "topic.action.start-work.prompt",
181
+ "purposeKey": "topic.action.start-work.purpose",
182
+ "unlocksKey": "topic.action.start-work.unlocks",
183
+ "priority": 900
184
+ }
185
+ },
186
+ {
187
+ "code": "raise-dispute",
188
+ "phase": "working",
189
+ "predecessor": {
190
+ "axis": "topic",
191
+ "state": "open"
192
+ },
193
+ "target": {
194
+ "axis": "topic",
195
+ "state": "open"
196
+ },
197
+ "command": "topic.raise-dispute",
198
+ "requiredAbility": "topic/raise-dispute",
199
+ "assignedTo": {
200
+ "kind": "role",
201
+ "value": "participant"
202
+ },
203
+ "gates": [],
204
+ "confirmation": "none",
205
+ "consequence": "shared-state",
206
+ "evidence": {
207
+ "kind": "operation",
208
+ "type": "raise-dispute"
209
+ },
210
+ "presentation": {
211
+ "reasonCode": "dispute-available",
212
+ "actionLabelKey": "topic.action.raise-dispute.label",
213
+ "bodyKey": "topic.action.raise-dispute.prompt",
214
+ "purposeKey": "topic.action.raise-dispute.purpose",
215
+ "unlocksKey": "topic.action.raise-dispute.unlocks",
216
+ "priority": 900
217
+ }
218
+ },
219
+ {
220
+ "code": "resolve-dispute",
221
+ "phase": "working",
222
+ "predecessor": {
223
+ "axis": "topic",
224
+ "state": "open"
225
+ },
226
+ "target": {
227
+ "axis": "topic",
228
+ "state": "open"
229
+ },
230
+ "command": "topic.resolve-dispute",
231
+ "requiredAbility": "topic/resolve-dispute",
232
+ "assignedTo": {
233
+ "kind": "role",
234
+ "value": "dispute-resolver"
235
+ },
236
+ "gates": [
237
+ {
238
+ "kind": "condition",
239
+ "states": [
240
+ "disputed"
241
+ ]
242
+ }
243
+ ],
244
+ "confirmation": "authority",
245
+ "consequence": "shared-state",
246
+ "evidence": {
247
+ "kind": "operation",
248
+ "type": "resolve-dispute"
249
+ },
250
+ "presentation": {
251
+ "reasonCode": "dispute-awaits-resolution",
252
+ "actionLabelKey": "topic.action.resolve-dispute.label",
253
+ "bodyKey": "topic.action.resolve-dispute.prompt",
254
+ "purposeKey": "topic.action.resolve-dispute.purpose",
255
+ "unlocksKey": "topic.action.resolve-dispute.unlocks",
256
+ "priority": 900
257
+ }
258
+ },
259
+ {
260
+ "code": "answer-question",
261
+ "phase": "working",
262
+ "predecessor": {
263
+ "axis": "work",
264
+ "state": "in-progress"
265
+ },
266
+ "target": {
267
+ "axis": "work",
268
+ "state": "in-progress"
269
+ },
270
+ "command": "topic.answer-question",
271
+ "requiredAbility": "topic/write",
272
+ "assignedTo": {
273
+ "kind": "role",
274
+ "value": "worker"
275
+ },
276
+ "gates": [
277
+ {
278
+ "kind": "field",
279
+ "path": "/questions/open",
280
+ "predicate": "present"
281
+ }
282
+ ],
283
+ "confirmation": "none",
284
+ "consequence": "shared-state",
285
+ "evidence": {
286
+ "kind": "operation",
287
+ "type": "answer-question"
288
+ },
289
+ "presentation": {
290
+ "reasonCode": "question-awaits-answer",
291
+ "actionLabelKey": "topic.action.answer-question.label",
292
+ "bodyKey": "topic.action.answer-question.prompt",
293
+ "purposeKey": "topic.action.answer-question.purpose",
294
+ "unlocksKey": "topic.action.answer-question.unlocks",
295
+ "priority": 900
296
+ }
297
+ },
298
+ {
299
+ "code": "change-due-date",
300
+ "phase": "working",
301
+ "predecessor": {
302
+ "axis": "work",
303
+ "state": "in-progress"
304
+ },
305
+ "target": {
306
+ "axis": "work",
307
+ "state": "in-progress"
308
+ },
309
+ "command": "topic.change-due-date",
310
+ "requiredAbility": "topic/write",
311
+ "assignedTo": {
312
+ "kind": "role",
313
+ "value": "worker"
314
+ },
315
+ "gates": [
316
+ {
317
+ "kind": "field",
318
+ "path": "/outcome/target/value",
319
+ "predicate": "present"
320
+ }
321
+ ],
322
+ "confirmation": "none",
323
+ "consequence": "shared-state",
324
+ "evidence": {
325
+ "kind": "operation",
326
+ "type": "change-due-date"
327
+ },
328
+ "presentation": {
329
+ "reasonCode": "due-date-review",
330
+ "actionLabelKey": "topic.action.change-due-date.label",
331
+ "bodyKey": "topic.action.change-due-date.prompt",
332
+ "purposeKey": "topic.action.change-due-date.purpose",
333
+ "unlocksKey": "topic.action.change-due-date.unlocks",
334
+ "priority": 900
335
+ }
336
+ },
337
+ {
338
+ "code": "unblock-topic",
339
+ "phase": "working",
340
+ "predecessor": {
341
+ "axis": "topic",
342
+ "state": "open"
343
+ },
344
+ "target": {
345
+ "axis": "topic",
346
+ "state": "open"
347
+ },
348
+ "command": "topic.unblock",
349
+ "requiredAbility": "topic/unblock",
350
+ "assignedTo": {
351
+ "kind": "role",
352
+ "value": "block-resolver"
353
+ },
354
+ "gates": [
355
+ {
356
+ "kind": "condition",
357
+ "states": [
358
+ "blocked"
359
+ ]
360
+ }
361
+ ],
362
+ "confirmation": "none",
363
+ "consequence": "shared-state",
364
+ "evidence": {
365
+ "kind": "operation",
366
+ "type": "unblock-topic"
367
+ },
368
+ "presentation": {
369
+ "reasonCode": "topic-blocked",
370
+ "actionLabelKey": "topic.action.unblock-topic.label",
371
+ "bodyKey": "topic.action.unblock-topic.prompt",
372
+ "purposeKey": "topic.action.unblock-topic.purpose",
373
+ "unlocksKey": "topic.action.unblock-topic.unlocks",
374
+ "priority": 900
375
+ }
376
+ },
377
+ {
378
+ "code": "submit-work",
379
+ "phase": "working",
380
+ "predecessor": {
381
+ "axis": "work",
382
+ "state": "in-progress"
383
+ },
384
+ "target": {
385
+ "axis": "work",
386
+ "state": "submitted"
387
+ },
388
+ "command": "topic.record-outcome",
389
+ "requiredAbility": "topic/record-outcome",
390
+ "assignedTo": {
391
+ "kind": "role",
392
+ "value": "worker"
393
+ },
394
+ "gates": [],
395
+ "confirmation": "none",
396
+ "consequence": "shared-state",
397
+ "evidence": {
398
+ "kind": "record",
399
+ "type": "ixo.topic.work-submission",
400
+ "finality": "accepted"
401
+ },
402
+ "presentation": {
403
+ "reasonCode": "submit-work",
404
+ "actionLabelKey": "topic.action.submit-work.label",
405
+ "bodyKey": "topic.action.submit-work.prompt",
406
+ "purposeKey": "topic.action.submit-work.purpose",
407
+ "unlocksKey": "topic.action.submit-work.unlocks",
408
+ "priority": 900
409
+ }
410
+ },
411
+ {
412
+ "code": "complete-topic",
413
+ "phase": "complete",
414
+ "predecessor": {
415
+ "axis": "topic",
416
+ "state": "open"
417
+ },
418
+ "target": {
419
+ "axis": "topic",
420
+ "state": "complete"
421
+ },
422
+ "command": "topic.complete",
423
+ "requiredAbility": "topic/confirm-completion",
424
+ "assignedTo": {
425
+ "kind": "role",
426
+ "value": "completion-authority"
427
+ },
428
+ "gates": [
429
+ {
430
+ "kind": "axis",
431
+ "axis": "work",
432
+ "states": [
433
+ "submitted"
434
+ ]
435
+ }
436
+ ],
437
+ "confirmation": "authority",
438
+ "consequence": "shared-state",
439
+ "evidence": {
440
+ "kind": "operation",
441
+ "type": "complete-topic"
442
+ },
443
+ "completesTopic": true,
444
+ "presentation": {
445
+ "reasonCode": "complete-topic",
446
+ "actionLabelKey": "topic.action.complete-topic.label",
447
+ "bodyKey": "topic.action.complete-topic.prompt",
448
+ "purposeKey": "topic.action.complete-topic.purpose",
449
+ "unlocksKey": "topic.action.complete-topic.unlocks",
450
+ "priority": 900
451
+ }
452
+ },
453
+ {
454
+ "code": "record-verification",
455
+ "phase": "verifying",
456
+ "predecessor": {
457
+ "axis": "verification",
458
+ "state": "pending"
459
+ },
460
+ "target": {
461
+ "axis": "verification",
462
+ "state": "verified"
463
+ },
464
+ "command": "topic.record-verification",
465
+ "requiredAbility": "claim/evaluate",
466
+ "assignedTo": {
467
+ "kind": "role",
468
+ "value": "evaluator"
469
+ },
470
+ "gates": [
471
+ {
472
+ "kind": "axis",
473
+ "axis": "work",
474
+ "states": [
475
+ "submitted"
476
+ ]
477
+ }
478
+ ],
479
+ "confirmation": "none",
480
+ "consequence": "shared-state",
481
+ "evidence": {
482
+ "kind": "record",
483
+ "type": "ixo.evaluation",
484
+ "finality": "accepted",
485
+ "status": "verified"
486
+ },
487
+ "handoff": {
488
+ "kind": "flow",
489
+ "binding": "evaluation"
490
+ },
491
+ "presentation": {
492
+ "reasonCode": "verification-required",
493
+ "actionLabelKey": "topic.action.record-verification.label",
494
+ "bodyKey": "topic.action.record-verification.prompt",
495
+ "purposeKey": "topic.action.record-verification.purpose",
496
+ "unlocksKey": "topic.action.record-verification.unlocks",
497
+ "priority": 900
498
+ }
499
+ }
500
+ ],
501
+ "progressRules": [
502
+ {
503
+ "code": "disputed",
504
+ "condition": "disputed",
505
+ "priority": 700,
506
+ "source": {
507
+ "kind": "record",
508
+ "value": "ixo.topic.dispute"
509
+ }
510
+ },
511
+ {
512
+ "code": "failed",
513
+ "condition": "failed",
514
+ "priority": 650,
515
+ "source": {
516
+ "kind": "receipt",
517
+ "value": "failed"
518
+ }
519
+ },
520
+ {
521
+ "code": "blocked",
522
+ "condition": "blocked",
523
+ "priority": 600,
524
+ "source": {
525
+ "kind": "topic",
526
+ "value": "blocked"
527
+ },
528
+ "requiresTarget": true
529
+ },
530
+ {
531
+ "code": "waiting",
532
+ "condition": "waiting",
533
+ "priority": 500,
534
+ "source": {
535
+ "kind": "topic",
536
+ "value": "waiting"
537
+ },
538
+ "requiresTarget": true
539
+ },
540
+ {
541
+ "code": "needs-input",
542
+ "condition": "needs-input",
543
+ "priority": 400,
544
+ "source": {
545
+ "kind": "record",
546
+ "value": "ixo.topic.question"
547
+ }
548
+ },
549
+ {
550
+ "code": "needs-confirmation",
551
+ "condition": "needs-confirmation",
552
+ "priority": 350,
553
+ "source": {
554
+ "kind": "axis",
555
+ "value": "contract"
556
+ },
557
+ "states": [
558
+ "proposed"
559
+ ]
560
+ }
561
+ ],
562
+ "inferredRecordPolicy": {
563
+ "autoAccept": [
564
+ "ixo.topic.fact",
565
+ "ixo.topic.summary",
566
+ "ixo.topic.classification"
567
+ ],
568
+ "neverAutoAccept": [
569
+ "ixo.topic.contract",
570
+ "ixo.topic.outcome",
571
+ "ixo.topic.authority",
572
+ "ixo.topic.action",
573
+ "ixo.claim",
574
+ "ixo.evaluation",
575
+ "ixo.settlement"
576
+ ]
577
+ }
578
+ },
579
+ "project": {
580
+ "version": 1,
581
+ "compatibleKind": "project",
582
+ "compatibleShapeVersion": 1,
583
+ "allowedChildKinds": [
584
+ "task",
585
+ "agent_task",
586
+ "proposal",
587
+ "evaluation",
588
+ "claims",
589
+ "incident",
590
+ "question",
591
+ "discussion"
592
+ ],
593
+ "entryPoints": [
594
+ {
595
+ "code": "start-design-pod",
596
+ "label": "Prepare a Design POD draft",
597
+ "kind": "flow",
598
+ "target": "design-yoma/v1",
599
+ "suggestedChildKinds": [
600
+ "question",
601
+ "discussion",
602
+ "evaluation",
603
+ "proposal"
604
+ ],
605
+ "requiresReview": true
606
+ }
607
+ ],
608
+ "milestoneSuggestions": [],
609
+ "requiredCloseEvidenceTypes": [
610
+ "ixo.blueprint.independent-review"
611
+ ]
612
+ }
613
+ }