@dailephd/my-dev-kit-lab 0.4.2 → 0.4.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 (113) hide show
  1. package/README.md +28 -113
  2. package/benchmarks/contracts/todo-behavior.md +1 -1
  3. package/benchmarks/projects/task-analytics-large-mixed/README.md +2 -0
  4. package/benchmarks/projects/task-workflow-medium-ts/README.md +3 -1
  5. package/dist/src/evaluation/stageContextDeterminism/calculateStageContextDeterminism.js +52 -0
  6. package/dist/src/evaluation/stageContextDeterminism/canonicalizeStageContextRun.js +53 -0
  7. package/dist/src/evaluation/stageContextDeterminism/index.js +2 -0
  8. package/dist/src/evaluation/stageContextDeterminism/types.js +1 -0
  9. package/dist/src/evaluation/stageContextExpectations/index.js +2 -0
  10. package/dist/src/evaluation/stageContextExpectations/producerReadinessExpectationTypes.js +8 -0
  11. package/dist/src/evaluation/stageContextExpectations/readStageContextExpectationFixtureV1.js +50 -0
  12. package/dist/src/evaluation/stageContextExpectations/readTypes.js +1 -0
  13. package/dist/src/evaluation/stageContextExpectations/types.js +1 -0
  14. package/dist/src/evaluation/stageContextExpectations/validation.js +768 -0
  15. package/dist/src/evaluation/stageContextMetrics/calculateAllocationMetrics.js +96 -0
  16. package/dist/src/evaluation/stageContextMetrics/calculateArtifactStateMetrics.js +130 -0
  17. package/dist/src/evaluation/stageContextMetrics/calculateContextSizeMetrics.js +85 -0
  18. package/dist/src/evaluation/stageContextMetrics/calculateCriticalityMetrics.js +112 -0
  19. package/dist/src/evaluation/stageContextMetrics/calculateExpectationMetrics.js +103 -0
  20. package/dist/src/evaluation/stageContextMetrics/calculateOwnerMetrics.js +84 -0
  21. package/dist/src/evaluation/stageContextMetrics/calculateReadinessAgreement.js +152 -0
  22. package/dist/src/evaluation/stageContextMetrics/calculateResponsibilityMappingMetrics.js +36 -0
  23. package/dist/src/evaluation/stageContextMetrics/calculateSupplementalRawAgreement.js +50 -0
  24. package/dist/src/evaluation/stageContextMetrics/calculateTruncationClassification.js +44 -0
  25. package/dist/src/evaluation/stageContextMetrics/collectContextCapsuleEvidence.js +312 -0
  26. package/dist/src/evaluation/stageContextMetrics/collectRetrievalAuditEvidence.js +35 -0
  27. package/dist/src/evaluation/stageContextMetrics/collectWorkflowInstructionEvidence.js +137 -0
  28. package/dist/src/evaluation/stageContextMetrics/evaluateProducerReadinessBridge.js +127 -0
  29. package/dist/src/evaluation/stageContextMetrics/evaluateV043StageContextExecution.js +247 -0
  30. package/dist/src/evaluation/stageContextMetrics/index.js +17 -0
  31. package/dist/src/evaluation/stageContextMetrics/matchStageContextExpectations.js +38 -0
  32. package/dist/src/evaluation/stageContextMetrics/producerReadinessMetricTypes.js +1 -0
  33. package/dist/src/evaluation/stageContextMetrics/targetKeys.js +35 -0
  34. package/dist/src/evaluation/stageContextMetrics/types.js +1 -0
  35. package/dist/src/evaluation/stageContextSelectors/contextArtifactConsistency.js +89 -0
  36. package/dist/src/evaluation/stageContextSelectors/contextCapsuleSelectors.js +126 -0
  37. package/dist/src/evaluation/stageContextSelectors/index.js +4 -0
  38. package/dist/src/evaluation/stageContextSelectors/retrievalAuditRecordSelectors.js +54 -0
  39. package/dist/src/evaluation/stageContextSelectors/workflowInstructionPacketSelectors.js +51 -0
  40. package/dist/src/evaluation/targetImmutability/captureTargetSnapshot.js +208 -0
  41. package/dist/src/evaluation/targetImmutability/compareTargetSnapshots.js +56 -0
  42. package/dist/src/evaluation/targetImmutability/index.js +3 -0
  43. package/dist/src/evaluation/targetImmutability/types.js +1 -0
  44. package/dist/src/evaluation/targetImmutability/validateTargetImmutabilityConfig.js +130 -0
  45. package/dist/src/evaluation/upstreamArtifacts/artifactReadTypes.js +1 -0
  46. package/dist/src/evaluation/upstreamArtifacts/index.js +9 -0
  47. package/dist/src/evaluation/upstreamArtifacts/jsonTypes.js +1 -0
  48. package/dist/src/evaluation/upstreamArtifacts/myDevKitClassificationTypesV1.js +1 -0
  49. package/dist/src/evaluation/upstreamArtifacts/myDevKitContextArtifactsV1.js +1 -0
  50. package/dist/src/evaluation/upstreamArtifacts/myDevKitSemanticTypesV1.js +1 -0
  51. package/dist/src/evaluation/upstreamArtifacts/orchestratorContextReadinessResultV1.js +247 -0
  52. package/dist/src/evaluation/upstreamArtifacts/orchestratorWorkflowInstructionPacketV1.js +1 -0
  53. package/dist/src/evaluation/upstreamArtifacts/readImplementationContextPacketV1.js +9 -0
  54. package/dist/src/evaluation/upstreamArtifacts/readImplementationContextRetrievalReportV1.js +9 -0
  55. package/dist/src/evaluation/upstreamArtifacts/readJsonArtifact.js +53 -0
  56. package/dist/src/evaluation/upstreamArtifacts/readMyDevKitContextCapsuleV1.js +9 -0
  57. package/dist/src/evaluation/upstreamArtifacts/readMyDevKitRetrievalAuditRecordV1.js +9 -0
  58. package/dist/src/evaluation/upstreamArtifacts/readOrchestratorWorkflowInstructionPacketV1.js +9 -0
  59. package/dist/src/evaluation/upstreamArtifacts/readSupplementalContextTextFile.js +29 -0
  60. package/dist/src/evaluation/upstreamArtifacts/readTestContextPacketV1.js +9 -0
  61. package/dist/src/evaluation/upstreamArtifacts/readTestContextRetrievalReportV1.js +9 -0
  62. package/dist/src/evaluation/upstreamArtifacts/runtimeValidation.js +131 -0
  63. package/dist/src/evaluation/upstreamArtifacts/schemaVersion.js +32 -0
  64. package/dist/src/evaluation/upstreamArtifacts/supplementalContextTextParser.js +75 -0
  65. package/dist/src/evaluation/upstreamArtifacts/supplementalContextTypes.js +152 -0
  66. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitContextCapsuleV1.js +1208 -0
  67. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitRetrievalAuditRecordV1.js +112 -0
  68. package/dist/src/evaluation/upstreamArtifacts/validateOrchestratorWorkflowInstructionPacketV1.js +235 -0
  69. package/dist/src/evaluation/upstreamArtifacts/validateSupplementalContextDocumentV1.js +148 -0
  70. package/dist/src/experiments/plugins/contextStrategyComparison/executeV043StageContextStrategy.js +46 -0
  71. package/dist/src/experiments/plugins/contextStrategyComparison/index.js +9 -0
  72. package/dist/src/experiments/plugins/contextStrategyComparison/loadV043StrategyArtifacts.js +397 -0
  73. package/dist/src/experiments/plugins/contextStrategyComparison/plugin.js +39 -1
  74. package/dist/src/experiments/plugins/contextStrategyComparison/readV043FullWorkflowLibraryFixture.js +162 -0
  75. package/dist/src/experiments/plugins/contextStrategyComparison/resolveV043StrategyInputs.js +43 -0
  76. package/dist/src/experiments/plugins/contextStrategyComparison/resultMapping.js +3 -0
  77. package/dist/src/experiments/plugins/contextStrategyComparison/runV043StageContextStrategyWithAssurance.js +205 -0
  78. package/dist/src/experiments/plugins/contextStrategyComparison/v043FullWorkflowLibraryFixture.js +1 -0
  79. package/dist/src/experiments/plugins/contextStrategyComparison/v043RunAssuranceTypes.js +1 -0
  80. package/dist/src/experiments/plugins/contextStrategyComparison/v043StrategyExecutionTypes.js +1 -0
  81. package/dist/src/experiments/plugins/contextStrategyComparison/v043StrategyIds.js +13 -0
  82. package/dist/src/experiments/plugins/contextStrategyComparison/v043StrategyInputContracts.js +1 -0
  83. package/dist/src/experiments/plugins/contextStrategyComparison/validateV043RunAssuranceConfig.js +59 -0
  84. package/dist/src/experiments/plugins/contextStrategyComparison/validateV043StrategyInput.js +266 -0
  85. package/dist/src/report/experiments/buildContextStrategyComparisonV043Report.js +520 -0
  86. package/dist/src/report/experiments/buildPluginExperimentReport.js +21 -6
  87. package/dist/src/report/experiments/contextStrategyComparisonV043ReportModel.js +1 -0
  88. package/dist/src/report/experiments/index.js +4 -0
  89. package/dist/src/report/experiments/renderContextStrategyComparisonV043Html.js +296 -0
  90. package/dist/src/report/experiments/renderPluginExperimentReportHtml.js +3 -0
  91. package/dist/src/report/experiments/renderPluginExperimentReportText.js +292 -0
  92. package/dist/src/report/experiments/writePluginExperimentReports.js +3 -0
  93. package/dist/src/securityValidation/attackScenarios/scenarios/secretLeakageScenario.js +215 -9
  94. package/docs/METRICS.md +84 -10
  95. package/package.json +2 -2
  96. package/tests/fixtures/full-workflow-library/complete-v1.0.0.json +24 -0
  97. package/tests/fixtures/full-workflow-library/future-minor-v1.1.0-additive.json +25 -0
  98. package/tests/fixtures/stage-context-expectations/complete-v1.0.0.json +230 -0
  99. package/tests/fixtures/stage-context-expectations/future-minor-v1.1.0-additive.json +232 -0
  100. package/tests/fixtures/stage-context-expectations/invalid/malformed-json.txt +1 -0
  101. package/tests/fixtures/stage-context-expectations/invalid/non-object-root.json +1 -0
  102. package/tests/fixtures/stage-context-expectations/minimal-v1.0.0.json +18 -0
  103. package/tests/fixtures/upstream-artifacts/invalid/malformed-json.txt +1 -0
  104. package/tests/fixtures/upstream-artifacts/invalid/non-object-root.json +1 -0
  105. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/complete-v1.0.0.json +504 -0
  106. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/future-minor-v1.1.0-additive.json +955 -0
  107. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/complete-v1.0.0.json +190 -0
  108. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/future-minor-v1.1.0-additive.json +327 -0
  109. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/PROVENANCE.txt +13 -0
  110. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/context-capsule.json +7874 -0
  111. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/retrieval-audit-record.json +1076 -0
  112. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/complete-v1.0.0.json +160 -0
  113. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/future-minor-v1.1.0-additive.json +186 -0
