SRED Project Index — 2026 (FY)
Project: django-micboard Fiscal Year: 2026 (Calendar year 2026-01-01 to 2026-12-31) Status: Living document — updated as projects complete
SREDable Projects Summary
| # | Project | Status | Core Uncertainty | Primary ADRs |
|---|---|---|---|---|
| 1 | Service Layer Decomposition | ✅ Implemented | How to decompose 10K-line service layer into ≤400-line domain modules without breaking call sites | ADR-001 |
| 2 | Extract Business Logic from Models to Services | ✅ Implemented | How to extract 5 models’ embedded orchestration (save/clean/lifecycle) into explicit service seams while preserving invariants | ADR-002 |
| 3 | Admin Dashboard Modularization | ✅ Implemented | How to split a 2,431-line monolithic admin dashboard into domain modules with zero global data exposure | ADR-003 |
| 4 | Standardize Manufacturer Plugins | ✅ Implemented | How to share verified transport/circuit-breaker/health contracts across divergent protocols (REST+WS, REST+SSE) without forcing inheritance | ADR-004 |
| 5 | Test Infrastructure Overhaul | ✅ Implemented | How to build factory-based test coverage from 0% service coverage to 95% branch floor across domain-aligned structure | ADR-006 |
| 6 | Unify Settings Proxy | ✅ Implemented | How to consolidate dual settings mechanisms + 20 direct config reads into one scoped service with compile-time enforcement | ADR-005 |
| 7 | Remove Compat Shim Layer | ✅ Implemented | How to eliminate sys.modules patching shim in single PR without breaking 15-25 import sites mid-migration | ADR-008 |
| 8 | Consolidate Exception Hierarchy | ✅ Implemented | How to merge dual exception roots (domain + transport) into single structured hierarchy with machine-readable codes | ADR-009 |
| 9 | Bound Live Monitoring Projections | ✅ Implemented | How to bound HTMX dashboard query/response work to constant ceilings regardless of tenant inventory size | ADR-012 |
| 10 | Introduce DRF API Layer (v1 Read-Only) | 🔄 Proposed | How to layer versioned REST API onto admin-only codebase without duplicating domain logic | ADR-007 |
| 11 | Introduce EventBus for Signal-Based Communication | 🔄 Proposed | How to replace parallel Django signals + direct broadcasts with single injectable seam enabling testable event flows | ADR-011 |
| 12 | Split Base HTTP Client | 🔄 Superseded | Plan abandoned — original three-module split replaced by composite client pattern in services/common/base/client.py |
ADR-010 (superseded) |
Non-SREDable Work (Routine Engineering)
| Area | Description | Why Not SRED |
|---|---|---|
| Dependency updates | uv, Renovate, Warden upgrades | Routine maintenance; no technical uncertainty |
| Bug fixes / minor features | Incremental improvements | Applying known patterns; no systematic investigation |
| Documentation updates | README, guides, ADR maintenance | Recording decisions, not resolving uncertainties |
Navigation
- Project 1: Service Layer Decomposition
- Project 2: Extract Business Logic from Models
- Project 3: Admin Dashboard Modularization
- Project 4: Standardize Manufacturer Plugins
- Project 5: Test Infrastructure Overhaul
- Project 6: Unify Settings Proxy
- Project 7: Remove Compat Shim
- Project 8: Consolidate Exception Hierarchy
- Project 9: Bound Live Monitoring Projections
- Project 10: Introduce DRF API Layer
- Project 11: Introduce EventBus
- Project 12: Split Base HTTP Client
SRED Eligibility Notes
All 9 implemented projects qualify under Experimental Development (Category 16):
- Each tackled a genuine technical uncertainty (no known solution in codebase or ecosystem)
- Each used systematic investigation (ADR process, spike implementations, iterative refinement)
- Advancement = new architectural patterns now codified and enforced in CI
- Failure was possible — several approaches were tried and discarded (e.g., base class inheritance for plugins, compatibility shims for service decomposition)
2 proposed projects (10 and 11) are ready for SRED consideration when implementation begins. Project 12 is superseded and is retained only as a record of the abandoned plan.
Generated from ADRs and CONTEXT.md. Keep synchronized with architectural decisions.
