@deksden-com/dd-flow-cli 0.9.0-beta.144 → 0.9.0-beta.149

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 (254) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/README.md +13 -8
  3. package/dist/build-info.json +7 -7
  4. package/dist/cli/command-inputs.js +13 -3
  5. package/dist/cli/command-metadata.js +51 -16
  6. package/dist/cli/diagnostic-invocation.js +46 -0
  7. package/dist/cli/diagnostic.js +120 -0
  8. package/dist/cli/help.js +67 -1
  9. package/dist/cli/hook-ingress.js +27 -3
  10. package/dist/cli/memory-flow-admission.js +9 -3
  11. package/dist/cli/memory-init-invocation.js +10 -3
  12. package/dist/cli/memory-init.js +77 -68
  13. package/dist/cli/memory-storage-admission.js +3 -2
  14. package/dist/cli/memory-storage-qualification.js +105 -0
  15. package/dist/cli/memory-storage-transition.js +123 -0
  16. package/dist/cli/memory-upgrade.js +189 -0
  17. package/dist/cli/native-hook-ingress.js +14 -4
  18. package/dist/cli/native-hook-preparation.js +55 -0
  19. package/dist/cli/response-file.js +2 -1
  20. package/dist/cli/run-cli.js +79 -40
  21. package/dist/cli/setup.js +2 -1
  22. package/dist/cli.js +18 -0
  23. package/dist/domain/diagnostic-aspects.js +103 -0
  24. package/dist/domain/diagnostic-flows.js +8 -0
  25. package/dist/domain/stage-handler-identities.js +8 -0
  26. package/dist/harness-runtime/bin/dd-agy.mjs +3 -3
  27. package/dist/harness-runtime/bin/dd-grok.mjs +3 -3
  28. package/dist/harness-runtime/bin/dd-zcode.mjs +5 -5
  29. package/dist/harness-runtime/lib/agy-error-boundary.mjs +58 -0
  30. package/dist/harness-runtime/lib/agy-native-inspection.mjs +216 -0
  31. package/dist/harness-runtime/lib/agy-native_pb.js +117 -0
  32. package/dist/harness-runtime/lib/daemon-operations.d.mts +1 -0
  33. package/dist/harness-runtime/lib/daemon-operations.mjs +84 -10
  34. package/dist/harness-runtime/lib/dd-agy-daemon.mjs +366 -52
  35. package/dist/harness-runtime/lib/dd-agy.mjs +17 -3
  36. package/dist/harness-runtime/lib/dd-codex-daemon.mjs +27 -13
  37. package/dist/harness-runtime/lib/dd-codex.mjs +4 -0
  38. package/dist/harness-runtime/lib/dd-droid-daemon.mjs +4 -3
  39. package/dist/harness-runtime/lib/dd-droid.mjs +71 -29
  40. package/dist/harness-runtime/lib/dd-grok-daemon.mjs +73 -16
  41. package/dist/harness-runtime/lib/dd-grok.mjs +6 -3
  42. package/dist/harness-runtime/lib/dd-opencode-daemon.mjs +66 -20
  43. package/dist/harness-runtime/lib/dd-opencode.mjs +30 -3
  44. package/dist/harness-runtime/lib/dd-zcode-daemon.mjs +7 -6
  45. package/dist/harness-runtime/lib/dd-zcode.mjs +44 -14
  46. package/dist/harness-runtime/lib/delegation-instructions.mjs +1 -1
  47. package/dist/harness-runtime/lib/driver-recovery.mjs +9 -8
  48. package/dist/harness-runtime/lib/entity-references.d.mts +2 -0
  49. package/dist/harness-runtime/lib/entity-references.mjs +9 -0
  50. package/dist/harness-runtime/lib/managed-daemon.d.mts +1 -1
  51. package/dist/harness-runtime/lib/managed-daemon.mjs +24 -9
  52. package/dist/harness-runtime/lib/native-children.d.mts +8 -1
  53. package/dist/harness-runtime/lib/native-children.mjs +114 -8
  54. package/dist/harness-runtime/lib/native-hook-command.mjs +4 -4
  55. package/dist/harness-runtime/lib/native-request-proof.mjs +1 -1
  56. package/dist/harness-runtime/lib/observation-clock.d.mts +2 -2
  57. package/dist/harness-runtime/lib/observation-clock.mjs +7 -4
  58. package/dist/harness-runtime/lib/opencode-plugin.mjs +3 -3
  59. package/dist/harness-runtime/lib/operation-errors.mjs +1 -1
  60. package/dist/harness-runtime/lib/provider-overload-policy.d.mts +5 -3
  61. package/dist/harness-runtime/lib/provider-overload-policy.mjs +20 -7
  62. package/dist/harness-runtime/lib/runner-events.mjs +3 -1
  63. package/dist/harness-runtime/lib/setup-progress.mjs +8 -6
  64. package/dist/harness-runtime/lib/tool-observations.mjs +1 -1
  65. package/dist/schemas/diagnostic-stage-result.schema.json +354 -0
  66. package/dist/schemas/diagnostic-work-result.schema.json +296 -0
  67. package/dist/schemas/execution-bundle.schema.json +7 -1
  68. package/dist/schemas/mb-upgrade-stage-result.schema.json +863 -0
  69. package/dist/schemas/memory-repair-work-result.schema.json +9 -2
  70. package/dist/schemas/project-flow-pack-manifest.schema.json +1 -1
  71. package/dist/schemas/release-impact.schema.json +3 -3
  72. package/dist/schemas/stage-start-response.schema.json +4 -0
  73. package/dist/services/accepted-intent.js +13 -1
  74. package/dist/services/canon.js +43 -7
  75. package/dist/services/check-environment.js +21 -0
  76. package/dist/services/check-runner-evidence.js +267 -15
  77. package/dist/services/cli-operation-classifier.js +1 -1
  78. package/dist/services/cli-upgrade-allowlist.js +1 -1
  79. package/dist/services/code-checks.js +34 -19
  80. package/dist/services/compatibility-preflight.js +5 -2
  81. package/dist/services/controller-execution.js +10 -4
  82. package/dist/services/controller-fanout.js +34 -10
  83. package/dist/services/controller-memory-task.js +45 -0
  84. package/dist/services/controller-memory-worker.js +49 -0
  85. package/dist/services/dashboard.js +2 -2
  86. package/dist/services/descriptor-run-settlement.js +5 -3
  87. package/dist/services/descriptor-run-start.js +46 -20
  88. package/dist/services/descriptor-stage-coordinator.js +66 -13
  89. package/dist/services/descriptor-stage-settlement.js +2 -1
  90. package/dist/services/descriptor-stage-start.js +40 -4
  91. package/dist/services/diagnostic-evidence.js +73 -0
  92. package/dist/services/diagnostic-report-publication.js +72 -0
  93. package/dist/services/diagnostic-report.js +67 -0
  94. package/dist/services/diagnostic-run-bundle.js +74 -0
  95. package/dist/services/diagnostic-snapshot.js +159 -0
  96. package/dist/services/diagnostic-stage-handlers.js +108 -0
  97. package/dist/services/diagnostic-stage-results.js +132 -0
  98. package/dist/services/diagnostic-start.js +84 -0
  99. package/dist/services/diagnostic-work-batch.js +34 -0
  100. package/dist/services/diagnostic-work-collection.js +97 -0
  101. package/dist/services/diagnostic-work-registration.js +101 -0
  102. package/dist/services/diagnostic-work-results.js +93 -0
  103. package/dist/services/engines.js +64 -14
  104. package/dist/services/eval-snapshots.js +186 -119
  105. package/dist/services/execution-bundles.js +19 -7
  106. package/dist/services/external-work-launch.js +5 -3
  107. package/dist/services/flow-catalog.js +13 -4
  108. package/dist/services/frozen-engine.js +148 -11
  109. package/dist/services/hook-memory-routing.js +188 -0
  110. package/dist/services/hook-recovery-guard.js +14 -0
  111. package/dist/services/hook-session-observation.js +24 -0
  112. package/dist/services/hooks.js +27 -8
  113. package/dist/services/hybrid-contracts.js +4 -13
  114. package/dist/services/hybrid-digest.js +14 -0
  115. package/dist/services/installed-flow-source.js +47 -4
  116. package/dist/services/lifecycle-invocations.js +179 -38
  117. package/dist/services/memory-accepted-composition.js +5 -4
  118. package/dist/services/memory-completed-correction-wave.js +23 -15
  119. package/dist/services/memory-compose-handler.js +163 -21
  120. package/dist/services/memory-composition-acceptance.js +186 -10
  121. package/dist/services/memory-composition-graph.js +42 -11
  122. package/dist/services/memory-composition-registration.js +23 -8
  123. package/dist/services/memory-composition-work-custody.js +14 -9
  124. package/dist/services/memory-composition-work-results.js +15 -3
  125. package/dist/services/memory-corrected-review-batch.js +10 -3
  126. package/dist/services/memory-corrected-review-findings.js +4 -2
  127. package/dist/services/memory-corrected-review-inputs.js +10 -5
  128. package/dist/services/memory-corrected-review-receipt.js +17 -9
  129. package/dist/services/memory-corrected-review-registration.js +3 -2
  130. package/dist/services/memory-correction-check-receipt.js +20 -4
  131. package/dist/services/memory-custody-snapshot.js +36 -0
  132. package/dist/services/memory-finish-evidence.js +44 -22
  133. package/dist/services/memory-finish-handler.js +37 -23
  134. package/dist/services/memory-finish-integration.js +218 -48
  135. package/dist/services/memory-finish-readiness.js +66 -19
  136. package/dist/services/memory-git-integration.js +87 -18
  137. package/dist/services/memory-historical-corrected-review.js +21 -15
  138. package/dist/services/memory-historical-original-review.js +22 -9
  139. package/dist/services/memory-historical-repair-registration.js +14 -8
  140. package/dist/services/memory-historical-second-review.js +30 -11
  141. package/dist/services/memory-init-contexts.js +44 -2
  142. package/dist/services/memory-init-controller-start.js +27 -8
  143. package/dist/services/memory-init-git-policy.js +50 -21
  144. package/dist/services/memory-init-lint-capability.js +24 -6
  145. package/dist/services/memory-init-native-capacity.js +17 -4
  146. package/dist/services/memory-init-preflight.js +21 -17
  147. package/dist/services/memory-init-request-candidate.js +73 -17
  148. package/dist/services/memory-init-request-input.js +23 -7
  149. package/dist/services/memory-init-run-bundle.js +49 -12
  150. package/dist/services/memory-init-storage.js +17 -7
  151. package/dist/services/memory-init-worktrunk-capability.js +3 -7
  152. package/dist/services/memory-layer.js +71 -6
  153. package/dist/services/memory-lint-config.js +111 -2
  154. package/dist/services/memory-native-review-copy.js +5 -67
  155. package/dist/services/memory-normal-flow-entry.js +12 -0
  156. package/dist/services/memory-ordinary-defaults.js +22 -5
  157. package/dist/services/memory-preflight-handler.js +15 -0
  158. package/dist/services/memory-repair-current-view.js +1 -1
  159. package/dist/services/memory-repair-document-delta.js +70 -33
  160. package/dist/services/memory-repair-history.js +12 -7
  161. package/dist/services/memory-repair-physical-binding.js +1 -119
  162. package/dist/services/memory-repair-publication-plan.js +5 -3
  163. package/dist/services/memory-repair-publication-source.js +1 -1
  164. package/dist/services/memory-repair-publication.js +3 -2
  165. package/dist/services/memory-repair-registration.js +2 -1
  166. package/dist/services/memory-repair-work-baseline.js +4 -2
  167. package/dist/services/memory-repair-work-completion.js +32 -12
  168. package/dist/services/memory-repair-work-results.js +21 -2
  169. package/dist/services/memory-repair-workspace.js +11 -2
  170. package/dist/services/memory-repair-writer-copy.js +2 -1
  171. package/dist/services/memory-result-binding.js +78 -12
  172. package/dist/services/memory-retained-review-authority.js +17 -8
  173. package/dist/services/memory-retained-second-baseline.js +1 -1
  174. package/dist/services/memory-retained-second-repairs.js +12 -6
  175. package/dist/services/memory-review-correction-plan.js +47 -12
  176. package/dist/services/memory-review-handler.js +17 -17
  177. package/dist/services/memory-review-inputs.js +55 -9
  178. package/dist/services/memory-review-limits.js +10 -0
  179. package/dist/services/memory-review-receipt.js +2 -2
  180. package/dist/services/memory-review-registration.js +13 -4
  181. package/dist/services/memory-review-work-custody.js +3 -1
  182. package/dist/services/memory-review-work-input.js +26 -7
  183. package/dist/services/memory-review-work-results.js +26 -4
  184. package/dist/services/memory-second-corrected-review-inputs.js +5 -3
  185. package/dist/services/memory-second-correction-plan.js +2 -1
  186. package/dist/services/memory-second-repair-launch.js +4 -4
  187. package/dist/services/memory-second-repair-source.js +1 -1
  188. package/dist/services/memory-stage-dispatch.js +38 -1
  189. package/dist/services/memory-stage-results.js +113 -22
  190. package/dist/services/memory-tool-probe.js +25 -0
  191. package/dist/services/memory-upgrade-analysis-handler.js +243 -0
  192. package/dist/services/memory-upgrade-bootstrap-readiness.js +251 -0
  193. package/dist/services/memory-upgrade-evidence.js +100 -0
  194. package/dist/services/memory-upgrade-inventory.js +442 -0
  195. package/dist/services/memory-upgrade-publication-custody.js +73 -0
  196. package/dist/services/memory-upgrade-publication.js +413 -0
  197. package/dist/services/memory-upgrade-selection.js +430 -0
  198. package/dist/services/memory-upgrade-start.js +60 -0
  199. package/dist/services/memory-upgrade-storage-readiness.js +340 -0
  200. package/dist/services/memory-verification-acceptance.js +38 -17
  201. package/dist/services/memory-verification-checks.js +92 -27
  202. package/dist/services/memory-verification-receipt.js +6 -5
  203. package/dist/services/memory-verify-handler.js +15 -13
  204. package/dist/services/memory-work-result-json.js +12 -0
  205. package/dist/services/memory-work-result-preparation.js +5 -4
  206. package/dist/services/merge-server.js +4 -2
  207. package/dist/services/migrations.js +127 -98
  208. package/dist/services/native-daemon-history.js +2 -1
  209. package/dist/services/physical-startup.js +45 -0
  210. package/dist/services/project-registry.js +97 -0
  211. package/dist/services/project-summary.js +1 -1
  212. package/dist/services/projects.js +3 -93
  213. package/dist/services/prompt-delivery.js +71 -0
  214. package/dist/services/provider-capacity.js +112 -46
  215. package/dist/services/recovery-snapshot-database.js +32 -4
  216. package/dist/services/release-cache.js +8 -0
  217. package/dist/services/repair-intents.js +1 -12
  218. package/dist/services/repair-receipt.js +13 -0
  219. package/dist/services/run-control-worker.js +35 -18
  220. package/dist/services/run-control.js +2 -1
  221. package/dist/services/run-controller-adapter.js +2 -1
  222. package/dist/services/run-controller-process.js +4 -7
  223. package/dist/services/run-controller-recovery.js +8 -2
  224. package/dist/services/run-controller.js +215 -94
  225. package/dist/services/run-fork.js +1 -1
  226. package/dist/services/run-recovery-guard.js +30 -0
  227. package/dist/services/run-recovery.js +11 -44
  228. package/dist/services/run-start-custody.js +17 -5
  229. package/dist/services/runs.js +6 -1
  230. package/dist/services/runtime-scope-resume.js +12 -6
  231. package/dist/services/runtime-scope-stop.js +3 -2
  232. package/dist/services/runtime-scope-worker.js +46 -19
  233. package/dist/services/runtime-service.js +2 -1
  234. package/dist/services/sessions.js +3 -24
  235. package/dist/services/setup.js +63 -13
  236. package/dist/services/stage-handlers.js +22 -7
  237. package/dist/services/stage-pause.js +111 -44
  238. package/dist/services/version-status.js +1 -1
  239. package/dist/services/vnext-code.js +2 -2
  240. package/dist/services/vnext-fanout.js +51 -9
  241. package/dist/services/vnext-plan-review.js +3 -5
  242. package/dist/services/work-registry.js +117 -39
  243. package/dist/services/workspace-bootstrap.js +2 -1
  244. package/dist/services/workspace-files.js +1 -1
  245. package/dist/shared/entity-references.js +1 -8
  246. package/dist/storage/data-preservation.js +65 -0
  247. package/dist/storage/database.js +53 -19
  248. package/dist/storage/import-guard.js +84 -27
  249. package/dist/storage/memory-upgrade-schema-bootstrap.js +38 -0
  250. package/dist/storage/paired-writer-migration.js +424 -0
  251. package/dist/storage/writer-contract.js +11 -4
  252. package/dist/storage/writer-migration.js +313 -52
  253. package/dist/storage/writer-restore.js +217 -0
  254. package/package.json +13 -6
