Overview
Phases B+C of the docs-infrastructure middle path (census + decision record: PyAutoLabs/PyAutoFit#1341; phase A — RTD hygiene + docs CI — merged 2026-07-09). Phase B gives PyAutoFit/PyAutoGalaxy/PyAutoLens a shared bespoke brand layer on their Furo/ReadTheDocs docs; phase C ships this repo: a bespoke static front door at pyautolabs.github.io linking the docs, workspaces, HowTo courses and the AI-assistant path.
Zero-cost constraint (user decision): free infrastructure only — *.readthedocs.io stays canonical, the hub lives on the default pyautolabs.github.io domain. Custom domains (docs.pyautolens.org etc.; all relevant .orgs verified unregistered 2026-07-09) are a later config-flip retrofit documented in RETROFIT.md.
Plan
- Phase C (this repo): self-contained static
index.html (no external assets, light/dark via prefers-color-scheme, per-project accent colors), RETROFIT.md (paid-domain upgrade path), README.md, .nojekyll; GitHub Pages serves main. AI-assistant framing per the established user-docs convention (point ChatGPT/Claude at autolens_assistant; agentic tools first-class).
- Phase B (three library repos, branch
feature/docs-theming-hub): one shared docs/_static/pyauto.css + Furo html_theme_options per repo — common brand layer, per-project accent (Fit #e0700e amber, Galaxy #0d9488 teal, Lens #7c4dff purple — matching the hub), light+dark variables both styled. PyAutoFit needs its .gitignore docs/_static entry lifted (the reason its css never existed). Docs CI (shipped in phase A) guards the builds; baselines should hold (theming adds no warnings).
- Verify: local Sphinx builds before/after per repo (warning counts vs baselines 67/105/134), rendered-page spot checks in both color schemes; full test suites per the ship gate.
Detailed implementation plan
Affected Repositories
- pyautolabs.github.io (primary; new repo, created 2026-07-09 — work on main)
- PyAutoFit, PyAutoGalaxy, PyAutoLens (theming PRs)
Branch Survey
All three library repos: clean on main (phase A merged; claims released). Suggested branch: feature/docs-theming-hub, worktree ~/Code/PyAutoLabs-wt/docs-theming-hub/.
Implementation Steps
- Hub: commit
index.html, RETROFIT.md, README.md, .nojekyll to main; verify https://pyautolabs.github.io serves.
- Per library repo: add
docs/_static/pyauto.css (shared, identical file); set html_static_path, html_css_files = ["pyauto.css"], html_theme_options with light_css_variables/dark_css_variables (brand + accent); Fit only — remove docs/_static from .gitignore.
- Rebuild docs per repo; confirm warning counts unchanged vs baseline; spot-check rendering light+dark.
- Ship per the autonomous-ship gate; PRs end at PR-open with validation checklists.
Key Files
pyautolabs.github.io/index.html — the front door
PyAuto{Fit,Galaxy,Lens}/docs/_static/pyauto.css — shared brand layer
PyAuto{Fit,Galaxy,Lens}/docs/conf.py — theme options
PyAutoFit/.gitignore — lift docs/_static
Registry
- Register
pyautolabs.github.io in PyAutoMind/repos.yaml (the body map) and run repos_sync.py --write.
Original Prompt
Click to expand starting prompt
See PyAutoMind/issued/docs_theming_and_hub.md — carries the verbatim original request, the middle-path decision and the zero-cost constraint.
Overview
Phases B+C of the docs-infrastructure middle path (census + decision record: PyAutoLabs/PyAutoFit#1341; phase A — RTD hygiene + docs CI — merged 2026-07-09). Phase B gives PyAutoFit/PyAutoGalaxy/PyAutoLens a shared bespoke brand layer on their Furo/ReadTheDocs docs; phase C ships this repo: a bespoke static front door at pyautolabs.github.io linking the docs, workspaces, HowTo courses and the AI-assistant path.
Zero-cost constraint (user decision): free infrastructure only —
*.readthedocs.iostays canonical, the hub lives on the defaultpyautolabs.github.iodomain. Custom domains (docs.pyautolens.orgetc.; all relevant.orgs verified unregistered 2026-07-09) are a later config-flip retrofit documented inRETROFIT.md.Plan
index.html(no external assets, light/dark viaprefers-color-scheme, per-project accent colors),RETROFIT.md(paid-domain upgrade path),README.md,.nojekyll; GitHub Pages serves main. AI-assistant framing per the established user-docs convention (point ChatGPT/Claude at autolens_assistant; agentic tools first-class).feature/docs-theming-hub): one shareddocs/_static/pyauto.css+ Furohtml_theme_optionsper repo — common brand layer, per-project accent (Fit#e0700eamber, Galaxy#0d9488teal, Lens#7c4dffpurple — matching the hub), light+dark variables both styled. PyAutoFit needs its.gitignoredocs/_staticentry lifted (the reason its css never existed). Docs CI (shipped in phase A) guards the builds; baselines should hold (theming adds no warnings).Detailed implementation plan
Affected Repositories
Branch Survey
All three library repos: clean on
main(phase A merged; claims released). Suggested branch:feature/docs-theming-hub, worktree~/Code/PyAutoLabs-wt/docs-theming-hub/.Implementation Steps
index.html,RETROFIT.md,README.md,.nojekyllto main; verify https://pyautolabs.github.io serves.docs/_static/pyauto.css(shared, identical file); sethtml_static_path,html_css_files = ["pyauto.css"],html_theme_optionswithlight_css_variables/dark_css_variables(brand + accent); Fit only — removedocs/_staticfrom.gitignore.Key Files
pyautolabs.github.io/index.html— the front doorPyAuto{Fit,Galaxy,Lens}/docs/_static/pyauto.css— shared brand layerPyAuto{Fit,Galaxy,Lens}/docs/conf.py— theme optionsPyAutoFit/.gitignore— liftdocs/_staticRegistry
pyautolabs.github.ioinPyAutoMind/repos.yaml(the body map) and runrepos_sync.py --write.Original Prompt
Click to expand starting prompt
See
PyAutoMind/issued/docs_theming_and_hub.md— carries the verbatim original request, the middle-path decision and the zero-cost constraint.