mcp-efficiency-engine 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/.github/workflows/autodocs-sync.yml +2 -15
  2. package/.github/workflows/release-npm.yml +111 -0
  3. package/FINAL_USAGE_GUIDE.md +56 -0
  4. package/README.md +133 -0
  5. package/autodocs/README.md +6 -0
  6. package/observability/metrics.md +33 -0
  7. package/observability/scoring-rubric.md +20 -0
  8. package/orchestrator/wiki/graph_consolidator.py +60 -1
  9. package/orchestrator/wiki/incremental_engine.py +23 -1
  10. package/orchestrator/wiki/plugin_manager.py +87 -22
  11. package/package.json +8 -2
  12. package/requirements.txt +1 -0
  13. package/scripts/intake/resolve-routing.py +124 -87
  14. package/scripts/intake/validate-database-routing.py +13 -4
  15. package/scripts/intake/validate-rag-routing.py +4 -3
  16. package/scripts/learning/learning-loop-report.py +28 -10
  17. package/scripts/ops/llm-token-probe.py +103 -39
  18. package/scripts/ops/telemetry-benchmark.py +184 -0
  19. package/scripts/wiki/compiler_main.py +108 -76
  20. package/scripts/wiki/providers/repo_content_provider.py +51 -0
  21. package/scripts/wiki/validator.py +40 -15
  22. package/telemetry/__init__.py +4 -0
  23. package/telemetry/bootstrap.py +47 -0
  24. package/telemetry/collector/engine.py +261 -0
  25. package/telemetry/config.json +20 -0
  26. package/telemetry/config.py +131 -0
  27. package/telemetry/context/propagation.py +85 -0
  28. package/telemetry/events/catalog.py +24 -0
  29. package/telemetry/events/factory.py +42 -0
  30. package/telemetry/exporters/base.py +16 -0
  31. package/telemetry/exporters/console/exporter.py +30 -0
  32. package/telemetry/exporters/json/exporter.py +34 -0
  33. package/telemetry/exporters/langsmith/exporter.py +415 -0
  34. package/telemetry/metrics/aggregator.py +60 -0
  35. package/telemetry/scoring/efficiency.py +68 -0
  36. package/telemetry/tracing/span.py +43 -0
  37. package/observability/evals/chat-token-usage-report.json +0 -64
  38. package/observability/evals/chat-token-usage-report.md +0 -33
  39. package/observability/evals/iteration-value-report.json +0 -76
  40. package/observability/evals/iteration-value-report.md +0 -39
  41. package/observability/evals/learning-loop-report.json +0 -268
  42. package/observability/evals/learning-loop-report.md +0 -37
  43. package/observability/evals/repo-intake-eval-cases.md +0 -23
  44. package/observability/evals/routing-eval-cases.json +0 -68
  45. package/observability/evals/routing-eval-cases.md +0 -25
  46. package/observability/evals/routing-eval-report.json +0 -72
  47. package/observability/logs/copilot-usage-ingest-report.json +0 -13
  48. package/observability/logs/iteration-metrics.jsonl +0 -75
  49. package/observability/logs/learning-feedback.jsonl +0 -152
  50. package/observability/logs/routing-decisions.jsonl +0 -333
  51. package/observability/logs/session/agent-pipeline-preflight-20260701-004146.log +0 -8
  52. package/observability/logs/session/agent-pipeline-preflight-20260701-005554.log +0 -8
  53. package/observability/logs/session/agent-pipeline-preflight-20260701-010351.log +0 -8
  54. package/observability/logs/session/agent-pipeline-preflight-20260704-145829.log +0 -8
  55. package/observability/logs/session/agent-pipeline-preflight-20260704-150021.log +0 -8
  56. package/observability/logs/session/agent-pipeline-preflight-20260704-154328.log +0 -8
  57. package/observability/logs/session/bye-20260629-221513.json +0 -39
  58. package/observability/logs/session/bye-20260629-221545.json +0 -59
  59. package/observability/logs/session/bye-20260629-222007.json +0 -52
  60. package/observability/logs/session/bye-20260629-222133.json +0 -59
  61. package/observability/logs/session/bye-20260629-222412.json +0 -45
  62. package/observability/logs/session/bye-20260629-223224.json +0 -52
  63. package/observability/logs/session/bye-20260629-224050.json +0 -59
  64. package/observability/logs/session/bye-20260630-105732.json +0 -24
  65. package/observability/logs/session/bye-20260630-211536.json +0 -87
  66. package/observability/logs/session/bye-20260630-223423.json +0 -87
  67. package/observability/logs/session/bye-20260630-232534.json +0 -87
  68. package/observability/logs/session/bye-20260701-003638.json +0 -126
  69. package/observability/logs/session/bye-20260701-003849.json +0 -126
  70. package/observability/logs/session/bye-20260701-004315.json +0 -138
  71. package/observability/logs/session/bye-20260701-004559.json +0 -76
  72. package/observability/logs/session/bye-20260701-005913.json +0 -138
  73. package/observability/logs/session/bye-20260701-010753.json +0 -138
  74. package/observability/logs/session/bye-20260703-194106.json +0 -24
  75. package/observability/logs/session/bye-20260703-233443.json +0 -76
  76. package/observability/logs/session/bye-20260703-233653.json +0 -76
  77. package/observability/logs/session/bye-20260704-150317.json +0 -152
  78. package/observability/logs/session/bye-20260704-150929.json +0 -75
  79. package/observability/logs/session/bye-20260704-151050.json +0 -75
  80. package/observability/logs/session/bye-20260705-115458.json +0 -165
  81. package/observability/logs/session/codegraph-status-20260701-004228.log +0 -39
  82. package/observability/logs/session/codegraph-status-20260701-004310.log +0 -39
  83. package/observability/logs/session/codegraph-status-20260701-005637.log +0 -39
  84. package/observability/logs/session/codegraph-status-20260701-005908.log +0 -39
  85. package/observability/logs/session/codegraph-status-20260701-010444.log +0 -39
  86. package/observability/logs/session/codegraph-status-20260701-010747.log +0 -39
  87. package/observability/logs/session/codegraph-status-20260704-150137.log +0 -26
  88. package/observability/logs/session/codegraph-status-20260704-150313.log +0 -28
  89. package/observability/logs/session/codegraph-status-20260704-154445.log +0 -26
  90. package/observability/logs/session/codegraph-status-20260705-115454.log +0 -27
  91. package/observability/logs/session/codegraph-sync-20260701-004211.log +0 -88
  92. package/observability/logs/session/codegraph-sync-20260701-004241.log +0 -82
  93. package/observability/logs/session/codegraph-sync-20260701-005620.log +0 -89
  94. package/observability/logs/session/codegraph-sync-20260701-005840.log +0 -88
  95. package/observability/logs/session/codegraph-sync-20260701-010419.log +0 -93
  96. package/observability/logs/session/codegraph-sync-20260701-010609.log +0 -90
  97. package/observability/logs/session/codegraph-sync-20260704-145856.log +0 -70
  98. package/observability/logs/session/codegraph-sync-20260704-150047.log +0 -53
  99. package/observability/logs/session/codegraph-sync-20260704-150204.log +0 -44
  100. package/observability/logs/session/codegraph-sync-20260704-154353.log +0 -26
  101. package/observability/logs/session/codegraph-sync-20260705-115337.log +0 -32
  102. package/observability/logs/session/hi-20260629-221459.json +0 -38
  103. package/observability/logs/session/hi-20260629-221945.json +0 -59
  104. package/observability/logs/session/hi-20260629-222108.json +0 -66
  105. package/observability/logs/session/hi-20260629-222352.json +0 -45
  106. package/observability/logs/session/hi-20260629-225719.json +0 -59
  107. package/observability/logs/session/hi-20260629-233722.json +0 -52
  108. package/observability/logs/session/hi-20260629-233913.json +0 -198
  109. package/observability/logs/session/hi-20260630-110156.json +0 -177
  110. package/observability/logs/session/hi-20260630-191243.json +0 -184
  111. package/observability/logs/session/hi-20260630-230050.json +0 -234
  112. package/observability/logs/session/hi-20260630-230523.json +0 -227
  113. package/observability/logs/session/hi-20260630-230855.json +0 -227
  114. package/observability/logs/session/hi-20260630-231638.json +0 -227
  115. package/observability/logs/session/hi-20260630-231756.json +0 -219
  116. package/observability/logs/session/hi-20260701-002842.json +0 -234
  117. package/observability/logs/session/hi-20260701-003458.json +0 -282
  118. package/observability/logs/session/hi-20260701-004233.json +0 -290
  119. package/observability/logs/session/hi-20260701-004554.json +0 -236
  120. package/observability/logs/session/hi-20260701-005641.json +0 -290
  121. package/observability/logs/session/hi-20260701-010450.json +0 -290
  122. package/observability/logs/session/hi-20260703-233854.json +0 -312
  123. package/observability/logs/session/hi-20260703-234448.json +0 -318
  124. package/observability/logs/session/hi-20260704-145907.json +0 -353
  125. package/observability/logs/session/hi-20260704-150141.json +0 -392
  126. package/observability/logs/session/hi-20260704-154448.json +0 -392
  127. package/observability/logs/session/iteration-value-refresh-20260701-004309.log +0 -3
  128. package/observability/logs/session/iteration-value-refresh-20260701-005907.log +0 -3
  129. package/observability/logs/session/iteration-value-refresh-20260701-010747.log +0 -3
  130. package/observability/logs/session/iteration-value-refresh-20260704-150312.log +0 -3
  131. package/observability/logs/session/iteration-value-refresh-20260705-115453.log +0 -3
  132. package/observability/logs/session/learning-loop-refresh-20260701-004309.log +0 -3
  133. package/observability/logs/session/learning-loop-refresh-20260701-005906.log +0 -3
  134. package/observability/logs/session/learning-loop-refresh-20260701-010745.log +0 -3
  135. package/observability/logs/session/learning-loop-refresh-20260704-150309.log +0 -3
  136. package/observability/logs/session/learning-loop-refresh-20260705-115450.log +0 -3
  137. package/observability/logs/session/project-notes-refresh-20260701-004227.log +0 -1
  138. package/observability/logs/session/project-notes-refresh-20260701-004308.log +0 -1
  139. package/observability/logs/session/project-notes-refresh-20260701-005636.log +0 -1
  140. package/observability/logs/session/project-notes-refresh-20260701-005906.log +0 -1
  141. package/observability/logs/session/project-notes-refresh-20260701-010443.log +0 -1
  142. package/observability/logs/session/project-notes-refresh-20260701-010744.log +0 -1
  143. package/observability/logs/session/project-notes-refresh-20260704-150133.log +0 -1
  144. package/observability/logs/session/project-notes-refresh-20260704-150309.log +0 -1
  145. package/observability/logs/session/project-notes-refresh-20260704-154442.log +0 -1
  146. package/observability/logs/session/project-notes-refresh-20260705-115449.log +0 -1
  147. package/observability/logs/session/repo-intake-20260701-004218.log +0 -6
  148. package/observability/logs/session/repo-intake-20260701-005626.log +0 -6
  149. package/observability/logs/session/repo-intake-20260701-010433.log +0 -6
  150. package/observability/logs/session/repo-intake-20260704-150053.log +0 -6
  151. package/observability/logs/session/repo-intake-20260704-154404.log +0 -6
  152. package/observability/logs/session/repo-intake-refresh-20260701-004247.log +0 -6
  153. package/observability/logs/session/repo-intake-refresh-20260701-005847.log +0 -6
  154. package/observability/logs/session/repo-intake-refresh-20260701-010615.log +0 -6
  155. package/observability/logs/session/repo-intake-refresh-20260704-150209.log +0 -6
  156. package/observability/logs/session/repo-intake-refresh-20260705-115342.log +0 -6
  157. package/observability/logs/session/repo-registry-validation-20260701-004234.log +0 -2
  158. package/observability/logs/session/repo-registry-validation-20260701-004556.log +0 -2
  159. package/observability/logs/session/repo-registry-validation-20260701-005833.log +0 -2
  160. package/observability/logs/session/repo-registry-validation-20260701-010601.log +0 -2
  161. package/observability/logs/session/repo-registry-validation-20260704-150155.log +0 -2
  162. package/observability/logs/session/repo-registry-validation-20260705-115323.log +0 -2
  163. package/observability/logs/session/repomix-refresh-20260701-003823.log +0 -4236
  164. package/observability/logs/session/repomix-refresh-20260701-004251.log +0 -4275
  165. package/observability/logs/session/repomix-refresh-20260701-005850.log +0 -4248
  166. package/observability/logs/session/repomix-refresh-20260701-010619.log +0 -6531
  167. package/observability/logs/session/repomix-refresh-20260704-150239.log +0 -652
  168. package/observability/logs/session/repomix-refresh-20260705-115419.log +0 -178
  169. package/observability/logs/session/routing-evals-20260701-004221.log +0 -2
  170. package/observability/logs/session/routing-evals-20260701-004235.log +0 -2
  171. package/observability/logs/session/routing-evals-20260701-005629.log +0 -2
  172. package/observability/logs/session/routing-evals-20260701-005834.log +0 -2
  173. package/observability/logs/session/routing-evals-20260701-010437.log +0 -2
  174. package/observability/logs/session/routing-evals-20260701-010603.log +0 -2
  175. package/observability/logs/session/routing-evals-20260704-150125.log +0 -2
  176. package/observability/logs/session/routing-evals-20260704-150157.log +0 -2
  177. package/observability/logs/session/routing-evals-20260704-154434.log +0 -2
  178. package/observability/logs/session/routing-evals-20260705-115327.log +0 -2
  179. package/observability/logs/session/sibling-discovery-refresh-20260701-004250.log +0 -3
  180. package/observability/logs/session/sibling-discovery-refresh-20260701-005850.log +0 -3
  181. package/observability/logs/session/sibling-discovery-refresh-20260701-010618.log +0 -3
  182. package/observability/logs/session/sibling-discovery-refresh-20260704-150238.log +0 -3
  183. package/observability/logs/session/sibling-discovery-refresh-20260705-115418.log +0 -3
