This roadmap documents the evolution of the Research Project Template infrastructure.
For architecture details see architecture.md and workflow.md.
Two-layer architecture, thin orchestrator pattern, 10-stage DAG pipeline, multi-project support.
mypy strict for all 8 infrastructure packages (126 files, 0 errors); Ruff format enforcement; Security hardening (Bandit + pip-audit CI gates); Dockerfile modernisation to python:3.12 + uv.
ProjectLogger with structured log format, log_operation() context manager, format_duration().
verify_no_mocks.py CI gate, eliminated all mock/fake patterns from test suite.
Script discovery, get_subprocess_env(), hermetic environment for subprocess calls.
TypedDicts for config structures, ResolvedTestingConfig, ProjectInfo dataclass.
Replaced monkeypatch with real tmp_path fixtures and environment isolation.
caplog-based test assertions replacing stdout capture, log_parser.py utilities.
710 → 0 ruff errors across infrastructure/, scripts/, tests/.
mypy: 100 → 0 errors across 26 infrastructure/core/ modules. 13 files type-narrowed.
Typed InfraError constants in errors.py, standardized ❌ [CODE] message — suggestion format, fixed flaky test_print_summary.
python3 → uv run python across docs, auto-generated API reference, roadmap refresh.
161-commit systematic blind-review campaign across all 8 infrastructure packages:
- Import hygiene (unused imports,
sys.pathmutations,TYPE_CHECKINGguards) - Exception handling (narrow types, restore context, fix silent swallowing)
- Dead code removal (
coverage_reporter.py, stub wrappers, passthrough methods) - Type annotations modernised (legacy
typing→ built-in generics) - API surface consolidation (
OllamaClientConfig,PerformanceMetrics,ProjectLogger) - Bug fixes (inverted bool, stall detection, path bugs, broken imports)
- Structural: eliminated
core.pyhub, extracted_build_stage_list, broke circular dep - Logging noise reduction; docstring bloat; test name collisions resolved
Make projects/code_project/ fully compliant post-desloppify: zero ruff errors, no mock patterns, demonstrate all infrastructure tooling (ProjectLogger, validate_interpreter(), ResolvedTestingConfig, load_config()).
- Incremental pipeline: Skip unchanged stages via content hashing
- Parallel project execution: Multi-process orchestration
- Plugin architecture: User-defined pipeline stages
- Remote LLM providers: OpenAI/Anthropic alongside local Ollama
- Web dashboard: Real-time pipeline monitoring and reporting
| Metric | Value |
|---|---|
| Desloppify review rounds | 26 |
| Commits (desloppify campaign) | 161 |
| Files changed | 948 |
| Ruff lint errors | 0 |
| mypy errors | 0 (all 8 packages) |
| Test suite | All pass, 0 failures |
| Bandit MEDIUM+ findings | 0 |
| Core infrastructure packages | 8 |
| Error constants | 22 typed InfraError |
Last updated: 2026-03-10