OCT Ecosystem Roadmap (Curated & Prioritized)#
Version: 2.0
AI Review tracking: Known bugs and correctness improvements identified by external AI review are tracked in three synthesis documents:
AI_REVIEW_SYNTHESIS V1.md— V1 reviews (v0.4.3), 23 OI items, all resolved.
AI_REVIEW_SYNTHESIS V2.md— V2 reviews (v0.6.1), 15 OI items, 8 resolved (v0.6.2–v0.7.0), 7 low-priority remaining.
AI_REVIEW_SYNTHESIS V3.md— V3 reviews (v0.7.4), 17 new OI items (2 medium, 12 low, 3 accepted) + 7 V2 carryovers. All 3 phases complete (v0.7.6, v0.7.7, v0.7.8) — all 21 actionable OI items resolved. v0.7.9: CLI help overhaul, linter--dry-run. v0.7.10: targeted linting, dry-run fix preview, safe header rewriting. v0.8.0: FS-301 (oct new --test), FS-302 (oct diag), FS-303 (oct lint --changed). v0.8.1:.octrc.jsonsupport in formatter/health, health rule profiles, colorized health output, shared terminal utility.
AI_REVIEW_SYNTHESIS V3_5.md— V3.5 intermediary reviews (v0.7.10), 9 OI items (2 medium, 4 low, 3 accepted). Phase 1+2 complete (v0.7.11): OI-351, OI-352, OI-353, OI-355 fixed. 2 low-priority items remain (OI-354, OI-356).Each phase below includes a Known Issues (AI Review) subsection cross-referencing the relevant OI items.
Phase 1 — Diagnostics System Extraction ✅ COMPLETED — oc_diagnostics v1.5#
oc_diagnostics v1.5 is now the standalone runtime diagnostics package for all Option C
projects. It is project-agnostic, fully installable, and provides a complete public API.
Diagnostics is a foundational runtime subsystem. OCT is a development ecosystem.
They are separate, and OCT depends on oc_diagnostics for linting rules and scaffolding.
Goals ✅ Achieved#
Turn diagnostics into a clean, reusable, installable package.
Make it project-agnostic.
Prepare it for integration into OCT scaffolding and linting.
Completed Tasks#
✅ Extracted diagnostics code from midi-bridge into standalone
oc_diagnosticspackage.✅ Normalized file structure (flat
oc_diagnostics/layout).✅ Added Option C headers and docstrings to all modules.
✅ Removed project-specific assumptions (Dash, FastAPI become optional extras).
✅ Added
pyproject.toml.✅ Added README, ARCHITECTURE, REFERENCE, INTEGRATION_GUIDE, CHANGELOG docs.
✅ Published locally; OCT scaffold and linting integrate with
oc_diagnostics.
Phase 2 — OCT Scaffolding & Project Templates#
Once diagnostics is standalone, OCT can scaffold projects that use it.
Goals#
Make
oct scaffoldproduce a complete Option C project.Include diagnostics integration automatically.
Tasks#
Create a full project template:
src/<project>/...tests/docs/oc_diagnostics/config file (validoc_diagnosticstemplate) ✅ DoneExample module with Option C header +
_dbgusage
Add diagnostics config (
debug_config.json) to template. ✅ DoneCopy Doxygen template (
docs/doxygen_work_dir/Doxyfile) with PROJECT_NAME set to project name. ✅ DoneDoxyfile included as package data for pip installs. ✅ Done (v0.6.2)
Add a minimal example test suite.
Add a template README.
Add a template architecture document.
Add a template CLI entry point (optional).
oct new --test— auto-generate companion test file alongside module. (FS-203)
Known Issues (AI Review)#
OI |
Title |
Status |
|---|---|---|
OI-02 |
Test fixtures created legacy |
✅ FIXED v0.4.4 |
OI-07 |
Missing Doxyfile template causes scaffold warning on every new project |
DISMISSED |
OI-11 |
No version handshake between OCT and |
✅ FIXED v0.6.0 |
OI-14 |
Deprecation timeline for legacy |
✅ FIXED v0.6.1 |
OI-18 |
Scaffold stubs are minimal; require manual Option C setup |
✅ FIXED v0.6.1 |
OI-204 |
Doxyfile template not included as package data |
✅ FIXED v0.6.2 |
OI-211 |
|
LOW |
OI-212 |
Scaffold creates |
LOW |
Phase 3 — OCT Documentation Tools ✅ SUBSTANTIALLY COMPLETE#
With scaffolding in place, documentation generation becomes meaningful.
Goals#
Provide tools for generating and validating Option C documentation.
Completed Tasks#
✅ Implement
oct docs:Validate presence of required docs. ✅ Done
oct docs --sphinx— full Sphinx HTML pipeline (apidoc, markdown discovery, dependency graphs, priority-ordered toctree). ✅ Doneoct docs --doxygen— Doxygen integration with automatic INPUT path patching via temp Doxyfile copy. ✅ Doneoct docs --all— combined Sphinx + Doxygen generation. ✅ Doneoct docs --clean— remove generated artifacts (html/, doctrees/, _api/, doxygen_output/, index.rst, dependencies.rst) while preserving user-authored files. ✅ Done.env*files excluded from Sphinx via conf.py.template exclude_patterns. ✅ Done
✅ Add diagnostics-aware validation:
Ensure Diagnostics block exists. ✅ Done (via linter)
Ensure Domain + L2/L3/L4 levels are present. ✅ Done (via linter)
Remaining Tasks#
oct docs --generate— generate missing stub docs for existing projects. (FS-214)
Phase 4 — OCT Linter Enhancements#
Now that diagnostics is standalone and scaffolding is standardized, the linter can evolve.
Goals#
Improve the linter to enforce Option C + diagnostics conventions.
Tasks#
Add
_dbgusage checks for non-trivial modules. ✅ DoneAdd diagnostics-aware linting rules:
Missing Diagnostics block. ✅ Done
Missing Domain. ✅ Done
Missing L2/L3/L4. ✅ Done
Enforce
func = "function_name"local variable pattern required by Option C specs. ✅ DoneAdd colorized terminal output. ✅ Done
Add import-source check (
from oc_diagnostics import _dbgvs bare_dbg). ✅ Done (v0.6.2)Add configurable rule profiles via
.octrc.json. ✅ Done (v0.7.0)Shared exclusion lists between linter and exporter. ✅ Done (v0.7.0)
no_hardcoded_secretslinter rule — AST-based detection of hardcoded secrets (§6b Secret Hygiene, DD-05). Blocking at compact/strict. ✅ DoneNEVER_EXPORT_FILE_PATTERNS— file-level exclusion from exports and docs (Layer 2, DD-05). ✅ DoneUpdate exclusion list: add
diagnostics.bkanddiagnostics.bakdirectories.Add
oc_diagnostics(_dbg) instrumentation to the linter itself.Add plugin system for custom rules. (FS-205)
Add better path handling (optional refinements).
Known Issues (AI Review V1)#
See AI_REVIEW_SYNTHESIS V1.md for full detail on each item.
OI |
Title |
Status |
|---|---|---|
OI-03 |
Linter uses mutable module-level globals — not thread-safe |
✅ FIXED v0.5.0 |
OI-04 |
Heuristic regression test detection ( |
✅ FIXED v0.5.0 |
OI-05 |
Regex/indentation-based function parsing is fragile (AST migration needed) |
✅ FIXED v0.6.0 |
OI-06 |
|
✅ FIXED v0.5.0 |
OI-10 |
No machine-readable lint output ( |
✅ FIXED v0.5.0 |
OI-12 |
Hardcoded exclusion directories in linter; no per-project override |
✅ FIXED v0.5.0 |
OI-15 |
Linter log file path hardcoded to |
✅ FIXED v0.5.0 |
OI-16 |
|
✅ FIXED v0.6.1 |
OI-19 |
Raw ANSI escape codes may display as garbage on older Windows consoles |
✅ FIXED v0.6.1 |
OI-23 |
Linter log files accumulate without rotation |
✅ FIXED v0.6.1 |
Known Issues (AI Review V2)#
See AI_REVIEW_SYNTHESIS V2.md for full detail on each item.
OI |
Title |
Status |
|---|---|---|
OI-201 |
|
✅ FIXED v0.6.2 |
OI-202 |
No enforcement of exact |
✅ FIXED v0.6.2 |
OI-205 |
|
✅ FIXED v0.6.2 |
OI-206 |
Hardcoded exclusion lists duplicated between linter and exporter |
✅ FIXED v0.7.0 |
OI-208 |
Linter rule configuration is hardcoded — no per-project toggle |
✅ FIXED v0.7.0 |
OI-209 |
|
LOW |
OI-210 |
|
LOW |
OI-213 |
No linter parallelisation for large codebases |
LOW |
Phase 5 — OCT CLI Expansion#
Once the core ecosystem is stable, expand the CLI with additional developer tools.
Goals#
Provide a full suite of development utilities.
Tasks#
oct test:Add coverage support.
Add flags for verbosity.
✅
oct format— Option C auto-formatter (headers, docstrings,func = "...", imports). (FS-201, #1 feature request across all reviews) — IMPLEMENTED v0.7.1✅
oct health— single-command project compliance dashboard (lint %, test status, docs, diagnostics coverage). (FS-202) — IMPLEMENTED v0.7.2✅ Global
--root-diroption — override project root for all commands. — IMPLEMENTED v0.7.3✅ Syntax warnings lint check — capture
SyntaxWarningfrom AST parsing as structured findings instead of stderr noise. — IMPLEMENTED v0.7.4✅
oct healthhardening — pre-flight pytest detection, actionable error details, test count always shown, clean summary output. — IMPLEMENTED v0.7.5✅
oct new --test— auto-generate companion test file alongside module. (FS-203/FS-301) — IMPLEMENTED v0.8.0oct deps— dependency health checker, extendsoc_diagnosticscompat check. (FS-208)✅
oct diag— diagnostics tools:validate-config,list-domains,set-level. (FS-204/FS-302) — IMPLEMENTED v0.8.0✅
oct lint --changed— only lint git-modified files for CI efficiency. (FS-209/FS-303) — IMPLEMENTED v0.8.0✅
.octrc.jsonsupport inoct formatandoct health— formatter and health dashboard now load per-project exclusions and rule overrides from.octrc.json, matching the linter. — IMPLEMENTED v0.8.1✅
oct healthrule profiles — health dashboard respects.octrc.jsonrulesandprofileconfig; disabled rules are excluded from compliance counts and shown in report. — IMPLEMENTED v0.8.1✅
oct healthcolorized output — health report uses ANSI colors (green/red/yellow/cyan) matchingoct lintstyle; safe on Windows and piped output. — IMPLEMENTED v0.8.1✅ Shared terminal color utility — extracted
oct/core/terminal.pyfrom linter for reuse across modules. — IMPLEMENTED v0.8.1Pre-commit hook integration — generate
.pre-commit-config.yamlinoct scaffold. (FS-206)Improve help text and examples for all commands.
Known Issues (AI Review V1)#
See AI_REVIEW_SYNTHESIS V1.md for full detail on each item.
OI |
Title |
Priority |
|---|---|---|
OI-08 |
|
✅ FIXED v0.5.0 |
OI-09 |
No |
✅ FIXED v0.6.0 |
OI-17 |
No |
✅ FIXED v0.6.1 |
OI-20 |
Bare |
✅ FIXED v0.6.1 |
OI-21 |
|
✅ FIXED v0.6.1 |
OI-22 |
Click pinned to |
✅ FIXED v0.6.1 |
Known Issues (AI Review V2)#
See AI_REVIEW_SYNTHESIS V2.md for full detail on each item.
OI |
Title |
Status |
|---|---|---|
OI-203 |
|
✅ FIXED v0.6.2 |
OI-207 |
|
✅ FIXED v0.7.0 |
OI-214 |
Legacy |
LOW |
OI-215 |
JSON lint output suppresses compat warnings — CI users may miss them |
LOW |
Phase 6 — Source Exporter Enhancements#
The exporter is now integrated; this phase adds polish and power.
Goals#
Make the exporter more robust and diagnostics-aware.
Tasks#
Fixed double-counting of lines/files in summary totals. ✅ Done
Per-project config file (
_oct_exporter_config.json) — override include/exclude lists and format strings with add/remove/replace semantics. ✅ DoneShared exclusion lists with linter via
oct/core/exclusions.py. ✅ Done (v0.7.0)Add
_dbginstrumentation.Add Option C docstrings to helper functions.
Add unit tests.
Add dry-run mode.
Add JSON summary output.
Add diff mode (compare two exports). (FS-207)
Add list-only mode.
✅
oct export-skeleton— AST-based structural skeleton export (headers, docstrings, signatures) with--no-diagnostics,--single-dir,--verbose,--clean. Done (v0.9.1)
Known Issues (AI Review)#
OI |
Title |
Status |
|---|---|---|
OI-01 |
Exporter config listed |
✅ FIXED v0.4.4 |
OI-12 |
Hardcoded exclusion directories in exporter; no per-project override |
✅ FIXED v0.7.0 |
OI-13 |
Exporter creates per-directory output folders, cluttering filesystem on large projects |
✅ FIXED v0.6.0 |
Phase 7 — Ecosystem Documentation#
Once the ecosystem is mature, document it thoroughly.
Goals#
Provide a complete, authoritative reference for the entire OCT ecosystem.
Tasks#
Write an “OCT Ecosystem Index”:
Architecture
Philosophy
Tools
Diagnostics integration
Project lifecycle
Write an OCT user guide.
Write an OCT developer guide.
Phase 8 — Linter Packaging (Optional)#
Package oct_lint as a standalone, distributable tool.
Goals#
Allow the linter to be used independently of the full OCT install.
Tasks#
Create a standalone linter project directory.
Generate README.md for the standalone linter.
Generate pyproject.toml for the standalone linter.
Generate a migration checklist for adopters.
Summary of Priorities#
Completed (Phase 1)#
oc_diagnostics v1.5 is live as a standalone package. OCT scaffold and linting integrate with it.
Substantially Complete (Phase 2)#
Core scaffolding is working: oc_diagnostics/debug_config.json, Doxygen Doxyfile, and directory
structure are all generated. Doxyfile template is now included as package data (v0.6.2).
Remaining gaps: full src/<project>/ layout and example module.
AI Review Issues V1 — ALL RESOLVED#
All 23 actionable OI items from the V1 AI code reviews are now fixed across four releases
(v0.4.4, v0.5.0, v0.6.0, v0.6.1). OI-07 dismissed (intentional design), OI-24 no action
needed (intentional architecture). See AI_REVIEW_SYNTHESIS V1.md for full detail.
AI Review Issues V2 — 8 of 15 RESOLVED#
The V2 review round (6 AI reviewers against v0.6.1) identified 15 new OI items. 8 medium-priority items are now resolved across v0.6.2 and v0.7.0:
v0.6.2: OI-201 (AST dbg check), OI-202 (import source), OI-203 (docs), OI-204 (packaging), OI-205 (config warning)
v0.7.0: OI-206 (shared exclusions), OI-207 (path validation), OI-208 (rule profiles)
7 low-priority items (OI-209–OI-215) and 3 accepted limitations (OI-216–OI-218) remain.
See AI_REVIEW_SYNTHESIS V2.md for full detail.
Feature Suggestions (from V2 AI Reviews)#
The following high-value feature suggestions were consolidated from 6 AI reviewers.
See AI_REVIEW_SYNTHESIS V2.md section 6 for full detail and tiering.
FS |
Feature |
Priority |
Roadmap phase |
|---|---|---|---|
FS-201 |
✅ |
#1 request (all 6 reviewers) |
Phase 5 — DONE v0.7.1 |
FS-202 |
✅ |
High (4+ reviewers) |
Phase 5 — DONE v0.7.2 |
FS-203 |
|
High (3 reviewers) |
Phase 2/5 |
FS-204 |
|
High (4 reviewers) |
Phase 5 |
FS-205 |
Linter plugin system |
Medium (4 reviewers) |
Phase 4 |
FS-206 |
Pre-commit hook integration |
Medium (2 reviewers) |
Phase 5 |
FS-207 |
Export diff mode |
Medium (2 reviewers) |
Phase 6 |
FS-208 |
|
Medium (2 reviewers) |
Phase 5 |
FS-209 |
|
Medium (1 reviewer) |
Phase 5 |
Feature Suggestions (from V3 AI Reviews)#
See AI_REVIEW_SYNTHESIS V3.md section 6 for full detail and tiering.
FS |
Feature |
Priority |
Roadmap phase |
|---|---|---|---|
FS-301 |
|
#1 request (all 7 reviewers) |
✅ DONE v0.8.0 |
FS-302 |
|
High (5 reviewers) |
✅ DONE v0.8.0 |
FS-303 |
|
High (4 reviewers) |
✅ DONE v0.8.0 |
FS-304 |
Linter plugin system (= FS-205) |
Medium (5 reviewers) |
Phase 4 — PENDING |
FS-305 |
Pre-commit + CI templates in scaffold (= FS-206) |
Medium (2 reviewers) |
Phase 5 — PENDING |
FS-306 |
|
Medium (3 reviewers) |
Phase 5 — PENDING |
FS-307 |
|
Medium (2 reviewers) |
Phase 6 — PENDING |
AI Review Issues V3.5 — 4 of 6 RESOLVED#
The V3.5 intermediary round (3 review files, 2 reviewers against v0.7.10) identified 9 OI items. 4 actionable items resolved in v0.7.11:
v0.7.11: OI-351 (source exporter bare except), OI-352 (formatter lineno validation), OI-353 (regex word boundary), OI-355 (config validation)
2 low-priority items remain (OI-354 memory exhaustion, OI-356 legacy typing). 3 items accepted/dismissed.
See AI_REVIEW_SYNTHESIS V3_5.md for full detail.
Substantially Complete (Phase 3)#
Documentation tools: oct docs --sphinx, --doxygen, --all, --clean all implemented. Remaining: --generate for stub generation.
In Progress (Phase 4)#
Linter: no_hardcoded_secrets (§6b) and NEVER_EXPORT_FILE_PATTERNS (Layer 2) implemented. Remaining: plugin system, instrumentation.
Substantially Complete (Phase 5)#
CLI expansion: oct format, oct health, oct diag, oct deps, oct new --test, oct lint --changed all implemented. Remaining: oct test coverage, pre-commit hooks.
Finally (Phase 6-8)#
oct export-skeleton implemented (v0.9.1) with --no-diagnostics, --single-dir, --verbose, --clean flags. Remaining: exporter diff mode, ecosystem documentation, and optional linter packaging.