@@ -0,0 +1,955 @@
1
+ {
2
+ "schemaVersion": "1.1.0",
3
+ "generatedAt": "2026-07-21T00:00:00.000Z",
4
+ "tool": {
5
+ "name": "my-dev-kit",
6
+ "version": "1.10.2",
7
+ "futureNestedField": "preserved"
8
+ },
9
+ "request": {
10
+ "originalQuery": "Inspect task implementation and tests",
11
+ "normalizedQuery": "Inspect task implementation and tests",
12
+ "mode": "feature-add",
13
+ "requestedOutputPath": "Z:/fixture/project/.my-dev-kit/context-capsule.json",
14
+ "role": "implementation",
15
+ "requestFilePath": null
16
+ },
17
+ "index": {
18
+ "indexPath": "Z:/fixture/project/.my-dev-kit",
19
+ "manifestPath": "Z:/fixture/project/.my-dev-kit/manifest.json",
20
+ "manifestSchemaVersion": "1.0.0",
21
+ "projectRoot": "Z:/fixture/project",
22
+ "artifactRefs": [
23
+ {
24
+ "name": "symbolIndex",
25
+ "path": "Z:/fixture/project/.my-dev-kit/symbol-index.json"
26
+ },
27
+ {
28
+ "name": "codeGraph",
29
+ "path": "Z:/fixture/project/.my-dev-kit/code-graph.json"
30
+ }
31
+ ]
32
+ },
33
+ "limits": {
34
+ "maxCandidateFiles": 50,
35
+ "maxSourceSlices": 20,
36
+ "maxGraphNodes": null,
37
+ "maxGraphEdges": 100
38
+ },
39
+ "requiredContext": [
40
+ {
41
+ "id": "fixture.context.required.001",
42
+ "kind": "request-summary",
43
+ "title": "Request summary",
44
+ "reason": "Captures the literal task query for downstream planning.",
45
+ "evidenceRefs": [
46
+ {
47
+ "path": "Z:/fixture/project/src/example.ts"
48
+ }
49
+ ],
50
+ "classificationRefs": [
51
+ {
52
+ "filePath": "Z:/fixture/project/src/example.ts",
53
+ "symbolId": null,
54
+ "line": 1,
55
+ "endLine": 10,
56
+ "source": "static",
57
+ "analyzer": "syntax-analyzer"
58
+ }
59
+ ],
60
+ "classificationRoles": [
61
+ {
62
+ "role": "implementation-target",
63
+ "subtype": null,
64
+ "confidence": "likely"
65
+ }
66
+ ],
67
+ "warnings": []
68
+ }
69
+ ],
70
+ "optionalSupportContext": [
71
+ {
72
+ "id": "fixture.context.optional.001",
73
+ "kind": "artifact-summary",
74
+ "title": "Artifact: symbolIndex",
75
+ "reason": "Lists an artifact available in this index for later batches to consume.",
76
+ "evidenceRefs": [
77
+ {
78
+ "path": "Z:/fixture/project/.my-dev-kit/symbol-index.json"
79
+ }
80
+ ],
81
+ "warnings": []
82
+ }
83
+ ],
84
+ "droppedContext": [
85
+ {
86
+ "id": "fixture.context.dropped.001",
87
+ "kind": "placeholder",
88
+ "title": "Dropped placeholder",
89
+ "reason": "Exceeded retention cap."
90
+ }
91
+ ],
92
+ "warnings": [
93
+ "Fixture warning: synthetic data only."
94
+ ],
95
+ "contextAdequacy": {
96
+ "status": "context sufficient with listed assumptions",
97
+ "summary": "A best-effort focus node was selected; some ambiguity or thin graph/source/metadata evidence remains.",
98
+ "assumptions": [
99
+ "Fixture assumption."
100
+ ],
101
+ "gaps": [
102
+ "Fixture gap."
103
+ ]
104
+ },
105
+ "queryPlan": {
106
+ "originalQuery": "Inspect task implementation and tests",
107
+ "normalizedQuery": "Inspect task implementation and tests",
108
+ "mode": "feature-add",
109
+ "searchQueries": [
110
+ "Inspect task implementation and tests"
111
+ ],
112
+ "terms": {
113
+ "raw": [
114
+ "inspect",
115
+ "task",
116
+ "implementation",
117
+ "tests"
118
+ ],
119
+ "quotedPhrases": [],
120
+ "pathLike": [
121
+ "src/example.ts"
122
+ ],
123
+ "symbolLike": [
124
+ "exampleFunction"
125
+ ],
126
+ "routeLike": [],
127
+ "commandLike": [],
128
+ "artifactLike": [],
129
+ "classificationLike": []
130
+ }
131
+ },
132
+ "candidateFiles": [
133
+ {
134
+ "path": "src/example.ts",
135
+ "score": 12.5,
136
+ "baseScore": 10,
137
+ "modeAdjustment": 2.5,
138
+ "reasons": [
139
+ "matched query term"
140
+ ],
141
+ "matchedTerms": [
142
+ "example"
143
+ ],
144
+ "semanticRoles": [
145
+ {
146
+ "role": "canonical-type",
147
+ "subtype": "canonical-type",
148
+ "confidence": "explicit",
149
+ "source": "syntax-analyzer",
150
+ "artifactRefs": [
151
+ {
152
+ "artifact": "symbolIndex",
153
+ "artifactKind": "symbol-index",
154
+ "id": "symbol:src/example.ts#Example",
155
+ "path": "src/example.ts"
156
+ }
157
+ ],
158
+ "evidenceRefs": [
159
+ {
160
+ "filePath": "src/example.ts",
161
+ "symbolId": "symbol:src/example.ts#Example",
162
+ "line": 1,
163
+ "endLine": 10,
164
+ "source": "static",
165
+ "analyzer": "syntax-analyzer"
166
+ }
167
+ ],
168
+ "warnings": []
169
+ }
170
+ ],
171
+ "artifactRefs": [
172
+ {
173
+ "artifact": "symbolIndex",
174
+ "artifactKind": "symbol-index",
175
+ "id": "symbol:src/example.ts#Example",
176
+ "path": "src/example.ts"
177
+ }
178
+ ],
179
+ "classificationRoles": [
180
+ {
181
+ "role": "implementation-target",
182
+ "editGuidance": "safe-primary-edit-target",
183
+ "readiness": "ready",
184
+ "uncertainty": "likely"
185
+ }
186
+ ],
187
+ "classificationRefs": [
188
+ {
189
+ "artifact": "classification",
190
+ "artifactKind": "unknown",
191
+ "id": "classification:src/example.ts",
192
+ "path": "src/example.ts"
193
+ }
194
+ ],
195
+ "retained": true,
196
+ "roleScoreAdjustment": 1.5,
197
+ "contextRole": "implementation",
198
+ "focusMatch": true,
199
+ "changedSurfaceMatch": false,
200
+ "changedStatus": "modified"
201
+ }
202
+ ],
203
+ "candidateNodes": [
204
+ {
205
+ "nodeId": "symbol:src/example.ts#Example",
206
+ "kind": "symbol",
207
+ "label": "Example",
208
+ "filePath": "src/example.ts",
209
+ "score": 12.5,
210
+ "baseScore": 10,
211
+ "modeAdjustment": 2.5,
212
+ "reasons": [
213
+ "matched query term"
214
+ ],
215
+ "matchedTerms": [
216
+ "example"
217
+ ],
218
+ "semanticRoles": [],
219
+ "artifactRefs": [],
220
+ "classificationRoles": [],
221
+ "classificationRefs": [],
222
+ "androidArtifactId": "android:fixture:1",
223
+ "androidMetadata": {
224
+ "packageName": "com.fixture.app",
225
+ "minSdk": 21,
226
+ "usesCleartextTraffic": false,
227
+ "notes": null
228
+ },
229
+ "retained": true,
230
+ "droppedReason": "not dropped",
231
+ "roleScoreAdjustment": 1.5,
232
+ "contextRole": "implementation",
233
+ "focusMatch": true,
234
+ "changedSurfaceMatch": false,
235
+ "changedStatus": "modified",
236
+ "synthesized": false
237
+ }
238
+ ],
239
+ "focus": {
240
+ "focusNodeId": "symbol:src/example.ts#Example",
241
+ "focusFilePath": "src/example.ts",
242
+ "selectionMode": "single-best",
243
+ "confidence": "high",
244
+ "reasons": [
245
+ "unambiguous top-ranked candidate"
246
+ ],
247
+ "ambiguityNotes": [],
248
+ "warnings": []
249
+ },
250
+ "selectedGraph": {
251
+ "nodes": [
252
+ {
253
+ "nodeId": "symbol:src/example.ts#Example",
254
+ "kind": "symbol",
255
+ "label": "Example",
256
+ "filePath": "src/example.ts",
257
+ "reasons": [
258
+ "primary focus"
259
+ ]
260
+ },
261
+ {
262
+ "nodeId": "file:src/example.ts",
263
+ "kind": "file",
264
+ "label": "example.ts",
265
+ "reasons": [
266
+ "containing file"
267
+ ]
268
+ }
269
+ ],
270
+ "edges": [
271
+ {
272
+ "from": "file:src/example.ts",
273
+ "to": "symbol:src/example.ts#Example",
274
+ "kind": "defines",
275
+ "reasons": [
276
+ "structural containment"
277
+ ]
278
+ }
279
+ ],
280
+ "omittedNodeCount": 0,
281
+ "omittedEdgeCount": 0,
282
+ "warnings": []
283
+ },
284
+ "retention": {
285
+ "retainedCandidateCount": 1,
286
+ "droppedCandidateCount": 0,
287
+ "retainedGraphNodeCount": 2,
288
+ "droppedGraphNodeCount": 0,
289
+ "retainedGraphEdgeCount": 1,
290
+ "droppedGraphEdgeCount": 0,
291
+ "capSettings": {
292
+ "maxCandidateFiles": 50,
293
+ "maxGraphNodes": null,
294
+ "maxGraphEdges": 100
295
+ }
296
+ },
297
+ "selectedSource": {
298
+ "slices": [
299
+ {
300
+ "id": "fixture.slice.001",
301
+ "kind": "symbol",
302
+ "filePath": "src/example.ts",
303
+ "startLine": 1,
304
+ "endLine": 10,
305
+ "nodeId": "symbol:src/example.ts#Example",
306
+ "symbolName": "Example",
307
+ "reason": "primary focus source",
308
+ "sourceRetrievalMethod": "symbol",
309
+ "includedBy": "primary-focus",
310
+ "truncated": false,
311
+ "continuationAvailable": true,
312
+ "continuationUsed": false,
313
+ "localExpansionUsed": false,
314
+ "classificationRefs": [],
315
+ "semanticRefs": [],
316
+ "warnings": []
317
+ }
318
+ ],
319
+ "omittedSliceCount": 0,
320
+ "totalSelectedLines": 10,
321
+ "maxSourceSlices": 20,
322
+ "warnings": [],
323
+ "skipped": [
324
+ {
325
+ "id": "fixture.skipped.001",
326
+ "kind": "symbol",
327
+ "filePath": "src/other.ts",
328
+ "reason": "exceeded cap",
329
+ "capType": "maxSourceSlices",
330
+ "candidateScore": 3.2
331
+ }
332
+ ]
333
+ },
334
+ "selectedSourceBundles": {
335
+ "bundles": [
336
+ {
337
+ "id": "fixture.bundle.001",
338
+ "title": "Example bundle",
339
+ "focusNodeId": "symbol:src/example.ts#Example",
340
+ "focusFilePath": "src/example.ts",
341
+ "reason": "primary focus bundle",
342
+ "blocks": [
343
+ {
344
+ "id": "fixture.block.001",
345
+ "kind": "symbol",
346
+ "filePath": "src/example.ts",
347
+ "startLine": 1,
348
+ "endLine": 10,
349
+ "symbolName": "Example",
350
+ "reason": "primary focus source",
351
+ "includedBy": "primary-focus",
352
+ "truncated": false,
353
+ "warnings": []
354
+ }
355
+ ],
356
+ "totalLines": 10,
357
+ "maxLines": 200,
358
+ "skippedBlocks": [
359
+ {
360
+ "id": "fixture.skippedBlock.001",
361
+ "kind": "symbol",
362
+ "filePath": "src/other.ts",
363
+ "reason": "exceeded cap",
364
+ "capType": "maxLines",
365
+ "candidateScore": 2.1
366
+ }
367
+ ],
368
+ "warnings": []
369
+ }
370
+ ],
371
+ "omittedBundleCount": 0,
372
+ "totalSelectedLines": 10,
373
+ "warnings": []
374
+ },
375
+ "semanticSummary": {
376
+ "available": true,
377
+ "roles": [
378
+ {
379
+ "role": "canonical-type",
380
+ "subtype": null,
381
+ "confidence": "explicit",
382
+ "source": "syntax-analyzer",
383
+ "artifactRefs": [],
384
+ "evidenceRefs": [],
385
+ "warnings": []
386
+ }
387
+ ],
388
+ "artifactRefs": [],
389
+ "evidenceRefs": [],
390
+ "summariesByNode": {
391
+ "symbol:src/example.ts#Example": {
392
+ "roles": [],
393
+ "artifactRefs": [],
394
+ "evidenceRefs": []
395
+ }
396
+ },
397
+ "summariesByFile": {
398
+ "src/example.ts": {
399
+ "roles": [],
400
+ "artifactRefs": [],
401
+ "evidenceRefs": []
402
+ }
403
+ },
404
+ "warnings": []
405
+ },
406
+ "classificationSummary": {
407
+ "available": true,
408
+ "classificationArtifactPath": null,
409
+ "roles": [
410
+ {
411
+ "role": "implementation-target",
412
+ "subtype": null,
413
+ "confidence": "likely"
414
+ }
415
+ ],
416
+ "refs": [
417
+ {
418
+ "filePath": "src/example.ts",
419
+ "symbolId": null,
420
+ "line": 1,
421
+ "endLine": 10,
422
+ "source": "static",
423
+ "analyzer": "syntax-analyzer"
424
+ }
425
+ ],
426
+ "editGuidance": [
427
+ "safe-primary-edit-target"
428
+ ],
429
+ "readiness": [
430
+ "ready"
431
+ ],
432
+ "riskLabels": [
433
+ "requires-test-validation"
434
+ ],
435
+ "uncertainty": [
436
+ "likely"
437
+ ],
438
+ "summariesByNode": {
439
+ "symbol:src/example.ts#Example": {
440
+ "classifications": [
441
+ {
442
+ "role": "implementation-target",
443
+ "subtype": null,
444
+ "confidence": "likely"
445
+ }
446
+ ],
447
+ "editGuidance": "safe-primary-edit-target",
448
+ "readiness": "ready",
449
+ "risks": [
450
+ "requires-test-validation"
451
+ ],
452
+ "uncertainty": "likely",
453
+ "warnings": []
454
+ }
455
+ },
456
+ "summariesByFile": {},
457
+ "warnings": []
458
+ },
459
+ "artifactReferenceSummary": [
460
+ {
461
+ "artifactKind": "symbol-index",
462
+ "artifactPath": "Z:/fixture/project/.my-dev-kit/symbol-index.json",
463
+ "available": true,
464
+ "reason": "artifact present in manifest",
465
+ "warnings": []
466
+ },
467
+ {
468
+ "artifactKind": "frontend-semantic",
469
+ "artifactPath": null,
470
+ "available": false,
471
+ "reason": "artifact not generated for this project",
472
+ "warnings": []
473
+ }
474
+ ],
475
+ "pruning": {
476
+ "policyVersion": "1.0.0",
477
+ "retainedCounts": {
478
+ "candidateFiles": 1,
479
+ "candidateNodes": 1,
480
+ "graphNodes": 2,
481
+ "graphEdges": 1,
482
+ "sourceSlices": 1,
483
+ "sourceBundles": 1
484
+ },
485
+ "droppedCounts": {
486
+ "candidateFiles": 0,
487
+ "candidateNodes": 0,
488
+ "graphNodes": 0,
489
+ "graphEdges": 0,
490
+ "sourceSlices": 0,
491
+ "sourceBundles": 0
492
+ },
493
+ "capSettings": {
494
+ "maxCandidateFiles": 50,
495
+ "maxGraphNodes": null,
496
+ "maxGraphEdges": 100,
497
+ "maxSourceSlices": 20
498
+ },
499
+ "retainedReasons": [
500
+ "high relevance score"
501
+ ],
502
+ "droppedReasons": [],
503
+ "warnings": []
504
+ },
505
+ "conflicts": {
506
+ "status": "conflict",
507
+ "conflicts": [
508
+ {
509
+ "id": "fixture.conflict.001",
510
+ "status": "conflict",
511
+ "reason": "Static edit-guidance evidence conflicts for the selected focus.",
512
+ "evidenceRefs": [
513
+ "src/example.ts"
514
+ ],
515
+ "affectedFiles": [
516
+ "src/example.ts"
517
+ ],
518
+ "affectedNodes": [
519
+ "symbol:src/example.ts#Example"
520
+ ],
521
+ "candidates": [
522
+ {
523
+ "nodeId": "symbol:src/example.ts#Example",
524
+ "filePath": "src/example.ts",
525
+ "score": 12.5,
526
+ "editGuidance": [
527
+ "safe-primary-edit-target",
528
+ "inspect-before-edit"
529
+ ]
530
+ }
531
+ ],
532
+ "recommendedNextAction": "Review classification evidence before editing."
533
+ }
534
+ ],
535
+ "warnings": []
536
+ },
537
+ "modeEffects": {
538
+ "mode": "feature-add",
539
+ "applied": true,
540
+ "effects": [
541
+ {
542
+ "candidateId": "src/example.ts",
543
+ "adjustment": 2.5,
544
+ "reasons": [
545
+ "feature-add mode boost"
546
+ ]
547
+ }
548
+ ],
549
+ "warnings": []
550
+ },
551
+ "sourceControl": {
552
+ "enabled": true,
553
+ "reason": "Git repository detected."
554
+ },
555
+ "deferredRequestFields": [
556
+ "upstreamArtifactRefs"
557
+ ],
558
+ "roleContext": {
559
+ "role": "implementation",
560
+ "focus": {
561
+ "focusFiles": [
562
+ {
563
+ "path": "src/example.ts",
564
+ "resolved": true,
565
+ "matchedFilePaths": [
566
+ "src/example.ts"
567
+ ],
568
+ "containedSymbolIds": [
569
+ "symbol:src/example.ts#Example"
570
+ ]
571
+ }
572
+ ],
573
+ "focusSymbols": [
574
+ {
575
+ "symbol": "Example",
576
+ "resolved": true,
577
+ "ambiguous": false,
578
+ "matchedNodeIds": [
579
+ "symbol:src/example.ts#Example"
580
+ ]
581
+ }
582
+ ],
583
+ "unresolvedFocusFiles": [],
584
+ "unresolvedFocusSymbols": [],
585
+ "ambiguousFocusSymbols": [],
586
+ "warnings": []
587
+ },
588
+ "changedSurface": {
589
+ "available": true,
590
+ "diffRequested": true,
591
+ "files": [
592
+ {
593
+ "path": "src/example.ts",
594
+ "status": "modified",
595
+ "provenance": "both"
596
+ }
597
+ ],
598
+ "symbols": [
599
+ {
600
+ "symbolId": "symbol:src/example.ts#Example",
601
+ "status": "modified",
602
+ "provenance": "graph-diff",
603
+ "filePath": "src/example.ts",
604
+ "name": "Example",
605
+ "kind": "symbol"
606
+ }
607
+ ],
608
+ "conflicts": [],
609
+ "warnings": []
610
+ },
611
+ "requestedEvidenceKinds": [
612
+ "owner",
613
+ "dependencies"
614
+ ],
615
+ "unsupportedRequestedEvidenceKinds": [
616
+ "responsibility-mappings"
617
+ ],
618
+ "warnings": []
619
+ },
620
+ "evidenceGroups": [
621
+ {
622
+ "id": "implementation-owners",
623
+ "kind": "owners",
624
+ "role": "implementation",
625
+ "title": "Owners",
626
+ "required": true,
627
+ "items": [
628
+ {
629
+ "id": "src/example.ts",
630
+ "itemKind": "file",
631
+ "path": "src/example.ts",
632
+ "symbolId": "symbol:src/example.ts#Example",
633
+ "nodeId": "symbol:src/example.ts#Example",
634
+ "sourceLocation": {
635
+ "filePath": "src/example.ts",
636
+ "line": 1
637
+ },
638
+ "relationship": "owner",
639
+ "basis": "candidate-ranking",
640
+ "provenance": "candidate-ranking",
641
+ "metadata": {
642
+ "score": 12.5,
643
+ "retained": true,
644
+ "note": null
645
+ }
646
+ }
647
+ ],
648
+ "unresolved": [
649
+ {
650
+ "evidenceKind": "dependencies",
651
+ "role": "implementation",
652
+ "basis": "graph-neighborhood",
653
+ "reason": "no dependency edges found",
654
+ "blocking": false
655
+ }
656
+ ],
657
+ "warnings": [],
658
+ "limit": null,
659
+ "availableCount": 1,
660
+ "usedCount": 1,
661
+ "truncated": false,
662
+ "droppedCount": 0,
663
+ "provenance": "candidate-ranking"
664
+ }
665
+ ],
666
+ "selectedOwners": [
667
+ {
668
+ "id": "src/example.ts",
669
+ "itemKind": "file",
670
+ "path": "src/example.ts",
671
+ "relationship": "owner",
672
+ "basis": "candidate-ranking",
673
+ "provenance": "candidate-ranking"
674
+ }
675
+ ],
676
+ "selectedContracts": [],
677
+ "selectedTests": [
678
+ {
679
+ "id": "tests/example.spec.ts",
680
+ "itemKind": "test-file",
681
+ "path": "tests/example.spec.ts",
682
+ "relationship": "closest-test",
683
+ "basis": "path-proximity",
684
+ "provenance": "test-directory-walk"
685
+ }
686
+ ],
687
+ "testInfrastructure": {
688
+ "relatedTests": [
689
+ {
690
+ "id": "tests/example.spec.ts",
691
+ "itemKind": "test-file",
692
+ "path": "tests/example.spec.ts",
693
+ "relationship": "closest-test",
694
+ "basis": "path-proximity",
695
+ "provenance": "test-directory-walk"
696
+ }
697
+ ],
698
+ "fixtures": [],
699
+ "factories": [],
700
+ "mocks": [],
701
+ "setupFiles": [],
702
+ "testConfigurations": [
703
+ {
704
+ "path": "vitest.config.ts",
705
+ "framework": "vitest",
706
+ "supported": true,
707
+ "fields": {
708
+ "testDir": "tests",
709
+ "include": [
710
+ "tests/**/*.spec.ts"
711
+ ],
712
+ "timeout": 5000,
713
+ "watch": false,
714
+ "reporter": null
715
+ },
716
+ "warnings": []
717
+ }
718
+ ],
719
+ "packageScripts": [
720
+ {
721
+ "name": "test",
722
+ "command": "vitest run",
723
+ "reason": "primary test entrypoint",
724
+ "packageJsonPath": "package.json"
725
+ }
726
+ ],
727
+ "testCommands": [
728
+ {
729
+ "commandText": "vitest run tests/example.spec.ts",
730
+ "commandSource": "package-script",
731
+ "testFiles": [
732
+ "tests/example.spec.ts"
733
+ ],
734
+ "framework": "vitest",
735
+ "scope": "file",
736
+ "basis": "path-proximity"
737
+ },
738
+ {
739
+ "commandText": null,
740
+ "commandSource": "unresolved",
741
+ "testFiles": [],
742
+ "framework": null,
743
+ "scope": "full-project",
744
+ "basis": "fallback",
745
+ "unresolvedReason": "no matching test command found"
746
+ }
747
+ ],
748
+ "unresolved": [],
749
+ "warnings": []
750
+ },
751
+ "unresolvedItems": [
752
+ {
753
+ "evidenceKind": "contracts",
754
+ "role": "implementation",
755
+ "basis": "graph-neighborhood",
756
+ "reason": "no contract evidence found",
757
+ "blocking": false
758
+ }
759
+ ],
760
+ "groupTruncation": [
761
+ {
762
+ "groupId": "implementation-owners",
763
+ "limit": null,
764
+ "availableCount": 1,
765
+ "usedCount": 1,
766
+ "truncated": false,
767
+ "droppedCount": 0
768
+ }
769
+ ],
770
+ "responsibilityMappings": {
771
+ "requested": true,
772
+ "operational": true,
773
+ "mappings": [
774
+ {
775
+ "responsibilityId": "fixture.responsibility.001",
776
+ "behavior": "Example behaves correctly.",
777
+ "invariant": null,
778
+ "criticality": "critical",
779
+ "productionSymbols": [
780
+ {
781
+ "id": "symbol:src/example.ts#Example",
782
+ "itemKind": "symbol",
783
+ "symbolId": "symbol:src/example.ts#Example",
784
+ "relationship": "production-symbol",
785
+ "basis": "candidate-ranking",
786
+ "provenance": "candidate-ranking"
787
+ }
788
+ ],
789
+ "contracts": [],
790
+ "validators": [],
791
+ "constants": [],
792
+ "errors": [],
793
+ "sideEffectEvidence": [],
794
+ "proposedOrExistingTestFiles": [
795
+ {
796
+ "id": "tests/example.spec.ts",
797
+ "itemKind": "test-file",
798
+ "path": "tests/example.spec.ts",
799
+ "relationship": "proposed-test",
800
+ "basis": "path-proximity",
801
+ "provenance": "test-directory-walk"
802
+ }
803
+ ],
804
+ "reusableHelpers": [],
805
+ "oracleEvidence": [],
806
+ "testCommands": [],
807
+ "mappingStatus": "mapped",
808
+ "unresolvedReasons": [],
809
+ "provenance": [
810
+ {
811
+ "id": "fixture.provenance.mapping.001",
812
+ "category": "code-graph",
813
+ "sourcePath": "src/example.ts",
814
+ "sourceId": null,
815
+ "evidenceId": "symbol:src/example.ts#Example",
816
+ "relationshipBasis": "candidate-ranking",
817
+ "role": "implementation",
818
+ "requestField": null,
819
+ "derivedByModule": "responsibilityMapping.ts"
820
+ }
821
+ ],
822
+ "warnings": []
823
+ }
824
+ ],
825
+ "unknownResponsibilityIds": [],
826
+ "duplicateResponsibilityIds": [],
827
+ "limit": null,
828
+ "availableCount": 1,
829
+ "usedCount": 1,
830
+ "truncated": false,
831
+ "droppedCount": 0,
832
+ "criticalDropped": false,
833
+ "warnings": []
834
+ },
835
+ "roleAdequacy": {
836
+ "role": "implementation",
837
+ "status": "context sufficient with listed assumptions",
838
+ "requiredConditions": [
839
+ "single high-confidence focus node"
840
+ ],
841
+ "satisfiedConditions": [
842
+ "single high-confidence focus node"
843
+ ],
844
+ "missingConditions": [],
845
+ "blockingConditions": [],
846
+ "warnings": [],
847
+ "supportingEvidence": [
848
+ "symbol:src/example.ts#Example"
849
+ ],
850
+ "affectedResponsibilityIds": [
851
+ "fixture.responsibility.001"
852
+ ],
853
+ "truncationImpact": false,
854
+ "freshnessImpact": false
855
+ },
856
+ "freshness": {
857
+ "state": "fresh",
858
+ "role": "implementation",
859
+ "evidenceUsed": [
860
+ "code-graph"
861
+ ],
862
+ "evidenceUnavailable": [
863
+ "before-index"
864
+ ],
865
+ "comparedIdentities": [
866
+ {
867
+ "label": "index-manifest-hash",
868
+ "value": "fixture-hash-001"
869
+ },
870
+ {
871
+ "label": "before-index-manifest-hash",
872
+ "value": null
873
+ }
874
+ ],
875
+ "reason": "Active index manifest hash matches the most recent recorded identity.",
876
+ "relevantChangedPaths": [
877
+ "src/example.ts"
878
+ ],
879
+ "warnings": []
880
+ },
881
+ "budget": {
882
+ "limits": [
883
+ {
884
+ "name": "candidates",
885
+ "declaredValue": 50,
886
+ "usedValue": 1,
887
+ "availableCount": 49,
888
+ "droppedCount": 0,
889
+ "truncated": false,
890
+ "requiredEvidenceAffected": false,
891
+ "adequacyImpact": null
892
+ }
893
+ ],
894
+ "characters": {
895
+ "measured": 1200,
896
+ "limit": 8000,
897
+ "truncated": false
898
+ },
899
+ "warnings": []
900
+ },
901
+ "truncation": {
902
+ "truncated": false,
903
+ "records": [
904
+ {
905
+ "id": "fixture.truncation.001",
906
+ "affectedGroup": "implementation-owners",
907
+ "limit": 10,
908
+ "used": 1,
909
+ "available": 1,
910
+ "droppedCount": 0,
911
+ "droppedEvidenceIds": [],
912
+ "requiredEvidenceLost": false,
913
+ "adequacyImpact": null,
914
+ "reason": "within declared limit"
915
+ }
916
+ ],
917
+ "warnings": []
918
+ },
919
+ "fullFileFallback": {
920
+ "enabled": true,
921
+ "limit": null,
922
+ "used": 0,
923
+ "fallbacks": [
924
+ {
925
+ "id": "fixture.fallback.001",
926
+ "filePath": "src/other.ts",
927
+ "reason": "bounded retrieval insufficient",
928
+ "requestedEvidenceKind": null,
929
+ "boundedRetrievalAttempted": true,
930
+ "sourceRangesAttempted": 2,
931
+ "includedLineCount": 40,
932
+ "includedCharacterCount": 900,
933
+ "role": "implementation",
934
+ "responsibilityIdsAffected": [],
935
+ "allowed": false,
936
+ "provenance": "full-file-fallback"
937
+ }
938
+ ],
939
+ "warnings": []
940
+ },
941
+ "provenance": [
942
+ {
943
+ "id": "fixture.provenance.001",
944
+ "category": "code-graph",
945
+ "sourcePath": "src/example.ts",
946
+ "sourceId": null,
947
+ "evidenceId": "symbol:src/example.ts#Example",
948
+ "relationshipBasis": "candidate-ranking",
949
+ "role": "implementation",
950
+ "requestField": null,
951
+ "derivedByModule": "candidateRanking.ts"
952
+ }
953
+ ],
954
+ "futureMinorRootField": "preserved"
955
+ }