noteconnection 1.6.8 → 1.8.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/LICENSE +674 -21
- package/README.md +258 -64
- package/dist/src/agent_workspace.contract.parity.test.js +475 -0
- package/dist/src/agent_workspace.frontend.test.js +9989 -0
- package/dist/src/agent_workspace.locale.contract.test.js +95 -0
- package/dist/src/agent_workspace.runtime.behavior.test.js +5072 -0
- package/dist/src/copy.assets.contract.test.js +130 -0
- package/dist/src/core/PathBridge.js +28 -3
- package/dist/src/export/WorkspaceExportBundle.js +1130 -0
- package/dist/src/export/WorkspaceExportBundle.test.js +1480 -0
- package/dist/src/export/index.js +18 -0
- package/dist/src/export/types.js +2 -0
- package/dist/src/fixrisk.issue.verifier.contract.test.js +3 -1
- package/dist/src/foundation.ann.runtime.contract.test.js +81 -0
- package/dist/src/foundation.release.evidence.contract.test.js +406 -0
- package/dist/src/foundation.sqlite.runtime.contract.test.js +82 -0
- package/dist/src/frontend/README.md +258 -64
- package/dist/src/frontend/agent_workspace.js +5353 -0
- package/dist/src/frontend/agent_workspace_runtime.js +4434 -0
- package/dist/src/frontend/analysis.js +31 -4
- package/dist/src/frontend/app.js +3597 -141
- package/dist/src/frontend/focus_mode_interactions.js +33 -0
- package/dist/src/frontend/godot_future_path_renderer.js +540 -0
- package/dist/src/frontend/godot_tree_interactions.js +178 -0
- package/dist/src/frontend/graph_state.mjs +105 -0
- package/dist/src/frontend/hosted_future_path_runtime.js +157 -0
- package/dist/src/frontend/i18n.mjs +186 -0
- package/dist/src/frontend/index.html +641 -266
- package/dist/src/frontend/layout_gpu.js +12 -4
- package/dist/src/frontend/locales/en.json +721 -5
- package/dist/src/frontend/locales/zh.json +721 -5
- package/dist/src/frontend/main.mjs +60 -0
- package/dist/src/frontend/markdown_runtime.js +827 -0
- package/dist/src/frontend/notemd.css +49 -0
- package/dist/src/frontend/notemd.html +7 -1
- package/dist/src/frontend/notemd.js +64 -0
- package/dist/src/frontend/path.html +107 -0
- package/dist/src/frontend/path_app.js +2189 -150
- package/dist/src/frontend/path_layout.mjs +143 -0
- package/dist/src/frontend/path_mermaid_utils.mjs +108 -0
- package/dist/src/frontend/path_modules_bridge.js +486 -0
- package/dist/src/frontend/path_state.mjs +118 -0
- package/dist/src/frontend/path_styles.css +146 -0
- package/dist/src/frontend/path_worker_bridge.mjs +85 -0
- package/dist/src/frontend/reader.js +522 -27
- package/dist/src/frontend/runtime_bridge.js +67 -54
- package/dist/src/frontend/runtime_bridge.mjs +279 -0
- package/dist/src/frontend/settings.js +130 -12
- package/dist/src/frontend/simulationWorker.js +241 -6
- package/dist/src/frontend/source_manager.js +190 -21
- package/dist/src/frontend/styles.css +2853 -72
- package/dist/src/frontend/workbench_state.mjs +101 -0
- package/dist/src/frontend/workspace_panes.js +10168 -0
- package/dist/src/frontend.locale.contract.test.js +62 -0
- package/dist/src/godot.sidecar.bootstrap.contract.test.js +244 -0
- package/dist/src/indexing/IndexLifecycle.js +195 -0
- package/dist/src/indexing/IndexLifecycle.test.js +49 -0
- package/dist/src/indexing/SegmentBuilder.js +64 -0
- package/dist/src/indexing/UnitBuilder.js +48 -0
- package/dist/src/indexing/types.js +2 -0
- package/dist/src/knowledge.api.contract.test.js +170 -0
- package/dist/src/learning/KnowledgeLearningPlatform.js +10386 -0
- package/dist/src/learning/KnowledgeLearningPlatform.persistence.test.js +327 -0
- package/dist/src/learning/KnowledgeLearningPlatform.program-f.test.js +99 -0
- package/dist/src/learning/KnowledgeLearningPlatform.test.js +2971 -0
- package/dist/src/learning/KnowledgeWorkspaceConversationRegression.js +2974 -0
- package/dist/src/learning/KnowledgeWorkspaceConversationRegression.test.js +3928 -0
- package/dist/src/learning/answerReleaseReview.js +4319 -0
- package/dist/src/learning/answerReleaseReview.test.js +2888 -0
- package/dist/src/learning/api.js +2 -0
- package/dist/src/learning/conversationComposer.js +1480 -0
- package/dist/src/learning/conversationComposer.test.js +1817 -0
- package/dist/src/learning/domains/ConversationManager.js +53 -0
- package/dist/src/learning/domains/KnowledgeIngestor.js +238 -0
- package/dist/src/learning/domains/KnowledgeQuerier.js +187 -0
- package/dist/src/learning/domains/MasteryEngine.js +387 -0
- package/dist/src/learning/domains/MemoryPolicyManager.js +408 -0
- package/dist/src/learning/domains/QualityEvaluator.js +307 -0
- package/dist/src/learning/domains/TutorRouter.js +313 -0
- package/dist/src/learning/domains/index.js +33 -0
- package/dist/src/learning/domains/types.js +7 -0
- package/dist/src/learning/errors.js +29 -0
- package/dist/src/learning/evidenceContextAssembler.js +1176 -0
- package/dist/src/learning/evidenceContextAssembler.test.js +6332 -0
- package/dist/src/learning/graphContextAssembler.js +870 -0
- package/dist/src/learning/graphContextAssembler.test.js +1033 -0
- package/dist/src/learning/index.js +28 -0
- package/dist/src/learning/queryBackend.js +1898 -0
- package/dist/src/learning/queryBackend.test.js +955 -0
- package/dist/src/learning/ragContextPack.js +257 -0
- package/dist/src/learning/ragContextPack.test.js +160 -0
- package/dist/src/learning/ragPublicText.js +38 -0
- package/dist/src/learning/ragSufficiencyJudge.js +161 -0
- package/dist/src/learning/ragSufficiencyJudge.test.js +177 -0
- package/dist/src/learning/ragSufficiencyProviderJudge.js +227 -0
- package/dist/src/learning/ragSufficiencyProviderJudge.test.js +156 -0
- package/dist/src/learning/requestNormalization.js +198 -0
- package/dist/src/learning/runtimeCapability.js +4677 -0
- package/dist/src/learning/runtimeCapability.test.js +3635 -0
- package/dist/src/learning/store.js +1240 -0
- package/dist/src/learning/store.test.js +1126 -0
- package/dist/src/learning/tutorAdapter.js +2 -0
- package/dist/src/learning/types.js +2 -0
- package/dist/src/learning/vectorAccelerationAdapter.js +942 -0
- package/dist/src/learning/vectorAccelerationAdapter.test.js +382 -0
- package/dist/src/lfs.asset.policy.contract.test.js +153 -0
- package/dist/src/license.policy.contract.test.js +66 -0
- package/dist/src/memory/MemoryGovernance.js +74 -0
- package/dist/src/memory/MemoryGovernance.test.js +46 -0
- package/dist/src/memory/types.js +2 -0
- package/dist/src/mermaid.frontend.guard.contract.test.js +77 -0
- package/dist/src/middleware/auth.js +17 -0
- package/dist/src/middleware/body-parser.js +45 -0
- package/dist/src/middleware/cors.js +44 -0
- package/dist/src/middleware/index.js +21 -0
- package/dist/src/middleware/request-trace.js +96 -0
- package/dist/src/notemd/AppConfigToml.js +6 -4
- package/dist/src/notemd/MermaidProcessor.js +400 -50
- package/dist/src/notemd/NotemdService.js +498 -13
- package/dist/src/notemd/PromptManager.js +15 -0
- package/dist/src/notemd/cli/commands.js +357 -0
- package/dist/src/notemd/cli/dispatcher.js +225 -0
- package/dist/src/notemd/cli/index.js +169 -0
- package/dist/src/notemd/cli/parser.js +68 -0
- package/dist/src/notemd/cli/types.js +2 -0
- package/dist/src/notemd/constants.js +43 -0
- package/dist/src/notemd/diagram/diagramGenerationService.js +78 -0
- package/dist/src/notemd/diagram/diagramSpec.js +79 -0
- package/dist/src/notemd/diagram/diagramSpecResponseParser.js +131 -0
- package/dist/src/notemd/diagram/intent.js +95 -0
- package/dist/src/notemd/diagram/planner.js +71 -0
- package/dist/src/notemd/diagram/prompts/diagramSpecPrompt.js +42 -0
- package/dist/src/notemd/diagram/types.js +18 -0
- package/dist/src/notemd/index.js +26 -0
- package/dist/src/notemd/operations/capabilityManifest.js +23 -0
- package/dist/src/notemd/operations/cliContracts.js +17 -0
- package/dist/src/notemd/operations/configProfileCommands.js +85 -0
- package/dist/src/notemd/operations/registry.contract.test.js +95 -0
- package/dist/src/notemd/operations/registry.js +991 -0
- package/dist/src/notemd/operations/types.js +2 -0
- package/dist/src/notemd/providerDiagnostics.js +220 -0
- package/dist/src/notemd/providerProfiles.js +42 -0
- package/dist/src/notemd/providerTemplates.js +231 -0
- package/dist/src/notemd/search/DuckDuckGoProvider.js +39 -0
- package/dist/src/notemd/search/SearchManager.js +13 -0
- package/dist/src/notemd/search/SearchProvider.js +2 -0
- package/dist/src/notemd/search/TavilyProvider.js +44 -0
- package/dist/src/notemd.agent.manifest.test.js +85 -0
- package/dist/src/notemd.api.contract.test.js +14 -1
- package/dist/src/notemd.app_config_toml.test.js +2 -1
- package/dist/src/notemd.batch.workflow.test.js +117 -0
- package/dist/src/notemd.cli.e2e.test.js +136 -0
- package/dist/src/notemd.core.test.js +51 -0
- package/dist/src/notemd.diagram.pipeline.test.js +233 -0
- package/dist/src/notemd.providerTemplates.test.js +34 -0
- package/dist/src/notemd.server.integration.test.js +143 -35
- package/dist/src/notemd.workflow.pipeline.test.js +162 -0
- package/dist/src/pathbridge.handshake.contract.test.js +16 -2
- package/dist/src/pathmode.background.contract.test.js +69 -0
- package/dist/src/pathmode.settings.api.contract.test.js +9 -0
- package/dist/src/pkg.sidecar.contract.test.js +9 -3
- package/dist/src/platform/ExportProfile.js +58 -0
- package/dist/src/platform/PlatformCapabilities.js +45 -0
- package/dist/src/platform/PlatformCapabilities.test.js +30 -0
- package/dist/src/platform/RenderMaterializer.js +33 -0
- package/dist/src/platform/RenderMaterializer.test.js +32 -0
- package/dist/src/query_backend.external_http.integration.test.js +410 -0
- package/dist/src/reader_renderer.js +404 -3
- package/dist/src/reader_renderer.test.js +87 -0
- package/dist/src/release.godot.mirror.contract.test.js +73 -0
- package/dist/src/resources/ResourceRegistry.js +223 -0
- package/dist/src/resources/ResourceRegistry.test.js +61 -0
- package/dist/src/resources/types.js +2 -0
- package/dist/src/routes/agentWorkspaceDiagnostics.js +173 -0
- package/dist/src/routes/data.js +267 -0
- package/dist/src/routes/diagnostics.js +51 -0
- package/dist/src/routes/index.js +23 -0
- package/dist/src/routes/knowledge.js +968 -0
- package/dist/src/routes/markdown.js +287 -0
- package/dist/src/routes/notemd.js +565 -0
- package/dist/src/routes/registry.contract.test.js +130 -0
- package/dist/src/routes/render.js +285 -0
- package/dist/src/routes/runtimeRunbookRouteOps.js +149 -0
- package/dist/src/routes/runtimeRunbookRouteOps.test.js +194 -0
- package/dist/src/routes/settings.js +6 -0
- package/dist/src/routes/staticFiles.js +94 -0
- package/dist/src/routes/types.js +2 -0
- package/dist/src/runtime.transport.adapter.contract.test.js +81 -0
- package/dist/src/server.js +11090 -1549
- package/dist/src/server.migration.test.js +193 -21
- package/dist/src/server.port.fallback.contract.test.js +63 -0
- package/dist/src/session/SessionStateStore.js +81 -0
- package/dist/src/session/SessionStateStore.test.js +58 -0
- package/dist/src/session/types.js +2 -0
- package/dist/src/settings.runtime.contract.test.js +50 -0
- package/dist/src/shared/types.contract.test.js +107 -0
- package/dist/src/shared/types.js +22 -0
- package/dist/src/sidecar.replacement.boundary.contract.test.js +128 -0
- package/dist/src/sidecar.supply.readiness.contract.test.js +144 -0
- package/dist/src/source_manager.loadflow.test.js +46 -0
- package/dist/src/startup.layout.snapshot.contract.test.js +57 -0
- package/dist/src/tauri.frontend.build.contract.test.js +60 -0
- package/dist/src/tauri.sidecar.cleanup.contract.test.js +21 -0
- package/dist/src/utils/RuntimePaths.js +4 -13
- package/dist/src/utils/platform.js +153 -0
- package/dist/src/workflows/WorkflowArtifactStore.js +96 -0
- package/dist/src/workflows/WorkflowArtifactStore.test.js +80 -0
- package/dist/src/workflows/types.js +2 -0
- package/dist/src/workspace/WorkspaceRegistry.js +122 -0
- package/dist/src/workspace/WorkspaceRegistry.test.js +29 -0
- package/dist/src/workspace/types.js +2 -0
- package/package.json +61 -10
|
@@ -0,0 +1,2974 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KNOWLEDGE_WORKSPACE_CONVERSATION_REGRESSION_CASES = void 0;
|
|
4
|
+
exports.selectKnowledgeWorkspaceConversationRegressionCases = selectKnowledgeWorkspaceConversationRegressionCases;
|
|
5
|
+
function freezeRegressionCases(cases) {
|
|
6
|
+
const seenIds = new Set();
|
|
7
|
+
cases.forEach((entry) => {
|
|
8
|
+
const id = String(entry.id || '').trim();
|
|
9
|
+
if (!id) {
|
|
10
|
+
throw new Error('Knowledge workspace conversation regression cases require a non-empty id.');
|
|
11
|
+
}
|
|
12
|
+
if (seenIds.has(id)) {
|
|
13
|
+
throw new Error(`Duplicate knowledge workspace conversation regression case id: ${id}`);
|
|
14
|
+
}
|
|
15
|
+
seenIds.add(id);
|
|
16
|
+
if (!Array.isArray(entry.preloadTargets) || entry.preloadTargets.length <= 0) {
|
|
17
|
+
throw new Error(`Knowledge workspace conversation regression case "${id}" requires preload targets.`);
|
|
18
|
+
}
|
|
19
|
+
const normalizedActiveTarget = String(entry.activeTarget || '').trim();
|
|
20
|
+
if (!normalizedActiveTarget) {
|
|
21
|
+
throw new Error(`Knowledge workspace conversation regression case "${id}" requires an activeTarget.`);
|
|
22
|
+
}
|
|
23
|
+
if (!entry.preloadTargets.some((target) => String(target || '').trim() === normalizedActiveTarget)) {
|
|
24
|
+
throw new Error(`Knowledge workspace conversation regression case "${id}" must include the activeTarget in preloadTargets.`);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return cases;
|
|
28
|
+
}
|
|
29
|
+
exports.KNOWLEDGE_WORKSPACE_CONVERSATION_REGRESSION_CASES = freezeRegressionCases([
|
|
30
|
+
{
|
|
31
|
+
id: 'waterglass_explicit_scope_compact_zh',
|
|
32
|
+
description: 'Compact mixed-language alias inside the explicit waterglass scope should retrieve grounded evidence.',
|
|
33
|
+
preloadTargets: ['waterglass'],
|
|
34
|
+
activeTarget: 'waterglass',
|
|
35
|
+
query: '什么是waterglass?',
|
|
36
|
+
expected: {
|
|
37
|
+
minCitations: 1,
|
|
38
|
+
scopeSource: 'explicit_request',
|
|
39
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
40
|
+
runtimeAnswerReleaseDecision: 'revise',
|
|
41
|
+
runtimeRequiredFailedGateIds: ['query_intent_alignment', 'rag_claim_citation_support'],
|
|
42
|
+
plannerTitleLikeQueries: ['waterglass', 'water glass'],
|
|
43
|
+
primarySourcePath: 'Knowledge_Base/waterglass/water glass.md',
|
|
44
|
+
answerMustContain: ['水杯', '透明', '容器'],
|
|
45
|
+
answerMustNotContain: [
|
|
46
|
+
'No scoped knowledge points matched',
|
|
47
|
+
'retrieval_candidates_below_threshold',
|
|
48
|
+
'本技术文档旨在',
|
|
49
|
+
'所有推理过程',
|
|
50
|
+
'最终输出',
|
|
51
|
+
'遵从您的指示',
|
|
52
|
+
'遵从您的要求',
|
|
53
|
+
'all reasoning',
|
|
54
|
+
'final output',
|
|
55
|
+
],
|
|
56
|
+
ragSourceBoundary: 'full_document',
|
|
57
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'graph_neighbor_support'],
|
|
58
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'waterglass_explicit_scope_spaced_zh',
|
|
63
|
+
description: 'Spaced mixed-language alias inside the explicit waterglass scope should retrieve the same grounded note.',
|
|
64
|
+
preloadTargets: ['waterglass'],
|
|
65
|
+
activeTarget: 'waterglass',
|
|
66
|
+
query: '什么是water glass',
|
|
67
|
+
expected: {
|
|
68
|
+
minCitations: 1,
|
|
69
|
+
scopeSource: 'explicit_request',
|
|
70
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
71
|
+
runtimeAnswerReleaseDecision: 'revise',
|
|
72
|
+
runtimeRequiredFailedGateIds: ['query_intent_alignment', 'rag_claim_citation_support'],
|
|
73
|
+
plannerTitleLikeQueries: ['water glass', 'waterglass'],
|
|
74
|
+
primarySourcePath: 'Knowledge_Base/waterglass/water glass.md',
|
|
75
|
+
answerMustContain: ['水杯', '透明', '容器'],
|
|
76
|
+
answerMustNotContain: [
|
|
77
|
+
'No scoped knowledge points matched',
|
|
78
|
+
'retrieval_candidates_below_threshold',
|
|
79
|
+
'本技术文档旨在',
|
|
80
|
+
'所有推理过程',
|
|
81
|
+
'最终输出',
|
|
82
|
+
'遵从您的指示',
|
|
83
|
+
'遵从您的要求',
|
|
84
|
+
'all reasoning',
|
|
85
|
+
'final output',
|
|
86
|
+
],
|
|
87
|
+
ragSourceBoundary: 'full_document',
|
|
88
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'graph_neighbor_support'],
|
|
89
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: 'waterglass_compare_materials_en',
|
|
94
|
+
description: 'Compare-intent query in the explicit waterglass scope should keep evidence for both container materials.',
|
|
95
|
+
preloadTargets: ['waterglass'],
|
|
96
|
+
activeTarget: 'waterglass',
|
|
97
|
+
query: 'compare water glass and plastic cup',
|
|
98
|
+
expected: {
|
|
99
|
+
minCitations: 1,
|
|
100
|
+
scopeSource: 'explicit_request',
|
|
101
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
102
|
+
plannerTitleLikeQueries: ['water glass', 'plastic cup'],
|
|
103
|
+
primarySourcePath: 'Knowledge_Base/waterglass/water glass.md',
|
|
104
|
+
answerMustContain: ['glass', 'plastic'],
|
|
105
|
+
answerMustNotContain: [
|
|
106
|
+
'No scoped knowledge points matched',
|
|
107
|
+
'retrieval_candidates_below_threshold',
|
|
108
|
+
],
|
|
109
|
+
ragSourceBoundary: 'full_document',
|
|
110
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'graph_neighbor_support'],
|
|
111
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
112
|
+
requireScopedDocumentIds: false,
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: 'graphintent_compare_neighbor_selection_en',
|
|
117
|
+
description: 'Compare-intent graph assembly should prefer material analogy neighbors over a higher-confidence procedural sequence edge.',
|
|
118
|
+
preloadTargets: ['graphintent'],
|
|
119
|
+
activeTarget: 'graphintent',
|
|
120
|
+
query: 'compare brittle glass vessel with polymer cup material behavior',
|
|
121
|
+
expected: {
|
|
122
|
+
minCitations: 1,
|
|
123
|
+
scopeSource: 'explicit_request',
|
|
124
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
125
|
+
plannerTitleLikeQueries: ['brittle glass vessel', 'polymer cup material behavior'],
|
|
126
|
+
primarySourcePath: 'Knowledge_Base/graphintent/brittle glass vessel.md',
|
|
127
|
+
answerMustContain: ['Brittle', 'Ductile', 'Polymer'],
|
|
128
|
+
answerMustNotContain: [
|
|
129
|
+
'No scoped knowledge points matched',
|
|
130
|
+
'retrieval_candidates_below_threshold',
|
|
131
|
+
'Procedural Calibration Sequence',
|
|
132
|
+
],
|
|
133
|
+
ragSourceBoundary: 'full_document',
|
|
134
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'graph_neighbor_support'],
|
|
135
|
+
minimumRagFullDocumentFragmentCounts: {
|
|
136
|
+
graph_neighbor_support: 1,
|
|
137
|
+
},
|
|
138
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
139
|
+
requiredGraphSuccessorTitles: [
|
|
140
|
+
'Ductile Polymer Cup Analogy',
|
|
141
|
+
'Reusable Polymer Vessel Analogy',
|
|
142
|
+
],
|
|
143
|
+
forbiddenGraphSuccessorTitles: ['Procedural Calibration Sequence'],
|
|
144
|
+
requiredGraphSuccessorRelationKinds: ['analogy'],
|
|
145
|
+
forbiddenGraphNeighborFragmentTitles: ['Procedural Calibration Sequence'],
|
|
146
|
+
minimumGraphIntentAlignedSuccessorCandidates: 2,
|
|
147
|
+
minimumGraphIntentMisalignedSuccessorCandidates: 1,
|
|
148
|
+
expectedGraphUsedMisalignedSuccessorFallback: false,
|
|
149
|
+
requireScopedDocumentIds: false,
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
id: 'graphintent_missing_neighbor_source_window_en',
|
|
154
|
+
description: 'Graph-neighbor source-window loss should degrade graph evidence instead of treating direct spans as complete graph support.',
|
|
155
|
+
preloadTargets: ['graphintent'],
|
|
156
|
+
activeTarget: 'graphintent',
|
|
157
|
+
query: 'compare brittle glass vessel with polymer cup material behavior',
|
|
158
|
+
runtimeUnavailableSourcePaths: [
|
|
159
|
+
'Knowledge_Base/graphintent/ductile polymer cup analogy.md',
|
|
160
|
+
'Knowledge_Base/graphintent/reusable polymer vessel analogy.md',
|
|
161
|
+
],
|
|
162
|
+
expected: {
|
|
163
|
+
minCitations: 1,
|
|
164
|
+
scopeSource: 'explicit_request',
|
|
165
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
166
|
+
plannerTitleLikeQueries: ['brittle glass vessel', 'polymer cup material behavior'],
|
|
167
|
+
primarySourcePath: 'Knowledge_Base/graphintent/brittle glass vessel.md',
|
|
168
|
+
answerMustContain: ['Brittle'],
|
|
169
|
+
answerMustNotContain: [
|
|
170
|
+
'No scoped knowledge points matched',
|
|
171
|
+
'retrieval_candidates_below_threshold',
|
|
172
|
+
],
|
|
173
|
+
ragSourceBoundary: 'full_document',
|
|
174
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'graph_neighbor_support'],
|
|
175
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
176
|
+
runtimeAcceptedRagSufficiencyStatuses: ['borderline'],
|
|
177
|
+
acceptedRagDegradationStates: ['none', 'partial_coverage'],
|
|
178
|
+
runtimeAcceptedRagDegradationStates: ['partial_coverage'],
|
|
179
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
180
|
+
source_window_unavailable: 1,
|
|
181
|
+
},
|
|
182
|
+
inMemoryMinimumRagSourceDecisionStatusCounts: {
|
|
183
|
+
read: 1,
|
|
184
|
+
},
|
|
185
|
+
runtimeRequiredRagFailureStages: ['parsing_source', 'graph_evidence'],
|
|
186
|
+
runtimeRequiredRagSufficiencyReasonFragments: ['graph_neighbor_evidence_missing'],
|
|
187
|
+
runtimeRequiredRagSourceDecisionReasonFragments: ['graph_neighbor_support'],
|
|
188
|
+
expectedRagDeterministic: true,
|
|
189
|
+
expectedRagLlmJudgeUsed: false,
|
|
190
|
+
expectedRagRecoveryAttempted: true,
|
|
191
|
+
inMemoryExpectedRagRecoveryAttempted: false,
|
|
192
|
+
requiredGraphSuccessorTitles: [
|
|
193
|
+
'Ductile Polymer Cup Analogy',
|
|
194
|
+
'Reusable Polymer Vessel Analogy',
|
|
195
|
+
],
|
|
196
|
+
requiredGraphSuccessorRelationKinds: ['analogy'],
|
|
197
|
+
minimumGraphIntentAlignedSuccessorCandidates: 2,
|
|
198
|
+
minimumGraphIntentMisalignedSuccessorCandidates: 1,
|
|
199
|
+
expectedGraphUsedMisalignedSuccessorFallback: false,
|
|
200
|
+
requireScopedDocumentIds: false,
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: 'graphintent_multi_neighbor_source_loss_en',
|
|
205
|
+
description: 'Multiple graph-neighbor source-window losses should be recorded per neighbor document and degrade graph evidence as partial coverage.',
|
|
206
|
+
preloadTargets: ['graphintent'],
|
|
207
|
+
activeTarget: 'graphintent',
|
|
208
|
+
query: 'compare brittle glass vessel with polymer cup material behavior',
|
|
209
|
+
runtimeUnavailableSourcePaths: [
|
|
210
|
+
'Knowledge_Base/graphintent/ductile polymer cup analogy.md',
|
|
211
|
+
'Knowledge_Base/graphintent/reusable polymer vessel analogy.md',
|
|
212
|
+
],
|
|
213
|
+
expected: {
|
|
214
|
+
minCitations: 1,
|
|
215
|
+
scopeSource: 'explicit_request',
|
|
216
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
217
|
+
plannerTitleLikeQueries: ['brittle glass vessel', 'polymer cup material behavior'],
|
|
218
|
+
primarySourcePath: 'Knowledge_Base/graphintent/brittle glass vessel.md',
|
|
219
|
+
answerMustContain: ['Brittle'],
|
|
220
|
+
answerMustNotContain: [
|
|
221
|
+
'No scoped knowledge points matched',
|
|
222
|
+
'retrieval_candidates_below_threshold',
|
|
223
|
+
],
|
|
224
|
+
ragSourceBoundary: 'full_document',
|
|
225
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'graph_neighbor_support'],
|
|
226
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
227
|
+
runtimeAcceptedRagSufficiencyStatuses: ['borderline'],
|
|
228
|
+
acceptedRagDegradationStates: ['none', 'partial_coverage'],
|
|
229
|
+
runtimeAcceptedRagDegradationStates: ['partial_coverage'],
|
|
230
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
231
|
+
source_window_unavailable: 2,
|
|
232
|
+
},
|
|
233
|
+
inMemoryMinimumRagSourceDecisionStatusCounts: {
|
|
234
|
+
read: 1,
|
|
235
|
+
},
|
|
236
|
+
runtimeRequiredRagFailureStages: ['parsing_source', 'graph_evidence'],
|
|
237
|
+
runtimeRequiredRagSufficiencyReasonFragments: ['graph_neighbor_evidence_missing'],
|
|
238
|
+
runtimeRequiredRagSourceDecisionReasonFragments: ['graph_neighbor_support'],
|
|
239
|
+
expectedRagDeterministic: true,
|
|
240
|
+
expectedRagLlmJudgeUsed: false,
|
|
241
|
+
expectedRagRecoveryAttempted: true,
|
|
242
|
+
inMemoryExpectedRagRecoveryAttempted: false,
|
|
243
|
+
requiredGraphSuccessorTitles: [
|
|
244
|
+
'Ductile Polymer Cup Analogy',
|
|
245
|
+
'Reusable Polymer Vessel Analogy',
|
|
246
|
+
],
|
|
247
|
+
requiredGraphSuccessorRelationKinds: ['analogy'],
|
|
248
|
+
minimumGraphIntentAlignedSuccessorCandidates: 2,
|
|
249
|
+
minimumGraphIntentMisalignedSuccessorCandidates: 1,
|
|
250
|
+
expectedGraphUsedMisalignedSuccessorFallback: false,
|
|
251
|
+
requireScopedDocumentIds: false,
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
id: 'financial_scope_recovery_spaced_en',
|
|
256
|
+
description: 'A spaced title-like query should recover from the financial scope into the waterglass note when the selected scope misses.',
|
|
257
|
+
preloadTargets: ['financial', 'waterglass'],
|
|
258
|
+
activeTarget: 'financial',
|
|
259
|
+
query: 'what is water glass?',
|
|
260
|
+
expected: {
|
|
261
|
+
minCitations: 1,
|
|
262
|
+
scopeSource: 'planner_scope_recovery',
|
|
263
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
264
|
+
plannerTitleLikeQueries: ['water glass', 'waterglass'],
|
|
265
|
+
retrievalModes: ['planner_scope_recovery'],
|
|
266
|
+
primarySourcePath: 'Knowledge_Base/waterglass/water glass.md',
|
|
267
|
+
recoveredSourcePaths: ['Knowledge_Base/waterglass/water glass.md'],
|
|
268
|
+
answerMustNotContain: [
|
|
269
|
+
'No scoped knowledge points matched',
|
|
270
|
+
'retrieval_candidates_below_threshold',
|
|
271
|
+
],
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
id: 'financial_scope_recovery_compact_en',
|
|
276
|
+
description: 'A compact alias should also recover from the financial scope into the waterglass note without leaking diagnostics.',
|
|
277
|
+
preloadTargets: ['financial', 'waterglass'],
|
|
278
|
+
activeTarget: 'financial',
|
|
279
|
+
query: 'what is waterglass?',
|
|
280
|
+
expected: {
|
|
281
|
+
minCitations: 1,
|
|
282
|
+
scopeSource: 'planner_scope_recovery',
|
|
283
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
284
|
+
plannerTitleLikeQueries: ['waterglass', 'water glass'],
|
|
285
|
+
retrievalModes: ['planner_scope_recovery'],
|
|
286
|
+
primarySourcePath: 'Knowledge_Base/waterglass/water glass.md',
|
|
287
|
+
recoveredSourcePaths: ['Knowledge_Base/waterglass/water glass.md'],
|
|
288
|
+
answerMustNotContain: [
|
|
289
|
+
'No scoped knowledge points matched',
|
|
290
|
+
'retrieval_candidates_below_threshold',
|
|
291
|
+
],
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
id: 'conflicting_adjacent_evidence_probe_en',
|
|
296
|
+
description: 'A scoped note with adjacent contradictory tolerance values should degrade as conflict instead of publishing one stable value.',
|
|
297
|
+
preloadTargets: ['ragconflict'],
|
|
298
|
+
activeTarget: 'ragconflict',
|
|
299
|
+
query: 'what is calibration tolerance conflict probe?',
|
|
300
|
+
expected: {
|
|
301
|
+
minCitations: 1,
|
|
302
|
+
scopeSource: 'explicit_request',
|
|
303
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
304
|
+
plannerTitleLikeQueries: ['calibration tolerance conflict probe'],
|
|
305
|
+
primarySourcePath: 'Knowledge_Base/ragconflict/calibration tolerance conflict probe.md',
|
|
306
|
+
answerMustContain: ['calibration tolerance', '+/-0.10 mm', '+/-0.50 mm'],
|
|
307
|
+
answerMustNotContain: [
|
|
308
|
+
'No scoped knowledge points matched',
|
|
309
|
+
'retrieval_candidates_below_threshold',
|
|
310
|
+
'single stable calibration tolerance',
|
|
311
|
+
],
|
|
312
|
+
ragSourceBoundary: 'full_document',
|
|
313
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
314
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
315
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
316
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
317
|
+
expectedRagDeterministic: true,
|
|
318
|
+
expectedRagLlmJudgeUsed: false,
|
|
319
|
+
requireScopedDocumentIds: false,
|
|
320
|
+
},
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
id: 'conflicting_nonadjacent_section_evidence_probe_en',
|
|
324
|
+
description: 'A scoped note with non-adjacent contradictory tolerance values in one section should still degrade as conflict.',
|
|
325
|
+
preloadTargets: ['ragconflict'],
|
|
326
|
+
activeTarget: 'ragconflict',
|
|
327
|
+
query: 'what is remote calibration tolerance conflict probe?',
|
|
328
|
+
expected: {
|
|
329
|
+
minCitations: 1,
|
|
330
|
+
scopeSource: 'explicit_request',
|
|
331
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
332
|
+
plannerTitleLikeQueries: ['remote calibration tolerance conflict probe'],
|
|
333
|
+
primarySourcePath: 'Knowledge_Base/ragconflict/remote calibration tolerance conflict probe.md',
|
|
334
|
+
answerMustContain: ['calibration tolerance', '+/-0.10 mm', '+/-0.50 mm'],
|
|
335
|
+
answerMustNotContain: [
|
|
336
|
+
'No scoped knowledge points matched',
|
|
337
|
+
'retrieval_candidates_below_threshold',
|
|
338
|
+
'single stable calibration tolerance',
|
|
339
|
+
],
|
|
340
|
+
ragSourceBoundary: 'full_document',
|
|
341
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
342
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
343
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
344
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
345
|
+
expectedRagDeterministic: true,
|
|
346
|
+
expectedRagLlmJudgeUsed: false,
|
|
347
|
+
requireScopedDocumentIds: false,
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
id: 'conflicting_release_date_evidence_probe_en',
|
|
352
|
+
description: 'A scoped note with contradictory release dates in one section should degrade as conflict instead of publishing one stable date.',
|
|
353
|
+
preloadTargets: ['ragdateconflict'],
|
|
354
|
+
activeTarget: 'ragdateconflict',
|
|
355
|
+
query: 'what is release date conflict probe?',
|
|
356
|
+
expected: {
|
|
357
|
+
minCitations: 1,
|
|
358
|
+
scopeSource: 'explicit_request',
|
|
359
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
360
|
+
plannerTitleLikeQueries: ['release date conflict probe'],
|
|
361
|
+
primarySourcePath: 'Knowledge_Base/ragdateconflict/release date conflict probe.md',
|
|
362
|
+
answerMustContain: ['migration release date', '2026-07-01', '2026-08-15'],
|
|
363
|
+
answerMustNotContain: [
|
|
364
|
+
'No scoped knowledge points matched',
|
|
365
|
+
'retrieval_candidates_below_threshold',
|
|
366
|
+
'stable migration release date',
|
|
367
|
+
],
|
|
368
|
+
ragSourceBoundary: 'full_document',
|
|
369
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
370
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
371
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
372
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
373
|
+
expectedRagDeterministic: true,
|
|
374
|
+
expectedRagLlmJudgeUsed: false,
|
|
375
|
+
requireScopedDocumentIds: false,
|
|
376
|
+
},
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
id: 'full_document_date_scan_remote_conflict_probe_en',
|
|
380
|
+
description: 'Two scoped release-date documents should be fully scanned for remote date contradictions outside the matched opening spans.',
|
|
381
|
+
preloadTargets: ['ragdatefullscan'],
|
|
382
|
+
activeTarget: 'ragdatefullscan',
|
|
383
|
+
query: 'compare nominal date full scan source with field date full scan source',
|
|
384
|
+
expected: {
|
|
385
|
+
minCitations: 2,
|
|
386
|
+
scopeSource: 'explicit_request',
|
|
387
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
388
|
+
plannerTitleLikeQueries: [
|
|
389
|
+
'nominal date full scan source',
|
|
390
|
+
'field date full scan source',
|
|
391
|
+
],
|
|
392
|
+
primarySourcePath: 'Knowledge_Base/ragdatefullscan/nominal date full scan source.md',
|
|
393
|
+
answerMustContain: ['migration release date', '2026-07-01', '2026-08-15'],
|
|
394
|
+
answerMustNotContain: [
|
|
395
|
+
'No scoped knowledge points matched',
|
|
396
|
+
'retrieval_candidates_below_threshold',
|
|
397
|
+
'stable migration release date',
|
|
398
|
+
],
|
|
399
|
+
ragSourceBoundary: 'full_document',
|
|
400
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
401
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
402
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
403
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
404
|
+
expectedRagDeterministic: true,
|
|
405
|
+
expectedRagLlmJudgeUsed: false,
|
|
406
|
+
requireScopedDocumentIds: false,
|
|
407
|
+
},
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
id: 'conflicting_state_status_evidence_probe_en',
|
|
411
|
+
description: 'A scoped note with contradictory categorical status facts should degrade as conflict instead of publishing one stable status.',
|
|
412
|
+
preloadTargets: ['ragstateconflict'],
|
|
413
|
+
activeTarget: 'ragstateconflict',
|
|
414
|
+
query: 'what is state status conflict probe?',
|
|
415
|
+
expected: {
|
|
416
|
+
minCitations: 1,
|
|
417
|
+
scopeSource: 'explicit_request',
|
|
418
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
419
|
+
plannerTitleLikeQueries: ['state status conflict probe'],
|
|
420
|
+
primarySourcePath: 'Knowledge_Base/ragstateconflict/state status conflict probe.md',
|
|
421
|
+
answerMustContain: ['migration gate status', 'enabled', 'disabled'],
|
|
422
|
+
answerMustNotContain: [
|
|
423
|
+
'No scoped knowledge points matched',
|
|
424
|
+
'retrieval_candidates_below_threshold',
|
|
425
|
+
'stable migration gate status',
|
|
426
|
+
],
|
|
427
|
+
ragSourceBoundary: 'full_document',
|
|
428
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
429
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
430
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
431
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
432
|
+
expectedRagDeterministic: true,
|
|
433
|
+
expectedRagLlmJudgeUsed: false,
|
|
434
|
+
requireScopedDocumentIds: false,
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
id: 'full_document_state_scan_remote_conflict_probe_en',
|
|
439
|
+
description: 'Two scoped state documents should be fully scanned for remote migration-gate status contradictions outside the matched opening spans.',
|
|
440
|
+
preloadTargets: ['ragstatefullscan'],
|
|
441
|
+
activeTarget: 'ragstatefullscan',
|
|
442
|
+
query: 'compare nominal state full scan source with field state full scan source',
|
|
443
|
+
expected: {
|
|
444
|
+
minCitations: 2,
|
|
445
|
+
scopeSource: 'explicit_request',
|
|
446
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
447
|
+
plannerTitleLikeQueries: [
|
|
448
|
+
'nominal state full scan source',
|
|
449
|
+
'field state full scan source',
|
|
450
|
+
],
|
|
451
|
+
primarySourcePath: 'Knowledge_Base/ragstatefullscan/field state full scan source.md',
|
|
452
|
+
answerMustContain: ['migration gate status', 'enabled', 'disabled'],
|
|
453
|
+
answerMustNotContain: [
|
|
454
|
+
'No scoped knowledge points matched',
|
|
455
|
+
'retrieval_candidates_below_threshold',
|
|
456
|
+
'stable migration gate status',
|
|
457
|
+
],
|
|
458
|
+
ragSourceBoundary: 'full_document',
|
|
459
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
460
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
461
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
462
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
463
|
+
expectedRagDeterministic: true,
|
|
464
|
+
expectedRagLlmJudgeUsed: false,
|
|
465
|
+
requireScopedDocumentIds: false,
|
|
466
|
+
},
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
id: 'conflicting_quantity_limit_evidence_probe_en',
|
|
470
|
+
description: 'A scoped note with contradictory unitless operational limits should degrade as conflict instead of publishing one stable limit.',
|
|
471
|
+
preloadTargets: ['ragquantityconflict'],
|
|
472
|
+
activeTarget: 'ragquantityconflict',
|
|
473
|
+
query: 'what is quantity limit conflict probe?',
|
|
474
|
+
expected: {
|
|
475
|
+
minCitations: 1,
|
|
476
|
+
scopeSource: 'explicit_request',
|
|
477
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
478
|
+
plannerTitleLikeQueries: ['quantity limit conflict probe'],
|
|
479
|
+
primarySourcePath: 'Knowledge_Base/ragquantityconflict/quantity limit conflict probe.md',
|
|
480
|
+
answerMustContain: ['retry limit', '3', '5'],
|
|
481
|
+
answerMustNotContain: [
|
|
482
|
+
'No scoped knowledge points matched',
|
|
483
|
+
'retrieval_candidates_below_threshold',
|
|
484
|
+
'stable retry limit',
|
|
485
|
+
],
|
|
486
|
+
ragSourceBoundary: 'full_document',
|
|
487
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
488
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
489
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
490
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
491
|
+
expectedRagDeterministic: true,
|
|
492
|
+
expectedRagLlmJudgeUsed: false,
|
|
493
|
+
requireScopedDocumentIds: false,
|
|
494
|
+
},
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
id: 'full_document_quantity_scan_remote_conflict_probe_en',
|
|
498
|
+
description: 'Two scoped quantity documents should be fully scanned for remote retry-limit contradictions outside the matched opening spans.',
|
|
499
|
+
preloadTargets: ['ragquantityfullscan'],
|
|
500
|
+
activeTarget: 'ragquantityfullscan',
|
|
501
|
+
query: 'compare nominal quantity full scan source with field quantity full scan source',
|
|
502
|
+
expected: {
|
|
503
|
+
minCitations: 2,
|
|
504
|
+
scopeSource: 'explicit_request',
|
|
505
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
506
|
+
plannerTitleLikeQueries: [
|
|
507
|
+
'nominal quantity full scan source',
|
|
508
|
+
'field quantity full scan source',
|
|
509
|
+
],
|
|
510
|
+
primarySourcePath: 'Knowledge_Base/ragquantityfullscan/nominal quantity full scan source.md',
|
|
511
|
+
answerMustContain: ['retry limit', '3', '5'],
|
|
512
|
+
answerMustNotContain: [
|
|
513
|
+
'No scoped knowledge points matched',
|
|
514
|
+
'retrieval_candidates_below_threshold',
|
|
515
|
+
'stable retry limit',
|
|
516
|
+
],
|
|
517
|
+
ragSourceBoundary: 'full_document',
|
|
518
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
519
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
520
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
521
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
522
|
+
expectedRagDeterministic: true,
|
|
523
|
+
expectedRagLlmJudgeUsed: false,
|
|
524
|
+
requireScopedDocumentIds: false,
|
|
525
|
+
},
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
id: 'conflicting_ownership_identity_evidence_probe_en',
|
|
529
|
+
description: 'A scoped note with contradictory ownership identity facts should degrade as conflict instead of publishing one stable owner.',
|
|
530
|
+
preloadTargets: ['ragidentityconflict'],
|
|
531
|
+
activeTarget: 'ragidentityconflict',
|
|
532
|
+
query: 'what is ownership conflict probe?',
|
|
533
|
+
expected: {
|
|
534
|
+
minCitations: 1,
|
|
535
|
+
scopeSource: 'explicit_request',
|
|
536
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
537
|
+
plannerTitleLikeQueries: ['ownership conflict probe'],
|
|
538
|
+
primarySourcePath: 'Knowledge_Base/ragidentityconflict/ownership conflict probe.md',
|
|
539
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'Rollback Team'],
|
|
540
|
+
answerMustNotContain: [
|
|
541
|
+
'No scoped knowledge points matched',
|
|
542
|
+
'retrieval_candidates_below_threshold',
|
|
543
|
+
'stable deployment owner',
|
|
544
|
+
],
|
|
545
|
+
ragSourceBoundary: 'full_document',
|
|
546
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
547
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
548
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
549
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
550
|
+
expectedRagDeterministic: true,
|
|
551
|
+
expectedRagLlmJudgeUsed: false,
|
|
552
|
+
requireScopedDocumentIds: false,
|
|
553
|
+
},
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
id: 'full_document_identity_scan_remote_conflict_probe_en',
|
|
557
|
+
description: 'Two scoped ownership documents should be fully scanned for remote deployment-owner contradictions outside the matched opening spans.',
|
|
558
|
+
preloadTargets: ['ragidentityfullscan'],
|
|
559
|
+
activeTarget: 'ragidentityfullscan',
|
|
560
|
+
query: 'compare nominal owner full scan source with field owner full scan source',
|
|
561
|
+
expected: {
|
|
562
|
+
minCitations: 2,
|
|
563
|
+
scopeSource: 'explicit_request',
|
|
564
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
565
|
+
plannerTitleLikeQueries: [
|
|
566
|
+
'nominal owner full scan source',
|
|
567
|
+
'field owner full scan source',
|
|
568
|
+
],
|
|
569
|
+
primarySourcePath: 'Knowledge_Base/ragidentityfullscan/nominal owner full scan source.md',
|
|
570
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'Rollback Team'],
|
|
571
|
+
answerMustNotContain: [
|
|
572
|
+
'No scoped knowledge points matched',
|
|
573
|
+
'retrieval_candidates_below_threshold',
|
|
574
|
+
'stable deployment owner',
|
|
575
|
+
],
|
|
576
|
+
ragSourceBoundary: 'full_document',
|
|
577
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
578
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
579
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
580
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
581
|
+
expectedRagDeterministic: true,
|
|
582
|
+
expectedRagLlmJudgeUsed: false,
|
|
583
|
+
requireScopedDocumentIds: false,
|
|
584
|
+
},
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
id: 'conflicting_multi_document_ownership_identity_evidence_probe_en',
|
|
588
|
+
description: 'Two scoped documents with contradictory ownership identity facts should degrade as cross-document conflict.',
|
|
589
|
+
preloadTargets: ['ragidentitymulticonflict'],
|
|
590
|
+
activeTarget: 'ragidentitymulticonflict',
|
|
591
|
+
query: 'compare handoff deployment owner conflict probe with rollback deployment owner conflict evidence',
|
|
592
|
+
expected: {
|
|
593
|
+
minCitations: 2,
|
|
594
|
+
scopeSource: 'explicit_request',
|
|
595
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
596
|
+
plannerTitleLikeQueries: [
|
|
597
|
+
'handoff deployment owner conflict probe',
|
|
598
|
+
'rollback deployment owner conflict evidence',
|
|
599
|
+
],
|
|
600
|
+
primarySourcePath: 'Knowledge_Base/ragidentitymulticonflict/handoff deployment owner conflict probe.md',
|
|
601
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'Rollback Team'],
|
|
602
|
+
answerMustNotContain: [
|
|
603
|
+
'No scoped knowledge points matched',
|
|
604
|
+
'retrieval_candidates_below_threshold',
|
|
605
|
+
'stable deployment owner',
|
|
606
|
+
],
|
|
607
|
+
ragSourceBoundary: 'full_document',
|
|
608
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
609
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
610
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
611
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
612
|
+
expectedRagDeterministic: true,
|
|
613
|
+
expectedRagLlmJudgeUsed: false,
|
|
614
|
+
requireScopedDocumentIds: false,
|
|
615
|
+
},
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
id: 'conflicting_endpoint_evidence_probe_en',
|
|
619
|
+
description: 'A scoped note with contradictory controlled endpoint facts should degrade as conflict instead of publishing one stable route.',
|
|
620
|
+
preloadTargets: ['ragendpointconflict'],
|
|
621
|
+
activeTarget: 'ragendpointconflict',
|
|
622
|
+
query: 'what is endpoint conflict probe?',
|
|
623
|
+
expected: {
|
|
624
|
+
minCitations: 1,
|
|
625
|
+
scopeSource: 'explicit_request',
|
|
626
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
627
|
+
plannerTitleLikeQueries: ['endpoint conflict probe'],
|
|
628
|
+
primarySourcePath: 'Knowledge_Base/ragendpointconflict/endpoint conflict probe.md',
|
|
629
|
+
answerMustContain: ['webhook endpoint', '/api/v1/hooks', '/api/v2/hooks'],
|
|
630
|
+
answerMustNotContain: [
|
|
631
|
+
'No scoped knowledge points matched',
|
|
632
|
+
'retrieval_candidates_below_threshold',
|
|
633
|
+
'stable webhook endpoint',
|
|
634
|
+
],
|
|
635
|
+
ragSourceBoundary: 'full_document',
|
|
636
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
637
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
638
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
639
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
640
|
+
expectedRagDeterministic: true,
|
|
641
|
+
expectedRagLlmJudgeUsed: false,
|
|
642
|
+
requireScopedDocumentIds: false,
|
|
643
|
+
},
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
id: 'full_document_endpoint_scan_remote_conflict_probe_en',
|
|
647
|
+
description: 'Two scoped endpoint documents should be fully scanned for remote webhook route contradictions outside the matched opening spans.',
|
|
648
|
+
preloadTargets: ['ragendpointfullscan'],
|
|
649
|
+
activeTarget: 'ragendpointfullscan',
|
|
650
|
+
query: 'compare nominal endpoint full scan source with field endpoint full scan source',
|
|
651
|
+
expected: {
|
|
652
|
+
minCitations: 2,
|
|
653
|
+
scopeSource: 'explicit_request',
|
|
654
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
655
|
+
plannerTitleLikeQueries: [
|
|
656
|
+
'nominal endpoint full scan source',
|
|
657
|
+
'field endpoint full scan source',
|
|
658
|
+
],
|
|
659
|
+
primarySourcePath: 'Knowledge_Base/ragendpointfullscan/nominal endpoint full scan source.md',
|
|
660
|
+
answerMustContain: ['webhook endpoint', '/api/v1/hooks', '/api/v2/hooks'],
|
|
661
|
+
answerMustNotContain: [
|
|
662
|
+
'No scoped knowledge points matched',
|
|
663
|
+
'retrieval_candidates_below_threshold',
|
|
664
|
+
'stable webhook endpoint',
|
|
665
|
+
],
|
|
666
|
+
ragSourceBoundary: 'full_document',
|
|
667
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
668
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
669
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
670
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
671
|
+
expectedRagDeterministic: true,
|
|
672
|
+
expectedRagLlmJudgeUsed: false,
|
|
673
|
+
requireScopedDocumentIds: false,
|
|
674
|
+
},
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
id: 'environment_scoped_endpoint_probe_en',
|
|
678
|
+
description: 'A scoped note with staging and production endpoint facts should retain both environment-qualified routes without degrading as a conflict.',
|
|
679
|
+
preloadTargets: ['ragendpointqualifier'],
|
|
680
|
+
activeTarget: 'ragendpointqualifier',
|
|
681
|
+
query: 'what is environment scoped endpoint probe?',
|
|
682
|
+
expected: {
|
|
683
|
+
minCitations: 1,
|
|
684
|
+
scopeSource: 'explicit_request',
|
|
685
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
686
|
+
plannerTitleLikeQueries: ['environment scoped endpoint probe'],
|
|
687
|
+
primarySourcePath: 'Knowledge_Base/ragendpointqualifier/environment scoped endpoint probe.md',
|
|
688
|
+
answerMustContain: ['webhook endpoint', '/api/staging/hooks', 'staging'],
|
|
689
|
+
answerMustNotContain: [
|
|
690
|
+
'No scoped knowledge points matched',
|
|
691
|
+
'retrieval_candidates_below_threshold',
|
|
692
|
+
'Conflicting evidence',
|
|
693
|
+
'stable webhook endpoint',
|
|
694
|
+
'immediate predecessors',
|
|
695
|
+
'likely next nodes',
|
|
696
|
+
],
|
|
697
|
+
ragSourceBoundary: 'full_document',
|
|
698
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
699
|
+
forbiddenRagRoles: ['conflict'],
|
|
700
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
701
|
+
acceptedRagDegradationStates: ['none'],
|
|
702
|
+
expectedRagDeterministic: true,
|
|
703
|
+
expectedRagLlmJudgeUsed: false,
|
|
704
|
+
requireScopedDocumentIds: false,
|
|
705
|
+
},
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
id: 'conflicting_dependency_evidence_probe_en',
|
|
709
|
+
description: 'A scoped note with contradictory controlled dependency facts should degrade as conflict instead of publishing one stable dependency.',
|
|
710
|
+
preloadTargets: ['ragdependencyconflict'],
|
|
711
|
+
activeTarget: 'ragdependencyconflict',
|
|
712
|
+
query: 'what is dependency conflict probe?',
|
|
713
|
+
expected: {
|
|
714
|
+
minCitations: 1,
|
|
715
|
+
scopeSource: 'explicit_request',
|
|
716
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
717
|
+
plannerTitleLikeQueries: ['dependency conflict probe'],
|
|
718
|
+
primarySourcePath: 'Knowledge_Base/ragdependencyconflict/dependency conflict probe.md',
|
|
719
|
+
answerMustContain: ['storage dependency', 'SQLite', 'PostgreSQL'],
|
|
720
|
+
answerMustNotContain: [
|
|
721
|
+
'No scoped knowledge points matched',
|
|
722
|
+
'retrieval_candidates_below_threshold',
|
|
723
|
+
'stable storage dependency',
|
|
724
|
+
],
|
|
725
|
+
ragSourceBoundary: 'full_document',
|
|
726
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
727
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
728
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
729
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
730
|
+
expectedRagDeterministic: true,
|
|
731
|
+
expectedRagLlmJudgeUsed: false,
|
|
732
|
+
requireScopedDocumentIds: false,
|
|
733
|
+
},
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
id: 'environment_scoped_dependency_probe_en',
|
|
737
|
+
description: 'A scoped note with staging and production dependency facts should retain both environment-qualified dependencies without degrading as a conflict.',
|
|
738
|
+
preloadTargets: ['ragdependencyqualifier'],
|
|
739
|
+
activeTarget: 'ragdependencyqualifier',
|
|
740
|
+
query: 'what is environment scoped dependency probe?',
|
|
741
|
+
expected: {
|
|
742
|
+
minCitations: 1,
|
|
743
|
+
scopeSource: 'explicit_request',
|
|
744
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
745
|
+
plannerTitleLikeQueries: ['environment scoped dependency probe'],
|
|
746
|
+
primarySourcePath: 'Knowledge_Base/ragdependencyqualifier/environment scoped dependency probe.md',
|
|
747
|
+
answerMustContain: ['storage dependency', 'SQLite', 'staging'],
|
|
748
|
+
answerMustNotContain: [
|
|
749
|
+
'No scoped knowledge points matched',
|
|
750
|
+
'retrieval_candidates_below_threshold',
|
|
751
|
+
'Conflicting evidence',
|
|
752
|
+
'stable storage dependency',
|
|
753
|
+
'immediate predecessors',
|
|
754
|
+
'likely next nodes',
|
|
755
|
+
],
|
|
756
|
+
ragSourceBoundary: 'full_document',
|
|
757
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
758
|
+
forbiddenRagRoles: ['conflict'],
|
|
759
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
760
|
+
acceptedRagDegradationStates: ['none'],
|
|
761
|
+
expectedRagDeterministic: true,
|
|
762
|
+
expectedRagLlmJudgeUsed: false,
|
|
763
|
+
requireScopedDocumentIds: false,
|
|
764
|
+
},
|
|
765
|
+
},
|
|
766
|
+
{
|
|
767
|
+
id: 'conflicting_multi_document_dependency_evidence_probe_en',
|
|
768
|
+
description: 'Two scoped documents with contradictory controlled dependency facts should degrade as cross-document conflict.',
|
|
769
|
+
preloadTargets: ['ragdependencymulticonflict'],
|
|
770
|
+
activeTarget: 'ragdependencymulticonflict',
|
|
771
|
+
query: 'compare nominal storage dependency conflict probe with field storage dependency conflict evidence',
|
|
772
|
+
expected: {
|
|
773
|
+
minCitations: 2,
|
|
774
|
+
scopeSource: 'explicit_request',
|
|
775
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
776
|
+
plannerTitleLikeQueries: [
|
|
777
|
+
'nominal storage dependency conflict probe',
|
|
778
|
+
'field storage dependency conflict evidence',
|
|
779
|
+
],
|
|
780
|
+
primarySourcePath: 'Knowledge_Base/ragdependencymulticonflict/nominal storage dependency conflict probe.md',
|
|
781
|
+
answerMustContain: ['storage dependency', 'SQLite', 'PostgreSQL'],
|
|
782
|
+
answerMustNotContain: [
|
|
783
|
+
'No scoped knowledge points matched',
|
|
784
|
+
'retrieval_candidates_below_threshold',
|
|
785
|
+
'stable storage dependency',
|
|
786
|
+
],
|
|
787
|
+
ragSourceBoundary: 'full_document',
|
|
788
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
789
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
790
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
791
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
792
|
+
expectedRagDeterministic: true,
|
|
793
|
+
expectedRagLlmJudgeUsed: false,
|
|
794
|
+
requireScopedDocumentIds: false,
|
|
795
|
+
},
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
id: 'full_document_dependency_scan_remote_conflict_probe_en',
|
|
799
|
+
description: 'Two scoped dependency documents should be fully scanned for remote dependency contradictions outside the matched opening spans.',
|
|
800
|
+
preloadTargets: ['ragdependencyfullscan'],
|
|
801
|
+
activeTarget: 'ragdependencyfullscan',
|
|
802
|
+
query: 'compare nominal dependency full scan source with field dependency full scan source',
|
|
803
|
+
expected: {
|
|
804
|
+
minCitations: 2,
|
|
805
|
+
scopeSource: 'explicit_request',
|
|
806
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
807
|
+
plannerTitleLikeQueries: [
|
|
808
|
+
'nominal dependency full scan source',
|
|
809
|
+
'field dependency full scan source',
|
|
810
|
+
],
|
|
811
|
+
primarySourcePath: 'Knowledge_Base/ragdependencyfullscan/nominal dependency full scan source.md',
|
|
812
|
+
answerMustContain: ['storage dependency', 'SQLite', 'PostgreSQL'],
|
|
813
|
+
answerMustNotContain: [
|
|
814
|
+
'No scoped knowledge points matched',
|
|
815
|
+
'retrieval_candidates_below_threshold',
|
|
816
|
+
'stable storage dependency',
|
|
817
|
+
],
|
|
818
|
+
ragSourceBoundary: 'full_document',
|
|
819
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
820
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
821
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
822
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
823
|
+
expectedRagDeterministic: true,
|
|
824
|
+
expectedRagLlmJudgeUsed: false,
|
|
825
|
+
requireScopedDocumentIds: false,
|
|
826
|
+
},
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
id: 'full_document_format_scan_remote_conflict_probe_en',
|
|
830
|
+
description: 'Two scoped format documents should be fully scanned for remote payload format contradictions outside the matched opening spans.',
|
|
831
|
+
preloadTargets: ['ragformatfullscan'],
|
|
832
|
+
activeTarget: 'ragformatfullscan',
|
|
833
|
+
query: 'compare nominal format full scan source with field format full scan source',
|
|
834
|
+
expected: {
|
|
835
|
+
minCitations: 2,
|
|
836
|
+
scopeSource: 'explicit_request',
|
|
837
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
838
|
+
plannerTitleLikeQueries: [
|
|
839
|
+
'nominal format full scan source',
|
|
840
|
+
'field format full scan source',
|
|
841
|
+
],
|
|
842
|
+
primarySourcePath: 'Knowledge_Base/ragformatfullscan/nominal format full scan source.md',
|
|
843
|
+
answerMustContain: ['payload format', 'JSON', 'YAML'],
|
|
844
|
+
answerMustNotContain: [
|
|
845
|
+
'No scoped knowledge points matched',
|
|
846
|
+
'retrieval_candidates_below_threshold',
|
|
847
|
+
'stable payload format',
|
|
848
|
+
],
|
|
849
|
+
ragSourceBoundary: 'full_document',
|
|
850
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
851
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
852
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
853
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
854
|
+
expectedRagDeterministic: true,
|
|
855
|
+
expectedRagLlmJudgeUsed: false,
|
|
856
|
+
requireScopedDocumentIds: false,
|
|
857
|
+
},
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
id: 'full_document_protocol_scan_remote_conflict_probe_en',
|
|
861
|
+
description: 'Two scoped protocol documents should be fully scanned for remote transport protocol contradictions outside the matched opening spans.',
|
|
862
|
+
preloadTargets: ['ragprotocolfullscan'],
|
|
863
|
+
activeTarget: 'ragprotocolfullscan',
|
|
864
|
+
query: 'compare nominal protocol full scan source with field protocol full scan source',
|
|
865
|
+
expected: {
|
|
866
|
+
minCitations: 2,
|
|
867
|
+
scopeSource: 'explicit_request',
|
|
868
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
869
|
+
plannerTitleLikeQueries: [
|
|
870
|
+
'nominal protocol full scan source',
|
|
871
|
+
'field protocol full scan source',
|
|
872
|
+
],
|
|
873
|
+
primarySourcePath: 'Knowledge_Base/ragprotocolfullscan/nominal protocol full scan source.md',
|
|
874
|
+
answerMustContain: ['transport protocol', 'HTTP/1.1', 'WebSocket'],
|
|
875
|
+
answerMustNotContain: [
|
|
876
|
+
'No scoped knowledge points matched',
|
|
877
|
+
'retrieval_candidates_below_threshold',
|
|
878
|
+
'stable transport protocol',
|
|
879
|
+
],
|
|
880
|
+
ragSourceBoundary: 'full_document',
|
|
881
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
882
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
883
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
884
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
885
|
+
expectedRagDeterministic: true,
|
|
886
|
+
expectedRagLlmJudgeUsed: false,
|
|
887
|
+
requireScopedDocumentIds: false,
|
|
888
|
+
},
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
id: 'full_document_semantic_version_scan_remote_conflict_probe_en',
|
|
892
|
+
description: 'Two scoped semantic-version documents should be fully scanned for remote runtime-version contradictions outside the matched opening spans.',
|
|
893
|
+
preloadTargets: ['ragversionfactfullscan'],
|
|
894
|
+
activeTarget: 'ragversionfactfullscan',
|
|
895
|
+
query: 'compare nominal semantic version full scan source with field semantic version full scan source',
|
|
896
|
+
expected: {
|
|
897
|
+
minCitations: 2,
|
|
898
|
+
scopeSource: 'explicit_request',
|
|
899
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
900
|
+
plannerTitleLikeQueries: [
|
|
901
|
+
'nominal semantic version full scan source',
|
|
902
|
+
'field semantic version full scan source',
|
|
903
|
+
],
|
|
904
|
+
primarySourcePath: 'Knowledge_Base/ragversionfactfullscan/nominal semantic version full scan source.md',
|
|
905
|
+
answerMustContain: ['runtime version', '1.2.0', '2.0.0'],
|
|
906
|
+
answerMustNotContain: [
|
|
907
|
+
'No scoped knowledge points matched',
|
|
908
|
+
'retrieval_candidates_below_threshold',
|
|
909
|
+
'stable runtime version',
|
|
910
|
+
],
|
|
911
|
+
ragSourceBoundary: 'full_document',
|
|
912
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
913
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
914
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
915
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
916
|
+
expectedRagDeterministic: true,
|
|
917
|
+
expectedRagLlmJudgeUsed: false,
|
|
918
|
+
requireScopedDocumentIds: false,
|
|
919
|
+
},
|
|
920
|
+
},
|
|
921
|
+
{
|
|
922
|
+
id: 'conflicting_format_evidence_probe_en',
|
|
923
|
+
description: 'A scoped note with contradictory controlled format facts should degrade as conflict instead of publishing one stable payload format.',
|
|
924
|
+
preloadTargets: ['ragformatconflict'],
|
|
925
|
+
activeTarget: 'ragformatconflict',
|
|
926
|
+
query: 'what is format conflict probe?',
|
|
927
|
+
expected: {
|
|
928
|
+
minCitations: 1,
|
|
929
|
+
scopeSource: 'explicit_request',
|
|
930
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
931
|
+
plannerTitleLikeQueries: ['format conflict probe'],
|
|
932
|
+
primarySourcePath: 'Knowledge_Base/ragformatconflict/format conflict probe.md',
|
|
933
|
+
answerMustContain: ['payload format', 'JSON', 'YAML'],
|
|
934
|
+
answerMustNotContain: [
|
|
935
|
+
'No scoped knowledge points matched',
|
|
936
|
+
'retrieval_candidates_below_threshold',
|
|
937
|
+
'stable payload format',
|
|
938
|
+
],
|
|
939
|
+
ragSourceBoundary: 'full_document',
|
|
940
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
941
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
942
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
943
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
944
|
+
expectedRagDeterministic: true,
|
|
945
|
+
expectedRagLlmJudgeUsed: false,
|
|
946
|
+
requireScopedDocumentIds: false,
|
|
947
|
+
},
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
id: 'environment_scoped_format_probe_en',
|
|
951
|
+
description: 'A scoped note with staging and production format facts should retain both environment-qualified formats without degrading as a conflict.',
|
|
952
|
+
preloadTargets: ['ragformatqualifier'],
|
|
953
|
+
activeTarget: 'ragformatqualifier',
|
|
954
|
+
query: 'what is environment scoped format probe?',
|
|
955
|
+
expected: {
|
|
956
|
+
minCitations: 1,
|
|
957
|
+
scopeSource: 'explicit_request',
|
|
958
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
959
|
+
plannerTitleLikeQueries: ['environment scoped format probe'],
|
|
960
|
+
primarySourcePath: 'Knowledge_Base/ragformatqualifier/environment scoped format probe.md',
|
|
961
|
+
answerMustContain: ['payload format', 'JSON', 'staging'],
|
|
962
|
+
answerMustNotContain: [
|
|
963
|
+
'No scoped knowledge points matched',
|
|
964
|
+
'retrieval_candidates_below_threshold',
|
|
965
|
+
'Conflicting evidence',
|
|
966
|
+
'stable payload format',
|
|
967
|
+
'immediate predecessors',
|
|
968
|
+
'likely next nodes',
|
|
969
|
+
],
|
|
970
|
+
ragSourceBoundary: 'full_document',
|
|
971
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
972
|
+
forbiddenRagRoles: ['conflict'],
|
|
973
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
974
|
+
acceptedRagDegradationStates: ['none'],
|
|
975
|
+
expectedRagDeterministic: true,
|
|
976
|
+
expectedRagLlmJudgeUsed: false,
|
|
977
|
+
requireScopedDocumentIds: false,
|
|
978
|
+
},
|
|
979
|
+
},
|
|
980
|
+
{
|
|
981
|
+
id: 'conflicting_protocol_evidence_probe_en',
|
|
982
|
+
description: 'A scoped note with contradictory controlled protocol facts should degrade as conflict instead of publishing one stable transport protocol.',
|
|
983
|
+
preloadTargets: ['ragprotocolconflict'],
|
|
984
|
+
activeTarget: 'ragprotocolconflict',
|
|
985
|
+
query: 'what is protocol conflict probe?',
|
|
986
|
+
expected: {
|
|
987
|
+
minCitations: 1,
|
|
988
|
+
scopeSource: 'explicit_request',
|
|
989
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
990
|
+
plannerTitleLikeQueries: ['protocol conflict probe'],
|
|
991
|
+
primarySourcePath: 'Knowledge_Base/ragprotocolconflict/protocol conflict probe.md',
|
|
992
|
+
answerMustContain: ['transport protocol', 'HTTP/1.1', 'WebSocket'],
|
|
993
|
+
answerMustNotContain: [
|
|
994
|
+
'No scoped knowledge points matched',
|
|
995
|
+
'retrieval_candidates_below_threshold',
|
|
996
|
+
'stable transport protocol',
|
|
997
|
+
],
|
|
998
|
+
ragSourceBoundary: 'full_document',
|
|
999
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
1000
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
1001
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
1002
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
1003
|
+
expectedRagDeterministic: true,
|
|
1004
|
+
expectedRagLlmJudgeUsed: false,
|
|
1005
|
+
requireScopedDocumentIds: false,
|
|
1006
|
+
},
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
id: 'conflicting_semantic_version_evidence_probe_en',
|
|
1010
|
+
description: 'A scoped note with contradictory controlled semantic-version facts should degrade as conflict instead of publishing one stable runtime version.',
|
|
1011
|
+
preloadTargets: ['ragversionfactconflict'],
|
|
1012
|
+
activeTarget: 'ragversionfactconflict',
|
|
1013
|
+
query: 'what is semantic version conflict probe?',
|
|
1014
|
+
expected: {
|
|
1015
|
+
minCitations: 1,
|
|
1016
|
+
scopeSource: 'explicit_request',
|
|
1017
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1018
|
+
plannerTitleLikeQueries: ['semantic version conflict probe'],
|
|
1019
|
+
primarySourcePath: 'Knowledge_Base/ragversionfactconflict/semantic version conflict probe.md',
|
|
1020
|
+
answerMustContain: ['runtime version', '1.2.0', '2.0.0'],
|
|
1021
|
+
answerMustNotContain: [
|
|
1022
|
+
'No scoped knowledge points matched',
|
|
1023
|
+
'retrieval_candidates_below_threshold',
|
|
1024
|
+
'stable runtime version',
|
|
1025
|
+
],
|
|
1026
|
+
ragSourceBoundary: 'full_document',
|
|
1027
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
1028
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
1029
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
1030
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
1031
|
+
expectedRagDeterministic: true,
|
|
1032
|
+
expectedRagLlmJudgeUsed: false,
|
|
1033
|
+
requireScopedDocumentIds: false,
|
|
1034
|
+
},
|
|
1035
|
+
},
|
|
1036
|
+
{
|
|
1037
|
+
id: 'conflicting_service_port_evidence_probe_en',
|
|
1038
|
+
description: 'A scoped note with contradictory controlled service-port facts should degrade as conflict instead of publishing one stable listener port.',
|
|
1039
|
+
preloadTargets: ['ragportconflict'],
|
|
1040
|
+
activeTarget: 'ragportconflict',
|
|
1041
|
+
query: 'what is service port conflict probe?',
|
|
1042
|
+
expected: {
|
|
1043
|
+
minCitations: 1,
|
|
1044
|
+
scopeSource: 'explicit_request',
|
|
1045
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1046
|
+
plannerTitleLikeQueries: ['service port conflict probe'],
|
|
1047
|
+
primarySourcePath: 'Knowledge_Base/ragportconflict/service port conflict probe.md',
|
|
1048
|
+
answerMustContain: ['service port', '443', '8443'],
|
|
1049
|
+
answerMustNotContain: [
|
|
1050
|
+
'No scoped knowledge points matched',
|
|
1051
|
+
'retrieval_candidates_below_threshold',
|
|
1052
|
+
'stable service port',
|
|
1053
|
+
],
|
|
1054
|
+
ragSourceBoundary: 'full_document',
|
|
1055
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
1056
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
1057
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
1058
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
1059
|
+
expectedRagDeterministic: true,
|
|
1060
|
+
expectedRagLlmJudgeUsed: false,
|
|
1061
|
+
requireScopedDocumentIds: false,
|
|
1062
|
+
},
|
|
1063
|
+
},
|
|
1064
|
+
{
|
|
1065
|
+
id: 'full_document_service_port_scan_remote_conflict_probe_en',
|
|
1066
|
+
description: 'Two scoped service-port documents should be fully scanned for remote listener-port contradictions outside the matched opening spans.',
|
|
1067
|
+
preloadTargets: ['ragportfullscan'],
|
|
1068
|
+
activeTarget: 'ragportfullscan',
|
|
1069
|
+
query: 'compare nominal service port full scan source with field service port full scan source',
|
|
1070
|
+
expected: {
|
|
1071
|
+
minCitations: 2,
|
|
1072
|
+
scopeSource: 'explicit_request',
|
|
1073
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1074
|
+
plannerTitleLikeQueries: [
|
|
1075
|
+
'nominal service port full scan source',
|
|
1076
|
+
'field service port full scan source',
|
|
1077
|
+
],
|
|
1078
|
+
primarySourcePath: 'Knowledge_Base/ragportfullscan/field service port full scan source.md',
|
|
1079
|
+
answerMustContain: ['service port', '443', '8443'],
|
|
1080
|
+
answerMustNotContain: [
|
|
1081
|
+
'No scoped knowledge points matched',
|
|
1082
|
+
'retrieval_candidates_below_threshold',
|
|
1083
|
+
'stable service port',
|
|
1084
|
+
],
|
|
1085
|
+
ragSourceBoundary: 'full_document',
|
|
1086
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
1087
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
1088
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
1089
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
1090
|
+
expectedRagDeterministic: true,
|
|
1091
|
+
expectedRagLlmJudgeUsed: false,
|
|
1092
|
+
requireScopedDocumentIds: false,
|
|
1093
|
+
},
|
|
1094
|
+
},
|
|
1095
|
+
{
|
|
1096
|
+
id: 'conflicting_response_status_code_evidence_probe_en',
|
|
1097
|
+
description: 'A scoped note with contradictory controlled response-status-code facts should degrade as conflict instead of publishing one stable HTTP status.',
|
|
1098
|
+
preloadTargets: ['ragstatuscodeconflict'],
|
|
1099
|
+
activeTarget: 'ragstatuscodeconflict',
|
|
1100
|
+
query: 'what is response status code conflict probe?',
|
|
1101
|
+
expected: {
|
|
1102
|
+
minCitations: 1,
|
|
1103
|
+
scopeSource: 'explicit_request',
|
|
1104
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1105
|
+
plannerTitleLikeQueries: ['response status code conflict probe'],
|
|
1106
|
+
primarySourcePath: 'Knowledge_Base/ragstatuscodeconflict/response status code conflict probe.md',
|
|
1107
|
+
answerMustContain: ['response status code', '200', '503'],
|
|
1108
|
+
answerMustNotContain: [
|
|
1109
|
+
'No scoped knowledge points matched',
|
|
1110
|
+
'retrieval_candidates_below_threshold',
|
|
1111
|
+
'stable response status code',
|
|
1112
|
+
],
|
|
1113
|
+
ragSourceBoundary: 'full_document',
|
|
1114
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
1115
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
1116
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
1117
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
1118
|
+
expectedRagDeterministic: true,
|
|
1119
|
+
expectedRagLlmJudgeUsed: false,
|
|
1120
|
+
requireScopedDocumentIds: false,
|
|
1121
|
+
},
|
|
1122
|
+
},
|
|
1123
|
+
{
|
|
1124
|
+
id: 'full_document_response_status_code_scan_remote_conflict_probe_en',
|
|
1125
|
+
description: 'Two scoped response-status-code documents should be fully scanned for remote HTTP status contradictions outside the matched opening spans.',
|
|
1126
|
+
preloadTargets: ['ragstatuscodefullscan'],
|
|
1127
|
+
activeTarget: 'ragstatuscodefullscan',
|
|
1128
|
+
query: 'compare nominal response status code full scan source with field response status code full scan source',
|
|
1129
|
+
expected: {
|
|
1130
|
+
minCitations: 2,
|
|
1131
|
+
scopeSource: 'explicit_request',
|
|
1132
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1133
|
+
plannerTitleLikeQueries: [
|
|
1134
|
+
'nominal response status code full scan source',
|
|
1135
|
+
'field response status code full scan source',
|
|
1136
|
+
],
|
|
1137
|
+
primarySourcePath: 'Knowledge_Base/ragstatuscodefullscan/field response status code full scan source.md',
|
|
1138
|
+
answerMustContain: ['response status code', '200', '503'],
|
|
1139
|
+
answerMustNotContain: [
|
|
1140
|
+
'No scoped knowledge points matched',
|
|
1141
|
+
'retrieval_candidates_below_threshold',
|
|
1142
|
+
'stable response status code',
|
|
1143
|
+
],
|
|
1144
|
+
ragSourceBoundary: 'full_document',
|
|
1145
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
1146
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
1147
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
1148
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
1149
|
+
expectedRagDeterministic: true,
|
|
1150
|
+
expectedRagLlmJudgeUsed: false,
|
|
1151
|
+
requireScopedDocumentIds: false,
|
|
1152
|
+
},
|
|
1153
|
+
},
|
|
1154
|
+
{
|
|
1155
|
+
id: 'environment_scoped_protocol_probe_en',
|
|
1156
|
+
description: 'A scoped note with staging and production protocol facts should retain both environment-qualified protocols without degrading as a conflict.',
|
|
1157
|
+
preloadTargets: ['ragprotocolqualifier'],
|
|
1158
|
+
activeTarget: 'ragprotocolqualifier',
|
|
1159
|
+
query: 'what is environment scoped protocol probe?',
|
|
1160
|
+
expected: {
|
|
1161
|
+
minCitations: 1,
|
|
1162
|
+
scopeSource: 'explicit_request',
|
|
1163
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1164
|
+
plannerTitleLikeQueries: ['environment scoped protocol probe'],
|
|
1165
|
+
primarySourcePath: 'Knowledge_Base/ragprotocolqualifier/environment scoped protocol probe.md',
|
|
1166
|
+
answerMustContain: ['transport protocol', 'HTTP/2', 'staging'],
|
|
1167
|
+
answerMustNotContain: [
|
|
1168
|
+
'No scoped knowledge points matched',
|
|
1169
|
+
'retrieval_candidates_below_threshold',
|
|
1170
|
+
'Conflicting evidence',
|
|
1171
|
+
'stable transport protocol',
|
|
1172
|
+
'immediate predecessors',
|
|
1173
|
+
'likely next nodes',
|
|
1174
|
+
],
|
|
1175
|
+
ragSourceBoundary: 'full_document',
|
|
1176
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1177
|
+
forbiddenRagRoles: ['conflict'],
|
|
1178
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1179
|
+
acceptedRagDegradationStates: ['none'],
|
|
1180
|
+
expectedRagDeterministic: true,
|
|
1181
|
+
expectedRagLlmJudgeUsed: false,
|
|
1182
|
+
requireScopedDocumentIds: false,
|
|
1183
|
+
},
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
id: 'version_scoped_dependency_probe_en',
|
|
1187
|
+
description: 'A scoped note with version-specific dependency facts should retain both dependencies without degrading as a conflict.',
|
|
1188
|
+
preloadTargets: ['ragdependencyversionqualifier'],
|
|
1189
|
+
activeTarget: 'ragdependencyversionqualifier',
|
|
1190
|
+
query: 'what is version scoped dependency probe?',
|
|
1191
|
+
expected: {
|
|
1192
|
+
minCitations: 1,
|
|
1193
|
+
scopeSource: 'explicit_request',
|
|
1194
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1195
|
+
plannerTitleLikeQueries: ['version scoped dependency probe'],
|
|
1196
|
+
primarySourcePath: 'Knowledge_Base/ragdependencyversionqualifier/version scoped dependency probe.md',
|
|
1197
|
+
answerMustContain: ['storage dependency', 'SQLite', 'version 1.0'],
|
|
1198
|
+
answerMustNotContain: [
|
|
1199
|
+
'No scoped knowledge points matched',
|
|
1200
|
+
'retrieval_candidates_below_threshold',
|
|
1201
|
+
'Conflicting evidence',
|
|
1202
|
+
'stable storage dependency',
|
|
1203
|
+
'immediate predecessors',
|
|
1204
|
+
'likely next nodes',
|
|
1205
|
+
],
|
|
1206
|
+
ragSourceBoundary: 'full_document',
|
|
1207
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1208
|
+
forbiddenRagRoles: ['conflict'],
|
|
1209
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1210
|
+
acceptedRagDegradationStates: ['none'],
|
|
1211
|
+
expectedRagDeterministic: true,
|
|
1212
|
+
expectedRagLlmJudgeUsed: false,
|
|
1213
|
+
requireScopedDocumentIds: false,
|
|
1214
|
+
},
|
|
1215
|
+
},
|
|
1216
|
+
{
|
|
1217
|
+
id: 'cross_document_environment_scoped_ownership_identity_probe_en',
|
|
1218
|
+
description: 'Two scoped documents with environment-specific owner facts should retain both facts without degrading as a cross-document conflict.',
|
|
1219
|
+
preloadTargets: ['ragconditionownercrossscope'],
|
|
1220
|
+
activeTarget: 'ragconditionownercrossscope',
|
|
1221
|
+
query: 'compare cross environment staging owner source with cross environment production owner source',
|
|
1222
|
+
expected: {
|
|
1223
|
+
minCitations: 2,
|
|
1224
|
+
scopeSource: 'explicit_request',
|
|
1225
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1226
|
+
plannerTitleLikeQueries: [
|
|
1227
|
+
'cross environment staging owner source',
|
|
1228
|
+
'cross environment production owner source',
|
|
1229
|
+
],
|
|
1230
|
+
primarySourcePath: 'Knowledge_Base/ragconditionownercrossscope/cross environment staging owner source.md',
|
|
1231
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'Rollback Team', 'staging', 'production'],
|
|
1232
|
+
answerMustNotContain: [
|
|
1233
|
+
'No scoped knowledge points matched',
|
|
1234
|
+
'retrieval_candidates_below_threshold',
|
|
1235
|
+
'Conflicting evidence',
|
|
1236
|
+
'stable deployment owner',
|
|
1237
|
+
'immediate predecessors',
|
|
1238
|
+
'likely next nodes',
|
|
1239
|
+
],
|
|
1240
|
+
ragSourceBoundary: 'full_document',
|
|
1241
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1242
|
+
forbiddenRagRoles: ['conflict'],
|
|
1243
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1244
|
+
acceptedRagDegradationStates: ['none'],
|
|
1245
|
+
expectedRagDeterministic: true,
|
|
1246
|
+
expectedRagLlmJudgeUsed: false,
|
|
1247
|
+
requireScopedDocumentIds: false,
|
|
1248
|
+
},
|
|
1249
|
+
},
|
|
1250
|
+
{
|
|
1251
|
+
id: 'cross_document_version_scoped_ownership_identity_probe_en',
|
|
1252
|
+
description: 'Two scoped documents with version-specific owner facts should retain both facts without degrading as a cross-document conflict.',
|
|
1253
|
+
preloadTargets: ['ragconditionownercrossscope'],
|
|
1254
|
+
activeTarget: 'ragconditionownercrossscope',
|
|
1255
|
+
query: 'compare cross version one owner source with cross version two owner source',
|
|
1256
|
+
expected: {
|
|
1257
|
+
minCitations: 2,
|
|
1258
|
+
scopeSource: 'explicit_request',
|
|
1259
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1260
|
+
plannerTitleLikeQueries: [
|
|
1261
|
+
'cross version one owner source',
|
|
1262
|
+
'cross version two owner source',
|
|
1263
|
+
],
|
|
1264
|
+
primarySourcePath: 'Knowledge_Base/ragconditionownercrossscope/cross version one owner source.md',
|
|
1265
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'Rollback Team', 'version 1.0', 'version 2.0'],
|
|
1266
|
+
answerMustNotContain: [
|
|
1267
|
+
'No scoped knowledge points matched',
|
|
1268
|
+
'retrieval_candidates_below_threshold',
|
|
1269
|
+
'Conflicting evidence',
|
|
1270
|
+
'stable deployment owner',
|
|
1271
|
+
'immediate predecessors',
|
|
1272
|
+
'likely next nodes',
|
|
1273
|
+
],
|
|
1274
|
+
ragSourceBoundary: 'full_document',
|
|
1275
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1276
|
+
forbiddenRagRoles: ['conflict'],
|
|
1277
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1278
|
+
acceptedRagDegradationStates: ['none'],
|
|
1279
|
+
expectedRagDeterministic: true,
|
|
1280
|
+
expectedRagLlmJudgeUsed: false,
|
|
1281
|
+
requireScopedDocumentIds: false,
|
|
1282
|
+
},
|
|
1283
|
+
},
|
|
1284
|
+
{
|
|
1285
|
+
id: 'cross_document_platform_scoped_ownership_identity_probe_en',
|
|
1286
|
+
description: 'Two scoped documents with platform-specific owner facts should retain both facts without degrading as a cross-document conflict.',
|
|
1287
|
+
preloadTargets: ['ragconditionownercrossscope'],
|
|
1288
|
+
activeTarget: 'ragconditionownercrossscope',
|
|
1289
|
+
query: 'compare cross platform windows owner source with cross platform android owner source',
|
|
1290
|
+
expected: {
|
|
1291
|
+
minCitations: 2,
|
|
1292
|
+
scopeSource: 'explicit_request',
|
|
1293
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1294
|
+
plannerTitleLikeQueries: [
|
|
1295
|
+
'cross platform windows owner source',
|
|
1296
|
+
'cross platform android owner source',
|
|
1297
|
+
],
|
|
1298
|
+
primarySourcePath: 'Knowledge_Base/ragconditionownercrossscope/cross platform windows owner source.md',
|
|
1299
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'Rollback Team', 'Windows', 'Android'],
|
|
1300
|
+
answerMustNotContain: [
|
|
1301
|
+
'No scoped knowledge points matched',
|
|
1302
|
+
'retrieval_candidates_below_threshold',
|
|
1303
|
+
'Conflicting evidence',
|
|
1304
|
+
'stable deployment owner',
|
|
1305
|
+
'immediate predecessors',
|
|
1306
|
+
'likely next nodes',
|
|
1307
|
+
],
|
|
1308
|
+
ragSourceBoundary: 'full_document',
|
|
1309
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1310
|
+
forbiddenRagRoles: ['conflict'],
|
|
1311
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1312
|
+
acceptedRagDegradationStates: ['none'],
|
|
1313
|
+
expectedRagDeterministic: true,
|
|
1314
|
+
expectedRagLlmJudgeUsed: false,
|
|
1315
|
+
requireScopedDocumentIds: false,
|
|
1316
|
+
},
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
id: 'cross_document_environment_scoped_quantity_limit_probe_en',
|
|
1320
|
+
description: 'Two scoped documents with environment-specific retry-limit facts should retain both quantities without degrading as a cross-document conflict.',
|
|
1321
|
+
preloadTargets: ['ragconditionquantitycrossscope'],
|
|
1322
|
+
activeTarget: 'ragconditionquantitycrossscope',
|
|
1323
|
+
query: 'compare cross environment staging retry limit source with cross environment production retry limit source',
|
|
1324
|
+
expected: {
|
|
1325
|
+
minCitations: 2,
|
|
1326
|
+
scopeSource: 'explicit_request',
|
|
1327
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1328
|
+
plannerTitleLikeQueries: [
|
|
1329
|
+
'cross environment staging retry limit source',
|
|
1330
|
+
'cross environment production retry limit source',
|
|
1331
|
+
],
|
|
1332
|
+
primarySourcePath: 'Knowledge_Base/ragconditionquantitycrossscope/cross environment staging retry limit source.md',
|
|
1333
|
+
answerMustContain: ['retry limit', '3', '5', 'staging', 'production'],
|
|
1334
|
+
answerMustNotContain: [
|
|
1335
|
+
'No scoped knowledge points matched',
|
|
1336
|
+
'retrieval_candidates_below_threshold',
|
|
1337
|
+
'Conflicting evidence',
|
|
1338
|
+
'stable retry limit',
|
|
1339
|
+
'immediate predecessors',
|
|
1340
|
+
'likely next nodes',
|
|
1341
|
+
],
|
|
1342
|
+
ragSourceBoundary: 'full_document',
|
|
1343
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1344
|
+
forbiddenRagRoles: ['conflict'],
|
|
1345
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1346
|
+
acceptedRagDegradationStates: ['none'],
|
|
1347
|
+
expectedRagDeterministic: true,
|
|
1348
|
+
expectedRagLlmJudgeUsed: false,
|
|
1349
|
+
requireScopedDocumentIds: false,
|
|
1350
|
+
},
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
id: 'cross_document_environment_scoped_state_status_probe_en',
|
|
1354
|
+
description: 'Two scoped documents with environment-specific state facts should retain both statuses without degrading as a cross-document conflict.',
|
|
1355
|
+
preloadTargets: ['ragconditionstatecrossscope'],
|
|
1356
|
+
activeTarget: 'ragconditionstatecrossscope',
|
|
1357
|
+
query: 'compare cross environment staging state source with cross environment production state source',
|
|
1358
|
+
expected: {
|
|
1359
|
+
minCitations: 2,
|
|
1360
|
+
scopeSource: 'explicit_request',
|
|
1361
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1362
|
+
plannerTitleLikeQueries: [
|
|
1363
|
+
'cross environment staging state source',
|
|
1364
|
+
'cross environment production state source',
|
|
1365
|
+
],
|
|
1366
|
+
primarySourcePath: 'Knowledge_Base/ragconditionstatecrossscope/cross environment staging state source.md',
|
|
1367
|
+
answerMustContain: ['migration gate status', 'enabled', 'disabled', 'staging', 'production'],
|
|
1368
|
+
answerMustNotContain: [
|
|
1369
|
+
'No scoped knowledge points matched',
|
|
1370
|
+
'retrieval_candidates_below_threshold',
|
|
1371
|
+
'Conflicting evidence',
|
|
1372
|
+
'stable migration gate status',
|
|
1373
|
+
'immediate predecessors',
|
|
1374
|
+
'likely next nodes',
|
|
1375
|
+
],
|
|
1376
|
+
ragSourceBoundary: 'full_document',
|
|
1377
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1378
|
+
forbiddenRagRoles: ['conflict'],
|
|
1379
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1380
|
+
acceptedRagDegradationStates: ['none'],
|
|
1381
|
+
expectedRagDeterministic: true,
|
|
1382
|
+
expectedRagLlmJudgeUsed: false,
|
|
1383
|
+
requireScopedDocumentIds: false,
|
|
1384
|
+
},
|
|
1385
|
+
},
|
|
1386
|
+
{
|
|
1387
|
+
id: 'cross_document_version_scoped_state_status_probe_en',
|
|
1388
|
+
description: 'Two scoped documents with version-specific state facts should retain both statuses without degrading as a cross-document conflict.',
|
|
1389
|
+
preloadTargets: ['ragconditionstatecrossscope'],
|
|
1390
|
+
activeTarget: 'ragconditionstatecrossscope',
|
|
1391
|
+
query: 'compare cross version one state source with cross version two state source',
|
|
1392
|
+
expected: {
|
|
1393
|
+
minCitations: 2,
|
|
1394
|
+
scopeSource: 'explicit_request',
|
|
1395
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1396
|
+
plannerTitleLikeQueries: [
|
|
1397
|
+
'cross version one state source',
|
|
1398
|
+
'cross version two state source',
|
|
1399
|
+
],
|
|
1400
|
+
primarySourcePath: 'Knowledge_Base/ragconditionstatecrossscope/cross version one state source.md',
|
|
1401
|
+
answerMustContain: ['migration gate status', 'enabled', 'disabled', 'version 1.0', 'version 2.0'],
|
|
1402
|
+
answerMustNotContain: [
|
|
1403
|
+
'No scoped knowledge points matched',
|
|
1404
|
+
'retrieval_candidates_below_threshold',
|
|
1405
|
+
'Conflicting evidence',
|
|
1406
|
+
'stable migration gate status',
|
|
1407
|
+
'immediate predecessors',
|
|
1408
|
+
'likely next nodes',
|
|
1409
|
+
],
|
|
1410
|
+
ragSourceBoundary: 'full_document',
|
|
1411
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1412
|
+
forbiddenRagRoles: ['conflict'],
|
|
1413
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1414
|
+
acceptedRagDegradationStates: ['none'],
|
|
1415
|
+
expectedRagDeterministic: true,
|
|
1416
|
+
expectedRagLlmJudgeUsed: false,
|
|
1417
|
+
requireScopedDocumentIds: false,
|
|
1418
|
+
},
|
|
1419
|
+
},
|
|
1420
|
+
{
|
|
1421
|
+
id: 'cross_document_platform_scoped_state_status_probe_en',
|
|
1422
|
+
description: 'Two scoped documents with platform-specific state facts should retain both statuses without degrading as a cross-document conflict.',
|
|
1423
|
+
preloadTargets: ['ragconditionstatecrossscope'],
|
|
1424
|
+
activeTarget: 'ragconditionstatecrossscope',
|
|
1425
|
+
query: 'compare cross platform windows state source with cross platform android state source',
|
|
1426
|
+
expected: {
|
|
1427
|
+
minCitations: 2,
|
|
1428
|
+
scopeSource: 'explicit_request',
|
|
1429
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1430
|
+
plannerTitleLikeQueries: [
|
|
1431
|
+
'cross platform windows state source',
|
|
1432
|
+
'cross platform android state source',
|
|
1433
|
+
],
|
|
1434
|
+
primarySourcePath: 'Knowledge_Base/ragconditionstatecrossscope/cross platform windows state source.md',
|
|
1435
|
+
answerMustContain: ['migration gate status', 'enabled', 'disabled', 'Windows', 'Android'],
|
|
1436
|
+
answerMustNotContain: [
|
|
1437
|
+
'No scoped knowledge points matched',
|
|
1438
|
+
'retrieval_candidates_below_threshold',
|
|
1439
|
+
'Conflicting evidence',
|
|
1440
|
+
'stable migration gate status',
|
|
1441
|
+
'immediate predecessors',
|
|
1442
|
+
'likely next nodes',
|
|
1443
|
+
],
|
|
1444
|
+
ragSourceBoundary: 'full_document',
|
|
1445
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1446
|
+
forbiddenRagRoles: ['conflict'],
|
|
1447
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1448
|
+
acceptedRagDegradationStates: ['none'],
|
|
1449
|
+
expectedRagDeterministic: true,
|
|
1450
|
+
expectedRagLlmJudgeUsed: false,
|
|
1451
|
+
requireScopedDocumentIds: false,
|
|
1452
|
+
},
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
id: 'cross_document_environment_scoped_endpoint_probe_en',
|
|
1456
|
+
description: 'Two scoped documents with environment-specific endpoint facts should retain both routes without degrading as a cross-document conflict.',
|
|
1457
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1458
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1459
|
+
query: 'compare cross environment staging endpoint source with cross environment production endpoint source',
|
|
1460
|
+
expected: {
|
|
1461
|
+
minCitations: 2,
|
|
1462
|
+
scopeSource: 'explicit_request',
|
|
1463
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1464
|
+
plannerTitleLikeQueries: [
|
|
1465
|
+
'cross environment staging endpoint source',
|
|
1466
|
+
'cross environment production endpoint source',
|
|
1467
|
+
],
|
|
1468
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross environment staging endpoint source.md',
|
|
1469
|
+
answerMustContain: ['webhook endpoint', '/api/staging/hooks', '/api/production/hooks', 'staging', 'production'],
|
|
1470
|
+
answerMustNotContain: [
|
|
1471
|
+
'No scoped knowledge points matched',
|
|
1472
|
+
'retrieval_candidates_below_threshold',
|
|
1473
|
+
'Conflicting evidence',
|
|
1474
|
+
'stable webhook endpoint',
|
|
1475
|
+
'immediate predecessors',
|
|
1476
|
+
'likely next nodes',
|
|
1477
|
+
],
|
|
1478
|
+
ragSourceBoundary: 'full_document',
|
|
1479
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1480
|
+
forbiddenRagRoles: ['conflict'],
|
|
1481
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1482
|
+
acceptedRagDegradationStates: ['none'],
|
|
1483
|
+
expectedRagDeterministic: true,
|
|
1484
|
+
expectedRagLlmJudgeUsed: false,
|
|
1485
|
+
requireScopedDocumentIds: false,
|
|
1486
|
+
},
|
|
1487
|
+
},
|
|
1488
|
+
{
|
|
1489
|
+
id: 'cross_document_version_scoped_endpoint_probe_en',
|
|
1490
|
+
description: 'Two scoped documents with version-specific endpoint facts should retain both routes without degrading as a cross-document conflict.',
|
|
1491
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1492
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1493
|
+
query: 'compare cross version one endpoint source with cross version two endpoint source',
|
|
1494
|
+
expected: {
|
|
1495
|
+
minCitations: 2,
|
|
1496
|
+
scopeSource: 'explicit_request',
|
|
1497
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1498
|
+
plannerTitleLikeQueries: [
|
|
1499
|
+
'cross version one endpoint source',
|
|
1500
|
+
'cross version two endpoint source',
|
|
1501
|
+
],
|
|
1502
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross version one endpoint source.md',
|
|
1503
|
+
answerMustContain: ['webhook endpoint', '/api/release-one/hooks', '/api/release-two/hooks', 'version 1.0', 'version 2.0'],
|
|
1504
|
+
answerMustNotContain: [
|
|
1505
|
+
'No scoped knowledge points matched',
|
|
1506
|
+
'retrieval_candidates_below_threshold',
|
|
1507
|
+
'Conflicting evidence',
|
|
1508
|
+
'stable webhook endpoint',
|
|
1509
|
+
'immediate predecessors',
|
|
1510
|
+
'likely next nodes',
|
|
1511
|
+
],
|
|
1512
|
+
ragSourceBoundary: 'full_document',
|
|
1513
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1514
|
+
forbiddenRagRoles: ['conflict'],
|
|
1515
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1516
|
+
acceptedRagDegradationStates: ['none'],
|
|
1517
|
+
expectedRagDeterministic: true,
|
|
1518
|
+
expectedRagLlmJudgeUsed: false,
|
|
1519
|
+
requireScopedDocumentIds: false,
|
|
1520
|
+
},
|
|
1521
|
+
},
|
|
1522
|
+
{
|
|
1523
|
+
id: 'cross_document_platform_scoped_endpoint_probe_en',
|
|
1524
|
+
description: 'Two scoped documents with platform-specific endpoint facts should retain both routes without degrading as a cross-document conflict.',
|
|
1525
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1526
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1527
|
+
query: 'compare cross platform windows endpoint source with cross platform android endpoint source',
|
|
1528
|
+
expected: {
|
|
1529
|
+
minCitations: 2,
|
|
1530
|
+
scopeSource: 'explicit_request',
|
|
1531
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1532
|
+
plannerTitleLikeQueries: [
|
|
1533
|
+
'cross platform windows endpoint source',
|
|
1534
|
+
'cross platform android endpoint source',
|
|
1535
|
+
],
|
|
1536
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross platform windows endpoint source.md',
|
|
1537
|
+
answerMustContain: ['webhook endpoint', '/api/windows/hooks', '/api/android/hooks', 'Windows', 'Android'],
|
|
1538
|
+
answerMustNotContain: [
|
|
1539
|
+
'No scoped knowledge points matched',
|
|
1540
|
+
'retrieval_candidates_below_threshold',
|
|
1541
|
+
'Conflicting evidence',
|
|
1542
|
+
'stable webhook endpoint',
|
|
1543
|
+
'immediate predecessors',
|
|
1544
|
+
'likely next nodes',
|
|
1545
|
+
],
|
|
1546
|
+
ragSourceBoundary: 'full_document',
|
|
1547
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1548
|
+
forbiddenRagRoles: ['conflict'],
|
|
1549
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1550
|
+
acceptedRagDegradationStates: ['none'],
|
|
1551
|
+
expectedRagDeterministic: true,
|
|
1552
|
+
expectedRagLlmJudgeUsed: false,
|
|
1553
|
+
requireScopedDocumentIds: false,
|
|
1554
|
+
},
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
id: 'cross_document_environment_scoped_format_probe_en',
|
|
1558
|
+
description: 'Two scoped documents with environment-specific format facts should retain both formats without degrading as a cross-document conflict.',
|
|
1559
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1560
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1561
|
+
query: 'compare cross environment staging format source with cross environment production format source',
|
|
1562
|
+
expected: {
|
|
1563
|
+
minCitations: 2,
|
|
1564
|
+
scopeSource: 'explicit_request',
|
|
1565
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1566
|
+
plannerTitleLikeQueries: [
|
|
1567
|
+
'cross environment staging format source',
|
|
1568
|
+
'cross environment production format source',
|
|
1569
|
+
],
|
|
1570
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross environment staging format source.md',
|
|
1571
|
+
answerMustContain: ['payload format', 'JSON', 'XML', 'staging', 'production'],
|
|
1572
|
+
answerMustNotContain: [
|
|
1573
|
+
'No scoped knowledge points matched',
|
|
1574
|
+
'retrieval_candidates_below_threshold',
|
|
1575
|
+
'Conflicting evidence',
|
|
1576
|
+
'stable payload format',
|
|
1577
|
+
'immediate predecessors',
|
|
1578
|
+
'likely next nodes',
|
|
1579
|
+
],
|
|
1580
|
+
ragSourceBoundary: 'full_document',
|
|
1581
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1582
|
+
forbiddenRagRoles: ['conflict'],
|
|
1583
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1584
|
+
acceptedRagDegradationStates: ['none'],
|
|
1585
|
+
expectedRagDeterministic: true,
|
|
1586
|
+
expectedRagLlmJudgeUsed: false,
|
|
1587
|
+
requireScopedDocumentIds: false,
|
|
1588
|
+
},
|
|
1589
|
+
},
|
|
1590
|
+
{
|
|
1591
|
+
id: 'cross_document_version_scoped_format_probe_en',
|
|
1592
|
+
description: 'Two scoped documents with version-specific format facts should retain both formats without degrading as a cross-document conflict.',
|
|
1593
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1594
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1595
|
+
query: 'compare cross version one format source with cross version two format source',
|
|
1596
|
+
expected: {
|
|
1597
|
+
minCitations: 2,
|
|
1598
|
+
scopeSource: 'explicit_request',
|
|
1599
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1600
|
+
plannerTitleLikeQueries: [
|
|
1601
|
+
'cross version one format source',
|
|
1602
|
+
'cross version two format source',
|
|
1603
|
+
],
|
|
1604
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross version one format source.md',
|
|
1605
|
+
answerMustContain: ['payload format', 'JSON', 'XML', 'version 1.0', 'version 2.0'],
|
|
1606
|
+
answerMustNotContain: [
|
|
1607
|
+
'No scoped knowledge points matched',
|
|
1608
|
+
'retrieval_candidates_below_threshold',
|
|
1609
|
+
'Conflicting evidence',
|
|
1610
|
+
'stable payload format',
|
|
1611
|
+
'immediate predecessors',
|
|
1612
|
+
'likely next nodes',
|
|
1613
|
+
],
|
|
1614
|
+
ragSourceBoundary: 'full_document',
|
|
1615
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1616
|
+
forbiddenRagRoles: ['conflict'],
|
|
1617
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1618
|
+
acceptedRagDegradationStates: ['none'],
|
|
1619
|
+
expectedRagDeterministic: true,
|
|
1620
|
+
expectedRagLlmJudgeUsed: false,
|
|
1621
|
+
requireScopedDocumentIds: false,
|
|
1622
|
+
},
|
|
1623
|
+
},
|
|
1624
|
+
{
|
|
1625
|
+
id: 'cross_document_platform_scoped_format_probe_en',
|
|
1626
|
+
description: 'Two scoped documents with platform-specific format facts should retain both formats without degrading as a cross-document conflict.',
|
|
1627
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1628
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1629
|
+
query: 'compare cross platform windows format source with cross platform android format source',
|
|
1630
|
+
expected: {
|
|
1631
|
+
minCitations: 2,
|
|
1632
|
+
scopeSource: 'explicit_request',
|
|
1633
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1634
|
+
plannerTitleLikeQueries: [
|
|
1635
|
+
'cross platform windows format source',
|
|
1636
|
+
'cross platform android format source',
|
|
1637
|
+
],
|
|
1638
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross platform windows format source.md',
|
|
1639
|
+
answerMustContain: ['payload format', 'JSON', 'XML', 'Windows', 'Android'],
|
|
1640
|
+
answerMustNotContain: [
|
|
1641
|
+
'No scoped knowledge points matched',
|
|
1642
|
+
'retrieval_candidates_below_threshold',
|
|
1643
|
+
'Conflicting evidence',
|
|
1644
|
+
'stable payload format',
|
|
1645
|
+
'immediate predecessors',
|
|
1646
|
+
'likely next nodes',
|
|
1647
|
+
],
|
|
1648
|
+
ragSourceBoundary: 'full_document',
|
|
1649
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1650
|
+
forbiddenRagRoles: ['conflict'],
|
|
1651
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1652
|
+
acceptedRagDegradationStates: ['none'],
|
|
1653
|
+
expectedRagDeterministic: true,
|
|
1654
|
+
expectedRagLlmJudgeUsed: false,
|
|
1655
|
+
requireScopedDocumentIds: false,
|
|
1656
|
+
},
|
|
1657
|
+
},
|
|
1658
|
+
{
|
|
1659
|
+
id: 'cross_document_environment_scoped_protocol_probe_en',
|
|
1660
|
+
description: 'Two scoped documents with environment-specific protocol facts should retain both protocols without degrading as a cross-document conflict.',
|
|
1661
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1662
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1663
|
+
query: 'compare cross environment staging protocol source with cross environment production protocol source',
|
|
1664
|
+
expected: {
|
|
1665
|
+
minCitations: 2,
|
|
1666
|
+
scopeSource: 'explicit_request',
|
|
1667
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1668
|
+
plannerTitleLikeQueries: [
|
|
1669
|
+
'cross environment staging protocol source',
|
|
1670
|
+
'cross environment production protocol source',
|
|
1671
|
+
],
|
|
1672
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross environment production protocol source.md',
|
|
1673
|
+
answerMustContain: ['transport protocol', 'HTTP/2', 'gRPC', 'staging', 'production'],
|
|
1674
|
+
answerMustNotContain: [
|
|
1675
|
+
'No scoped knowledge points matched',
|
|
1676
|
+
'retrieval_candidates_below_threshold',
|
|
1677
|
+
'Conflicting evidence',
|
|
1678
|
+
'stable transport protocol',
|
|
1679
|
+
'immediate predecessors',
|
|
1680
|
+
'likely next nodes',
|
|
1681
|
+
],
|
|
1682
|
+
ragSourceBoundary: 'full_document',
|
|
1683
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1684
|
+
forbiddenRagRoles: ['conflict'],
|
|
1685
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1686
|
+
acceptedRagDegradationStates: ['none'],
|
|
1687
|
+
expectedRagDeterministic: true,
|
|
1688
|
+
expectedRagLlmJudgeUsed: false,
|
|
1689
|
+
requireScopedDocumentIds: false,
|
|
1690
|
+
},
|
|
1691
|
+
},
|
|
1692
|
+
{
|
|
1693
|
+
id: 'cross_document_version_scoped_protocol_probe_en',
|
|
1694
|
+
description: 'Two scoped documents with version-specific protocol facts should retain both protocols without degrading as a cross-document conflict.',
|
|
1695
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1696
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1697
|
+
query: 'compare cross version one protocol source with cross version two protocol source',
|
|
1698
|
+
expected: {
|
|
1699
|
+
minCitations: 2,
|
|
1700
|
+
scopeSource: 'explicit_request',
|
|
1701
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1702
|
+
plannerTitleLikeQueries: [
|
|
1703
|
+
'cross version one protocol source',
|
|
1704
|
+
'cross version two protocol source',
|
|
1705
|
+
],
|
|
1706
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross version two protocol source.md',
|
|
1707
|
+
answerMustContain: ['transport protocol', 'HTTP/2', 'gRPC', 'version 1.0', 'version 2.0'],
|
|
1708
|
+
answerMustNotContain: [
|
|
1709
|
+
'No scoped knowledge points matched',
|
|
1710
|
+
'retrieval_candidates_below_threshold',
|
|
1711
|
+
'Conflicting evidence',
|
|
1712
|
+
'stable transport protocol',
|
|
1713
|
+
'immediate predecessors',
|
|
1714
|
+
'likely next nodes',
|
|
1715
|
+
],
|
|
1716
|
+
ragSourceBoundary: 'full_document',
|
|
1717
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1718
|
+
forbiddenRagRoles: ['conflict'],
|
|
1719
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1720
|
+
acceptedRagDegradationStates: ['none'],
|
|
1721
|
+
expectedRagDeterministic: true,
|
|
1722
|
+
expectedRagLlmJudgeUsed: false,
|
|
1723
|
+
requireScopedDocumentIds: false,
|
|
1724
|
+
},
|
|
1725
|
+
},
|
|
1726
|
+
{
|
|
1727
|
+
id: 'cross_document_platform_scoped_protocol_probe_en',
|
|
1728
|
+
description: 'Two scoped documents with platform-specific protocol facts should retain both protocols without degrading as a cross-document conflict.',
|
|
1729
|
+
preloadTargets: ['ragconditioninterfacecrossscope'],
|
|
1730
|
+
activeTarget: 'ragconditioninterfacecrossscope',
|
|
1731
|
+
query: 'compare cross platform windows protocol source with cross platform android protocol source',
|
|
1732
|
+
expected: {
|
|
1733
|
+
minCitations: 2,
|
|
1734
|
+
scopeSource: 'explicit_request',
|
|
1735
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1736
|
+
plannerTitleLikeQueries: [
|
|
1737
|
+
'cross platform windows protocol source',
|
|
1738
|
+
'cross platform android protocol source',
|
|
1739
|
+
],
|
|
1740
|
+
primarySourcePath: 'Knowledge_Base/ragconditioninterfacecrossscope/cross platform android protocol source.md',
|
|
1741
|
+
answerMustContain: ['transport protocol', 'HTTP/2', 'gRPC', 'Windows', 'Android'],
|
|
1742
|
+
answerMustNotContain: [
|
|
1743
|
+
'No scoped knowledge points matched',
|
|
1744
|
+
'retrieval_candidates_below_threshold',
|
|
1745
|
+
'Conflicting evidence',
|
|
1746
|
+
'stable transport protocol',
|
|
1747
|
+
'immediate predecessors',
|
|
1748
|
+
'likely next nodes',
|
|
1749
|
+
],
|
|
1750
|
+
ragSourceBoundary: 'full_document',
|
|
1751
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1752
|
+
forbiddenRagRoles: ['conflict'],
|
|
1753
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1754
|
+
acceptedRagDegradationStates: ['none'],
|
|
1755
|
+
expectedRagDeterministic: true,
|
|
1756
|
+
expectedRagLlmJudgeUsed: false,
|
|
1757
|
+
requireScopedDocumentIds: false,
|
|
1758
|
+
},
|
|
1759
|
+
},
|
|
1760
|
+
{
|
|
1761
|
+
id: 'cross_document_environment_scoped_semantic_version_probe_en',
|
|
1762
|
+
description: 'Two scoped documents with environment-specific semantic-version facts should retain both runtime versions without degrading as a cross-document conflict.',
|
|
1763
|
+
preloadTargets: ['ragconditionversionfactcrossscope'],
|
|
1764
|
+
activeTarget: 'ragconditionversionfactcrossscope',
|
|
1765
|
+
query: 'compare cross environment staging runtime version source with cross environment production runtime version source',
|
|
1766
|
+
expected: {
|
|
1767
|
+
minCitations: 2,
|
|
1768
|
+
scopeSource: 'explicit_request',
|
|
1769
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1770
|
+
plannerTitleLikeQueries: [
|
|
1771
|
+
'cross environment staging runtime version source',
|
|
1772
|
+
'cross environment production runtime version source',
|
|
1773
|
+
],
|
|
1774
|
+
primarySourcePath: 'Knowledge_Base/ragconditionversionfactcrossscope/cross environment production runtime version source.md',
|
|
1775
|
+
answerMustContain: ['runtime version', '1.2.0', '2.0.0', 'staging', 'production'],
|
|
1776
|
+
answerMustNotContain: [
|
|
1777
|
+
'No scoped knowledge points matched',
|
|
1778
|
+
'retrieval_candidates_below_threshold',
|
|
1779
|
+
'Conflicting evidence',
|
|
1780
|
+
'stable runtime version',
|
|
1781
|
+
'immediate predecessors',
|
|
1782
|
+
'likely next nodes',
|
|
1783
|
+
],
|
|
1784
|
+
ragSourceBoundary: 'full_document',
|
|
1785
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1786
|
+
forbiddenRagRoles: ['conflict'],
|
|
1787
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1788
|
+
acceptedRagDegradationStates: ['none'],
|
|
1789
|
+
expectedRagDeterministic: true,
|
|
1790
|
+
expectedRagLlmJudgeUsed: false,
|
|
1791
|
+
requireScopedDocumentIds: false,
|
|
1792
|
+
},
|
|
1793
|
+
},
|
|
1794
|
+
{
|
|
1795
|
+
id: 'cross_document_environment_scoped_service_port_probe_en',
|
|
1796
|
+
description: 'Two scoped documents with environment-specific service-port facts should retain both listener ports without degrading as a cross-document conflict.',
|
|
1797
|
+
preloadTargets: ['ragconditionportcrossscope'],
|
|
1798
|
+
activeTarget: 'ragconditionportcrossscope',
|
|
1799
|
+
query: 'compare cross environment staging service port source with cross environment production service port source',
|
|
1800
|
+
expected: {
|
|
1801
|
+
minCitations: 2,
|
|
1802
|
+
scopeSource: 'explicit_request',
|
|
1803
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1804
|
+
plannerTitleLikeQueries: [
|
|
1805
|
+
'cross environment staging service port source',
|
|
1806
|
+
'cross environment production service port source',
|
|
1807
|
+
],
|
|
1808
|
+
primarySourcePath: 'Knowledge_Base/ragconditionportcrossscope/cross environment staging service port source.md',
|
|
1809
|
+
answerMustContain: ['service port', '443', '8443', 'staging', 'production'],
|
|
1810
|
+
answerMustNotContain: [
|
|
1811
|
+
'No scoped knowledge points matched',
|
|
1812
|
+
'retrieval_candidates_below_threshold',
|
|
1813
|
+
'Conflicting evidence',
|
|
1814
|
+
'stable service port',
|
|
1815
|
+
'immediate predecessors',
|
|
1816
|
+
'likely next nodes',
|
|
1817
|
+
],
|
|
1818
|
+
ragSourceBoundary: 'full_document',
|
|
1819
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1820
|
+
forbiddenRagRoles: ['conflict'],
|
|
1821
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1822
|
+
acceptedRagDegradationStates: ['none'],
|
|
1823
|
+
expectedRagDeterministic: true,
|
|
1824
|
+
expectedRagLlmJudgeUsed: false,
|
|
1825
|
+
requireScopedDocumentIds: false,
|
|
1826
|
+
},
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
id: 'cross_document_environment_scoped_response_status_code_probe_en',
|
|
1830
|
+
description: 'Two scoped documents with environment-specific response-status-code facts should retain both HTTP statuses without degrading as a cross-document conflict.',
|
|
1831
|
+
preloadTargets: ['ragconditionstatuscodecrossscope'],
|
|
1832
|
+
activeTarget: 'ragconditionstatuscodecrossscope',
|
|
1833
|
+
query: 'compare cross environment staging response status code source with cross environment production response status code source',
|
|
1834
|
+
expected: {
|
|
1835
|
+
minCitations: 2,
|
|
1836
|
+
scopeSource: 'explicit_request',
|
|
1837
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1838
|
+
plannerTitleLikeQueries: [
|
|
1839
|
+
'cross environment staging response status code source',
|
|
1840
|
+
'cross environment production response status code source',
|
|
1841
|
+
],
|
|
1842
|
+
primarySourcePath: 'Knowledge_Base/ragconditionstatuscodecrossscope/cross environment staging response status code source.md',
|
|
1843
|
+
answerMustContain: ['response status code', '200', '503', 'staging', 'production'],
|
|
1844
|
+
answerMustNotContain: [
|
|
1845
|
+
'No scoped knowledge points matched',
|
|
1846
|
+
'retrieval_candidates_below_threshold',
|
|
1847
|
+
'Conflicting evidence',
|
|
1848
|
+
'stable response status code',
|
|
1849
|
+
'immediate predecessors',
|
|
1850
|
+
'likely next nodes',
|
|
1851
|
+
],
|
|
1852
|
+
ragSourceBoundary: 'full_document',
|
|
1853
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1854
|
+
forbiddenRagRoles: ['conflict'],
|
|
1855
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1856
|
+
acceptedRagDegradationStates: ['none'],
|
|
1857
|
+
expectedRagDeterministic: true,
|
|
1858
|
+
expectedRagLlmJudgeUsed: false,
|
|
1859
|
+
requireScopedDocumentIds: false,
|
|
1860
|
+
},
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
id: 'cross_document_environment_scoped_dependency_probe_en',
|
|
1864
|
+
description: 'Two scoped documents with environment-specific dependency facts should retain both dependencies without degrading as a cross-document conflict.',
|
|
1865
|
+
preloadTargets: ['ragconditiondependencycrossscope'],
|
|
1866
|
+
activeTarget: 'ragconditiondependencycrossscope',
|
|
1867
|
+
query: 'compare cross environment staging dependency source with cross environment production dependency source',
|
|
1868
|
+
expected: {
|
|
1869
|
+
minCitations: 2,
|
|
1870
|
+
scopeSource: 'explicit_request',
|
|
1871
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1872
|
+
plannerTitleLikeQueries: [
|
|
1873
|
+
'cross environment staging dependency source',
|
|
1874
|
+
'cross environment production dependency source',
|
|
1875
|
+
],
|
|
1876
|
+
primarySourcePath: 'Knowledge_Base/ragconditiondependencycrossscope/cross environment staging dependency source.md',
|
|
1877
|
+
answerMustContain: ['storage dependency', 'SQLite', 'PostgreSQL', 'staging', 'production'],
|
|
1878
|
+
answerMustNotContain: [
|
|
1879
|
+
'No scoped knowledge points matched',
|
|
1880
|
+
'retrieval_candidates_below_threshold',
|
|
1881
|
+
'Conflicting evidence',
|
|
1882
|
+
'stable storage dependency',
|
|
1883
|
+
'immediate predecessors',
|
|
1884
|
+
'likely next nodes',
|
|
1885
|
+
],
|
|
1886
|
+
ragSourceBoundary: 'full_document',
|
|
1887
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1888
|
+
forbiddenRagRoles: ['conflict'],
|
|
1889
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1890
|
+
acceptedRagDegradationStates: ['none'],
|
|
1891
|
+
expectedRagDeterministic: true,
|
|
1892
|
+
expectedRagLlmJudgeUsed: false,
|
|
1893
|
+
requireScopedDocumentIds: false,
|
|
1894
|
+
},
|
|
1895
|
+
},
|
|
1896
|
+
{
|
|
1897
|
+
id: 'cross_document_version_scoped_dependency_probe_en',
|
|
1898
|
+
description: 'Two scoped documents with version-specific dependency facts should retain both dependencies without degrading as a cross-document conflict.',
|
|
1899
|
+
preloadTargets: ['ragconditiondependencycrossscope'],
|
|
1900
|
+
activeTarget: 'ragconditiondependencycrossscope',
|
|
1901
|
+
query: 'compare cross version one dependency source with cross version two dependency source',
|
|
1902
|
+
expected: {
|
|
1903
|
+
minCitations: 2,
|
|
1904
|
+
scopeSource: 'explicit_request',
|
|
1905
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1906
|
+
plannerTitleLikeQueries: [
|
|
1907
|
+
'cross version one dependency source',
|
|
1908
|
+
'cross version two dependency source',
|
|
1909
|
+
],
|
|
1910
|
+
primarySourcePath: 'Knowledge_Base/ragconditiondependencycrossscope/cross version one dependency source.md',
|
|
1911
|
+
answerMustContain: ['storage dependency', 'SQLite', 'PostgreSQL', 'version 1.0', 'version 2.0'],
|
|
1912
|
+
answerMustNotContain: [
|
|
1913
|
+
'No scoped knowledge points matched',
|
|
1914
|
+
'retrieval_candidates_below_threshold',
|
|
1915
|
+
'Conflicting evidence',
|
|
1916
|
+
'stable storage dependency',
|
|
1917
|
+
'immediate predecessors',
|
|
1918
|
+
'likely next nodes',
|
|
1919
|
+
],
|
|
1920
|
+
ragSourceBoundary: 'full_document',
|
|
1921
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1922
|
+
forbiddenRagRoles: ['conflict'],
|
|
1923
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1924
|
+
acceptedRagDegradationStates: ['none'],
|
|
1925
|
+
expectedRagDeterministic: true,
|
|
1926
|
+
expectedRagLlmJudgeUsed: false,
|
|
1927
|
+
requireScopedDocumentIds: false,
|
|
1928
|
+
},
|
|
1929
|
+
},
|
|
1930
|
+
{
|
|
1931
|
+
id: 'cross_document_platform_scoped_dependency_probe_en',
|
|
1932
|
+
description: 'Two scoped documents with platform-specific dependency facts should retain both dependencies without degrading as a cross-document conflict.',
|
|
1933
|
+
preloadTargets: ['ragconditiondependencycrossscope'],
|
|
1934
|
+
activeTarget: 'ragconditiondependencycrossscope',
|
|
1935
|
+
query: 'compare cross platform windows dependency source with cross platform android dependency source',
|
|
1936
|
+
expected: {
|
|
1937
|
+
minCitations: 2,
|
|
1938
|
+
scopeSource: 'explicit_request',
|
|
1939
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1940
|
+
plannerTitleLikeQueries: [
|
|
1941
|
+
'cross platform windows dependency source',
|
|
1942
|
+
'cross platform android dependency source',
|
|
1943
|
+
],
|
|
1944
|
+
primarySourcePath: 'Knowledge_Base/ragconditiondependencycrossscope/cross platform windows dependency source.md',
|
|
1945
|
+
answerMustContain: ['storage dependency', 'SQLite', 'PostgreSQL', 'Windows', 'Android'],
|
|
1946
|
+
answerMustNotContain: [
|
|
1947
|
+
'No scoped knowledge points matched',
|
|
1948
|
+
'retrieval_candidates_below_threshold',
|
|
1949
|
+
'Conflicting evidence',
|
|
1950
|
+
'stable storage dependency',
|
|
1951
|
+
'immediate predecessors',
|
|
1952
|
+
'likely next nodes',
|
|
1953
|
+
],
|
|
1954
|
+
ragSourceBoundary: 'full_document',
|
|
1955
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1956
|
+
forbiddenRagRoles: ['conflict'],
|
|
1957
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1958
|
+
acceptedRagDegradationStates: ['none'],
|
|
1959
|
+
expectedRagDeterministic: true,
|
|
1960
|
+
expectedRagLlmJudgeUsed: false,
|
|
1961
|
+
requireScopedDocumentIds: false,
|
|
1962
|
+
},
|
|
1963
|
+
},
|
|
1964
|
+
{
|
|
1965
|
+
id: 'cross_document_version_scoped_quantity_limit_probe_en',
|
|
1966
|
+
description: 'Two scoped documents with version-specific retry-limit facts should retain both quantities without degrading as a cross-document conflict.',
|
|
1967
|
+
preloadTargets: ['ragconditionquantitycrossscope'],
|
|
1968
|
+
activeTarget: 'ragconditionquantitycrossscope',
|
|
1969
|
+
query: 'compare cross version one retry limit source with cross version two retry limit source',
|
|
1970
|
+
expected: {
|
|
1971
|
+
minCitations: 2,
|
|
1972
|
+
scopeSource: 'explicit_request',
|
|
1973
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
1974
|
+
plannerTitleLikeQueries: [
|
|
1975
|
+
'cross version one retry limit source',
|
|
1976
|
+
'cross version two retry limit source',
|
|
1977
|
+
],
|
|
1978
|
+
primarySourcePath: 'Knowledge_Base/ragconditionquantitycrossscope/cross version one retry limit source.md',
|
|
1979
|
+
answerMustContain: ['retry limit', '3', '5', 'version 1.0', 'version 2.0'],
|
|
1980
|
+
answerMustNotContain: [
|
|
1981
|
+
'No scoped knowledge points matched',
|
|
1982
|
+
'retrieval_candidates_below_threshold',
|
|
1983
|
+
'Conflicting evidence',
|
|
1984
|
+
'stable retry limit',
|
|
1985
|
+
'immediate predecessors',
|
|
1986
|
+
'likely next nodes',
|
|
1987
|
+
],
|
|
1988
|
+
ragSourceBoundary: 'full_document',
|
|
1989
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
1990
|
+
forbiddenRagRoles: ['conflict'],
|
|
1991
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
1992
|
+
acceptedRagDegradationStates: ['none'],
|
|
1993
|
+
expectedRagDeterministic: true,
|
|
1994
|
+
expectedRagLlmJudgeUsed: false,
|
|
1995
|
+
requireScopedDocumentIds: false,
|
|
1996
|
+
},
|
|
1997
|
+
},
|
|
1998
|
+
{
|
|
1999
|
+
id: 'cross_document_platform_scoped_quantity_limit_probe_en',
|
|
2000
|
+
description: 'Two scoped documents with platform-specific retry-limit facts should retain both quantities without degrading as a cross-document conflict.',
|
|
2001
|
+
preloadTargets: ['ragconditionquantitycrossscope'],
|
|
2002
|
+
activeTarget: 'ragconditionquantitycrossscope',
|
|
2003
|
+
query: 'compare cross platform windows retry limit source with cross platform android retry limit source',
|
|
2004
|
+
expected: {
|
|
2005
|
+
minCitations: 2,
|
|
2006
|
+
scopeSource: 'explicit_request',
|
|
2007
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2008
|
+
plannerTitleLikeQueries: [
|
|
2009
|
+
'cross platform windows retry limit source',
|
|
2010
|
+
'cross platform android retry limit source',
|
|
2011
|
+
],
|
|
2012
|
+
primarySourcePath: 'Knowledge_Base/ragconditionquantitycrossscope/cross platform windows retry limit source.md',
|
|
2013
|
+
answerMustContain: ['retry limit', '3', '5', 'Windows', 'Android'],
|
|
2014
|
+
answerMustNotContain: [
|
|
2015
|
+
'No scoped knowledge points matched',
|
|
2016
|
+
'retrieval_candidates_below_threshold',
|
|
2017
|
+
'Conflicting evidence',
|
|
2018
|
+
'stable retry limit',
|
|
2019
|
+
'immediate predecessors',
|
|
2020
|
+
'likely next nodes',
|
|
2021
|
+
],
|
|
2022
|
+
ragSourceBoundary: 'full_document',
|
|
2023
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2024
|
+
forbiddenRagRoles: ['conflict'],
|
|
2025
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2026
|
+
acceptedRagDegradationStates: ['none'],
|
|
2027
|
+
expectedRagDeterministic: true,
|
|
2028
|
+
expectedRagLlmJudgeUsed: false,
|
|
2029
|
+
requireScopedDocumentIds: false,
|
|
2030
|
+
},
|
|
2031
|
+
},
|
|
2032
|
+
{
|
|
2033
|
+
id: 'conflicting_location_evidence_probe_en',
|
|
2034
|
+
description: 'A scoped note with contradictory controlled location facts should degrade as conflict instead of publishing one stable location.',
|
|
2035
|
+
preloadTargets: ['raglocationconflict'],
|
|
2036
|
+
activeTarget: 'raglocationconflict',
|
|
2037
|
+
query: 'what is location conflict probe?',
|
|
2038
|
+
expected: {
|
|
2039
|
+
minCitations: 1,
|
|
2040
|
+
scopeSource: 'explicit_request',
|
|
2041
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2042
|
+
plannerTitleLikeQueries: ['location conflict probe'],
|
|
2043
|
+
primarySourcePath: 'Knowledge_Base/raglocationconflict/location conflict probe.md',
|
|
2044
|
+
answerMustContain: ['control module location', 'Rack A', 'Rack B'],
|
|
2045
|
+
answerMustNotContain: [
|
|
2046
|
+
'No scoped knowledge points matched',
|
|
2047
|
+
'retrieval_candidates_below_threshold',
|
|
2048
|
+
'stable control module location',
|
|
2049
|
+
],
|
|
2050
|
+
ragSourceBoundary: 'full_document',
|
|
2051
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
2052
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
2053
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
2054
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2055
|
+
expectedRagDeterministic: true,
|
|
2056
|
+
expectedRagLlmJudgeUsed: false,
|
|
2057
|
+
requireScopedDocumentIds: false,
|
|
2058
|
+
},
|
|
2059
|
+
},
|
|
2060
|
+
{
|
|
2061
|
+
id: 'full_document_location_scan_remote_conflict_probe_en',
|
|
2062
|
+
description: 'Two scoped location documents should be fully scanned for remote placement contradictions outside the matched opening spans.',
|
|
2063
|
+
preloadTargets: ['raglocationfullscan'],
|
|
2064
|
+
activeTarget: 'raglocationfullscan',
|
|
2065
|
+
query: 'compare nominal location full scan source with field location full scan source',
|
|
2066
|
+
expected: {
|
|
2067
|
+
minCitations: 2,
|
|
2068
|
+
scopeSource: 'explicit_request',
|
|
2069
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2070
|
+
plannerTitleLikeQueries: [
|
|
2071
|
+
'nominal location full scan source',
|
|
2072
|
+
'field location full scan source',
|
|
2073
|
+
],
|
|
2074
|
+
primarySourcePath: 'Knowledge_Base/raglocationfullscan/nominal location full scan source.md',
|
|
2075
|
+
answerMustContain: ['control module location', 'Rack A', 'Rack B'],
|
|
2076
|
+
answerMustNotContain: [
|
|
2077
|
+
'No scoped knowledge points matched',
|
|
2078
|
+
'retrieval_candidates_below_threshold',
|
|
2079
|
+
'stable control module location',
|
|
2080
|
+
],
|
|
2081
|
+
ragSourceBoundary: 'full_document',
|
|
2082
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
2083
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
2084
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
2085
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2086
|
+
expectedRagDeterministic: true,
|
|
2087
|
+
expectedRagLlmJudgeUsed: false,
|
|
2088
|
+
requireScopedDocumentIds: false,
|
|
2089
|
+
},
|
|
2090
|
+
},
|
|
2091
|
+
{
|
|
2092
|
+
id: 'temporal_scoped_state_status_probe_en',
|
|
2093
|
+
description: 'A scoped note with current and historical status facts should retain both facts without degrading as a conflict.',
|
|
2094
|
+
preloadTargets: ['ragtemporalqualifier'],
|
|
2095
|
+
activeTarget: 'ragtemporalqualifier',
|
|
2096
|
+
query: 'what is temporal state status probe?',
|
|
2097
|
+
expected: {
|
|
2098
|
+
minCitations: 1,
|
|
2099
|
+
scopeSource: 'explicit_request',
|
|
2100
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2101
|
+
plannerTitleLikeQueries: ['temporal state status probe'],
|
|
2102
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalqualifier/temporal state status probe.md',
|
|
2103
|
+
answerMustContain: ['migration gate status', 'enabled', 'current'],
|
|
2104
|
+
answerMustNotContain: [
|
|
2105
|
+
'No scoped knowledge points matched',
|
|
2106
|
+
'retrieval_candidates_below_threshold',
|
|
2107
|
+
'Conflicting evidence',
|
|
2108
|
+
'immediate predecessors',
|
|
2109
|
+
'likely next nodes',
|
|
2110
|
+
],
|
|
2111
|
+
ragSourceBoundary: 'full_document',
|
|
2112
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2113
|
+
forbiddenRagRoles: ['conflict'],
|
|
2114
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2115
|
+
acceptedRagDegradationStates: ['none'],
|
|
2116
|
+
expectedRagDeterministic: true,
|
|
2117
|
+
expectedRagLlmJudgeUsed: false,
|
|
2118
|
+
requireScopedDocumentIds: false,
|
|
2119
|
+
},
|
|
2120
|
+
},
|
|
2121
|
+
{
|
|
2122
|
+
id: 'temporal_scoped_ownership_identity_probe_en',
|
|
2123
|
+
description: 'A scoped note with current and historical owner facts should retain both facts without degrading as a conflict.',
|
|
2124
|
+
preloadTargets: ['ragtemporalqualifier'],
|
|
2125
|
+
activeTarget: 'ragtemporalqualifier',
|
|
2126
|
+
query: 'what is temporal deployment owner probe?',
|
|
2127
|
+
expected: {
|
|
2128
|
+
minCitations: 1,
|
|
2129
|
+
scopeSource: 'explicit_request',
|
|
2130
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2131
|
+
plannerTitleLikeQueries: ['temporal deployment owner probe'],
|
|
2132
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalqualifier/temporal deployment owner probe.md',
|
|
2133
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'current'],
|
|
2134
|
+
answerMustNotContain: [
|
|
2135
|
+
'No scoped knowledge points matched',
|
|
2136
|
+
'retrieval_candidates_below_threshold',
|
|
2137
|
+
'Conflicting evidence',
|
|
2138
|
+
'stable deployment owner',
|
|
2139
|
+
'immediate predecessors',
|
|
2140
|
+
'likely next nodes',
|
|
2141
|
+
],
|
|
2142
|
+
ragSourceBoundary: 'full_document',
|
|
2143
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2144
|
+
forbiddenRagRoles: ['conflict'],
|
|
2145
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2146
|
+
acceptedRagDegradationStates: ['none'],
|
|
2147
|
+
expectedRagDeterministic: true,
|
|
2148
|
+
expectedRagLlmJudgeUsed: false,
|
|
2149
|
+
requireScopedDocumentIds: false,
|
|
2150
|
+
},
|
|
2151
|
+
},
|
|
2152
|
+
{
|
|
2153
|
+
id: 'environment_scoped_state_status_probe_en',
|
|
2154
|
+
description: 'A scoped note with staging and production status facts should retain both environment-qualified facts without degrading as a conflict.',
|
|
2155
|
+
preloadTargets: ['ragenvironmentqualifier'],
|
|
2156
|
+
activeTarget: 'ragenvironmentqualifier',
|
|
2157
|
+
query: 'what is environment scoped state status probe?',
|
|
2158
|
+
expected: {
|
|
2159
|
+
minCitations: 1,
|
|
2160
|
+
scopeSource: 'explicit_request',
|
|
2161
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2162
|
+
plannerTitleLikeQueries: ['environment scoped state status probe'],
|
|
2163
|
+
primarySourcePath: 'Knowledge_Base/ragenvironmentqualifier/environment scoped state status probe.md',
|
|
2164
|
+
answerMustContain: ['migration gate status', 'enabled', 'staging'],
|
|
2165
|
+
answerMustNotContain: [
|
|
2166
|
+
'No scoped knowledge points matched',
|
|
2167
|
+
'retrieval_candidates_below_threshold',
|
|
2168
|
+
'Conflicting evidence',
|
|
2169
|
+
'stable migration gate status',
|
|
2170
|
+
'immediate predecessors',
|
|
2171
|
+
'likely next nodes',
|
|
2172
|
+
],
|
|
2173
|
+
ragSourceBoundary: 'full_document',
|
|
2174
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2175
|
+
forbiddenRagRoles: ['conflict'],
|
|
2176
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2177
|
+
acceptedRagDegradationStates: ['none'],
|
|
2178
|
+
expectedRagDeterministic: true,
|
|
2179
|
+
expectedRagLlmJudgeUsed: false,
|
|
2180
|
+
requireScopedDocumentIds: false,
|
|
2181
|
+
},
|
|
2182
|
+
},
|
|
2183
|
+
{
|
|
2184
|
+
id: 'environment_scoped_quantity_limit_probe_en',
|
|
2185
|
+
description: 'A scoped note with staging and production retry-limit facts should retain both environment-qualified quantities without degrading as a conflict.',
|
|
2186
|
+
preloadTargets: ['ragenvironmentqualifier'],
|
|
2187
|
+
activeTarget: 'ragenvironmentqualifier',
|
|
2188
|
+
query: 'what is environment scoped retry limit probe?',
|
|
2189
|
+
expected: {
|
|
2190
|
+
minCitations: 1,
|
|
2191
|
+
scopeSource: 'explicit_request',
|
|
2192
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2193
|
+
plannerTitleLikeQueries: ['environment scoped retry limit probe'],
|
|
2194
|
+
primarySourcePath: 'Knowledge_Base/ragenvironmentqualifier/environment scoped retry limit probe.md',
|
|
2195
|
+
answerMustContain: ['retry limit', '3', 'staging'],
|
|
2196
|
+
answerMustNotContain: [
|
|
2197
|
+
'No scoped knowledge points matched',
|
|
2198
|
+
'retrieval_candidates_below_threshold',
|
|
2199
|
+
'Conflicting evidence',
|
|
2200
|
+
'stable retry limit',
|
|
2201
|
+
'immediate predecessors',
|
|
2202
|
+
'likely next nodes',
|
|
2203
|
+
],
|
|
2204
|
+
ragSourceBoundary: 'full_document',
|
|
2205
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2206
|
+
forbiddenRagRoles: ['conflict'],
|
|
2207
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2208
|
+
acceptedRagDegradationStates: ['none'],
|
|
2209
|
+
expectedRagDeterministic: true,
|
|
2210
|
+
expectedRagLlmJudgeUsed: false,
|
|
2211
|
+
requireScopedDocumentIds: false,
|
|
2212
|
+
},
|
|
2213
|
+
},
|
|
2214
|
+
{
|
|
2215
|
+
id: 'environment_scoped_ownership_identity_probe_en',
|
|
2216
|
+
description: 'A scoped note with staging and production owner facts should retain both environment-qualified identity facts without degrading as a conflict.',
|
|
2217
|
+
preloadTargets: ['ragenvironmentqualifier'],
|
|
2218
|
+
activeTarget: 'ragenvironmentqualifier',
|
|
2219
|
+
query: 'what is environment scoped deployment owner probe?',
|
|
2220
|
+
expected: {
|
|
2221
|
+
minCitations: 1,
|
|
2222
|
+
scopeSource: 'explicit_request',
|
|
2223
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2224
|
+
plannerTitleLikeQueries: ['environment scoped deployment owner probe'],
|
|
2225
|
+
primarySourcePath: 'Knowledge_Base/ragenvironmentqualifier/environment scoped deployment owner probe.md',
|
|
2226
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'staging'],
|
|
2227
|
+
answerMustNotContain: [
|
|
2228
|
+
'No scoped knowledge points matched',
|
|
2229
|
+
'retrieval_candidates_below_threshold',
|
|
2230
|
+
'Conflicting evidence',
|
|
2231
|
+
'stable deployment owner',
|
|
2232
|
+
'immediate predecessors',
|
|
2233
|
+
'likely next nodes',
|
|
2234
|
+
],
|
|
2235
|
+
ragSourceBoundary: 'full_document',
|
|
2236
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2237
|
+
forbiddenRagRoles: ['conflict'],
|
|
2238
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2239
|
+
acceptedRagDegradationStates: ['none'],
|
|
2240
|
+
expectedRagDeterministic: true,
|
|
2241
|
+
expectedRagLlmJudgeUsed: false,
|
|
2242
|
+
requireScopedDocumentIds: false,
|
|
2243
|
+
},
|
|
2244
|
+
},
|
|
2245
|
+
{
|
|
2246
|
+
id: 'version_scoped_state_status_probe_en',
|
|
2247
|
+
description: 'A scoped note with version-specific status facts should retain both version-qualified facts without degrading as a conflict.',
|
|
2248
|
+
preloadTargets: ['ragversionqualifier'],
|
|
2249
|
+
activeTarget: 'ragversionqualifier',
|
|
2250
|
+
query: 'what is version scoped state status probe?',
|
|
2251
|
+
expected: {
|
|
2252
|
+
minCitations: 1,
|
|
2253
|
+
scopeSource: 'explicit_request',
|
|
2254
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2255
|
+
plannerTitleLikeQueries: ['version scoped state status probe'],
|
|
2256
|
+
primarySourcePath: 'Knowledge_Base/ragversionqualifier/version scoped state status probe.md',
|
|
2257
|
+
answerMustContain: ['migration gate status', 'enabled', 'version 1.0'],
|
|
2258
|
+
answerMustNotContain: [
|
|
2259
|
+
'No scoped knowledge points matched',
|
|
2260
|
+
'retrieval_candidates_below_threshold',
|
|
2261
|
+
'Conflicting evidence',
|
|
2262
|
+
'stable migration gate status',
|
|
2263
|
+
'immediate predecessors',
|
|
2264
|
+
'likely next nodes',
|
|
2265
|
+
],
|
|
2266
|
+
ragSourceBoundary: 'full_document',
|
|
2267
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2268
|
+
forbiddenRagRoles: ['conflict'],
|
|
2269
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2270
|
+
acceptedRagDegradationStates: ['none'],
|
|
2271
|
+
expectedRagDeterministic: true,
|
|
2272
|
+
expectedRagLlmJudgeUsed: false,
|
|
2273
|
+
requireScopedDocumentIds: false,
|
|
2274
|
+
},
|
|
2275
|
+
},
|
|
2276
|
+
{
|
|
2277
|
+
id: 'version_scoped_quantity_limit_probe_en',
|
|
2278
|
+
description: 'A scoped note with version-specific retry-limit facts should retain both version-qualified quantities without degrading as a conflict.',
|
|
2279
|
+
preloadTargets: ['ragversionqualifier'],
|
|
2280
|
+
activeTarget: 'ragversionqualifier',
|
|
2281
|
+
query: 'what is version scoped retry limit probe?',
|
|
2282
|
+
expected: {
|
|
2283
|
+
minCitations: 1,
|
|
2284
|
+
scopeSource: 'explicit_request',
|
|
2285
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2286
|
+
plannerTitleLikeQueries: ['version scoped retry limit probe'],
|
|
2287
|
+
primarySourcePath: 'Knowledge_Base/ragversionqualifier/version scoped retry limit probe.md',
|
|
2288
|
+
answerMustContain: ['retry limit', '3', 'version 1.0'],
|
|
2289
|
+
answerMustNotContain: [
|
|
2290
|
+
'No scoped knowledge points matched',
|
|
2291
|
+
'retrieval_candidates_below_threshold',
|
|
2292
|
+
'Conflicting evidence',
|
|
2293
|
+
'stable retry limit',
|
|
2294
|
+
'immediate predecessors',
|
|
2295
|
+
'likely next nodes',
|
|
2296
|
+
],
|
|
2297
|
+
ragSourceBoundary: 'full_document',
|
|
2298
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2299
|
+
forbiddenRagRoles: ['conflict'],
|
|
2300
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2301
|
+
acceptedRagDegradationStates: ['none'],
|
|
2302
|
+
expectedRagDeterministic: true,
|
|
2303
|
+
expectedRagLlmJudgeUsed: false,
|
|
2304
|
+
requireScopedDocumentIds: false,
|
|
2305
|
+
},
|
|
2306
|
+
},
|
|
2307
|
+
{
|
|
2308
|
+
id: 'version_scoped_ownership_identity_probe_en',
|
|
2309
|
+
description: 'A scoped note with version-specific owner facts should retain both version-qualified identity facts without degrading as a conflict.',
|
|
2310
|
+
preloadTargets: ['ragversionqualifier'],
|
|
2311
|
+
activeTarget: 'ragversionqualifier',
|
|
2312
|
+
query: 'what is version scoped deployment owner probe?',
|
|
2313
|
+
expected: {
|
|
2314
|
+
minCitations: 1,
|
|
2315
|
+
scopeSource: 'explicit_request',
|
|
2316
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2317
|
+
plannerTitleLikeQueries: ['version scoped deployment owner probe'],
|
|
2318
|
+
primarySourcePath: 'Knowledge_Base/ragversionqualifier/version scoped deployment owner probe.md',
|
|
2319
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'version 1.0'],
|
|
2320
|
+
answerMustNotContain: [
|
|
2321
|
+
'No scoped knowledge points matched',
|
|
2322
|
+
'retrieval_candidates_below_threshold',
|
|
2323
|
+
'Conflicting evidence',
|
|
2324
|
+
'stable deployment owner',
|
|
2325
|
+
'immediate predecessors',
|
|
2326
|
+
'likely next nodes',
|
|
2327
|
+
],
|
|
2328
|
+
ragSourceBoundary: 'full_document',
|
|
2329
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2330
|
+
forbiddenRagRoles: ['conflict'],
|
|
2331
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2332
|
+
acceptedRagDegradationStates: ['none'],
|
|
2333
|
+
expectedRagDeterministic: true,
|
|
2334
|
+
expectedRagLlmJudgeUsed: false,
|
|
2335
|
+
requireScopedDocumentIds: false,
|
|
2336
|
+
},
|
|
2337
|
+
},
|
|
2338
|
+
{
|
|
2339
|
+
id: 'platform_scoped_state_status_probe_en',
|
|
2340
|
+
description: 'A scoped note with OS/platform-specific status facts should retain both platform-qualified facts without degrading as a conflict.',
|
|
2341
|
+
preloadTargets: ['ragplatformqualifier'],
|
|
2342
|
+
activeTarget: 'ragplatformqualifier',
|
|
2343
|
+
query: 'what is platform scoped state status probe?',
|
|
2344
|
+
expected: {
|
|
2345
|
+
minCitations: 1,
|
|
2346
|
+
scopeSource: 'explicit_request',
|
|
2347
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2348
|
+
plannerTitleLikeQueries: ['platform scoped state status probe'],
|
|
2349
|
+
primarySourcePath: 'Knowledge_Base/ragplatformqualifier/platform scoped state status probe.md',
|
|
2350
|
+
answerMustContain: ['migration gate status', 'enabled', 'Windows'],
|
|
2351
|
+
answerMustNotContain: [
|
|
2352
|
+
'No scoped knowledge points matched',
|
|
2353
|
+
'retrieval_candidates_below_threshold',
|
|
2354
|
+
'Conflicting evidence',
|
|
2355
|
+
'stable migration gate status',
|
|
2356
|
+
'immediate predecessors',
|
|
2357
|
+
'likely next nodes',
|
|
2358
|
+
],
|
|
2359
|
+
ragSourceBoundary: 'full_document',
|
|
2360
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2361
|
+
forbiddenRagRoles: ['conflict'],
|
|
2362
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2363
|
+
acceptedRagDegradationStates: ['none'],
|
|
2364
|
+
expectedRagDeterministic: true,
|
|
2365
|
+
expectedRagLlmJudgeUsed: false,
|
|
2366
|
+
requireScopedDocumentIds: false,
|
|
2367
|
+
},
|
|
2368
|
+
},
|
|
2369
|
+
{
|
|
2370
|
+
id: 'platform_scoped_quantity_limit_probe_en',
|
|
2371
|
+
description: 'A scoped note with OS/platform-specific retry-limit facts should retain both platform-qualified quantities without degrading as a conflict.',
|
|
2372
|
+
preloadTargets: ['ragplatformqualifier'],
|
|
2373
|
+
activeTarget: 'ragplatformqualifier',
|
|
2374
|
+
query: 'what is platform scoped retry limit probe?',
|
|
2375
|
+
expected: {
|
|
2376
|
+
minCitations: 1,
|
|
2377
|
+
scopeSource: 'explicit_request',
|
|
2378
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2379
|
+
plannerTitleLikeQueries: ['platform scoped retry limit probe'],
|
|
2380
|
+
primarySourcePath: 'Knowledge_Base/ragplatformqualifier/platform scoped retry limit probe.md',
|
|
2381
|
+
answerMustContain: ['retry limit', '3', 'Windows'],
|
|
2382
|
+
answerMustNotContain: [
|
|
2383
|
+
'No scoped knowledge points matched',
|
|
2384
|
+
'retrieval_candidates_below_threshold',
|
|
2385
|
+
'Conflicting evidence',
|
|
2386
|
+
'stable retry limit',
|
|
2387
|
+
'immediate predecessors',
|
|
2388
|
+
'likely next nodes',
|
|
2389
|
+
],
|
|
2390
|
+
ragSourceBoundary: 'full_document',
|
|
2391
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2392
|
+
forbiddenRagRoles: ['conflict'],
|
|
2393
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2394
|
+
acceptedRagDegradationStates: ['none'],
|
|
2395
|
+
expectedRagDeterministic: true,
|
|
2396
|
+
expectedRagLlmJudgeUsed: false,
|
|
2397
|
+
requireScopedDocumentIds: false,
|
|
2398
|
+
},
|
|
2399
|
+
},
|
|
2400
|
+
{
|
|
2401
|
+
id: 'platform_scoped_ownership_identity_probe_en',
|
|
2402
|
+
description: 'A scoped note with OS/platform-specific owner facts should retain both platform-qualified identity facts without degrading as a conflict.',
|
|
2403
|
+
preloadTargets: ['ragplatformqualifier'],
|
|
2404
|
+
activeTarget: 'ragplatformqualifier',
|
|
2405
|
+
query: 'what is platform scoped deployment owner probe?',
|
|
2406
|
+
expected: {
|
|
2407
|
+
minCitations: 1,
|
|
2408
|
+
scopeSource: 'explicit_request',
|
|
2409
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2410
|
+
plannerTitleLikeQueries: ['platform scoped deployment owner probe'],
|
|
2411
|
+
primarySourcePath: 'Knowledge_Base/ragplatformqualifier/platform scoped deployment owner probe.md',
|
|
2412
|
+
answerMustContain: ['deployment owner', 'Release Ops', 'Windows'],
|
|
2413
|
+
answerMustNotContain: [
|
|
2414
|
+
'No scoped knowledge points matched',
|
|
2415
|
+
'retrieval_candidates_below_threshold',
|
|
2416
|
+
'Conflicting evidence',
|
|
2417
|
+
'stable deployment owner',
|
|
2418
|
+
'immediate predecessors',
|
|
2419
|
+
'likely next nodes',
|
|
2420
|
+
],
|
|
2421
|
+
ragSourceBoundary: 'full_document',
|
|
2422
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2423
|
+
forbiddenRagRoles: ['conflict'],
|
|
2424
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2425
|
+
acceptedRagDegradationStates: ['none'],
|
|
2426
|
+
expectedRagDeterministic: true,
|
|
2427
|
+
expectedRagLlmJudgeUsed: false,
|
|
2428
|
+
requireScopedDocumentIds: false,
|
|
2429
|
+
},
|
|
2430
|
+
},
|
|
2431
|
+
{
|
|
2432
|
+
id: 'temporal_scoped_location_probe_en',
|
|
2433
|
+
description: 'A scoped note with current and historical location facts should retain both facts without degrading as a conflict.',
|
|
2434
|
+
preloadTargets: ['ragtemporalqualifier'],
|
|
2435
|
+
activeTarget: 'ragtemporalqualifier',
|
|
2436
|
+
query: 'what is temporal location probe?',
|
|
2437
|
+
expected: {
|
|
2438
|
+
minCitations: 1,
|
|
2439
|
+
scopeSource: 'explicit_request',
|
|
2440
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2441
|
+
plannerTitleLikeQueries: ['temporal location probe'],
|
|
2442
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalqualifier/temporal location probe.md',
|
|
2443
|
+
answerMustContain: ['control module location', 'Rack A', 'current'],
|
|
2444
|
+
answerMustNotContain: [
|
|
2445
|
+
'No scoped knowledge points matched',
|
|
2446
|
+
'retrieval_candidates_below_threshold',
|
|
2447
|
+
'Conflicting evidence',
|
|
2448
|
+
'immediate predecessors',
|
|
2449
|
+
'likely next nodes',
|
|
2450
|
+
],
|
|
2451
|
+
ragSourceBoundary: 'full_document',
|
|
2452
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2453
|
+
forbiddenRagRoles: ['conflict'],
|
|
2454
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2455
|
+
acceptedRagDegradationStates: ['none'],
|
|
2456
|
+
expectedRagDeterministic: true,
|
|
2457
|
+
expectedRagLlmJudgeUsed: false,
|
|
2458
|
+
requireScopedDocumentIds: false,
|
|
2459
|
+
},
|
|
2460
|
+
},
|
|
2461
|
+
{
|
|
2462
|
+
id: 'temporal_scoped_release_date_probe_en',
|
|
2463
|
+
description: 'A scoped note with current and historical release dates should retain both facts without degrading as a conflict.',
|
|
2464
|
+
preloadTargets: ['ragtemporalqualifier'],
|
|
2465
|
+
activeTarget: 'ragtemporalqualifier',
|
|
2466
|
+
query: 'what is temporal release date probe?',
|
|
2467
|
+
expected: {
|
|
2468
|
+
minCitations: 1,
|
|
2469
|
+
scopeSource: 'explicit_request',
|
|
2470
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2471
|
+
plannerTitleLikeQueries: ['temporal release date probe'],
|
|
2472
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalqualifier/temporal release date probe.md',
|
|
2473
|
+
answerMustContain: ['migration release date', '2026-08-15', 'current'],
|
|
2474
|
+
answerMustNotContain: [
|
|
2475
|
+
'No scoped knowledge points matched',
|
|
2476
|
+
'retrieval_candidates_below_threshold',
|
|
2477
|
+
'Conflicting evidence',
|
|
2478
|
+
'immediate predecessors',
|
|
2479
|
+
'likely next nodes',
|
|
2480
|
+
],
|
|
2481
|
+
ragSourceBoundary: 'full_document',
|
|
2482
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2483
|
+
forbiddenRagRoles: ['conflict'],
|
|
2484
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2485
|
+
acceptedRagDegradationStates: ['none'],
|
|
2486
|
+
expectedRagDeterministic: true,
|
|
2487
|
+
expectedRagLlmJudgeUsed: false,
|
|
2488
|
+
requireScopedDocumentIds: false,
|
|
2489
|
+
},
|
|
2490
|
+
},
|
|
2491
|
+
{
|
|
2492
|
+
id: 'temporal_scoped_quantity_limit_probe_en',
|
|
2493
|
+
description: 'A scoped note with current and historical retry-limit facts should retain both temporal quantities without degrading as a conflict.',
|
|
2494
|
+
preloadTargets: ['ragtemporalqualifier'],
|
|
2495
|
+
activeTarget: 'ragtemporalqualifier',
|
|
2496
|
+
query: 'what is temporal retry limit probe?',
|
|
2497
|
+
expected: {
|
|
2498
|
+
minCitations: 1,
|
|
2499
|
+
scopeSource: 'explicit_request',
|
|
2500
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2501
|
+
plannerTitleLikeQueries: ['temporal retry limit probe'],
|
|
2502
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalqualifier/temporal retry limit probe.md',
|
|
2503
|
+
answerMustContain: ['retry limit', '3', 'current'],
|
|
2504
|
+
answerMustNotContain: [
|
|
2505
|
+
'No scoped knowledge points matched',
|
|
2506
|
+
'retrieval_candidates_below_threshold',
|
|
2507
|
+
'Conflicting evidence',
|
|
2508
|
+
'stable retry limit',
|
|
2509
|
+
'immediate predecessors',
|
|
2510
|
+
'likely next nodes',
|
|
2511
|
+
],
|
|
2512
|
+
ragSourceBoundary: 'full_document',
|
|
2513
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2514
|
+
forbiddenRagRoles: ['conflict'],
|
|
2515
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2516
|
+
acceptedRagDegradationStates: ['none'],
|
|
2517
|
+
expectedRagDeterministic: true,
|
|
2518
|
+
expectedRagLlmJudgeUsed: false,
|
|
2519
|
+
requireScopedDocumentIds: false,
|
|
2520
|
+
},
|
|
2521
|
+
},
|
|
2522
|
+
{
|
|
2523
|
+
id: 'temporal_scoped_planned_release_date_probe_en',
|
|
2524
|
+
description: 'A scoped note with current and planned release dates should retain both facts without degrading as a conflict.',
|
|
2525
|
+
preloadTargets: ['ragtemporalqualifier'],
|
|
2526
|
+
activeTarget: 'ragtemporalqualifier',
|
|
2527
|
+
query: 'what is temporal planned release date probe?',
|
|
2528
|
+
expected: {
|
|
2529
|
+
minCitations: 1,
|
|
2530
|
+
scopeSource: 'explicit_request',
|
|
2531
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2532
|
+
plannerTitleLikeQueries: ['temporal planned release date probe'],
|
|
2533
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalqualifier/temporal planned release date probe.md',
|
|
2534
|
+
answerMustContain: ['migration release date', '2026-08-15', 'current'],
|
|
2535
|
+
answerMustNotContain: [
|
|
2536
|
+
'No scoped knowledge points matched',
|
|
2537
|
+
'retrieval_candidates_below_threshold',
|
|
2538
|
+
'Conflicting evidence',
|
|
2539
|
+
'immediate predecessors',
|
|
2540
|
+
'likely next nodes',
|
|
2541
|
+
],
|
|
2542
|
+
ragSourceBoundary: 'full_document',
|
|
2543
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2544
|
+
forbiddenRagRoles: ['conflict'],
|
|
2545
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2546
|
+
acceptedRagDegradationStates: ['none'],
|
|
2547
|
+
expectedRagDeterministic: true,
|
|
2548
|
+
expectedRagLlmJudgeUsed: false,
|
|
2549
|
+
requireScopedDocumentIds: false,
|
|
2550
|
+
},
|
|
2551
|
+
},
|
|
2552
|
+
{
|
|
2553
|
+
id: 'temporal_cross_document_planned_release_date_probe_en',
|
|
2554
|
+
description: 'Current and planned release dates in separate scoped documents should remain condition-qualified evidence instead of cross-document conflict.',
|
|
2555
|
+
preloadTargets: ['ragtemporalcrossscope'],
|
|
2556
|
+
activeTarget: 'ragtemporalcrossscope',
|
|
2557
|
+
query: 'compare temporal current release source with temporal planned roadmap source',
|
|
2558
|
+
expected: {
|
|
2559
|
+
minCitations: 2,
|
|
2560
|
+
scopeSource: 'explicit_request',
|
|
2561
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2562
|
+
plannerTitleLikeQueries: [
|
|
2563
|
+
'temporal current release source',
|
|
2564
|
+
'temporal planned roadmap source',
|
|
2565
|
+
],
|
|
2566
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalcrossscope/temporal planned roadmap source.md',
|
|
2567
|
+
answerMustContain: ['migration release date', '2026-08-15', '2026-09-20', 'planned'],
|
|
2568
|
+
answerMustNotContain: [
|
|
2569
|
+
'No scoped knowledge points matched',
|
|
2570
|
+
'retrieval_candidates_below_threshold',
|
|
2571
|
+
'Conflicting evidence',
|
|
2572
|
+
'immediate predecessors',
|
|
2573
|
+
'likely next nodes',
|
|
2574
|
+
],
|
|
2575
|
+
ragSourceBoundary: 'full_document',
|
|
2576
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2577
|
+
forbiddenRagRoles: ['conflict'],
|
|
2578
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2579
|
+
acceptedRagDegradationStates: ['none'],
|
|
2580
|
+
expectedRagDeterministic: true,
|
|
2581
|
+
expectedRagLlmJudgeUsed: false,
|
|
2582
|
+
requireScopedDocumentIds: false,
|
|
2583
|
+
},
|
|
2584
|
+
},
|
|
2585
|
+
{
|
|
2586
|
+
id: 'temporal_cross_document_quantity_limit_probe_en',
|
|
2587
|
+
description: 'Current and historical retry limits in separate scoped documents should remain temporal-scope evidence instead of cross-document conflict.',
|
|
2588
|
+
preloadTargets: ['ragtemporalcrossscope'],
|
|
2589
|
+
activeTarget: 'ragtemporalcrossscope',
|
|
2590
|
+
query: 'compare temporal current retry limit source with temporal historical retry limit source',
|
|
2591
|
+
expected: {
|
|
2592
|
+
minCitations: 2,
|
|
2593
|
+
scopeSource: 'explicit_request',
|
|
2594
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2595
|
+
plannerTitleLikeQueries: [
|
|
2596
|
+
'temporal current retry limit source',
|
|
2597
|
+
'temporal historical retry limit source',
|
|
2598
|
+
],
|
|
2599
|
+
primarySourcePath: 'Knowledge_Base/ragtemporalcrossscope/temporal current retry limit source.md',
|
|
2600
|
+
answerMustContain: ['retry limit', '3', '5', 'current', 'historical'],
|
|
2601
|
+
answerMustNotContain: [
|
|
2602
|
+
'No scoped knowledge points matched',
|
|
2603
|
+
'retrieval_candidates_below_threshold',
|
|
2604
|
+
'Conflicting evidence',
|
|
2605
|
+
'stable retry limit',
|
|
2606
|
+
'immediate predecessors',
|
|
2607
|
+
'likely next nodes',
|
|
2608
|
+
],
|
|
2609
|
+
ragSourceBoundary: 'full_document',
|
|
2610
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2611
|
+
forbiddenRagRoles: ['conflict'],
|
|
2612
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2613
|
+
acceptedRagDegradationStates: ['none'],
|
|
2614
|
+
expectedRagDeterministic: true,
|
|
2615
|
+
expectedRagLlmJudgeUsed: false,
|
|
2616
|
+
requireScopedDocumentIds: false,
|
|
2617
|
+
},
|
|
2618
|
+
},
|
|
2619
|
+
{
|
|
2620
|
+
id: 'conflicting_multi_document_evidence_probe_en',
|
|
2621
|
+
description: 'Two scoped documents with contradictory calibration tolerance facts should degrade as cross-document conflict.',
|
|
2622
|
+
preloadTargets: ['ragmulticonflict'],
|
|
2623
|
+
activeTarget: 'ragmulticonflict',
|
|
2624
|
+
query: 'compare multi document calibration tolerance conflict probe with field calibration tolerance conflict evidence',
|
|
2625
|
+
expected: {
|
|
2626
|
+
minCitations: 2,
|
|
2627
|
+
scopeSource: 'explicit_request',
|
|
2628
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2629
|
+
plannerTitleLikeQueries: [
|
|
2630
|
+
'multi document calibration tolerance conflict probe',
|
|
2631
|
+
'field calibration tolerance conflict evidence',
|
|
2632
|
+
],
|
|
2633
|
+
primarySourcePath: 'Knowledge_Base/ragmulticonflict/field calibration tolerance conflict evidence.md',
|
|
2634
|
+
answerMustContain: ['calibration tolerance', '+/-0.10 mm', '+/-0.50 mm'],
|
|
2635
|
+
answerMustNotContain: [
|
|
2636
|
+
'No scoped knowledge points matched',
|
|
2637
|
+
'retrieval_candidates_below_threshold',
|
|
2638
|
+
'single stable calibration tolerance',
|
|
2639
|
+
],
|
|
2640
|
+
ragSourceBoundary: 'full_document',
|
|
2641
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
2642
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
2643
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
2644
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2645
|
+
expectedRagDeterministic: true,
|
|
2646
|
+
expectedRagLlmJudgeUsed: false,
|
|
2647
|
+
requireScopedDocumentIds: false,
|
|
2648
|
+
},
|
|
2649
|
+
},
|
|
2650
|
+
{
|
|
2651
|
+
id: 'conflicting_multi_document_quantity_evidence_probe_en',
|
|
2652
|
+
description: 'Two scoped documents with contradictory plural unitless quantity facts should degrade as cross-document conflict.',
|
|
2653
|
+
preloadTargets: ['ragquantitymulticonflict'],
|
|
2654
|
+
activeTarget: 'ragquantitymulticonflict',
|
|
2655
|
+
query: 'compare nominal retry attempts quantity conflict probe with field retry attempts quantity conflict evidence',
|
|
2656
|
+
expected: {
|
|
2657
|
+
minCitations: 2,
|
|
2658
|
+
scopeSource: 'explicit_request',
|
|
2659
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2660
|
+
plannerTitleLikeQueries: [
|
|
2661
|
+
'nominal retry attempts quantity conflict probe',
|
|
2662
|
+
'field retry attempts quantity conflict evidence',
|
|
2663
|
+
],
|
|
2664
|
+
primarySourcePath: 'Knowledge_Base/ragquantitymulticonflict/field retry attempts quantity conflict evidence.md',
|
|
2665
|
+
answerMustContain: ['retry attempts', '3', '5'],
|
|
2666
|
+
answerMustNotContain: [
|
|
2667
|
+
'No scoped knowledge points matched',
|
|
2668
|
+
'retrieval_candidates_below_threshold',
|
|
2669
|
+
'single stable retry-attempt count',
|
|
2670
|
+
],
|
|
2671
|
+
ragSourceBoundary: 'full_document',
|
|
2672
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
2673
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
2674
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
2675
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2676
|
+
expectedRagDeterministic: true,
|
|
2677
|
+
expectedRagLlmJudgeUsed: false,
|
|
2678
|
+
requireScopedDocumentIds: false,
|
|
2679
|
+
},
|
|
2680
|
+
},
|
|
2681
|
+
{
|
|
2682
|
+
id: 'full_document_scan_remote_conflict_probe_en',
|
|
2683
|
+
description: 'Two scoped documents should be fully scanned for remote contradictions even when the matched spans are near the document starts.',
|
|
2684
|
+
preloadTargets: ['ragfullscan'],
|
|
2685
|
+
activeTarget: 'ragfullscan',
|
|
2686
|
+
query: 'compare nominal full scan source with field full scan source',
|
|
2687
|
+
expected: {
|
|
2688
|
+
minCitations: 2,
|
|
2689
|
+
scopeSource: 'explicit_request',
|
|
2690
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2691
|
+
plannerTitleLikeQueries: [
|
|
2692
|
+
'nominal full scan source',
|
|
2693
|
+
'field full scan source',
|
|
2694
|
+
],
|
|
2695
|
+
primarySourcePath: 'Knowledge_Base/ragfullscan/nominal full scan source.md',
|
|
2696
|
+
answerMustContain: ['calibration tolerance', '+/-0.10 mm', '+/-0.50 mm'],
|
|
2697
|
+
answerMustNotContain: [
|
|
2698
|
+
'No scoped knowledge points matched',
|
|
2699
|
+
'retrieval_candidates_below_threshold',
|
|
2700
|
+
'single stable calibration tolerance',
|
|
2701
|
+
],
|
|
2702
|
+
ragSourceBoundary: 'full_document',
|
|
2703
|
+
requiredRagRoles: ['direct_support', 'parent_context', 'conflict'],
|
|
2704
|
+
acceptedRagSufficiencyStatuses: ['borderline'],
|
|
2705
|
+
acceptedRagDegradationStates: ['conflict'],
|
|
2706
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2707
|
+
expectedRagDeterministic: true,
|
|
2708
|
+
expectedRagLlmJudgeUsed: false,
|
|
2709
|
+
requireScopedDocumentIds: false,
|
|
2710
|
+
},
|
|
2711
|
+
},
|
|
2712
|
+
{
|
|
2713
|
+
id: 'repeated_snippet_target_section_probe_en',
|
|
2714
|
+
description: 'A repeated snippet query should use the target section occurrence instead of leaking the distractor section context.',
|
|
2715
|
+
preloadTargets: ['ragrepeatedspan'],
|
|
2716
|
+
activeTarget: 'ragrepeatedspan',
|
|
2717
|
+
query: 'what is repeated snippet target section?',
|
|
2718
|
+
expected: {
|
|
2719
|
+
minCitations: 1,
|
|
2720
|
+
scopeSource: 'explicit_request',
|
|
2721
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2722
|
+
plannerTitleLikeQueries: ['repeated snippet target section'],
|
|
2723
|
+
primarySourcePath: 'Knowledge_Base/ragrepeatedspan/repeated snippet target section.md',
|
|
2724
|
+
answerMustContain: [
|
|
2725
|
+
'Target section context says the second occurrence controls the answer',
|
|
2726
|
+
'shared repeated wording',
|
|
2727
|
+
],
|
|
2728
|
+
answerMustNotContain: [
|
|
2729
|
+
'No scoped knowledge points matched',
|
|
2730
|
+
'retrieval_candidates_below_threshold',
|
|
2731
|
+
'Distractor section context belongs to the first occurrence',
|
|
2732
|
+
],
|
|
2733
|
+
ragSourceBoundary: 'full_document',
|
|
2734
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2735
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2736
|
+
expectedRagDeterministic: true,
|
|
2737
|
+
expectedRagLlmJudgeUsed: false,
|
|
2738
|
+
},
|
|
2739
|
+
},
|
|
2740
|
+
{
|
|
2741
|
+
id: 'contextbudget_source_window_truncation_en',
|
|
2742
|
+
description: 'A long scoped note should read the full source document while keeping the model-visible RAG pack budgeted.',
|
|
2743
|
+
preloadTargets: ['contextbudget'],
|
|
2744
|
+
activeTarget: 'contextbudget',
|
|
2745
|
+
query: 'what is context budget probe?',
|
|
2746
|
+
expected: {
|
|
2747
|
+
minCitations: 1,
|
|
2748
|
+
scopeSource: 'explicit_request',
|
|
2749
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2750
|
+
plannerTitleLikeQueries: ['context budget probe'],
|
|
2751
|
+
primarySourcePath: 'Knowledge_Base/contextbudget/context budget probe.md',
|
|
2752
|
+
answerMustNotContain: [
|
|
2753
|
+
'No scoped knowledge points matched',
|
|
2754
|
+
'retrieval_candidates_below_threshold',
|
|
2755
|
+
],
|
|
2756
|
+
ragSourceBoundary: 'full_document',
|
|
2757
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2758
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2759
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
2760
|
+
read: 1,
|
|
2761
|
+
fragment_truncated: 1,
|
|
2762
|
+
},
|
|
2763
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2764
|
+
expectedRagDeterministic: true,
|
|
2765
|
+
expectedRagLlmJudgeUsed: false,
|
|
2766
|
+
expectedRagRecoveryAttempted: false,
|
|
2767
|
+
acceptedRagDegradationStates: ['none'],
|
|
2768
|
+
},
|
|
2769
|
+
},
|
|
2770
|
+
{
|
|
2771
|
+
id: 'contextoverflow_no_provider_budget_drop_en',
|
|
2772
|
+
description: 'A dense scoped note should stay deterministic without an LLM provider and expose fragment-drop budget pressure.',
|
|
2773
|
+
preloadTargets: ['contextoverflow'],
|
|
2774
|
+
activeTarget: 'contextoverflow',
|
|
2775
|
+
query: 'what is overflow budget probe?',
|
|
2776
|
+
expected: {
|
|
2777
|
+
minCitations: 1,
|
|
2778
|
+
scopeSource: 'explicit_request',
|
|
2779
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2780
|
+
plannerTitleLikeQueries: ['overflow budget probe'],
|
|
2781
|
+
primarySourcePath: 'Knowledge_Base/contextoverflow/overflow budget probe.md',
|
|
2782
|
+
answerMustNotContain: [
|
|
2783
|
+
'No scoped knowledge points matched',
|
|
2784
|
+
'retrieval_candidates_below_threshold',
|
|
2785
|
+
'llm_judge_failed',
|
|
2786
|
+
],
|
|
2787
|
+
ragSourceBoundary: 'full_document',
|
|
2788
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2789
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2790
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
2791
|
+
read: 1,
|
|
2792
|
+
fragment_dropped: 1,
|
|
2793
|
+
},
|
|
2794
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2795
|
+
expectedRagDeterministic: true,
|
|
2796
|
+
expectedRagLlmJudgeUsed: false,
|
|
2797
|
+
expectedRagRecoveryAttempted: false,
|
|
2798
|
+
inMemoryExpectedRagRecoveryAttempted: true,
|
|
2799
|
+
acceptedRagDegradationStates: ['none', 'partial_coverage'],
|
|
2800
|
+
inMemoryMinimumRagSourceDecisionStatusCounts: {
|
|
2801
|
+
read: 1,
|
|
2802
|
+
},
|
|
2803
|
+
inMemoryMinimumRagRecoveryBeforeSourceDecisionStatusCounts: {
|
|
2804
|
+
fragment_dropped: 1,
|
|
2805
|
+
},
|
|
2806
|
+
},
|
|
2807
|
+
},
|
|
2808
|
+
{
|
|
2809
|
+
id: 'contextoverflow_deep_profile_budget_en',
|
|
2810
|
+
description: 'An explicit deep scoped query should use the wider first-pass RAG answer profile without switching to an unbounded context pack.',
|
|
2811
|
+
preloadTargets: ['contextoverflow'],
|
|
2812
|
+
activeTarget: 'contextoverflow',
|
|
2813
|
+
query: 'explain in detail overflow budget probe',
|
|
2814
|
+
expected: {
|
|
2815
|
+
minCitations: 1,
|
|
2816
|
+
scopeSource: 'explicit_request',
|
|
2817
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2818
|
+
plannerTitleLikeQueries: ['overflow budget probe'],
|
|
2819
|
+
primarySourcePath: 'Knowledge_Base/contextoverflow/overflow budget probe.md',
|
|
2820
|
+
answerMustNotContain: [
|
|
2821
|
+
'No scoped knowledge points matched',
|
|
2822
|
+
'retrieval_candidates_below_threshold',
|
|
2823
|
+
'llm_judge_failed',
|
|
2824
|
+
],
|
|
2825
|
+
ragSourceBoundary: 'full_document',
|
|
2826
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2827
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2828
|
+
expectedRagBudget: {
|
|
2829
|
+
maxFragments: 24,
|
|
2830
|
+
maxCharsPerFragment: 1600,
|
|
2831
|
+
maxTotalChars: 9000,
|
|
2832
|
+
},
|
|
2833
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
2834
|
+
read: 1,
|
|
2835
|
+
},
|
|
2836
|
+
expectedRagDeterministic: true,
|
|
2837
|
+
expectedRagLlmJudgeUsed: false,
|
|
2838
|
+
expectedRagRecoveryAttempted: false,
|
|
2839
|
+
acceptedRagDegradationStates: ['none', 'partial_coverage'],
|
|
2840
|
+
},
|
|
2841
|
+
},
|
|
2842
|
+
{
|
|
2843
|
+
id: 'causal_answer_profile_budget_en',
|
|
2844
|
+
description: 'A causal why-query should use a wider bounded first-pass RAG answer profile without requiring an explicit deep prompt.',
|
|
2845
|
+
preloadTargets: ['ragcausalprofile'],
|
|
2846
|
+
activeTarget: 'ragcausalprofile',
|
|
2847
|
+
query: 'why causal answer profile probe needs bounded evidence?',
|
|
2848
|
+
expected: {
|
|
2849
|
+
minCitations: 1,
|
|
2850
|
+
scopeSource: 'explicit_request',
|
|
2851
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2852
|
+
plannerTitleLikeQueries: ['why causal answer profile probe needs bounded evidence'],
|
|
2853
|
+
primarySourcePath: 'Knowledge_Base/ragcausalprofile/causal answer profile probe.md',
|
|
2854
|
+
answerMustContain: [
|
|
2855
|
+
'why question asks for mechanism evidence',
|
|
2856
|
+
'graph-neighbor evidence can clarify consequences',
|
|
2857
|
+
],
|
|
2858
|
+
answerMustNotContain: [
|
|
2859
|
+
'No scoped knowledge points matched',
|
|
2860
|
+
'retrieval_candidates_below_threshold',
|
|
2861
|
+
'llm_judge_failed',
|
|
2862
|
+
],
|
|
2863
|
+
ragSourceBoundary: 'full_document',
|
|
2864
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2865
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2866
|
+
expectedRagBudget: {
|
|
2867
|
+
maxFragments: 20,
|
|
2868
|
+
maxCharsPerFragment: 1500,
|
|
2869
|
+
maxTotalChars: 7600,
|
|
2870
|
+
},
|
|
2871
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
2872
|
+
read: 1,
|
|
2873
|
+
},
|
|
2874
|
+
expectedRagDeterministic: true,
|
|
2875
|
+
expectedRagLlmJudgeUsed: false,
|
|
2876
|
+
expectedRagRecoveryAttempted: false,
|
|
2877
|
+
acceptedRagDegradationStates: ['none', 'partial_coverage'],
|
|
2878
|
+
requirePlannerTitleHitDocumentIds: false,
|
|
2879
|
+
requireScopedDocumentIds: false,
|
|
2880
|
+
},
|
|
2881
|
+
},
|
|
2882
|
+
{
|
|
2883
|
+
id: 'contextoverflow_malformed_provider_judge_fallback_en',
|
|
2884
|
+
description: 'A dense scoped note should keep answering when a configured RAG sufficiency provider returns malformed judge JSON.',
|
|
2885
|
+
preloadTargets: ['contextoverflow'],
|
|
2886
|
+
activeTarget: 'contextoverflow',
|
|
2887
|
+
query: 'what is overflow budget probe?',
|
|
2888
|
+
topK: 12,
|
|
2889
|
+
runtimeProviderFixture: 'malformed_json',
|
|
2890
|
+
expected: {
|
|
2891
|
+
minCitations: 1,
|
|
2892
|
+
scopeSource: 'explicit_request',
|
|
2893
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2894
|
+
plannerTitleLikeQueries: ['overflow budget probe'],
|
|
2895
|
+
primarySourcePath: 'Knowledge_Base/contextoverflow/overflow budget probe.md',
|
|
2896
|
+
answerMustNotContain: [
|
|
2897
|
+
'No scoped knowledge points matched',
|
|
2898
|
+
'retrieval_candidates_below_threshold',
|
|
2899
|
+
],
|
|
2900
|
+
ragSourceBoundary: 'full_document',
|
|
2901
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2902
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2903
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
2904
|
+
read: 1,
|
|
2905
|
+
},
|
|
2906
|
+
expectedRagDeterministic: true,
|
|
2907
|
+
expectedRagLlmJudgeUsed: false,
|
|
2908
|
+
expectedRagRecoveryAttempted: true,
|
|
2909
|
+
acceptedRagDegradationStates: ['none', 'partial_coverage'],
|
|
2910
|
+
minimumRagRecoveryBeforeSourceDecisionStatusCounts: {
|
|
2911
|
+
fragment_dropped: 1,
|
|
2912
|
+
},
|
|
2913
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2914
|
+
runtimeRequiredRagFailureStages: ['context_assembly', 'generation'],
|
|
2915
|
+
runtimeRequiredRagRecoveryBeforeReasonFragments: ['llm_judge_failed'],
|
|
2916
|
+
},
|
|
2917
|
+
},
|
|
2918
|
+
{
|
|
2919
|
+
id: 'contextoverflow_timeout_provider_judge_fallback_en',
|
|
2920
|
+
description: 'A dense scoped note should keep answering when a configured RAG sufficiency provider times out.',
|
|
2921
|
+
preloadTargets: ['contextoverflow'],
|
|
2922
|
+
activeTarget: 'contextoverflow',
|
|
2923
|
+
query: 'what is overflow budget probe?',
|
|
2924
|
+
topK: 12,
|
|
2925
|
+
runtimeProviderFixture: 'timeout',
|
|
2926
|
+
expected: {
|
|
2927
|
+
minCitations: 1,
|
|
2928
|
+
scopeSource: 'explicit_request',
|
|
2929
|
+
acceptedAnswerReleaseDecisions: ['release', 'revise'],
|
|
2930
|
+
plannerTitleLikeQueries: ['overflow budget probe'],
|
|
2931
|
+
primarySourcePath: 'Knowledge_Base/contextoverflow/overflow budget probe.md',
|
|
2932
|
+
answerMustNotContain: [
|
|
2933
|
+
'No scoped knowledge points matched',
|
|
2934
|
+
'retrieval_candidates_below_threshold',
|
|
2935
|
+
],
|
|
2936
|
+
ragSourceBoundary: 'full_document',
|
|
2937
|
+
requiredRagRoles: ['direct_support', 'parent_context'],
|
|
2938
|
+
acceptedRagSufficiencyStatuses: ['sufficient', 'borderline'],
|
|
2939
|
+
minimumRagSourceDecisionStatusCounts: {
|
|
2940
|
+
read: 1,
|
|
2941
|
+
},
|
|
2942
|
+
expectedRagDeterministic: true,
|
|
2943
|
+
expectedRagLlmJudgeUsed: false,
|
|
2944
|
+
expectedRagRecoveryAttempted: true,
|
|
2945
|
+
acceptedRagDegradationStates: ['none', 'partial_coverage'],
|
|
2946
|
+
minimumRagRecoveryBeforeSourceDecisionStatusCounts: {
|
|
2947
|
+
fragment_dropped: 1,
|
|
2948
|
+
},
|
|
2949
|
+
requiredRagFailureStages: ['context_assembly'],
|
|
2950
|
+
runtimeRequiredRagFailureStages: ['context_assembly', 'generation'],
|
|
2951
|
+
runtimeRequiredRagRecoveryBeforeReasonFragments: ['llm_judge_failed'],
|
|
2952
|
+
},
|
|
2953
|
+
},
|
|
2954
|
+
]);
|
|
2955
|
+
function selectKnowledgeWorkspaceConversationRegressionCases(caseIds) {
|
|
2956
|
+
if (!Array.isArray(caseIds) || caseIds.length <= 0) {
|
|
2957
|
+
return exports.KNOWLEDGE_WORKSPACE_CONVERSATION_REGRESSION_CASES.slice();
|
|
2958
|
+
}
|
|
2959
|
+
const requestedIds = caseIds
|
|
2960
|
+
.map((caseId) => String(caseId || '').trim())
|
|
2961
|
+
.filter(Boolean);
|
|
2962
|
+
if (requestedIds.length <= 0) {
|
|
2963
|
+
return exports.KNOWLEDGE_WORKSPACE_CONVERSATION_REGRESSION_CASES.slice();
|
|
2964
|
+
}
|
|
2965
|
+
const caseById = new Map(exports.KNOWLEDGE_WORKSPACE_CONVERSATION_REGRESSION_CASES.map((entry) => [entry.id, entry]));
|
|
2966
|
+
const selectedCases = requestedIds.map((caseId) => {
|
|
2967
|
+
const matchedCase = caseById.get(caseId);
|
|
2968
|
+
if (!matchedCase) {
|
|
2969
|
+
throw new Error(`Unknown knowledge workspace conversation regression case: ${caseId}`);
|
|
2970
|
+
}
|
|
2971
|
+
return matchedCase;
|
|
2972
|
+
});
|
|
2973
|
+
return selectedCases;
|
|
2974
|
+
}
|