Documentation Pipeline Progress Log¶
Overview¶
This log captures the steps taken while implementing the "Documentation Pipeline Improvement Plan" from plan.md. Entries are chronological and highlight key activities, findings, and any issues encountered.
Entries¶
- Initial analysis of existing scripts (
tools/parse_config.py,tools/generate_docs.py) and current documentation output structure. Identified the need for major refactoring to support configurable CLI usage, enriched parsing, and templated generation. - Reviewed
110 Bullhead Road.loxoneto understand available configuration data (room definitions, block types, lighting controllers) and confirmed the absence of existing AGENTS instructions. - Planned creation of new CLI-driven pipeline including data extraction, knowledge-base indexing, documentation rendering, validation, testing, and automation tooling.
- Implemented new structured extraction module (
tools/pipeline/extract.py) with argparse-driven CLI, enriched block parsing, lighting subsystem handling, and provenance metadata support. Updatedtools/parse_config.pyto delegate to the new pipeline entry point. - Added
tools/kb_indexer.pyto build a canonical KB lookup (tools/docs/kb_lookup.json) with override support viatools/docs/kb_overrides.yml. - Replaced ad-hoc Markdown generation with a templated workflow (
tools/templates/*.j2) powered by the new Jinja2-based renderer intools/generate_docs.py. Output now lands underdocs/manual/<export_hash>/with a manifest and KB-aware cross references. - Introduced
tools/validate_docs.pyto enforce link integrity, detect placeholder text, and verify KB resolution through generated manifests. - Authored reusable documentation templates and developer guide (
docs/DEVELOPER_GUIDE.md) plus_data/v2/schema.mdto document the export format. - Running
make docsnow generates hashed manuals, emitting warnings when generic KB fallbacks (linking totools/docs/kb_index.md) are used for block types lacking dedicated articles. - Added pytest suite covering parsing, KB indexing, documentation rendering, and validation (
tests/).
Issues & Limitations¶
- The provided configuration export is large and contains numerous block types. Some specialised controller attributes may require future domain knowledge to interpret fully.
- No existing dependency management was present; additional Python packages (
jinja2,pyyaml,mdformat,pytest) are now required and documented. - Many block types currently fall back to the general KB index because dedicated articles were unavailable; resolving these requires augmenting
tools/docs/kb_overrides.ymlor expanding the source knowledge base.