# Arborist API Reference (Sphinx) This directory contains Sphinx configuration to generate API documentation from docstrings. ## Build ```bash cd docs/_source make html # Generate HTML (output: _build/html/) make text # Generate text (output: _build/text/) make clean # Remove build artifacts ``` Or directly: ```bash sphinx-build -b html . _build/html ``` ## View After building, open `_build/html/index.html` in a browser. ## Structure - `conf.py` — Sphinx configuration - `index.rst` — Main table of contents - `api/` — Module documentation (one .rst per module category) - `substrate.rst` — Core data structures (merkle, document, wikitext) - `storage.rst` — SQLite schema (store, ingest, evict) - `retrieval.rst` — FTS5 search (search, sources, concepts) - `qa.rst` — Q&A pipeline (runner, query, verify, evidence, etc.) - `distill.rst` — Distillation (surface→core) - `mesh.rst` — Federation (gossip-based sync) - `cli.rst` — Command-line interface ## What it replaces This generated documentation **replaces `docs/modules.md`** (1200+ lines of static API reference). The docstrings in code are the source of truth; Sphinx extracts them automatically. ## Adding new modules 1. Add a docstring to the module (module-level docstring at the top of `module.py`) 2. Add an `.rst` file in `api/` that includes the module with `automodule` directive 3. Reference it in `index.rst` 4. Rebuild with `make html` ## Theme Uses **furo** theme (modern, responsive, search-enabled). ## Autodoc directives The `.rst` files use Sphinx `automodule` to extract: - Module docstrings - Class docstrings + members - Function signatures + docstrings - Source code links (`:viewcode:` extension) See [Sphinx autodoc docs](https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html).