@cleocode/cleo 2026.2.8 → 2026.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.
- package/README.md +14 -13
- package/dist/cli/index.js +22676 -26012
- package/dist/cli/index.js.map +4 -4
- package/dist/mcp/index.js +1651 -802
- package/dist/mcp/index.js.map +4 -4
- package/drizzle/20260301053344_careless_changeling/migration.sql +27 -0
- package/drizzle/20260301053344_careless_changeling/snapshot.json +2598 -0
- package/package.json +3 -4
- package/packages/ct-skills/skills/ct-cleo/SKILL.md +49 -22
- package/templates/CLEO-INJECTION.md +32 -138
- package/templates/cleo-gitignore +66 -49
- package/templates/git-hooks/pre-commit +24 -6
- package/schemas/archive/agent-configs.schema.json +0 -120
- package/schemas/archive/agent-registry.schema.json +0 -132
- package/schemas/archive/archive.schema.json +0 -450
- package/schemas/archive/claudedocs-frontmatter.schema.json +0 -162
- package/schemas/archive/commands-index.schema.json +0 -158
- package/schemas/archive/contribution.schema.json +0 -722
- package/schemas/archive/critical-path.schema.json +0 -246
- package/schemas/archive/deps-cache.schema.json +0 -97
- package/schemas/archive/doctor-output.schema.json +0 -283
- package/schemas/archive/error.schema.json +0 -161
- package/schemas/archive/export-package.schema.json +0 -375
- package/schemas/archive/global-config.schema.json +0 -219
- package/schemas/archive/log.schema.json +0 -250
- package/schemas/archive/metrics.schema.json +0 -328
- package/schemas/archive/migrations.schema.json +0 -150
- package/schemas/archive/nexus-registry.schema.json +0 -90
- package/schemas/archive/output.schema.json +0 -164
- package/schemas/archive/rcsd-consensus-report.schema.json +0 -491
- package/schemas/archive/rcsd-hitl-resolution.schema.json +0 -216
- package/schemas/archive/rcsd-index.schema.json +0 -384
- package/schemas/archive/rcsd-manifest.schema.json +0 -264
- package/schemas/archive/rcsd-research-output.schema.json +0 -564
- package/schemas/archive/rcsd-spec-frontmatter.schema.json +0 -225
- package/schemas/archive/releases.schema.json +0 -267
- package/schemas/archive/skills-manifest.schema.json +0 -91
- package/schemas/archive/skillsmp.schema.json +0 -208
- package/schemas/archive/spec-index.schema.json +0 -196
- package/schemas/archive/todo.schema.json +0 -995
- package/schemas/claudedocs-frontmatter.schema.json +0 -162
- package/schemas/commands-index.schema.json +0 -158
- package/schemas/rcsd-consensus-report.schema.json +0 -494
- package/schemas/rcsd-hitl-resolution.schema.json +0 -219
- package/schemas/rcsd-index.schema.json +0 -387
- package/schemas/rcsd-manifest.schema.json +0 -267
- package/schemas/rcsd-research-output.schema.json +0 -567
- package/schemas/rcsd-spec-frontmatter.schema.json +0 -225
- package/schemas/todo.schema.json +0 -994
- package/skills/_shared/cleo-style-guide.md +0 -84
- package/skills/_shared/manifest-operations.md +0 -810
- package/skills/_shared/placeholders.json +0 -433
- package/skills/_shared/skill-chaining-patterns.md +0 -240
- package/skills/_shared/subagent-protocol-base.md +0 -221
- package/skills/_shared/task-system-integration.md +0 -232
- package/skills/_shared/testing-framework-config.md +0 -110
- package/skills/agentskills-integrate.md +0 -104
- package/skills/agentskills-specs.md +0 -255
- package/skills/agentskills-what-are-skills.md +0 -75
- package/skills/manifest.json +0 -510
- package/templates/AGENT-INJECTION.md +0 -166
- /package/schemas/{research-manifest.schema.json → archive/research-manifest.schema.json} +0 -0
|
@@ -1,564 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"schemaVersion": "1.0.0",
|
|
4
|
-
"$id": "https://cleo-dev.com/schemas/v1/rcsd-research-output.schema.json",
|
|
5
|
-
"title": "RCSD Research Output",
|
|
6
|
-
"description": "Schema for research phase output in the RCSD pipeline. Captures multi-source research findings, evidence chains, and confidence assessments.",
|
|
7
|
-
"type": "object",
|
|
8
|
-
"required": ["$schema", "_meta", "query", "status", "sources", "findings"],
|
|
9
|
-
"additionalProperties": false,
|
|
10
|
-
|
|
11
|
-
"properties": {
|
|
12
|
-
"$schema": {
|
|
13
|
-
"type": "string",
|
|
14
|
-
"const": "https://cleo-dev.com/schemas/v1/rcsd-research-output.schema.json",
|
|
15
|
-
"description": "Self-referencing schema URI for validation"
|
|
16
|
-
},
|
|
17
|
-
"_meta": {
|
|
18
|
-
"type": "object",
|
|
19
|
-
"description": "Research output metadata",
|
|
20
|
-
"required": ["researchId", "taskId", "shortName", "createdAt"],
|
|
21
|
-
"additionalProperties": false,
|
|
22
|
-
"properties": {
|
|
23
|
-
"researchId": {
|
|
24
|
-
"type": "string",
|
|
25
|
-
"pattern": "^res_[a-f0-9]{8}$",
|
|
26
|
-
"description": "Unique research operation identifier"
|
|
27
|
-
},
|
|
28
|
-
"taskId": {
|
|
29
|
-
"type": "string",
|
|
30
|
-
"pattern": "^T\\d{3,}$",
|
|
31
|
-
"description": "Anchoring task ID"
|
|
32
|
-
},
|
|
33
|
-
"shortName": {
|
|
34
|
-
"type": "string",
|
|
35
|
-
"pattern": "^[a-z0-9-]{3,25}$",
|
|
36
|
-
"description": "Short identifier for this research"
|
|
37
|
-
},
|
|
38
|
-
"version": {
|
|
39
|
-
"type": "string",
|
|
40
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
41
|
-
"default": "1.0.0",
|
|
42
|
-
"description": "Research output version"
|
|
43
|
-
},
|
|
44
|
-
"createdAt": {
|
|
45
|
-
"type": "string",
|
|
46
|
-
"format": "date-time",
|
|
47
|
-
"description": "When research began"
|
|
48
|
-
},
|
|
49
|
-
"completedAt": {
|
|
50
|
-
"type": "string",
|
|
51
|
-
"format": "date-time",
|
|
52
|
-
"description": "When research finished"
|
|
53
|
-
},
|
|
54
|
-
"duration": {
|
|
55
|
-
"type": "integer",
|
|
56
|
-
"minimum": 0,
|
|
57
|
-
"description": "Research duration in seconds"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"query": {
|
|
62
|
-
"type": "object",
|
|
63
|
-
"description": "Research query specification",
|
|
64
|
-
"required": ["original"],
|
|
65
|
-
"additionalProperties": false,
|
|
66
|
-
"properties": {
|
|
67
|
-
"original": {
|
|
68
|
-
"type": "string",
|
|
69
|
-
"minLength": 10,
|
|
70
|
-
"maxLength": 500,
|
|
71
|
-
"description": "Original research query from task"
|
|
72
|
-
},
|
|
73
|
-
"expanded": {
|
|
74
|
-
"type": "array",
|
|
75
|
-
"items": {
|
|
76
|
-
"type": "string",
|
|
77
|
-
"maxLength": 200
|
|
78
|
-
},
|
|
79
|
-
"description": "Expanded search queries derived from original"
|
|
80
|
-
},
|
|
81
|
-
"domains": {
|
|
82
|
-
"type": "array",
|
|
83
|
-
"items": {
|
|
84
|
-
"type": "string",
|
|
85
|
-
"pattern": "^[a-z][a-z0-9-]*$"
|
|
86
|
-
},
|
|
87
|
-
"description": "Target domains for research focus"
|
|
88
|
-
},
|
|
89
|
-
"exclusions": {
|
|
90
|
-
"type": "array",
|
|
91
|
-
"items": {
|
|
92
|
-
"type": "string"
|
|
93
|
-
},
|
|
94
|
-
"description": "Terms or domains explicitly excluded"
|
|
95
|
-
},
|
|
96
|
-
"context": {
|
|
97
|
-
"type": "string",
|
|
98
|
-
"maxLength": 1000,
|
|
99
|
-
"description": "Additional context for research interpretation"
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
"status": {
|
|
104
|
-
"type": "string",
|
|
105
|
-
"enum": ["pending", "in_progress", "completed", "failed", "partial"],
|
|
106
|
-
"description": "Research operation status"
|
|
107
|
-
},
|
|
108
|
-
"sources": {
|
|
109
|
-
"type": "object",
|
|
110
|
-
"description": "Source tracking and citation management",
|
|
111
|
-
"required": ["searched", "used", "citations"],
|
|
112
|
-
"additionalProperties": false,
|
|
113
|
-
"properties": {
|
|
114
|
-
"searched": {
|
|
115
|
-
"type": "integer",
|
|
116
|
-
"minimum": 0,
|
|
117
|
-
"description": "Total sources searched/considered"
|
|
118
|
-
},
|
|
119
|
-
"used": {
|
|
120
|
-
"type": "integer",
|
|
121
|
-
"minimum": 0,
|
|
122
|
-
"description": "Sources actually used in findings"
|
|
123
|
-
},
|
|
124
|
-
"byTool": {
|
|
125
|
-
"type": "object",
|
|
126
|
-
"description": "Source counts by research tool",
|
|
127
|
-
"additionalProperties": false,
|
|
128
|
-
"properties": {
|
|
129
|
-
"tavily": {
|
|
130
|
-
"type": "integer",
|
|
131
|
-
"minimum": 0,
|
|
132
|
-
"description": "Sources from Tavily web search"
|
|
133
|
-
},
|
|
134
|
-
"context7": {
|
|
135
|
-
"type": "integer",
|
|
136
|
-
"minimum": 0,
|
|
137
|
-
"description": "Sources from Context7 library docs"
|
|
138
|
-
},
|
|
139
|
-
"webFetch": {
|
|
140
|
-
"type": "integer",
|
|
141
|
-
"minimum": 0,
|
|
142
|
-
"description": "Sources from direct URL extraction"
|
|
143
|
-
},
|
|
144
|
-
"reddit": {
|
|
145
|
-
"type": "integer",
|
|
146
|
-
"minimum": 0,
|
|
147
|
-
"description": "Sources from Reddit discussions"
|
|
148
|
-
},
|
|
149
|
-
"codebase": {
|
|
150
|
-
"type": "integer",
|
|
151
|
-
"minimum": 0,
|
|
152
|
-
"description": "Sources from existing codebase"
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
"citations": {
|
|
157
|
-
"type": "array",
|
|
158
|
-
"items": {
|
|
159
|
-
"$ref": "#/definitions/citation"
|
|
160
|
-
},
|
|
161
|
-
"description": "All citations referenced in findings"
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
"findings": {
|
|
166
|
-
"type": "array",
|
|
167
|
-
"minItems": 0,
|
|
168
|
-
"items": {
|
|
169
|
-
"$ref": "#/definitions/finding"
|
|
170
|
-
},
|
|
171
|
-
"description": "Individual research findings with evidence"
|
|
172
|
-
},
|
|
173
|
-
"themes": {
|
|
174
|
-
"type": "array",
|
|
175
|
-
"items": {
|
|
176
|
-
"$ref": "#/definitions/theme"
|
|
177
|
-
},
|
|
178
|
-
"description": "Recurring themes identified across findings"
|
|
179
|
-
},
|
|
180
|
-
"contradictions": {
|
|
181
|
-
"type": "array",
|
|
182
|
-
"items": {
|
|
183
|
-
"$ref": "#/definitions/contradiction"
|
|
184
|
-
},
|
|
185
|
-
"description": "Conflicting information requiring resolution"
|
|
186
|
-
},
|
|
187
|
-
"gaps": {
|
|
188
|
-
"type": "array",
|
|
189
|
-
"items": {
|
|
190
|
-
"$ref": "#/definitions/gap"
|
|
191
|
-
},
|
|
192
|
-
"description": "Identified knowledge gaps requiring further research"
|
|
193
|
-
},
|
|
194
|
-
"actionableItems": {
|
|
195
|
-
"type": "array",
|
|
196
|
-
"items": {
|
|
197
|
-
"$ref": "#/definitions/actionableItem"
|
|
198
|
-
},
|
|
199
|
-
"description": "Concrete recommendations derived from research"
|
|
200
|
-
},
|
|
201
|
-
"confidence": {
|
|
202
|
-
"type": "object",
|
|
203
|
-
"description": "Overall research confidence assessment",
|
|
204
|
-
"required": ["overall"],
|
|
205
|
-
"additionalProperties": false,
|
|
206
|
-
"properties": {
|
|
207
|
-
"overall": {
|
|
208
|
-
"type": "number",
|
|
209
|
-
"minimum": 0.0,
|
|
210
|
-
"maximum": 1.0,
|
|
211
|
-
"description": "Overall confidence score (0.0-1.0)"
|
|
212
|
-
},
|
|
213
|
-
"factors": {
|
|
214
|
-
"type": "object",
|
|
215
|
-
"description": "Factors contributing to confidence assessment",
|
|
216
|
-
"additionalProperties": false,
|
|
217
|
-
"properties": {
|
|
218
|
-
"sourceQuality": {
|
|
219
|
-
"type": "number",
|
|
220
|
-
"minimum": 0.0,
|
|
221
|
-
"maximum": 1.0,
|
|
222
|
-
"description": "Quality/authority of sources"
|
|
223
|
-
},
|
|
224
|
-
"sourceDiversity": {
|
|
225
|
-
"type": "number",
|
|
226
|
-
"minimum": 0.0,
|
|
227
|
-
"maximum": 1.0,
|
|
228
|
-
"description": "Diversity of source types and perspectives"
|
|
229
|
-
},
|
|
230
|
-
"evidenceStrength": {
|
|
231
|
-
"type": "number",
|
|
232
|
-
"minimum": 0.0,
|
|
233
|
-
"maximum": 1.0,
|
|
234
|
-
"description": "Strength of evidence for claims"
|
|
235
|
-
},
|
|
236
|
-
"consistency": {
|
|
237
|
-
"type": "number",
|
|
238
|
-
"minimum": 0.0,
|
|
239
|
-
"maximum": 1.0,
|
|
240
|
-
"description": "Agreement across sources"
|
|
241
|
-
},
|
|
242
|
-
"recency": {
|
|
243
|
-
"type": "number",
|
|
244
|
-
"minimum": 0.0,
|
|
245
|
-
"maximum": 1.0,
|
|
246
|
-
"description": "How current the information is"
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
"caveats": {
|
|
251
|
-
"type": "array",
|
|
252
|
-
"items": {
|
|
253
|
-
"type": "string",
|
|
254
|
-
"maxLength": 200
|
|
255
|
-
},
|
|
256
|
-
"description": "Important limitations or uncertainties"
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
},
|
|
260
|
-
"rawData": {
|
|
261
|
-
"type": "object",
|
|
262
|
-
"description": "Optional raw data from research tools (for debugging/audit)",
|
|
263
|
-
"properties": {
|
|
264
|
-
"tavilyResponses": {
|
|
265
|
-
"type": "array",
|
|
266
|
-
"description": "Raw Tavily API responses"
|
|
267
|
-
},
|
|
268
|
-
"context7Responses": {
|
|
269
|
-
"type": "array",
|
|
270
|
-
"description": "Raw Context7 API responses"
|
|
271
|
-
},
|
|
272
|
-
"extractedContent": {
|
|
273
|
-
"type": "array",
|
|
274
|
-
"description": "Raw extracted URL content"
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
},
|
|
279
|
-
|
|
280
|
-
"definitions": {
|
|
281
|
-
"citation": {
|
|
282
|
-
"type": "object",
|
|
283
|
-
"required": ["id", "type", "title"],
|
|
284
|
-
"additionalProperties": false,
|
|
285
|
-
"properties": {
|
|
286
|
-
"id": {
|
|
287
|
-
"type": "string",
|
|
288
|
-
"pattern": "^cite_[a-f0-9]{6}$",
|
|
289
|
-
"description": "Unique citation identifier"
|
|
290
|
-
},
|
|
291
|
-
"type": {
|
|
292
|
-
"type": "string",
|
|
293
|
-
"enum": ["web", "documentation", "article", "discussion", "codebase", "book", "paper"],
|
|
294
|
-
"description": "Source type classification"
|
|
295
|
-
},
|
|
296
|
-
"title": {
|
|
297
|
-
"type": "string",
|
|
298
|
-
"maxLength": 200,
|
|
299
|
-
"description": "Source title"
|
|
300
|
-
},
|
|
301
|
-
"url": {
|
|
302
|
-
"type": "string",
|
|
303
|
-
"format": "uri",
|
|
304
|
-
"description": "Source URL (if applicable)"
|
|
305
|
-
},
|
|
306
|
-
"author": {
|
|
307
|
-
"type": "string",
|
|
308
|
-
"maxLength": 100,
|
|
309
|
-
"description": "Author or organization"
|
|
310
|
-
},
|
|
311
|
-
"date": {
|
|
312
|
-
"type": "string",
|
|
313
|
-
"format": "date",
|
|
314
|
-
"description": "Publication/access date"
|
|
315
|
-
},
|
|
316
|
-
"reliability": {
|
|
317
|
-
"type": "string",
|
|
318
|
-
"enum": ["high", "medium", "low", "unknown"],
|
|
319
|
-
"description": "Source reliability assessment"
|
|
320
|
-
},
|
|
321
|
-
"tool": {
|
|
322
|
-
"type": "string",
|
|
323
|
-
"enum": ["tavily", "context7", "webFetch", "reddit", "codebase", "manual"],
|
|
324
|
-
"description": "Tool used to retrieve this source"
|
|
325
|
-
},
|
|
326
|
-
"excerpt": {
|
|
327
|
-
"type": "string",
|
|
328
|
-
"maxLength": 500,
|
|
329
|
-
"description": "Key excerpt from source"
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
},
|
|
333
|
-
"finding": {
|
|
334
|
-
"type": "object",
|
|
335
|
-
"required": ["id", "claim", "confidence"],
|
|
336
|
-
"additionalProperties": false,
|
|
337
|
-
"properties": {
|
|
338
|
-
"id": {
|
|
339
|
-
"type": "string",
|
|
340
|
-
"pattern": "^find_[a-f0-9]{6}$",
|
|
341
|
-
"description": "Unique finding identifier"
|
|
342
|
-
},
|
|
343
|
-
"claim": {
|
|
344
|
-
"type": "string",
|
|
345
|
-
"minLength": 10,
|
|
346
|
-
"maxLength": 500,
|
|
347
|
-
"description": "The claim or fact discovered"
|
|
348
|
-
},
|
|
349
|
-
"evidence": {
|
|
350
|
-
"type": "array",
|
|
351
|
-
"items": {
|
|
352
|
-
"type": "object",
|
|
353
|
-
"required": ["citationId", "quote"],
|
|
354
|
-
"additionalProperties": false,
|
|
355
|
-
"properties": {
|
|
356
|
-
"citationId": {
|
|
357
|
-
"type": "string",
|
|
358
|
-
"pattern": "^cite_[a-f0-9]{6}$",
|
|
359
|
-
"description": "Reference to source citation"
|
|
360
|
-
},
|
|
361
|
-
"quote": {
|
|
362
|
-
"type": "string",
|
|
363
|
-
"maxLength": 500,
|
|
364
|
-
"description": "Supporting quote from source"
|
|
365
|
-
},
|
|
366
|
-
"weight": {
|
|
367
|
-
"type": "number",
|
|
368
|
-
"minimum": 0.0,
|
|
369
|
-
"maximum": 1.0,
|
|
370
|
-
"description": "Evidence weight (0.0-1.0)"
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
"description": "Evidence supporting this finding"
|
|
375
|
-
},
|
|
376
|
-
"sourceCount": {
|
|
377
|
-
"type": "integer",
|
|
378
|
-
"minimum": 1,
|
|
379
|
-
"description": "Number of sources supporting this finding"
|
|
380
|
-
},
|
|
381
|
-
"confidence": {
|
|
382
|
-
"type": "number",
|
|
383
|
-
"minimum": 0.0,
|
|
384
|
-
"maximum": 1.0,
|
|
385
|
-
"description": "Confidence in this specific finding"
|
|
386
|
-
},
|
|
387
|
-
"relevance": {
|
|
388
|
-
"type": "number",
|
|
389
|
-
"minimum": 0.0,
|
|
390
|
-
"maximum": 1.0,
|
|
391
|
-
"description": "Relevance to original query"
|
|
392
|
-
},
|
|
393
|
-
"category": {
|
|
394
|
-
"type": "string",
|
|
395
|
-
"enum": ["fact", "best-practice", "pattern", "warning", "opinion", "requirement"],
|
|
396
|
-
"description": "Finding classification"
|
|
397
|
-
},
|
|
398
|
-
"tags": {
|
|
399
|
-
"type": "array",
|
|
400
|
-
"items": {
|
|
401
|
-
"type": "string",
|
|
402
|
-
"pattern": "^[a-z][a-z0-9-]*$"
|
|
403
|
-
},
|
|
404
|
-
"description": "Tags for categorization"
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
},
|
|
408
|
-
"theme": {
|
|
409
|
-
"type": "object",
|
|
410
|
-
"required": ["id", "name", "findingIds"],
|
|
411
|
-
"additionalProperties": false,
|
|
412
|
-
"properties": {
|
|
413
|
-
"id": {
|
|
414
|
-
"type": "string",
|
|
415
|
-
"pattern": "^theme_[a-f0-9]{4}$",
|
|
416
|
-
"description": "Unique theme identifier"
|
|
417
|
-
},
|
|
418
|
-
"name": {
|
|
419
|
-
"type": "string",
|
|
420
|
-
"maxLength": 100,
|
|
421
|
-
"description": "Theme name"
|
|
422
|
-
},
|
|
423
|
-
"description": {
|
|
424
|
-
"type": "string",
|
|
425
|
-
"maxLength": 300,
|
|
426
|
-
"description": "Theme description"
|
|
427
|
-
},
|
|
428
|
-
"findingIds": {
|
|
429
|
-
"type": "array",
|
|
430
|
-
"items": {
|
|
431
|
-
"type": "string",
|
|
432
|
-
"pattern": "^find_[a-f0-9]{6}$"
|
|
433
|
-
},
|
|
434
|
-
"minItems": 2,
|
|
435
|
-
"description": "Findings contributing to this theme"
|
|
436
|
-
},
|
|
437
|
-
"strength": {
|
|
438
|
-
"type": "string",
|
|
439
|
-
"enum": ["strong", "moderate", "weak"],
|
|
440
|
-
"description": "Theme strength based on evidence"
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
},
|
|
444
|
-
"contradiction": {
|
|
445
|
-
"type": "object",
|
|
446
|
-
"required": ["id", "description", "findingIds"],
|
|
447
|
-
"additionalProperties": false,
|
|
448
|
-
"properties": {
|
|
449
|
-
"id": {
|
|
450
|
-
"type": "string",
|
|
451
|
-
"pattern": "^contra_[a-f0-9]{4}$",
|
|
452
|
-
"description": "Unique contradiction identifier"
|
|
453
|
-
},
|
|
454
|
-
"description": {
|
|
455
|
-
"type": "string",
|
|
456
|
-
"maxLength": 300,
|
|
457
|
-
"description": "Description of the contradiction"
|
|
458
|
-
},
|
|
459
|
-
"findingIds": {
|
|
460
|
-
"type": "array",
|
|
461
|
-
"items": {
|
|
462
|
-
"type": "string",
|
|
463
|
-
"pattern": "^find_[a-f0-9]{6}$"
|
|
464
|
-
},
|
|
465
|
-
"minItems": 2,
|
|
466
|
-
"description": "Conflicting finding IDs"
|
|
467
|
-
},
|
|
468
|
-
"resolution": {
|
|
469
|
-
"type": "string",
|
|
470
|
-
"maxLength": 300,
|
|
471
|
-
"description": "Proposed resolution (if any)"
|
|
472
|
-
},
|
|
473
|
-
"severity": {
|
|
474
|
-
"type": "string",
|
|
475
|
-
"enum": ["critical", "significant", "minor"],
|
|
476
|
-
"description": "Impact severity of contradiction"
|
|
477
|
-
},
|
|
478
|
-
"requiresConsensus": {
|
|
479
|
-
"type": "boolean",
|
|
480
|
-
"default": true,
|
|
481
|
-
"description": "Whether consensus validation is needed"
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
},
|
|
485
|
-
"gap": {
|
|
486
|
-
"type": "object",
|
|
487
|
-
"required": ["id", "description"],
|
|
488
|
-
"additionalProperties": false,
|
|
489
|
-
"properties": {
|
|
490
|
-
"id": {
|
|
491
|
-
"type": "string",
|
|
492
|
-
"pattern": "^gap_[a-f0-9]{4}$",
|
|
493
|
-
"description": "Unique gap identifier"
|
|
494
|
-
},
|
|
495
|
-
"description": {
|
|
496
|
-
"type": "string",
|
|
497
|
-
"maxLength": 300,
|
|
498
|
-
"description": "Description of knowledge gap"
|
|
499
|
-
},
|
|
500
|
-
"importance": {
|
|
501
|
-
"type": "string",
|
|
502
|
-
"enum": ["critical", "high", "medium", "low"],
|
|
503
|
-
"description": "Importance of filling this gap"
|
|
504
|
-
},
|
|
505
|
-
"suggestedSources": {
|
|
506
|
-
"type": "array",
|
|
507
|
-
"items": {
|
|
508
|
-
"type": "string",
|
|
509
|
-
"maxLength": 100
|
|
510
|
-
},
|
|
511
|
-
"description": "Suggested sources to investigate"
|
|
512
|
-
},
|
|
513
|
-
"blocksFindings": {
|
|
514
|
-
"type": "array",
|
|
515
|
-
"items": {
|
|
516
|
-
"type": "string",
|
|
517
|
-
"pattern": "^find_[a-f0-9]{6}$"
|
|
518
|
-
},
|
|
519
|
-
"description": "Findings affected by this gap"
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
},
|
|
523
|
-
"actionableItem": {
|
|
524
|
-
"type": "object",
|
|
525
|
-
"required": ["id", "action", "priority"],
|
|
526
|
-
"additionalProperties": false,
|
|
527
|
-
"properties": {
|
|
528
|
-
"id": {
|
|
529
|
-
"type": "string",
|
|
530
|
-
"pattern": "^action_[a-f0-9]{4}$",
|
|
531
|
-
"description": "Unique action identifier"
|
|
532
|
-
},
|
|
533
|
-
"action": {
|
|
534
|
-
"type": "string",
|
|
535
|
-
"maxLength": 200,
|
|
536
|
-
"description": "Recommended action"
|
|
537
|
-
},
|
|
538
|
-
"rationale": {
|
|
539
|
-
"type": "string",
|
|
540
|
-
"maxLength": 300,
|
|
541
|
-
"description": "Why this action is recommended"
|
|
542
|
-
},
|
|
543
|
-
"priority": {
|
|
544
|
-
"type": "string",
|
|
545
|
-
"enum": ["critical", "high", "medium", "low"],
|
|
546
|
-
"description": "Action priority"
|
|
547
|
-
},
|
|
548
|
-
"basedOn": {
|
|
549
|
-
"type": "array",
|
|
550
|
-
"items": {
|
|
551
|
-
"type": "string",
|
|
552
|
-
"pattern": "^find_[a-f0-9]{6}$"
|
|
553
|
-
},
|
|
554
|
-
"description": "Findings supporting this recommendation"
|
|
555
|
-
},
|
|
556
|
-
"effort": {
|
|
557
|
-
"type": "string",
|
|
558
|
-
"enum": ["small", "medium", "large"],
|
|
559
|
-
"description": "Estimated effort (NOT time)"
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
}
|