Roadmap¶
The Novel Testbed roadmap is maintained in the repository root:
Recent Changes¶
2026-03-07¶
Cleanup pass — dead code and orphaned artifacts removed
- Deleted orphaned
novel_testbed_app/directory (contained only a stale.pytest_cacheartifact with no source files) - Removed
InferredModuleContractdata class fromnovel_testbed/inference/types.py— the type was defined but never instantiated in production code;InferredStateandrequire_keysare the only runtime-used exports - Removed two corresponding dead tests (
test_inferred_module_contract_defaults,test_inferred_module_contract_custom_confidence) fromtests/inference/test_types.pyand updated the import block - Final test count: 95 tests, all passing
2026-03-06¶
Comprehensive refactor, design-pattern overhaul, and documentation refresh (commit 85e9879)
- Applied Strategy, Template Method, Protocol, and Chain-of-Responsibility patterns across the pipeline
- Fixed critical
LLMSegmenterbug: was accessing a private attribute (inferencer.client) on a class that stores it as_client, and calling a method (complete) that did not exist — redesignedLLMSegmenterto accept a client object directly via dependency injection - Added
complete(prompt)method and_extract_text()static helper toOpenAILLMClient, eliminating duplicated response-walking logic - Resolved layering violation: removed module-level imports of inference-layer classes from
segmenter.py; replaced with a local import insideLLMSegmenter.__init__ - Fixed
--llmCLI flag: now correctly constructsOpenAILLMClientand passes it toLLMSegmenter(client=...) - Fixed
pyproject.tomlpackaging: changedpackages = ["novel_testbed"]topackages.findso all sub-packages are included in distribution builds - Fixed logger misconfiguration in
auto_contract.py(spuriousaddHandler+propagatecalls removed) - Added full Sphinx-format doc comments to
llm_client.py,llm_inferencer.py,assessor.py, andrules.py; added PEP 8 parameter name consistency - Added
inline_list_comprehensioninassessor.report_to_json, removing an unnecessary nested function - Created new test modules:
tests/segmentation/test_llm_segmenter.py(7 tests),tests/inference/test_prompts.py(7 tests),tests/inference/test_types.py(10 tests),tests/utils/test_source_fingerprint.py(8 tests); expandedtests/core/test_cli.pywith 7 new CLI tests - Rewrote
docs/software-design.mdwith full architecture diagrams, pattern inventory, and layering rules - Updated
docs/api-inference.md,docs/api-segmentation.md,docs/index.md,mkdocs.yml - Added
Roadmap.md(8-phase plan) and updatedREADME.md,README-cli.md,README-docs.md
Summary: Planned Phases¶
| Phase | Focus | Status |
|---|---|---|
| v1.0 | Core pipeline: segment → parse → infer → assess | Done |
| Phase 2 | Richer assessment rules (flat arcs, threat peaks, agency collapse) | Planned |
| Phase 3 | Human-readable reports and pressure-curve visualization | Planned |
| Phase 4 | Alternative inference backends (Anthropic, NLP, local models) | Planned |
| Phase 5 | Multi-chapter and multi-file support | Planned |
| Phase 6 | Editor integrations (VS Code, Obsidian, Scrivener) | Planned |
| Phase 7 | Extended ReaderState schema |
Planned |
| Phase 8 | Calibration and feedback loop | Planned |
See the full roadmap file for detailed descriptions of each phase.