DeepBoner / docs /technical-debt /debt-registry.md
Claude
docs: Add Agent-Tool-State Contract Registry
f81b58b unverified
# 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