@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,504 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "generatedAt": "2026-07-21T00:00:00.000Z",
4
+ "tool": { "name": "my-dev-kit", "version": "1.10.2" },
5
+ "request": {
6
+ "originalQuery": "Inspect task implementation and tests",
7
+ "normalizedQuery": "Inspect task implementation and tests",
8
+ "mode": "feature-add",
9
+ "requestedOutputPath": "Z:/fixture/project/.my-dev-kit/context-capsule.json",
10
+ "role": "implementation",
11
+ "requestFilePath": null
12
+ },
13
+ "index": {
14
+ "indexPath": "Z:/fixture/project/.my-dev-kit",
15
+ "manifestPath": "Z:/fixture/project/.my-dev-kit/manifest.json",
16
+ "manifestSchemaVersion": "1.0.0",
17
+ "projectRoot": "Z:/fixture/project",
18
+ "artifactRefs": [
19
+ { "name": "symbolIndex", "path": "Z:/fixture/project/.my-dev-kit/symbol-index.json" },
20
+ { "name": "codeGraph", "path": "Z:/fixture/project/.my-dev-kit/code-graph.json" }
21
+ ]
22
+ },
23
+ "limits": {
24
+ "maxCandidateFiles": 50,
25
+ "maxSourceSlices": 20,
26
+ "maxGraphNodes": null,
27
+ "maxGraphEdges": 100
28
+ },
29
+ "requiredContext": [
30
+ {
31
+ "id": "fixture.context.required.001",
32
+ "kind": "request-summary",
33
+ "title": "Request summary",
34
+ "reason": "Captures the literal task query for downstream planning.",
35
+ "evidenceRefs": [{ "path": "Z:/fixture/project/src/example.ts" }],
36
+ "classificationRefs": [{ "filePath": "Z:/fixture/project/src/example.ts", "symbolId": null, "line": 1, "endLine": 10, "source": "static", "analyzer": "syntax-analyzer" }],
37
+ "classificationRoles": [{ "role": "implementation-target", "subtype": null, "confidence": "likely" }],
38
+ "warnings": []
39
+ }
40
+ ],
41
+ "optionalSupportContext": [
42
+ {
43
+ "id": "fixture.context.optional.001",
44
+ "kind": "artifact-summary",
45
+ "title": "Artifact: symbolIndex",
46
+ "reason": "Lists an artifact available in this index for later batches to consume.",
47
+ "evidenceRefs": [{ "path": "Z:/fixture/project/.my-dev-kit/symbol-index.json" }],
48
+ "warnings": []
49
+ }
50
+ ],
51
+ "droppedContext": [
52
+ { "id": "fixture.context.dropped.001", "kind": "placeholder", "title": "Dropped placeholder", "reason": "Exceeded retention cap." }
53
+ ],
54
+ "warnings": ["Fixture warning: synthetic data only."],
55
+ "contextAdequacy": {
56
+ "status": "context sufficient with listed assumptions",
57
+ "summary": "A best-effort focus node was selected; some ambiguity or thin graph/source/metadata evidence remains.",
58
+ "assumptions": ["Fixture assumption."],
59
+ "gaps": ["Fixture gap."]
60
+ },
61
+ "queryPlan": {
62
+ "originalQuery": "Inspect task implementation and tests",
63
+ "normalizedQuery": "Inspect task implementation and tests",
64
+ "mode": "feature-add",
65
+ "searchQueries": ["Inspect task implementation and tests"],
66
+ "terms": {
67
+ "raw": ["inspect", "task", "implementation", "tests"],
68
+ "quotedPhrases": [],
69
+ "pathLike": ["src/example.ts"],
70
+ "symbolLike": ["exampleFunction"],
71
+ "routeLike": [],
72
+ "commandLike": [],
73
+ "artifactLike": [],
74
+ "classificationLike": []
75
+ }
76
+ },
77
+ "candidateFiles": [
78
+ {
79
+ "path": "src/example.ts",
80
+ "score": 12.5,
81
+ "baseScore": 10,
82
+ "modeAdjustment": 2.5,
83
+ "reasons": ["matched query term"],
84
+ "matchedTerms": ["example"],
85
+ "semanticRoles": [
86
+ {
87
+ "role": "canonical-type",
88
+ "subtype": "canonical-type",
89
+ "confidence": "explicit",
90
+ "source": "syntax-analyzer",
91
+ "artifactRefs": [{ "artifact": "symbolIndex", "artifactKind": "symbol-index", "id": "symbol:src/example.ts#Example", "path": "src/example.ts" }],
92
+ "evidenceRefs": [{ "filePath": "src/example.ts", "symbolId": "symbol:src/example.ts#Example", "line": 1, "endLine": 10, "source": "static", "analyzer": "syntax-analyzer" }],
93
+ "warnings": []
94
+ }
95
+ ],
96
+ "artifactRefs": [{ "artifact": "symbolIndex", "artifactKind": "symbol-index", "id": "symbol:src/example.ts#Example", "path": "src/example.ts" }],
97
+ "classificationRoles": [{ "role": "implementation-target", "editGuidance": "safe-primary-edit-target", "readiness": "ready", "uncertainty": "likely" }],
98
+ "classificationRefs": [{ "artifact": "classification", "artifactKind": "unknown", "id": "classification:src/example.ts", "path": "src/example.ts" }],
99
+ "retained": true,
100
+ "roleScoreAdjustment": 1.5,
101
+ "contextRole": "implementation",
102
+ "focusMatch": true,
103
+ "changedSurfaceMatch": false,
104
+ "changedStatus": "modified"
105
+ }
106
+ ],
107
+ "candidateNodes": [
108
+ {
109
+ "nodeId": "symbol:src/example.ts#Example",
110
+ "kind": "symbol",
111
+ "label": "Example",
112
+ "filePath": "src/example.ts",
113
+ "score": 12.5,
114
+ "baseScore": 10,
115
+ "modeAdjustment": 2.5,
116
+ "reasons": ["matched query term"],
117
+ "matchedTerms": ["example"],
118
+ "semanticRoles": [],
119
+ "artifactRefs": [],
120
+ "classificationRoles": [],
121
+ "classificationRefs": [],
122
+ "androidArtifactId": "android:fixture:1",
123
+ "androidMetadata": { "packageName": "com.fixture.app", "minSdk": 21, "usesCleartextTraffic": false, "notes": null },
124
+ "retained": true,
125
+ "droppedReason": "not dropped",
126
+ "roleScoreAdjustment": 1.5,
127
+ "contextRole": "implementation",
128
+ "focusMatch": true,
129
+ "changedSurfaceMatch": false,
130
+ "changedStatus": "modified",
131
+ "synthesized": false
132
+ }
133
+ ],
134
+ "focus": {
135
+ "focusNodeId": "symbol:src/example.ts#Example",
136
+ "focusFilePath": "src/example.ts",
137
+ "selectionMode": "single-best",
138
+ "confidence": "high",
139
+ "reasons": ["unambiguous top-ranked candidate"],
140
+ "ambiguityNotes": [],
141
+ "warnings": []
142
+ },
143
+ "selectedGraph": {
144
+ "nodes": [
145
+ { "nodeId": "symbol:src/example.ts#Example", "kind": "symbol", "label": "Example", "filePath": "src/example.ts", "reasons": ["primary focus"] },
146
+ { "nodeId": "file:src/example.ts", "kind": "file", "label": "example.ts", "reasons": ["containing file"] }
147
+ ],
148
+ "edges": [
149
+ { "from": "file:src/example.ts", "to": "symbol:src/example.ts#Example", "kind": "defines", "reasons": ["structural containment"] }
150
+ ],
151
+ "omittedNodeCount": 0,
152
+ "omittedEdgeCount": 0,
153
+ "warnings": []
154
+ },
155
+ "retention": {
156
+ "retainedCandidateCount": 1,
157
+ "droppedCandidateCount": 0,
158
+ "retainedGraphNodeCount": 2,
159
+ "droppedGraphNodeCount": 0,
160
+ "retainedGraphEdgeCount": 1,
161
+ "droppedGraphEdgeCount": 0,
162
+ "capSettings": { "maxCandidateFiles": 50, "maxGraphNodes": null, "maxGraphEdges": 100 }
163
+ },
164
+ "selectedSource": {
165
+ "slices": [
166
+ {
167
+ "id": "fixture.slice.001",
168
+ "kind": "symbol",
169
+ "filePath": "src/example.ts",
170
+ "startLine": 1,
171
+ "endLine": 10,
172
+ "nodeId": "symbol:src/example.ts#Example",
173
+ "symbolName": "Example",
174
+ "reason": "primary focus source",
175
+ "sourceRetrievalMethod": "symbol",
176
+ "includedBy": "primary-focus",
177
+ "truncated": false,
178
+ "continuationAvailable": true,
179
+ "continuationUsed": false,
180
+ "localExpansionUsed": false,
181
+ "classificationRefs": [],
182
+ "semanticRefs": [],
183
+ "warnings": []
184
+ }
185
+ ],
186
+ "omittedSliceCount": 0,
187
+ "totalSelectedLines": 10,
188
+ "maxSourceSlices": 20,
189
+ "warnings": [],
190
+ "skipped": [
191
+ { "id": "fixture.skipped.001", "kind": "symbol", "filePath": "src/other.ts", "reason": "exceeded cap", "capType": "maxSourceSlices", "candidateScore": 3.2 }
192
+ ]
193
+ },
194
+ "selectedSourceBundles": {
195
+ "bundles": [
196
+ {
197
+ "id": "fixture.bundle.001",
198
+ "title": "Example bundle",
199
+ "focusNodeId": "symbol:src/example.ts#Example",
200
+ "focusFilePath": "src/example.ts",
201
+ "reason": "primary focus bundle",
202
+ "blocks": [
203
+ {
204
+ "id": "fixture.block.001",
205
+ "kind": "symbol",
206
+ "filePath": "src/example.ts",
207
+ "startLine": 1,
208
+ "endLine": 10,
209
+ "symbolName": "Example",
210
+ "reason": "primary focus source",
211
+ "includedBy": "primary-focus",
212
+ "truncated": false,
213
+ "warnings": []
214
+ }
215
+ ],
216
+ "totalLines": 10,
217
+ "maxLines": 200,
218
+ "skippedBlocks": [
219
+ { "id": "fixture.skippedBlock.001", "kind": "symbol", "filePath": "src/other.ts", "reason": "exceeded cap", "capType": "maxLines", "candidateScore": 2.1 }
220
+ ],
221
+ "warnings": []
222
+ }
223
+ ],
224
+ "omittedBundleCount": 0,
225
+ "totalSelectedLines": 10,
226
+ "warnings": []
227
+ },
228
+ "semanticSummary": {
229
+ "available": true,
230
+ "roles": [
231
+ { "role": "canonical-type", "subtype": null, "confidence": "explicit", "source": "syntax-analyzer", "artifactRefs": [], "evidenceRefs": [], "warnings": [] }
232
+ ],
233
+ "artifactRefs": [],
234
+ "evidenceRefs": [],
235
+ "summariesByNode": {
236
+ "symbol:src/example.ts#Example": { "roles": [], "artifactRefs": [], "evidenceRefs": [] }
237
+ },
238
+ "summariesByFile": {
239
+ "src/example.ts": { "roles": [], "artifactRefs": [], "evidenceRefs": [] }
240
+ },
241
+ "warnings": []
242
+ },
243
+ "classificationSummary": {
244
+ "available": true,
245
+ "classificationArtifactPath": null,
246
+ "roles": [{ "role": "implementation-target", "subtype": null, "confidence": "likely" }],
247
+ "refs": [{ "filePath": "src/example.ts", "symbolId": null, "line": 1, "endLine": 10, "source": "static", "analyzer": "syntax-analyzer" }],
248
+ "editGuidance": ["safe-primary-edit-target"],
249
+ "readiness": ["ready"],
250
+ "riskLabels": ["requires-test-validation"],
251
+ "uncertainty": ["likely"],
252
+ "summariesByNode": {
253
+ "symbol:src/example.ts#Example": {
254
+ "classifications": [{ "role": "implementation-target", "subtype": null, "confidence": "likely" }],
255
+ "editGuidance": "safe-primary-edit-target",
256
+ "readiness": "ready",
257
+ "risks": ["requires-test-validation"],
258
+ "uncertainty": "likely",
259
+ "warnings": []
260
+ }
261
+ },
262
+ "summariesByFile": {},
263
+ "warnings": []
264
+ },
265
+ "artifactReferenceSummary": [
266
+ { "artifactKind": "symbol-index", "artifactPath": "Z:/fixture/project/.my-dev-kit/symbol-index.json", "available": true, "reason": "artifact present in manifest", "warnings": [] },
267
+ { "artifactKind": "frontend-semantic", "artifactPath": null, "available": false, "reason": "artifact not generated for this project", "warnings": [] }
268
+ ],
269
+ "pruning": {
270
+ "policyVersion": "1.0.0",
271
+ "retainedCounts": { "candidateFiles": 1, "candidateNodes": 1, "graphNodes": 2, "graphEdges": 1, "sourceSlices": 1, "sourceBundles": 1 },
272
+ "droppedCounts": { "candidateFiles": 0, "candidateNodes": 0, "graphNodes": 0, "graphEdges": 0, "sourceSlices": 0, "sourceBundles": 0 },
273
+ "capSettings": { "maxCandidateFiles": 50, "maxGraphNodes": null, "maxGraphEdges": 100, "maxSourceSlices": 20 },
274
+ "retainedReasons": ["high relevance score"],
275
+ "droppedReasons": [],
276
+ "warnings": []
277
+ },
278
+ "conflicts": {
279
+ "status": "conflict",
280
+ "conflicts": [
281
+ {
282
+ "id": "fixture.conflict.001",
283
+ "status": "conflict",
284
+ "reason": "Static edit-guidance evidence conflicts for the selected focus.",
285
+ "evidenceRefs": ["src/example.ts"],
286
+ "affectedFiles": ["src/example.ts"],
287
+ "affectedNodes": ["symbol:src/example.ts#Example"],
288
+ "candidates": [
289
+ { "nodeId": "symbol:src/example.ts#Example", "filePath": "src/example.ts", "score": 12.5, "editGuidance": ["safe-primary-edit-target", "inspect-before-edit"] }
290
+ ],
291
+ "recommendedNextAction": "Review classification evidence before editing."
292
+ }
293
+ ],
294
+ "warnings": []
295
+ },
296
+ "modeEffects": {
297
+ "mode": "feature-add",
298
+ "applied": true,
299
+ "effects": [{ "candidateId": "src/example.ts", "adjustment": 2.5, "reasons": ["feature-add mode boost"] }],
300
+ "warnings": []
301
+ },
302
+ "sourceControl": { "enabled": true, "reason": "Git repository detected." },
303
+ "deferredRequestFields": ["upstreamArtifactRefs"],
304
+ "roleContext": {
305
+ "role": "implementation",
306
+ "focus": {
307
+ "focusFiles": [{ "path": "src/example.ts", "resolved": true, "matchedFilePaths": ["src/example.ts"], "containedSymbolIds": ["symbol:src/example.ts#Example"] }],
308
+ "focusSymbols": [{ "symbol": "Example", "resolved": true, "ambiguous": false, "matchedNodeIds": ["symbol:src/example.ts#Example"] }],
309
+ "unresolvedFocusFiles": [],
310
+ "unresolvedFocusSymbols": [],
311
+ "ambiguousFocusSymbols": [],
312
+ "warnings": []
313
+ },
314
+ "changedSurface": {
315
+ "available": true,
316
+ "diffRequested": true,
317
+ "files": [{ "path": "src/example.ts", "status": "modified", "provenance": "both" }],
318
+ "symbols": [{ "symbolId": "symbol:src/example.ts#Example", "status": "modified", "provenance": "graph-diff", "filePath": "src/example.ts", "name": "Example", "kind": "symbol" }],
319
+ "conflicts": [],
320
+ "warnings": []
321
+ },
322
+ "requestedEvidenceKinds": ["owner", "dependencies"],
323
+ "unsupportedRequestedEvidenceKinds": ["responsibility-mappings"],
324
+ "warnings": []
325
+ },
326
+ "evidenceGroups": [
327
+ {
328
+ "id": "implementation-owners",
329
+ "kind": "owners",
330
+ "role": "implementation",
331
+ "title": "Owners",
332
+ "required": true,
333
+ "items": [
334
+ {
335
+ "id": "src/example.ts",
336
+ "itemKind": "file",
337
+ "path": "src/example.ts",
338
+ "symbolId": "symbol:src/example.ts#Example",
339
+ "nodeId": "symbol:src/example.ts#Example",
340
+ "sourceLocation": { "filePath": "src/example.ts", "line": 1 },
341
+ "relationship": "owner",
342
+ "basis": "candidate-ranking",
343
+ "provenance": "candidate-ranking",
344
+ "metadata": { "score": 12.5, "retained": true, "note": null }
345
+ }
346
+ ],
347
+ "unresolved": [
348
+ { "evidenceKind": "dependencies", "role": "implementation", "basis": "graph-neighborhood", "reason": "no dependency edges found", "blocking": false }
349
+ ],
350
+ "warnings": [],
351
+ "limit": null,
352
+ "availableCount": 1,
353
+ "usedCount": 1,
354
+ "truncated": false,
355
+ "droppedCount": 0,
356
+ "provenance": "candidate-ranking"
357
+ }
358
+ ],
359
+ "selectedOwners": [
360
+ { "id": "src/example.ts", "itemKind": "file", "path": "src/example.ts", "relationship": "owner", "basis": "candidate-ranking", "provenance": "candidate-ranking" }
361
+ ],
362
+ "selectedContracts": [],
363
+ "selectedTests": [
364
+ { "id": "tests/example.spec.ts", "itemKind": "test-file", "path": "tests/example.spec.ts", "relationship": "closest-test", "basis": "path-proximity", "provenance": "test-directory-walk" }
365
+ ],
366
+ "testInfrastructure": {
367
+ "relatedTests": [{ "id": "tests/example.spec.ts", "itemKind": "test-file", "path": "tests/example.spec.ts", "relationship": "closest-test", "basis": "path-proximity", "provenance": "test-directory-walk" }],
368
+ "fixtures": [],
369
+ "factories": [],
370
+ "mocks": [],
371
+ "setupFiles": [],
372
+ "testConfigurations": [
373
+ { "path": "vitest.config.ts", "framework": "vitest", "supported": true, "fields": { "testDir": "tests", "include": ["tests/**/*.spec.ts"], "timeout": 5000, "watch": false, "reporter": null }, "warnings": [] }
374
+ ],
375
+ "packageScripts": [
376
+ { "name": "test", "command": "vitest run", "reason": "primary test entrypoint", "packageJsonPath": "package.json" }
377
+ ],
378
+ "testCommands": [
379
+ { "commandText": "vitest run tests/example.spec.ts", "commandSource": "package-script", "testFiles": ["tests/example.spec.ts"], "framework": "vitest", "scope": "file", "basis": "path-proximity" },
380
+ { "commandText": null, "commandSource": "unresolved", "testFiles": [], "framework": null, "scope": "full-project", "basis": "fallback", "unresolvedReason": "no matching test command found" }
381
+ ],
382
+ "unresolved": [],
383
+ "warnings": []
384
+ },
385
+ "unresolvedItems": [
386
+ { "evidenceKind": "contracts", "role": "implementation", "basis": "graph-neighborhood", "reason": "no contract evidence found", "blocking": false }
387
+ ],
388
+ "groupTruncation": [
389
+ { "groupId": "implementation-owners", "limit": null, "availableCount": 1, "usedCount": 1, "truncated": false, "droppedCount": 0 }
390
+ ],
391
+ "responsibilityMappings": {
392
+ "requested": true,
393
+ "operational": true,
394
+ "mappings": [
395
+ {
396
+ "responsibilityId": "fixture.responsibility.001",
397
+ "behavior": "Example behaves correctly.",
398
+ "invariant": null,
399
+ "criticality": "critical",
400
+ "productionSymbols": [{ "id": "symbol:src/example.ts#Example", "itemKind": "symbol", "symbolId": "symbol:src/example.ts#Example", "relationship": "production-symbol", "basis": "candidate-ranking", "provenance": "candidate-ranking" }],
401
+ "contracts": [],
402
+ "validators": [],
403
+ "constants": [],
404
+ "errors": [],
405
+ "sideEffectEvidence": [],
406
+ "proposedOrExistingTestFiles": [{ "id": "tests/example.spec.ts", "itemKind": "test-file", "path": "tests/example.spec.ts", "relationship": "proposed-test", "basis": "path-proximity", "provenance": "test-directory-walk" }],
407
+ "reusableHelpers": [],
408
+ "oracleEvidence": [],
409
+ "testCommands": [],
410
+ "mappingStatus": "mapped",
411
+ "unresolvedReasons": [],
412
+ "provenance": [
413
+ { "id": "fixture.provenance.mapping.001", "category": "code-graph", "sourcePath": "src/example.ts", "sourceId": null, "evidenceId": "symbol:src/example.ts#Example", "relationshipBasis": "candidate-ranking", "role": "implementation", "requestField": null, "derivedByModule": "responsibilityMapping.ts" }
414
+ ],
415
+ "warnings": []
416
+ }
417
+ ],
418
+ "unknownResponsibilityIds": [],
419
+ "duplicateResponsibilityIds": [],
420
+ "limit": null,
421
+ "availableCount": 1,
422
+ "usedCount": 1,
423
+ "truncated": false,
424
+ "droppedCount": 0,
425
+ "criticalDropped": false,
426
+ "warnings": []
427
+ },
428
+ "roleAdequacy": {
429
+ "role": "implementation",
430
+ "status": "context sufficient with listed assumptions",
431
+ "requiredConditions": ["single high-confidence focus node"],
432
+ "satisfiedConditions": ["single high-confidence focus node"],
433
+ "missingConditions": [],
434
+ "blockingConditions": [],
435
+ "warnings": [],
436
+ "supportingEvidence": ["symbol:src/example.ts#Example"],
437
+ "affectedResponsibilityIds": ["fixture.responsibility.001"],
438
+ "truncationImpact": false,
439
+ "freshnessImpact": false
440
+ },
441
+ "freshness": {
442
+ "state": "fresh",
443
+ "role": "implementation",
444
+ "evidenceUsed": ["code-graph"],
445
+ "evidenceUnavailable": ["before-index"],
446
+ "comparedIdentities": [
447
+ { "label": "index-manifest-hash", "value": "fixture-hash-001" },
448
+ { "label": "before-index-manifest-hash", "value": null }
449
+ ],
450
+ "reason": "Active index manifest hash matches the most recent recorded identity.",
451
+ "relevantChangedPaths": ["src/example.ts"],
452
+ "warnings": []
453
+ },
454
+ "budget": {
455
+ "limits": [
456
+ { "name": "candidates", "declaredValue": 50, "usedValue": 1, "availableCount": 49, "droppedCount": 0, "truncated": false, "requiredEvidenceAffected": false, "adequacyImpact": null }
457
+ ],
458
+ "characters": { "measured": 1200, "limit": 8000, "truncated": false },
459
+ "warnings": []
460
+ },
461
+ "truncation": {
462
+ "truncated": false,
463
+ "records": [
464
+ {
465
+ "id": "fixture.truncation.001",
466
+ "affectedGroup": "implementation-owners",
467
+ "limit": 10,
468
+ "used": 1,
469
+ "available": 1,
470
+ "droppedCount": 0,
471
+ "droppedEvidenceIds": [],
472
+ "requiredEvidenceLost": false,
473
+ "adequacyImpact": null,
474
+ "reason": "within declared limit"
475
+ }
476
+ ],
477
+ "warnings": []
478
+ },
479
+ "fullFileFallback": {
480
+ "enabled": true,
481
+ "limit": null,
482
+ "used": 0,
483
+ "fallbacks": [
484
+ {
485
+ "id": "fixture.fallback.001",
486
+ "filePath": "src/other.ts",
487
+ "reason": "bounded retrieval insufficient",
488
+ "requestedEvidenceKind": null,
489
+ "boundedRetrievalAttempted": true,
490
+ "sourceRangesAttempted": 2,
491
+ "includedLineCount": 40,
492
+ "includedCharacterCount": 900,
493
+ "role": "implementation",
494
+ "responsibilityIdsAffected": [],
495
+ "allowed": false,
496
+ "provenance": "full-file-fallback"
497
+ }
498
+ ],
499
+ "warnings": []
500
+ },
501
+ "provenance": [
502
+ { "id": "fixture.provenance.001", "category": "code-graph", "sourcePath": "src/example.ts", "sourceId": null, "evidenceId": "symbol:src/example.ts#Example", "relationshipBasis": "candidate-ranking", "role": "implementation", "requestField": null, "derivedByModule": "candidateRanking.ts" }
503
+ ]
504
+ }