@@ -0,0 +1,43 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass, field
4
+ from datetime import datetime, timezone
5
+ from typing import Any
6
+
7
+
8
+ def utc_now() -> str:
9
+ return datetime.now(timezone.utc).isoformat()
10
+
11
+
12
+ @dataclass
13
+ class SpanRecord:
14
+ name: str
15
+ kind: str
16
+ span_id: str
17
+ parent_span_id: str | None
18
+ trace_id: str
19
+ execution_id: str
20
+ started_at: str
21
+ ended_at: str | None = None
22
+ duration_ms: float | None = None
23
+ status: str = "UNSET"
24
+ attributes: dict[str, Any] = field(default_factory=dict)
25
+ events: list[dict[str, Any]] = field(default_factory=list)
26
+ error: str | None = None
27
+
28
+ def add_event(self, name: str, attributes: dict[str, Any] | None = None) -> None:
29
+ self.events.append(
30
+ {
31
+ "name": name,
32
+ "timestamp": utc_now(),
33
+ "attributes": attributes or {},
34
+ }
35
+ )
36
+
37
+ def end(self, *, status: str = "OK", error: str | None = None) -> None:
38
+ self.ended_at = utc_now()
39
+ self.status = status
40
+ self.error = error
41
+ start_dt = datetime.fromisoformat(self.started_at)
42
+ end_dt = datetime.fromisoformat(self.ended_at)
43
+ self.duration_ms = max(0.0, (end_dt - start_dt).total_seconds() * 1000.0)
@@ -1,64 +0,0 @@
1
- {
2
- "timestamp": "2026-07-05T09:54:53.886533+00:00",
3
- "source": "observability/logs/iteration-metrics.jsonl",
4
- "filters": {
5
- "source": "copilot-session",
6
- "from": "",
7
- "to": ""
8
- },
9
- "totals": {
10
- "events": 36,
11
- "input_tokens": 3893402,
12
- "output_tokens": 126892,
13
- "total_tokens": 4020294,
14
- "copilot_credits": 816.9227
15
- },
16
- "breakdown": {
17
- "model": {
18
- "copilot/auto": {
19
- "count": 36,
20
- "input_tokens": 3893402,
21
- "output_tokens": 126892,
22
- "total_tokens": 4020294,
23
- "copilot_credits": 816.9227
24
- }
25
- },
26
- "day": {
27
- "2026-07-03": {
28
- "count": 19,
29
- "input_tokens": 2219137,
30
- "output_tokens": 67846,
31
- "total_tokens": 2286983,
32
- "copilot_credits": 492.07088600000003
33
- },
34
- "2026-07-04": {
35
- "count": 9,
36
- "input_tokens": 876490,
37
- "output_tokens": 21560,
38
- "total_tokens": 898050,
39
- "copilot_credits": 160.161499
40
- },
41
- "2026-07-05": {
42
- "count": 8,
43
- "input_tokens": 797775,
44
- "output_tokens": 37486,
45
- "total_tokens": 835261,
46
- "copilot_credits": 164.690315
47
- }
48
- }
49
- },
50
- "license": {
51
- "plan": "business",
52
- "seats": 1,
53
- "included_credits_per_user_month": 19.0,
54
- "included_credits_total_month": 19.0,
55
- "official_plans_url": "https://github.com/features/copilot/plans?ref_cta=View+pricing+and+plans&ref_loc=hero&ref_page=%2Ffeatures_copilot_copilot_business&plans=business"
56
- },
57
- "budget": {
58
- "used_copilot_credits": 816.9227,
59
- "budget_utilization_rate": 42.995932,
60
- "overage_credits": 797.9227,
61
- "equivalent_seats_used": 42.995932,
62
- "percent_of_one_seat": 4299.59
63
- }
64
- }
@@ -1,33 +0,0 @@
1
- # Chat Token Usage Report
2
-
3
- - timestamp: 2026-07-05T09:54:53.886533+00:00
4
- - source: observability/logs/iteration-metrics.jsonl
5
- - filter.source: copilot-session
6
- - filter.from:
7
- - filter.to:
8
- - plan: business
9
- - seats: 1
10
- - official_plans_url: https://github.com/features/copilot/plans?ref_cta=View+pricing+and+plans&ref_loc=hero&ref_page=%2Ffeatures_copilot_copilot_business&plans=business
11
-
12
- ## Totals
13
-
14
- - events: 36
15
- - input_tokens: 3893402
16
- - output_tokens: 126892
17
- - total_tokens: 4020294
18
- - copilot_credits: 816.9227
19
- - included_credits_total_month: 19.0
20
- - budget_utilization_rate: 42.995932
21
- - overage_credits: 797.9227
22
- - equivalent_seats_used: 42.995932
23
- - percent_of_one_seat: 4299.59
24
-
25
- ## Breakdown by Model
26
-
27
- - copilot/auto: count=36, input=3893402, output=126892, total=4020294, credits=816.9227
28
-
29
- ## Breakdown by Day
30
-
31
- - 2026-07-03: count=19, input=2219137, output=67846, total=2286983, credits=492.070886
32
- - 2026-07-04: count=9, input=876490, output=21560, total=898050, credits=160.161499
33
- - 2026-07-05: count=8, input=797775, output=37486, total=835261, credits=164.690315
@@ -1,76 +0,0 @@
1
- {
2
- "timestamp": "2026-07-05T09:54:54.568327+00:00",
3
- "sources": {
4
- "routing": "observability/logs/routing-decisions.jsonl",
5
- "feedback": "observability/logs/learning-feedback.jsonl",
6
- "metrics": "observability/logs/iteration-metrics.jsonl"
7
- },
8
- "totals": {
9
- "events": 305,
10
- "events_with_event_id": 247,
11
- "metrics_covered": 7,
12
- "feedback_confirmed": 101,
13
- "confirmed_success": 101
14
- },
15
- "kpis": {
16
- "metrics_coverage_rate": 0.0283,
17
- "confirmed_feedback_rate": 0.4089,
18
- "confirmed_success_rate": 1.0,
19
- "total_tokens": 6474,
20
- "total_cost_usd": 0.0542,
21
- "tokens_per_confirmed_success": 64.1,
22
- "cost_per_confirmed_success_usd": 0.000537
23
- },
24
- "breakdown": {
25
- "tool_mode": {
26
- "hybrid": {
27
- "count": 2,
28
- "tokens": 2400,
29
- "cost_usd": 0.02
30
- },
31
- "local-only": {
32
- "count": 4,
33
- "tokens": 4044,
34
- "cost_usd": 0.0342
35
- },
36
- "model-only": {
37
- "count": 1,
38
- "tokens": 30,
39
- "cost_usd": 0.0
40
- }
41
- },
42
- "model": {
43
- "GPT-5.3-Codex": {
44
- "count": 7,
45
- "tokens": 6474,
46
- "cost_usd": 0.054200000000000005
47
- }
48
- },
49
- "engine": {
50
- "Azure RAG Builder": {
51
- "count": 1,
52
- "tokens": 1200,
53
- "cost_usd": 0.01
54
- },
55
- "CodeGraph": {
56
- "count": 4,
57
- "tokens": 2874,
58
- "cost_usd": 0.0242
59
- },
60
- "GitNexus": {
61
- "count": 1,
62
- "tokens": 1200,
63
- "cost_usd": 0.01
64
- },
65
- "Graphify": {
66
- "count": 1,
67
- "tokens": 1200,
68
- "cost_usd": 0.01
69
- }
70
- }
71
- },
72
- "assessment": {
73
- "has_value_signal": true,
74
- "notes": "Value signal available. Track trend, not one-point absolute values."
75
- }
76
- }
@@ -1,39 +0,0 @@
1
- # Iteration Value Report
2
-
3
- - timestamp: 2026-07-05T09:54:54.568327+00:00
4
- - events: 305
5
- - events_with_event_id: 247
6
- - metrics_covered: 7
7
- - feedback_confirmed: 101
8
- - confirmed_success: 101
9
-
10
- ## KPI
11
-
12
- - metrics_coverage_rate: 2.83%
13
- - confirmed_feedback_rate: 40.89%
14
- - confirmed_success_rate: 100.0%
15
- - total_tokens: 6474
16
- - total_cost_usd: 0.0542
17
- - tokens_per_confirmed_success: 64.1
18
- - cost_per_confirmed_success_usd: 0.000537
19
-
20
- ## Breakdown
21
-
22
- ### Tool mode
23
- - hybrid: count=2, tokens=2400, cost_usd=0.02
24
- - local-only: count=4, tokens=4044, cost_usd=0.0342
25
- - model-only: count=1, tokens=30, cost_usd=0.0
26
-
27
- ### Model
28
- - GPT-5.3-Codex: count=7, tokens=6474, cost_usd=0.0542
29
-
30
- ### Engine
31
- - Azure RAG Builder: count=1, tokens=1200, cost_usd=0.01
32
- - CodeGraph: count=4, tokens=2874, cost_usd=0.0242
33
- - GitNexus: count=1, tokens=1200, cost_usd=0.01
34
- - Graphify: count=1, tokens=1200, cost_usd=0.01
35
-
36
- ## Assessment
37
-
38
- - has_value_signal: True
39
- - notes: Value signal available. Track trend, not one-point absolute values.
@@ -1,268 +0,0 @@
1
- {
2
- "timestamp": "2026-07-05T09:54:51.179894+00:00",
3
- "source": "C:\\repo\\mcp-efficiency-engine\\observability\\logs\\routing-decisions.jsonl",
4
- "feedback_source": "C:\\repo\\mcp-efficiency-engine\\observability\\logs\\learning-feedback.jsonl",
5
- "total_events": 305,
6
- "pending_events": 197,
7
- "confirmed_events": 108,
8
- "kpis": {
9
- "fallback_rate": 0.1475,
10
- "grounded_rate": 0.8492,
11
- "success_rate": 1.0,
12
- "confidence_avg": 0.945
13
- },
14
- "thresholds": {
15
- "fallback_rate_max": 0.2,
16
- "grounded_rate_min": 0.8,
17
- "confidence_avg_min": 0.8
18
- },
19
- "health": {
20
- "fallback_ok": true,
21
- "grounded_ok": true,
22
- "confidence_ok": true
23
- },
24
- "patterns": [
25
- {
26
- "pattern": "azure-rag+info",
27
- "total": 4,
28
- "fallback_rate": 0.0,
29
- "grounded_rate": 1.0,
30
- "pending_count": 4,
31
- "confirmed_count": 0,
32
- "success_rate": 0.0,
33
- "confidence_avg": 0.0,
34
- "engines": {
35
- "Azure RAG Builder": 4
36
- },
37
- "agents": {
38
- "rag-azure": 4
39
- }
40
- },
41
- {
42
- "pattern": "azure-rag+knowledge-grounded",
43
- "total": 52,
44
- "fallback_rate": 0.0,
45
- "grounded_rate": 1.0,
46
- "pending_count": 38,
47
- "confirmed_count": 14,
48
- "success_rate": 1.0,
49
- "confidence_avg": 0.946,
50
- "engines": {
51
- "Azure RAG Builder": 52
52
- },
53
- "agents": {
54
- "rag-azure": 52
55
- }
56
- },
57
- {
58
- "pattern": "backend+bug-fix",
59
- "total": 12,
60
- "fallback_rate": 0.0,
61
- "grounded_rate": 1.0,
62
- "pending_count": 0,
63
- "confirmed_count": 12,
64
- "success_rate": 1.0,
65
- "confidence_avg": 0.95,
66
- "engines": {
67
- "CodeGraph": 12
68
- },
69
- "agents": {
70
- "backend": 12
71
- }
72
- },
73
- {
74
- "pattern": "dba+analysis",
75
- "total": 51,
76
- "fallback_rate": 0.0,
77
- "grounded_rate": 1.0,
78
- "pending_count": 37,
79
- "confirmed_count": 14,
80
- "success_rate": 1.0,
81
- "confidence_avg": 0.946,
82
- "engines": {
83
- "Graphify": 51
84
- },
85
- "agents": {
86
- "dba": 51
87
- }
88
- },
89
- {
90
- "pattern": "dba+sql",
91
- "total": 18,
92
- "fallback_rate": 0.0,
93
- "grounded_rate": 1.0,
94
- "pending_count": 11,
95
- "confirmed_count": 7,
96
- "success_rate": 1.0,
97
- "confidence_avg": 0.95,
98
- "engines": {
99
- "Graphify": 18
100
- },
101
- "agents": {
102
- "dba": 18
103
- }
104
- },
105
- {
106
- "pattern": "dev+bug-fix",
107
- "total": 50,
108
- "fallback_rate": 0.06,
109
- "grounded_rate": 1.0,
110
- "pending_count": 47,
111
- "confirmed_count": 3,
112
- "success_rate": 1.0,
113
- "confidence_avg": 0.917,
114
- "engines": {
115
- "CodeGraph": 50
116
- },
117
- "agents": {
118
- "backend": 50
119
- }
120
- },
121
- {
122
- "pattern": "dev+info",
123
- "total": 2,
124
- "fallback_rate": 0.0,
125
- "grounded_rate": 0.5,
126
- "pending_count": 2,
127
- "confirmed_count": 0,
128
- "success_rate": 0.0,
129
- "confidence_avg": 0.0,
130
- "engines": {
131
- "CodeGraph": 2
132
- },
133
- "agents": {
134
- "backend": 2
135
- }
136
- },
137
- {
138
- "pattern": "frontend+bug-fix",
139
- "total": 1,
140
- "fallback_rate": 1.0,
141
- "grounded_rate": 0.0,
142
- "pending_count": 1,
143
- "confirmed_count": 0,
144
- "success_rate": 0.0,
145
- "confidence_avg": 0.0,
146
- "engines": {
147
- "CodeGraph": 1
148
- },
149
- "agents": {
150
- "frontend-agent": 1
151
- }
152
- },
153
- {
154
- "pattern": "frontend+feature",
155
- "total": 14,
156
- "fallback_rate": 0.0,
157
- "grounded_rate": 1.0,
158
- "pending_count": 2,
159
- "confirmed_count": 12,
160
- "success_rate": 1.0,
161
- "confidence_avg": 0.95,
162
- "engines": {
163
- "CodeGraph": 14
164
- },
165
- "agents": {
166
- "frontend-agent": 14
167
- }
168
- },
169
- {
170
- "pattern": "incremental-json-projection",
171
- "total": 7,
172
- "fallback_rate": 0.0,
173
- "grounded_rate": 1.0,
174
- "pending_count": 0,
175
- "confirmed_count": 7,
176
- "success_rate": 1.0,
177
- "confidence_avg": 0.91,
178
- "engines": {
179
- "CodeGraph": 7
180
- },
181
- "agents": {
182
- "autodocs-agent": 7
183
- }
184
- },
185
- {
186
- "pattern": "iot+architecture",
187
- "total": 1,
188
- "fallback_rate": 0.0,
189
- "grounded_rate": 1.0,
190
- "pending_count": 1,
191
- "confirmed_count": 0,
192
- "success_rate": 0.0,
193
- "confidence_avg": 0.0,
194
- "engines": {
195
- "GitNexus/CodeGraph + Graphify": 1
196
- },
197
- "agents": {
198
- "iot": 1
199
- }
200
- },
201
- {
202
- "pattern": "legacy+migration",
203
- "total": 53,
204
- "fallback_rate": 0.7358,
205
- "grounded_rate": 0.3208,
206
- "pending_count": 39,
207
- "confirmed_count": 14,
208
- "success_rate": 1.0,
209
- "confidence_avg": 0.946,
210
- "engines": {
211
- "GitNexus": 53
212
- },
213
- "agents": {
214
- "legacy": 53
215
- }
216
- },
217
- {
218
- "pattern": "rag+info",
219
- "total": 21,
220
- "fallback_rate": 0.0952,
221
- "grounded_rate": 0.9048,
222
- "pending_count": 8,
223
- "confirmed_count": 13,
224
- "success_rate": 1.0,
225
- "confidence_avg": 0.95,
226
- "engines": {
227
- "CodeGraph": 1,
228
- "Graphify": 20
229
- },
230
- "agents": {
231
- "backend": 1,
232
- "rag-local": 20
233
- }
234
- },
235
- {
236
- "pattern": "unknown-domain+info",
237
- "total": 6,
238
- "fallback_rate": 0.0,
239
- "grounded_rate": 0.0,
240
- "pending_count": 6,
241
- "confirmed_count": 0,
242
- "success_rate": 0.0,
243
- "confidence_avg": 0.0,
244
- "engines": {
245
- "CodeGraph": 6
246
- },
247
- "agents": {
248
- "backend": 6
249
- }
250
- },
251
- {
252
- "pattern": "ux-ui+review",
253
- "total": 13,
254
- "fallback_rate": 0.0,
255
- "grounded_rate": 1.0,
256
- "pending_count": 1,
257
- "confirmed_count": 12,
258
- "success_rate": 1.0,
259
- "confidence_avg": 0.95,
260
- "engines": {
261
- "Graphify": 13
262
- },
263
- "agents": {
264
- "ux-ui": 13
265
- }
266
- }
267
- ]
268
- }
@@ -1,37 +0,0 @@
1
- # Learning Loop Report
2
-
3
- - timestamp: 2026-07-05T09:54:51.179894+00:00
4
- - total_events: 305
5
- - pending_events: 197
6
- - confirmed_events: 108
7
-
8
- ## Global KPIs
9
-
10
- - fallback_rate: 14.75%
11
- - grounded_rate: 84.92%
12
- - success_rate: 100.0%
13
- - confidence_avg: 0.945
14
-
15
- ## Health
16
-
17
- - fallback_ok: True
18
- - grounded_ok: True
19
- - confidence_ok: True
20
-
21
- ## Patterns
22
-
23
- - azure-rag+info: total=4, pending=4, confirmed=0, fallback=0.0%, grounded=100.0%, confidence=0.0
24
- - azure-rag+knowledge-grounded: total=52, pending=38, confirmed=14, fallback=0.0%, grounded=100.0%, confidence=0.946
25
- - backend+bug-fix: total=12, pending=0, confirmed=12, fallback=0.0%, grounded=100.0%, confidence=0.95
26
- - dba+analysis: total=51, pending=37, confirmed=14, fallback=0.0%, grounded=100.0%, confidence=0.946
27
- - dba+sql: total=18, pending=11, confirmed=7, fallback=0.0%, grounded=100.0%, confidence=0.95
28
- - dev+bug-fix: total=50, pending=47, confirmed=3, fallback=6.0%, grounded=100.0%, confidence=0.917
29
- - dev+info: total=2, pending=2, confirmed=0, fallback=0.0%, grounded=50.0%, confidence=0.0
30
- - frontend+bug-fix: total=1, pending=1, confirmed=0, fallback=100.0%, grounded=0.0%, confidence=0.0
31
- - frontend+feature: total=14, pending=2, confirmed=12, fallback=0.0%, grounded=100.0%, confidence=0.95
32
- - incremental-json-projection: total=7, pending=0, confirmed=7, fallback=0.0%, grounded=100.0%, confidence=0.91
33
- - iot+architecture: total=1, pending=1, confirmed=0, fallback=0.0%, grounded=100.0%, confidence=0.0
34
- - legacy+migration: total=53, pending=39, confirmed=14, fallback=73.58%, grounded=32.08%, confidence=0.946
35
- - rag+info: total=21, pending=8, confirmed=13, fallback=9.52%, grounded=90.48%, confidence=0.95
36
- - unknown-domain+info: total=6, pending=6, confirmed=0, fallback=0.0%, grounded=0.0%, confidence=0.0
37
- - ux-ui+review: total=13, pending=1, confirmed=12, fallback=0.0%, grounded=100.0%, confidence=0.95
@@ -1,23 +0,0 @@
1
- # Repo Intake Eval Cases
2
-
3
- Casos minimos para validar que el intake registra capacidades y dominios esperados.
4
-
5
- ## Matriz base
6
-
7
- 1. `boostDBA` -> `domain=dba`, motor esperado `Graphify`.
8
- 1. `boost_azure_rag` -> `domain=azure-rag`, motor esperado `Azure RAG Builder`.
9
- 1. `boost_iot` -> `domain=iot`, agente esperado `iot`.
10
-
11
- ## Criterios de aprobacion
12
-
13
- 1. Repo aparece en `repo-registry/repos.yml` con `approval.status=approved`.
14
- 1. Se genera capability en `repo-intake/generated/v2/<slug>/<version>/capabilities/capability.json`.
15
- 1. No hay errores en `validate-repo-registry.ps1 -Strict`.
16
-
17
- ## Comandos
18
-
19
- ```powershell
20
- pwsh -NoProfile -ExecutionPolicy Bypass -File .\scripts\intake\validate-repo-registry.ps1 -Strict
21
- .\scripts\intake\run-repo-intake.ps1
22
- ```
23
-
@@ -1,68 +0,0 @@
1
- {
2
- "cases": [
3
- {
4
- "id": "case-login-bug",
5
- "input": "Arregla bug de login",
6
- "intent": "bug-fix",
7
- "domain": "backend",
8
- "source_type": "code",
9
- "capability": "backend-coding"
10
- },
11
- {
12
- "id": "case-sla-grounding",
13
- "input": "Necesito fuentes SLA reales",
14
- "intent": "knowledge-grounded",
15
- "domain": "azure-rag",
16
- "source_type": "corporate-docs",
17
- "capability": "azure-rag-enterprise"
18
- },
19
- {
20
- "id": "case-dba-analysis",
21
- "input": "Analiza schema SQL",
22
- "intent": "analysis",
23
- "domain": "dba",
24
- "source_type": "technical-docs",
25
- "capability": "database-analysis"
26
- },
27
- {
28
- "id": "case-dba-sql-intent",
29
- "input": "Analiza esquema SQL de la tabla de pedidos",
30
- "intent": "sql",
31
- "domain": "dba",
32
- "source_type": "technical-docs",
33
- "capability": "database-analysis"
34
- },
35
- {
36
- "id": "case-legacy-migration",
37
- "input": "Plan de migracion legacy",
38
- "intent": "migration",
39
- "domain": "legacy",
40
- "source_type": "code",
41
- "capability": "legacy-migration"
42
- },
43
- {
44
- "id": "case-rag-tech-docs-local",
45
- "input": "explica guia tecnica local",
46
- "intent": "info",
47
- "domain": "rag",
48
- "source_type": "technical-docs",
49
- "capability": "rag-knowledge"
50
- },
51
- {
52
- "id": "case-frontend-feature",
53
- "input": "Implementar nuevo componente de checkout",
54
- "intent": "feature",
55
- "domain": "frontend",
56
- "source_type": "code",
57
- "capability": "frontend-coding"
58
- },
59
- {
60
- "id": "case-ux-ui-review",
61
- "input": "Revisar consistencia y accesibilidad del design system",
62
- "intent": "review",
63
- "domain": "ux-ui",
64
- "source_type": "technical-docs",
65
- "capability": "ux-ui-governance"
66
- }
67
- ]
68
- }
@@ -1,25 +0,0 @@
1
- # Routing Eval Cases
2
-
3
- ## Casos base
4
-
5
- 1. `bug login` -> `backend` + `CodeGraph` + Caveman `full`.
6
- 1. `SLA` -> `rag-azure` + `Azure RAG Builder` + `sources` no vacio.
7
- 1. `arquitectura` -> `rag-local`/`dba` segun dominio con `Graphify`.
8
- 1. `legacy migration` -> `legacy` + `GitNexus` + `hitl.required=true` cuando haya alto impacto/fallback.
9
-
10
- ## Suite ejecutable JSON-first
11
-
12
- - `observability/evals/routing-eval-cases.json`
13
-
14
- ## Runner
15
-
16
- ```powershell
17
- py -3 .\scripts\intake\run-routing-evals.py
18
- ```
19
-
20
- ## Criterios de pase
21
-
22
- 1. `cases_failed = 0`.
23
- 1. Coincidencia exacta de `agent` y `engine` por caso.
24
- 1. `prompt.exists = true` en todos los casos.
25
-