@@ -0,0 +1,354 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "dd-flow/diagnostic-stage-result@1",
4
+ "title": "Read-only audit and project-review stage result",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_id",
9
+ "flow_id",
10
+ "run_id",
11
+ "stage",
12
+ "input_sha256",
13
+ "snapshot_sha256",
14
+ "summary",
15
+ "predecessors",
16
+ "details"
17
+ ],
18
+ "allOf": [
19
+ {
20
+ "if": { "properties": { "stage": { "enum": ["preflight", "audit", "analyze"] } } },
21
+ "then": { "properties": { "details": { "type": "object", "properties": { "decisions": { "type": "array", "maxItems": 0 } } } } }
22
+ },
23
+ {
24
+ "if": { "properties": { "stage": { "const": "preflight" } } },
25
+ "then": { "properties": { "details": { "type": "object", "properties": { "findings": { "type": "array", "maxItems": 0 } } } } }
26
+ }
27
+ ],
28
+ "properties": {
29
+ "schema_id": {
30
+ "const": "dd-flow/diagnostic-stage-result@1"
31
+ },
32
+ "flow_id": {
33
+ "enum": [
34
+ "mb-audit",
35
+ "project-review"
36
+ ]
37
+ },
38
+ "run_id": {
39
+ "type": "string",
40
+ "pattern": "^RUN-[0-9]+-[a-z0-9-]+$"
41
+ },
42
+ "stage": {
43
+ "enum": [
44
+ "preflight",
45
+ "audit",
46
+ "analyze",
47
+ "review",
48
+ "report"
49
+ ]
50
+ },
51
+ "input_sha256": {
52
+ "$ref": "#/$defs/hash"
53
+ },
54
+ "snapshot_sha256": {
55
+ "$ref": "#/$defs/hash"
56
+ },
57
+ "summary": {
58
+ "$ref": "#/$defs/text"
59
+ },
60
+ "predecessors": {
61
+ "type": "array",
62
+ "maxItems": 1,
63
+ "items": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": [
67
+ "stage",
68
+ "path",
69
+ "sha256"
70
+ ],
71
+ "properties": {
72
+ "stage": {
73
+ "$ref": "#/$defs/text"
74
+ },
75
+ "path": {
76
+ "$ref": "#/$defs/text"
77
+ },
78
+ "sha256": {
79
+ "$ref": "#/$defs/hash"
80
+ }
81
+ }
82
+ }
83
+ },
84
+ "details": {
85
+ "type": "object",
86
+ "additionalProperties": false,
87
+ "required": [
88
+ "focus",
89
+ "coverage",
90
+ "sources",
91
+ "missing_expected_sources",
92
+ "findings",
93
+ "decisions",
94
+ "limitations"
95
+ ],
96
+ "properties": {
97
+ "focus": {
98
+ "$ref": "#/$defs/focus"
99
+ },
100
+ "coverage": {
101
+ "type": "array",
102
+ "maxItems": 24,
103
+ "items": {
104
+ "$ref": "#/$defs/coverage"
105
+ }
106
+ },
107
+ "sources": {
108
+ "type": "array",
109
+ "maxItems": 4096,
110
+ "items": {
111
+ "$ref": "#/$defs/source"
112
+ }
113
+ },
114
+ "missing_expected_sources": {
115
+ "type": "array",
116
+ "maxItems": 256,
117
+ "items": {
118
+ "$ref": "#/$defs/text"
119
+ }
120
+ },
121
+ "findings": {
122
+ "type": "array",
123
+ "maxItems": 1000,
124
+ "items": {
125
+ "$ref": "#/$defs/finding"
126
+ }
127
+ },
128
+ "decisions": {
129
+ "type": "array",
130
+ "maxItems": 2000,
131
+ "items": {
132
+ "$ref": "#/$defs/decision"
133
+ }
134
+ },
135
+ "limitations": {
136
+ "type": "array",
137
+ "maxItems": 256,
138
+ "items": {
139
+ "$ref": "#/$defs/text"
140
+ }
141
+ }
142
+ }
143
+ }
144
+ },
145
+ "$defs": {
146
+ "text": {
147
+ "type": "string",
148
+ "minLength": 1,
149
+ "maxLength": 16000
150
+ },
151
+ "hash": {
152
+ "type": "string",
153
+ "pattern": "^[a-f0-9]{64}$"
154
+ },
155
+ "source": {
156
+ "type": "object",
157
+ "additionalProperties": false,
158
+ "required": [
159
+ "path",
160
+ "sha256"
161
+ ],
162
+ "properties": {
163
+ "path": {
164
+ "type": "string",
165
+ "description": "Path relative to the assigned diagnostic snapshot root, using forward slashes, for example src/index.ts or .memory-bank/index.md. Never an absolute path, dot segment, .git path, intake transport path or canonical support reference. Hash the exact snapshot file bytes.",
166
+ "minLength": 1,
167
+ "maxLength": 4096
168
+ },
169
+ "sha256": {
170
+ "$ref": "#/$defs/hash"
171
+ }
172
+ }
173
+ },
174
+ "coverage": {
175
+ "type": "object",
176
+ "additionalProperties": false,
177
+ "required": [
178
+ "id",
179
+ "applicability",
180
+ "reason",
181
+ "evidence"
182
+ ],
183
+ "properties": {
184
+ "id": {
185
+ "$ref": "#/$defs/text"
186
+ },
187
+ "applicability": {
188
+ "enum": [
189
+ "applicable",
190
+ "not_applicable",
191
+ "blocked",
192
+ "out_of_scope"
193
+ ]
194
+ },
195
+ "reason": {
196
+ "$ref": "#/$defs/text"
197
+ },
198
+ "evidence": {
199
+ "type": "array",
200
+ "maxItems": 64,
201
+ "items": {
202
+ "$ref": "#/$defs/source"
203
+ }
204
+ }
205
+ }
206
+ },
207
+ "finding": {
208
+ "type": "object",
209
+ "additionalProperties": false,
210
+ "required": [
211
+ "id",
212
+ "aspect_id",
213
+ "type",
214
+ "severity",
215
+ "confidence",
216
+ "summary",
217
+ "impact",
218
+ "evidence",
219
+ "recommendation"
220
+ ],
221
+ "properties": {
222
+ "id": {
223
+ "type": "string",
224
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,99}$"
225
+ },
226
+ "aspect_id": {
227
+ "$ref": "#/$defs/text"
228
+ },
229
+ "type": {
230
+ "enum": [
231
+ "project_defect",
232
+ "spec_drift",
233
+ "code_drift",
234
+ "memory_bank_gap",
235
+ "frontmatter_crosslink_gap",
236
+ "coding_standards_gap",
237
+ "policy_process_gap",
238
+ "evidence_gap",
239
+ "observation"
240
+ ]
241
+ },
242
+ "severity": {
243
+ "enum": [
244
+ "blocking",
245
+ "major",
246
+ "minor",
247
+ "informational"
248
+ ]
249
+ },
250
+ "confidence": {
251
+ "enum": [
252
+ "high",
253
+ "medium",
254
+ "low"
255
+ ]
256
+ },
257
+ "summary": {
258
+ "$ref": "#/$defs/text"
259
+ },
260
+ "impact": {
261
+ "$ref": "#/$defs/text"
262
+ },
263
+ "evidence": {
264
+ "type": "array",
265
+ "minItems": 1,
266
+ "maxItems": 64,
267
+ "items": {
268
+ "$ref": "#/$defs/source"
269
+ }
270
+ },
271
+ "recommendation": {
272
+ "$ref": "#/$defs/text"
273
+ }
274
+ }
275
+ },
276
+ "decision": {
277
+ "type": "object",
278
+ "additionalProperties": false,
279
+ "required": [
280
+ "finding_id",
281
+ "disposition",
282
+ "severity",
283
+ "reason",
284
+ "evidence"
285
+ ],
286
+ "properties": {
287
+ "finding_id": {
288
+ "$ref": "#/$defs/text"
289
+ },
290
+ "disposition": {
291
+ "enum": [
292
+ "accepted",
293
+ "downgraded",
294
+ "rejected",
295
+ "duplicate",
296
+ "def_candidate",
297
+ "review_fix_candidate"
298
+ ]
299
+ },
300
+ "severity": {
301
+ "enum": [
302
+ "blocking",
303
+ "major",
304
+ "minor",
305
+ "informational"
306
+ ]
307
+ },
308
+ "reason": {
309
+ "$ref": "#/$defs/text"
310
+ },
311
+ "evidence": {
312
+ "type": "array",
313
+ "maxItems": 64,
314
+ "items": {
315
+ "$ref": "#/$defs/source"
316
+ }
317
+ }
318
+ }
319
+ },
320
+ "focus": {
321
+ "type": "object",
322
+ "additionalProperties": false,
323
+ "required": [
324
+ "mode",
325
+ "target",
326
+ "title",
327
+ "summary"
328
+ ],
329
+ "properties": {
330
+ "mode": {
331
+ "enum": [
332
+ "memory_bank",
333
+ "whole_project",
334
+ "latest_protocol",
335
+ "specific_protocol",
336
+ "protocol_set",
337
+ "subsystem_or_spec_area",
338
+ "feature_or_epic",
339
+ "diff_or_commit_range"
340
+ ]
341
+ },
342
+ "target": {
343
+ "$ref": "#/$defs/text"
344
+ },
345
+ "title": {
346
+ "$ref": "#/$defs/text"
347
+ },
348
+ "summary": {
349
+ "$ref": "#/$defs/text"
350
+ }
351
+ }
352
+ }
353
+ }
354
+ }
@@ -0,0 +1,296 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "dd-flow/diagnostic-work-result@1",
4
+ "title": "Assigned read-only diagnostic aspect or independent critic result",
5
+ "allOf": [
6
+ {
7
+ "if": { "properties": { "stage": { "const": "review" } }, "required": ["stage"] },
8
+ "then": { "properties": { "findings": { "type": "array", "maxItems": 0 } } },
9
+ "else": { "properties": { "decisions": { "type": "array", "maxItems": 0 } } }
10
+ }
11
+ ],
12
+ "type": "object",
13
+ "additionalProperties": false,
14
+ "required": [
15
+ "schema_id",
16
+ "flow_id",
17
+ "run_id",
18
+ "work_id",
19
+ "stage",
20
+ "aspect_id",
21
+ "summary",
22
+ "sources",
23
+ "findings",
24
+ "decisions",
25
+ "limitations"
26
+ ],
27
+ "properties": {
28
+ "schema_id": {
29
+ "const": "dd-flow/diagnostic-work-result@1"
30
+ },
31
+ "flow_id": {
32
+ "enum": [
33
+ "mb-audit",
34
+ "project-review"
35
+ ]
36
+ },
37
+ "run_id": {
38
+ "type": "string",
39
+ "pattern": "^RUN-[0-9]+-[a-z0-9-]+$"
40
+ },
41
+ "work_id": {
42
+ "type": "string",
43
+ "pattern": "^WRK-[0-9]+-[a-z0-9-]+$"
44
+ },
45
+ "stage": {
46
+ "enum": [
47
+ "audit",
48
+ "analyze",
49
+ "review"
50
+ ]
51
+ },
52
+ "aspect_id": {
53
+ "$ref": "#/$defs/text"
54
+ },
55
+ "summary": {
56
+ "$ref": "#/$defs/text"
57
+ },
58
+ "sources": {
59
+ "type": "array",
60
+ "maxItems": 4096,
61
+ "items": {
62
+ "$ref": "#/$defs/source"
63
+ }
64
+ },
65
+ "findings": {
66
+ "type": "array",
67
+ "maxItems": 1000,
68
+ "items": {
69
+ "$ref": "#/$defs/finding"
70
+ }
71
+ },
72
+ "decisions": {
73
+ "type": "array",
74
+ "maxItems": 2000,
75
+ "items": {
76
+ "$ref": "#/$defs/decision"
77
+ }
78
+ },
79
+ "limitations": {
80
+ "type": "array",
81
+ "maxItems": 256,
82
+ "items": {
83
+ "$ref": "#/$defs/text"
84
+ }
85
+ }
86
+ },
87
+ "$defs": {
88
+ "text": {
89
+ "type": "string",
90
+ "minLength": 1,
91
+ "maxLength": 16000
92
+ },
93
+ "hash": {
94
+ "type": "string",
95
+ "pattern": "^[a-f0-9]{64}$"
96
+ },
97
+ "source": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "required": [
101
+ "path",
102
+ "sha256"
103
+ ],
104
+ "properties": {
105
+ "path": {
106
+ "type": "string",
107
+ "description": "Path relative to the assigned diagnostic snapshot root, using forward slashes, for example src/index.ts or .memory-bank/index.md. Never an absolute path, dot segment, .git path, intake transport path or canonical support reference. Hash the exact snapshot file bytes.",
108
+ "minLength": 1,
109
+ "maxLength": 4096
110
+ },
111
+ "sha256": {
112
+ "$ref": "#/$defs/hash"
113
+ }
114
+ }
115
+ },
116
+ "coverage": {
117
+ "type": "object",
118
+ "additionalProperties": false,
119
+ "required": [
120
+ "id",
121
+ "applicability",
122
+ "reason",
123
+ "evidence"
124
+ ],
125
+ "properties": {
126
+ "id": {
127
+ "$ref": "#/$defs/text"
128
+ },
129
+ "applicability": {
130
+ "enum": [
131
+ "applicable",
132
+ "not_applicable",
133
+ "blocked",
134
+ "out_of_scope"
135
+ ]
136
+ },
137
+ "reason": {
138
+ "$ref": "#/$defs/text"
139
+ },
140
+ "evidence": {
141
+ "type": "array",
142
+ "maxItems": 64,
143
+ "items": {
144
+ "$ref": "#/$defs/source"
145
+ }
146
+ }
147
+ }
148
+ },
149
+ "finding": {
150
+ "type": "object",
151
+ "additionalProperties": false,
152
+ "required": [
153
+ "id",
154
+ "aspect_id",
155
+ "type",
156
+ "severity",
157
+ "confidence",
158
+ "summary",
159
+ "impact",
160
+ "evidence",
161
+ "recommendation"
162
+ ],
163
+ "properties": {
164
+ "id": {
165
+ "type": "string",
166
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,99}$"
167
+ },
168
+ "aspect_id": {
169
+ "$ref": "#/$defs/text"
170
+ },
171
+ "type": {
172
+ "enum": [
173
+ "project_defect",
174
+ "spec_drift",
175
+ "code_drift",
176
+ "memory_bank_gap",
177
+ "frontmatter_crosslink_gap",
178
+ "coding_standards_gap",
179
+ "policy_process_gap",
180
+ "evidence_gap",
181
+ "observation"
182
+ ]
183
+ },
184
+ "severity": {
185
+ "enum": [
186
+ "blocking",
187
+ "major",
188
+ "minor",
189
+ "informational"
190
+ ]
191
+ },
192
+ "confidence": {
193
+ "enum": [
194
+ "high",
195
+ "medium",
196
+ "low"
197
+ ]
198
+ },
199
+ "summary": {
200
+ "$ref": "#/$defs/text"
201
+ },
202
+ "impact": {
203
+ "$ref": "#/$defs/text"
204
+ },
205
+ "evidence": {
206
+ "type": "array",
207
+ "minItems": 1,
208
+ "maxItems": 64,
209
+ "items": {
210
+ "$ref": "#/$defs/source"
211
+ }
212
+ },
213
+ "recommendation": {
214
+ "$ref": "#/$defs/text"
215
+ }
216
+ }
217
+ },
218
+ "decision": {
219
+ "type": "object",
220
+ "additionalProperties": false,
221
+ "required": [
222
+ "finding_id",
223
+ "disposition",
224
+ "severity",
225
+ "reason",
226
+ "evidence"
227
+ ],
228
+ "properties": {
229
+ "finding_id": {
230
+ "$ref": "#/$defs/text"
231
+ },
232
+ "disposition": {
233
+ "enum": [
234
+ "accepted",
235
+ "downgraded",
236
+ "rejected",
237
+ "duplicate",
238
+ "def_candidate",
239
+ "review_fix_candidate"
240
+ ]
241
+ },
242
+ "severity": {
243
+ "enum": [
244
+ "blocking",
245
+ "major",
246
+ "minor",
247
+ "informational"
248
+ ]
249
+ },
250
+ "reason": {
251
+ "$ref": "#/$defs/text"
252
+ },
253
+ "evidence": {
254
+ "type": "array",
255
+ "maxItems": 64,
256
+ "items": {
257
+ "$ref": "#/$defs/source"
258
+ }
259
+ }
260
+ }
261
+ },
262
+ "focus": {
263
+ "type": "object",
264
+ "additionalProperties": false,
265
+ "required": [
266
+ "mode",
267
+ "target",
268
+ "title",
269
+ "summary"
270
+ ],
271
+ "properties": {
272
+ "mode": {
273
+ "enum": [
274
+ "memory_bank",
275
+ "whole_project",
276
+ "latest_protocol",
277
+ "specific_protocol",
278
+ "protocol_set",
279
+ "subsystem_or_spec_area",
280
+ "feature_or_epic",
281
+ "diff_or_commit_range"
282
+ ]
283
+ },
284
+ "target": {
285
+ "$ref": "#/$defs/text"
286
+ },
287
+ "title": {
288
+ "$ref": "#/$defs/text"
289
+ },
290
+ "summary": {
291
+ "$ref": "#/$defs/text"
292
+ }
293
+ }
294
+ }
295
+ }
296
+ }
@@ -3,6 +3,11 @@
3
3
  "$id": "dd-flow/execution-bundle@1",
4
4
  "type": "object",
5
5
  "additionalProperties": false,
6
+ "allOf": [{
7
+ "if": { "properties": { "flow_id": { "enum": ["mb-audit", "project-review"] } }, "required": ["flow_id"] },
8
+ "then": { "properties": { "project_pack": { "type": "null" } } },
9
+ "else": { "properties": { "project_pack": { "type": "object" } } }
10
+ }],
6
11
  "required": [
7
12
  "schema_id",
8
13
  "run_id",
@@ -129,7 +134,8 @@
129
134
  }
130
135
  },
131
136
  "project_pack": {
132
- "type": "object",
137
+ "description": "Null only for read-only diagnostics: project documents are snapshot evidence, not an executable project pack.",
138
+ "type": ["object", "null"],
133
139
  "additionalProperties": false,
134
140
  "required": [
135
141
  "sha256",