Maintaining documentation

The site is built from docs/ with MkDocs. mkdocs.yml owns navigation and theme configuration; docs/assets/stylesheets/brand.css owns the presentation. The supplied shell-next-logo.png remains the canonical logo. Its byte-identical copy in docs/assets/ makes site builds independent of remote image hosts. The site displays the logo only at the top of the home page content; the sidebar uses the site name without a logo.

Build and preview

python -m pip install -e ".[docs]"
python -m mkdocs build --strict
python -m scripts.docs.validate
python -m mkdocs serve

The local preview is served at http://127.0.0.1:8000. Generated output lives in site/ and is ignored by Git. Strict builds fail on broken Markdown links or navigation warnings; the validator also checks generated HTML links, fragments, assets, and logo integrity.

Tutorial examples

docs/tutorials/index.md owns the ordered chapter list. Each chapter publishes the complete matching examples/NN-topic.py source. Update both together; documentation tests reject differences and missing or unlisted chapters/files.

Tutorial blocks use <!-- python-doc-exec native: NN-topic.py -->, mock, or sudo markers. Documentation tests execute mock blocks and inject deterministic sudo scenarios into the exact published code. Integration tests in tests/contracts/test_tutorial_examples.py execute native blocks on each supported host/backend and report genuine platform skips. This does not make legacy, unmarked examples executable. To check tutorial native execution separately, run python -m pytest tests/contracts/test_tutorial_examples.py.

Run Ruff and python -m mypy examples after editing standalone examples in addition to the normal project checks. Tutorial examples are application code, not part of the production source branch-coverage target.

GitHub Pages

The documentation workflow builds pull requests for review. Pushes to main, the repository's default branch, build and deploy through the github-pages environment. The deploy job receives only Pages write and OIDC permissions. No package publication is needed for documentation updates.

The public address is gokurakujoudo.github.io/shell-next. If the default branch changes, update the workflow branch filter, deploy condition, MkDocs edit links, and README logo URL together.

Wiki drafts

Review-ready wiki files live in the repository's wiki directory. They are drafts, separate from the published Pages content. Home.md, _Sidebar.md, and _Footer.md use GitHub Wiki naming conventions. Publishing them to the separate wiki repository is an explicit follow-up operation.

The wiki is a short entry guide. Keep detailed API behavior in the Pages guides and link to those pages rather than maintaining a second full specification.