arborist/docs/_source
russell@unturf.com 654d923da0
refactor: arborist/v7+v8 → arborist/substrate (single topic dir)
fox's read: the version-prefixed namespace pattern (`arborist/v7/`,
`arborist/v8/`) coupled module location to the substrate-paper
version. That collided with the live SQLite schema version (v9.8)
and made readers ask "is this dir tracking schema or paper?" —
a real onboarding hazard surfaced when the v7 dir landed earlier
today (06c95a0) for #000035 Phase 1.

Resolution: collapse v7+v8 into one topic-named dir,
``arborist/substrate/``, which holds Merkle-AGI substrate primitives
that future paper specs require — decoupled from the paper version.

Moves
=====

  arborist/v7/anchor_prg.py   → arborist/substrate/anchor_prg.py
  arborist/v8/fork_score.py   → arborist/substrate/fork_score.py
  arborist/v8/weights.py      → arborist/substrate/weights.py

Empty v7/ + v8/ dirs deleted; their __init__.py docstrings folded
into the new arborist/substrate/__init__.py with an explanation of
why the version-prefixed pattern was retired.

Imports updated
===============

- arborist/cli.py:_cmd_v8_score — arborist.v8 → arborist.substrate
- arborist/substrate/fork_score.py — internal weights import
- tests/test_anchor_prg.py — module + module-docstring
- tests/test_v8_fork_score.py — three import lines

Docs updated
============

- docs/v8-fork-score.md — header note explaining the move
- docs/_source/v8-fork-score.rst — :class: ref updated
- docs/tickets/ticket-000012-selection-consensus-protocol.md — §7
  Phase 1a close-out paths refreshed (kept "Originally landed at
  arborist/v8/..." parenthetical so the historical record survives);
  §7 Phase 1b consensus-paper reference; §7 Phase 1c proposal §3
  read-API path
- docs/tickets/ticket-000035-prg-choice-phi-prg.md — §7 Phase 1
  close-out path refreshed (with full path-note explaining the
  move); §3.1 + §5 left as the original design log per CLAUDE.md
  "closed tickets stay in place as design log"

Left untouched
==============

- arborist/world/ — already topic-named; not version-prefixed; the
  v7-W reservation lives there with its own planned subdir layout.
- docs/tickets/ticket-000037-prometheus-sigma-...md §13 still refs
  ``arborist/v9/prometheus.py`` and ``arborist/v8/fork_score.py`` —
  fox has 792 lines of in-flight modifications on this file; those
  refs should refresh to ``arborist/substrate/`` when the in-flight
  edit lands. Avoiding interleaved edits.

Hygiene
=======
- make test → 1643 passed, 45 skipped (was 1643; refactor preserved)
- make chain-check-shards → 0 across all 7 shards
- arborist.substrate namespace picked up by the existing
  pyproject.toml ``include = ["arborist*"]`` glob; no setup change.
2026-05-10 08:57:04 -04:00
..
_ext docs: clear all 39 cold-build Sphinx warnings (truly green) 2026-05-09 18:00:15 -04:00
_static docs: add Read the Docs configuration 2026-05-04 08:17:24 -04:00
api docs: open ticket #000022 (adapter LossReport) + federation doc-discoverability fix 2026-05-07 16:36:13 -04:00
bench.rst fan-out: witness audit + 5F extractor + function-sampled demo + docs 2026-05-09 13:19:30 -04:00
concepts.rst docs: clear all 39 cold-build Sphinx warnings (truly green) 2026-05-09 18:00:15 -04:00
conf.py docs: footer attribution → russell@unturf./foxhop/TimeHexOn/legallydav1dpro unturf permacomputers 2026 2026-05-07 14:53:33 -04:00
cookbook.rst aborist/arborist 2026-05-07 09:31:49 -04:00
diagrams trim Makefile (-6 redundant targets) + better RTD docs 2026-05-04 09:03:03 -04:00
index.rst docs: clear all 39 cold-build Sphinx warnings (truly green) 2026-05-09 18:00:15 -04:00
license.rst aborist/arborist 2026-05-07 09:31:49 -04:00
Makefile docs: add Sphinx API reference generation from docstrings 2026-05-04 07:55:34 -04:00
merkle-agi-v7w-spatial-temporal.rst docs: clear all 39 cold-build Sphinx warnings (truly green) 2026-05-09 18:00:15 -04:00
pi-star.rst docs: propagate kernel/sub-battery counts to canonical surfaces 2026-05-09 17:27:02 -04:00
quickstart.rst aborist/arborist 2026-05-07 09:31:49 -04:00
README.md aborist/arborist 2026-05-07 09:31:49 -04:00
requirements.txt docs: switch to sphinx-book-theme for unified right-side project TOC 2026-05-04 09:13:14 -04:00
v8-fork-score.rst refactor: arborist/v7+v8 → arborist/substrate (single topic dir) 2026-05-10 08:57:04 -04:00

Arborist API Reference (Sphinx)

This directory contains Sphinx configuration to generate API documentation from docstrings.

Build

cd docs/_source
make html           # Generate HTML (output: _build/html/)
make text           # Generate text (output: _build/text/)
make clean          # Remove build artifacts

Or directly:

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.