File size: 8,019 Bytes
59ce7b1
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f81b58b
59ce7b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
# Technical Debt Registry

> **Last Updated**: 2025-12-06

This document tracks all known technical debt items in the DeepBoner codebase.

## Summary Dashboard

| Category | Open | In Progress | Resolved |
|----------|------|-------------|----------|
| Architecture | 2 | 0 | 0 |
| Code Quality | 4 | 0 | 0 |
| Testing | 2 | 0 | 0 |
| Documentation | 2 | 0 | 0 |
| Performance | 2 | 0 | 0 |
| Dependencies | 1 | 0 | 0 |
| **Total** | **13** | **0** | **0** |

---

## Architecture

### DEBT-001: Reserved but Empty Directories

**Category:** Architecture
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
`src/database_services/` and `src/retrieval_factory/` exist but are empty placeholders for future features.

**Impact:**
- Confusion about project structure
- Empty imports may cause issues

**Current Workaround:**
Document as "reserved" in component inventory.

**Proposed Solution:**
Either implement the features or remove the directories.

**Effort Estimate:** S

---

### DEBT-002: Experimental LangGraph Orchestrator

**Category:** Architecture
**Severity:** Medium
**Added:** 2025-12-06
**Status:** Open

**Description:**
`src/orchestrators/langgraph_orchestrator.py` is marked as experimental and may not be fully tested or integrated.

**Impact:**
- Unclear which orchestrator is preferred
- May have untested edge cases
- Maintenance burden of two orchestrators

**Current Workaround:**
Default to AdvancedOrchestrator in production.

**Proposed Solution:**
Either promote to production status with full testing, or deprecate and remove.

**Effort Estimate:** M

---

## Code Quality

### DEBT-003: Complex Orchestrator Logic

**Category:** Code Quality
**Severity:** Medium
**Added:** 2025-12-06
**Status:** Open

**Description:**
`src/orchestrators/advanced.py` has complex branching logic that required disabling pylint rules (PLR0912, PLR0913).

**Impact:**
- Difficult to understand and maintain
- Higher bug risk
- Harder to test comprehensively

**Current Workaround:**
Suppressed linter warnings with explicit ignores.

**Proposed Solution:**
Refactor into smaller, focused methods. Consider command pattern for orchestration steps.

**Effort Estimate:** L

---

### DEBT-004: Magic Numbers in Code

**Category:** Code Quality
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
Some statistical constants and thresholds are hardcoded (e.g., p-values, score thresholds), requiring PLR2004 ignore.

**Impact:**
- Difficult to tune parameters
- Magic numbers obscure intent

**Current Workaround:**
Documented with comments where used.

**Proposed Solution:**
Move to configuration or constants module with documentation.

**Effort Estimate:** S

---

### DEBT-005: Global Singleton Pattern

**Category:** Code Quality
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
Settings uses a singleton pattern (`settings = get_settings()`), requiring PLW0603 ignore.

**Impact:**
- Harder to test with different configurations
- Global state can cause issues

**Current Workaround:**
Test fixtures override settings.

**Proposed Solution:**
Consider dependency injection for settings, especially in tests.

**Effort Estimate:** M

---

### DEBT-006: ClinicalTrials Uses requests Instead of httpx

**Category:** Code Quality
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
`src/tools/clinicaltrials.py` uses `requests` library while rest of codebase uses `httpx` because ClinicalTrials.gov WAF blocks httpx.

**Impact:**
- Inconsistent HTTP client usage
- Two libraries for same purpose

**Current Workaround:**
Documented in code comments and pyproject.toml.

**Proposed Solution:**
1. Investigate httpx headers/options that work with WAF
2. Or accept this as necessary divergence and document

**Effort Estimate:** M

---

## Testing

### DEBT-007: Integration Tests Require Real APIs

**Category:** Testing
**Severity:** Medium
**Added:** 2025-12-06
**Status:** Open

**Description:**
Integration tests marked with `@pytest.mark.integration` make real API calls, which can be slow and flaky.

**Impact:**
- Slow CI runs
- Flaky tests due to network issues
- Rate limit risks

**Current Workaround:**
Integration tests are not run in CI by default.

**Proposed Solution:**
1. Use VCR-style recording for reproducible tests
2. Set up isolated test environment
3. Better mock infrastructure for external APIs

**Effort Estimate:** L

---

### DEBT-008: Incomplete E2E Test Coverage

**Category:** Testing
**Severity:** Medium
**Added:** 2025-12-06
**Status:** Open

**Description:**
End-to-end tests exist but don't cover all user scenarios, especially error paths.

**Impact:**
- Production bugs may not be caught in testing
- Edge cases untested

**Current Workaround:**
Manual testing before releases.

**Proposed Solution:**
Expand E2E test suite with more scenarios, especially:
- Error handling
- Rate limit recovery
- Multiple iterations

**Effort Estimate:** L

---

## Documentation

### DEBT-009: Outdated Inline Comments

**Category:** Documentation
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
Some code comments may reference old architecture or removed features from rapid hackathon development.

**Impact:**
- Confusion when reading code
- Comments don't match implementation

**Current Workaround:**
None - requires manual review.

**Proposed Solution:**
Systematic review of comments during code review process.

**Effort Estimate:** M

---

### DEBT-010: Missing API Documentation

**Category:** Documentation
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
No formal API documentation (e.g., Sphinx-generated) for public interfaces.

**Impact:**
- Developers must read source code
- Hard to know public vs internal APIs

**Current Workaround:**
Docstrings in code serve as documentation.

**Proposed Solution:**
Consider generating API docs with Sphinx or mkdocs.

**Effort Estimate:** M

---

## Performance

### DEBT-011: Model Loading on First Request

**Category:** Performance
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
Sentence-transformers model is loaded on first query, causing slow initial response.

**Impact:**
- First query takes 30+ seconds
- Poor user experience on first use

**Current Workaround:**
Docker pre-downloads the model during build.

**Proposed Solution:**
1. Pre-warm model on application startup
2. Or accept cold start with loading indicator

**Effort Estimate:** S

---

### DEBT-012: No Connection Pooling

**Category:** Performance
**Severity:** Low
**Added:** 2025-12-06
**Status:** Open

**Description:**
External API calls may not fully utilize connection pooling.

**Impact:**
- Slower requests due to connection overhead
- Higher latency under load

**Current Workaround:**
httpx AsyncClient provides some pooling.

**Proposed Solution:**
Audit and optimize connection handling for external APIs.

**Effort Estimate:** S

---

## Dependencies

### DEBT-013: Pinned Beta Dependencies

**Category:** Dependencies
**Severity:** Medium
**Added:** 2025-12-06
**Status:** Open

**Description:**
`agent-framework-core==1.0.0b*` is a beta release, pinned to avoid breaking changes.

**Impact:**
- May miss bug fixes and improvements
- Beta software may have stability issues

**Current Workaround:**
Version pinning with explicit documentation.

**Proposed Solution:**
1. Monitor for stable release
2. Upgrade and test when 1.0.0 releases
3. Add integration tests specific to agent framework

**Effort Estimate:** M

---

## Resolved Items

*No items resolved yet.*

---

## How to Update This Registry

### Adding Items

1. Create new section with next DEBT-XXX number
2. Fill in all fields
3. Update summary dashboard

### Resolving Items

1. Change status to "Resolved"
2. Add resolution notes
3. Move to "Resolved Items" section
4. Update summary dashboard

### Review Schedule

- Weekly: Triage new items
- Sprint: Plan debt reduction
- Monthly: Review progress