grammar-inference-engine/experiments/results/ragsak_baseline_package.json
tobjend b516b2985d feat: implement Reduce algorithm (Algorithm 4, TODS 2010)
- bex/reduce.py: Faithful implementation of Reduce with support-weighted
  SOA edit distance, adjunction, iterative merging, and Minimize
- experiments/context_eval.py: Multi-codebase support (RAGSAK + Flask),
  Reduce experiments with thresholds 0.05-0.4
- tests/test_reduce.py: 24 tests covering all Reduce components
- Flask cloned to external_refs/flask for cross-validation

Results:
- RAGSAK: 12.0% coverage (First 3 symbols)
- Flask: 10.7% coverage (First 3 symbols)
- Reduce has minimal impact (1-2 merges per codebase at ε=0.3)
- Coverage ceiling appears to be ~10-12% for prefix-based grouping
2026-07-12 00:11:38 +02:00

946 lines
No EOL
27 KiB
JSON

{
"strategy": "Baseline: Package grouping",
"total_contexts": 137,
"meaningful_contexts": 116,
"total_methods": 1594,
"methods_in_good_groups": 9,
"sore_successes": 2,
"sore_failures": 10,
"skip_reasons": {
"too_large": 5,
"too_diverse": 89,
"large_alphabet": 10
},
"groups": [
{
"context": "app/src/test/kotlin/eu/corentic/springrag/architecture",
"methods": 87,
"unique": 70,
"unique_ratio": 0.805,
"sore": "SKIP(too_large)",
"sore_success": false
},
{
"context": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller",
"methods": 83,
"unique": 74,
"unique_ratio": 0.892,
"sore": "SKIP(too_large)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/job",
"methods": 61,
"unique": 55,
"unique_ratio": 0.902,
"sore": "SKIP(too_large)",
"sore_success": false
},
{
"context": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller",
"methods": 56,
"unique": 53,
"unique_ratio": 0.946,
"sore": "SKIP(too_large)",
"sore_success": false
},
{
"context": "agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel",
"methods": 52,
"unique": 52,
"unique_ratio": 1.0,
"sore": "SKIP(too_large)",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/job",
"methods": 49,
"unique": 48,
"unique_ratio": 0.98,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "app/src/systemTest/kotlin/eu/corentic/springrag/system",
"methods": 46,
"unique": 38,
"unique_ratio": 0.826,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/librechat",
"methods": 46,
"unique": 40,
"unique_ratio": 0.87,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/port/adapter",
"methods": 45,
"unique": 44,
"unique_ratio": 0.978,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/storage",
"methods": 40,
"unique": 27,
"unique_ratio": 0.675,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/agent/rag/embabel",
"methods": 35,
"unique": 25,
"unique_ratio": 0.714,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/listener",
"methods": 34,
"unique": 31,
"unique_ratio": 0.912,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/integrationTest/kotlin/eu/corentic/springrag/service/job",
"methods": 33,
"unique": 30,
"unique_ratio": 0.909,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/graph",
"methods": 30,
"unique": 25,
"unique_ratio": 0.833,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/librechat",
"methods": 29,
"unique": 29,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/port/adapter",
"methods": 28,
"unique": 27,
"unique_ratio": 0.964,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/config",
"methods": 26,
"unique": 23,
"unique_ratio": 0.885,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/repository",
"methods": 24,
"unique": 21,
"unique_ratio": 0.875,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/repository/graph",
"methods": 23,
"unique": 22,
"unique_ratio": 0.957,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/service/docling",
"methods": 21,
"unique": 18,
"unique_ratio": 0.857,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/repository",
"methods": 19,
"unique": 18,
"unique_ratio": 0.947,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/common/src/main/kotlin/eu/corentic/springrag/common/ids",
"methods": 18,
"unique": 12,
"unique_ratio": 0.667,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "app/src/e2eTest/kotlin/eu/corentic/springrag/e2e/cucumber/steps",
"methods": 17,
"unique": 13,
"unique_ratio": 0.765,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/chunk",
"methods": 17,
"unique": 17,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch",
"methods": 17,
"unique": 17,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/listener",
"methods": 16,
"unique": 13,
"unique_ratio": 0.812,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "modules/knowledgebase/src/test/kotlin/eu/corentic/springrag/service/knowledgebase",
"methods": 16,
"unique": 16,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "app/src/integrationTest/kotlin/eu/corentic/springrag/config",
"methods": 15,
"unique": 5,
"unique_ratio": 0.333,
"sore": "\u2205",
"sore_success": false
},
{
"context": "modules/chat/src/systemTest/kotlin/eu/corentic/springrag/config",
"methods": 15,
"unique": 14,
"unique_ratio": 0.933,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch",
"methods": 15,
"unique": 15,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/security/src/test/kotlin/eu/corentic/springrag/security/service",
"methods": 15,
"unique": 12,
"unique_ratio": 0.8,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "agents/examples/simple-rag/src/test/kotlin/eu/corentic/springrag/example/rag/simple",
"methods": 14,
"unique": 14,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/summarizer/embabel/src/test/kotlin/eu/corentic/springrag/agent/summarizer/embabel",
"methods": 14,
"unique": 14,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "app/src/systemTest/kotlin/eu/corentic/springrag/config",
"methods": 14,
"unique": 14,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/writer",
"methods": 14,
"unique": 14,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel/librechat",
"methods": 13,
"unique": 13,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "platform/test-support/src/main/kotlin/eu/corentic/springrag/testcontainers",
"methods": 13,
"unique": 13,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/rag/support/src/main/kotlin/eu/corentic/springrag/agent/rag/support",
"methods": 12,
"unique": 11,
"unique_ratio": 0.917,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/summarizer/embabel/src/main/kotlin/eu/corentic/springrag/agent/summarizer/embabel",
"methods": 12,
"unique": 12,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel",
"methods": 12,
"unique": 12,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/config",
"methods": 12,
"unique": 6,
"unique_ratio": 0.5,
"sore": "\u2205",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/graph",
"methods": 12,
"unique": 12,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/reader",
"methods": 12,
"unique": 11,
"unique_ratio": 0.917,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/rag/support/src/test/kotlin/eu/corentic/springrag/agent/rag/support",
"methods": 11,
"unique": 11,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel/recording",
"methods": 11,
"unique": 11,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/knowledgebase/src/main/kotlin/eu/corentic/springrag/service/knowledgebase",
"methods": 11,
"unique": 11,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/web",
"methods": 10,
"unique": 10,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/service/docling",
"methods": 10,
"unique": 10,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/security/src/main/kotlin/eu/corentic/springrag/security/service",
"methods": 10,
"unique": 10,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/examples/simple-rag/src/main/kotlin/eu/corentic/springrag/example/rag/simple",
"methods": 9,
"unique": 9,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/model/graph",
"methods": 9,
"unique": 9,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/wikipedia/adapters/src/test/kotlin/eu/corentic/springrag/agent/wikipedia",
"methods": 8,
"unique": 8,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "buildSrc/src/main/kotlin",
"methods": 8,
"unique": 8,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/chat/src/test/kotlin/eu/corentic/springrag/service/chat",
"methods": 8,
"unique": 8,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/common/src/test/kotlin/eu/corentic/springrag/common/ids",
"methods": 8,
"unique": 4,
"unique_ratio": 0.5,
"sore": "\u2205",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/model",
"methods": 8,
"unique": 6,
"unique_ratio": 0.75,
"sore": "\u2205",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/chunk",
"methods": 8,
"unique": 8,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/model/graph",
"methods": 7,
"unique": 6,
"unique_ratio": 0.857,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/partition",
"methods": 7,
"unique": 7,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/capability/support/src/test/kotlin/eu/corentic/springrag/agent/capability/support",
"methods": 6,
"unique": 5,
"unique_ratio": 0.833,
"sore": "\u2205",
"sore_success": false
},
{
"context": "agents/tooling/embabel/src/test/kotlin/eu/corentic/springrag/agent/tooling/embabel",
"methods": 6,
"unique": 6,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/web",
"methods": 6,
"unique": 6,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/config",
"methods": 6,
"unique": 4,
"unique_ratio": 0.667,
"sore": "\u2205",
"sore_success": false
},
{
"context": "infrastructure/adapters/doc-parser/src/systemTest/kotlin/eu/corentic/springrag/config",
"methods": 6,
"unique": 5,
"unique_ratio": 0.833,
"sore": "\u2205",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/health",
"methods": 6,
"unique": 6,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/system",
"methods": 6,
"unique": 6,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/health",
"methods": 6,
"unique": 5,
"unique_ratio": 0.833,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "modules/chat/src/main/kotlin/eu/corentic/springrag/service/chat",
"methods": 6,
"unique": 5,
"unique_ratio": 0.833,
"sore": "\u2205",
"sore_success": false
},
{
"context": "modules/common/src/main/kotlin/eu/corentic/springrag/common",
"methods": 6,
"unique": 6,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/security/src/test/kotlin/eu/corentic/springrag/security/config",
"methods": 6,
"unique": 6,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/capability/ports/src/main/kotlin/eu/corentic/springrag/agent/capability",
"methods": 5,
"unique": 3,
"unique_ratio": 0.6,
"sore": "(listCapabilities.firstOrNull|(AgentExecutionContext|return AgentCapabilityDescriptor(\n id = id,\n capabilityType = capabilityType,\n displayName = describedCapability?.displayName ",
"sore_success": true
},
{
"context": "agents/capability/support/src/main/kotlin/eu/corentic/springrag/agent/capability/support",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "app/src/integrationTest/kotlin/eu/corentic/springrag/controller",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "buildSrc/src/test/kotlin",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/auth",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/service/embedding",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/chat-memory/src/test/kotlin/eu/corentic/springrag/config",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/processor",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/knowledgebase/ports/src/main/kotlin/eu/corentic/springrag/model",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/security/src/main/kotlin/eu/corentic/springrag/security/config",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "platform/test-support/src/test/kotlin/eu/corentic/springrag/testcontainers",
"methods": 5,
"unique": 5,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/rag/ports/src/main/kotlin/eu/corentic/springrag/agent/rag",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/tooling/agent/src/main/kotlin/eu/corentic/springrag/agent/tooling/agent",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "entrypoints/web/src/test/kotlin/eu/corentic/springrag/config",
"methods": 4,
"unique": 3,
"unique_ratio": 0.75,
"sore": "SKIP(large_alphabet)",
"sore_success": false
},
{
"context": "infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/config",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/health",
"methods": 4,
"unique": 3,
"unique_ratio": 0.75,
"sore": "\u2205",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/cleanup",
"methods": 4,
"unique": 2,
"unique_ratio": 0.5,
"sore": "info.(deleteByJobId|deleteByKnowledgeBaseId)",
"sore_success": true
},
{
"context": "infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/config",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/cleanup",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/chat/src/integrationTest/kotlin/eu/corentic/springrag/service/chat",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/chat/src/systemTest/kotlin/eu/corentic/springrag/system",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/model",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/reader",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/partition",
"methods": 4,
"unique": 4,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/testsupport",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/rag/ports/src/test/kotlin/eu/corentic/springrag/model",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/rag/ports/src/test/kotlin/eu/corentic/springrag/agent/rag",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/wikipedia/adapters/src/main/kotlin/eu/corentic/springrag/agent/wikipedia",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/wikipedia/static/src/main/kotlin/eu/corentic/springrag/agent/wikipedia",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "agents/wikipedia/static/src/test/kotlin/eu/corentic/springrag/agent/wikipedia",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "app/src/integrationTest/kotlin/eu/corentic/springrag/service",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "app/src/test/kotlin/eu/corentic/springrag/config",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "entrypoints/agent-mcp-server/src/test/kotlin/eu/corentic/springrag/mcp",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "entrypoints/agent-mcp-server/src/main/kotlin/eu/corentic/springrag/mcp",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "entrypoints/web/src/main/kotlin/eu/corentic/springrag/config",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/health",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/testsupport",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/config",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/health",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/testsupport",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/agent",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/config",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/storage",
"methods": 3,
"unique": 2,
"unique_ratio": 0.667,
"sore": "\u2205",
"sore_success": false
},
{
"context": "infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/testsupport",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/writer",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
},
{
"context": "modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/document",
"methods": 3,
"unique": 3,
"unique_ratio": 1.0,
"sore": "SKIP(too_diverse)",
"sore_success": false
}
],
"coverage": 0.6,
"elapsed_seconds": 0.07
}