Documentation site (MkDocs)¶
This is the handbook for the repository’s MkDocs-generated documentation site. It supports the v0.2.5 mission: publication-quality evidence packs and final report readability — the site surfaces campaign, pack, compare, and verification docs in the sidebar without making a second copy of their content.
Single source of truth: Markdown under docs/ (plus repository-root README.md, AGENTS.md, CHANGELOG.md for GitHub-first reading). Configuration lives in mkdocs.yml at the repo root.
Prerequisites (uv)¶
uv pip install -e ".[docs]"
Full contributor parity (lint, tests, MkDocs):
uv pip install -e ".[dev,docs]"
Note: uv sync --frozen --extra docs (as in CI) installs only the docs extra — adequate for mkdocs build, but not for just ci (you need --extra dev for Ruff, Mypy, pytest, stubs).
Local commands¶
| Goal | Command |
|---|---|
| Live preview | just docs → uv run --extra docs mkdocs serve -a 127.0.0.1:8000 |
| Static build | just docs-build → uv run --extra docs mkdocs build --strict |
Open the URL MkDocs prints (default http://127.0.0.1:8000/). Output of a build is site/ (gitignored).
Configuration and navigation¶
| Item | Location |
|---|---|
| MkDocs config | mkdocs.yml (repository root) |
| Source Markdown | docs/ |
| Navigation | nav: in mkdocs.yml — this is the sidebar; pages not listed may be omitted from the nav (depending on MkDocs version/settings). |
| Generated output | site/ (do not commit) |
| CI workflow | .github/workflows/docs.yml |
Publication nav (v0.2.5): The Publication & reports (v0.2.5) sidebar block orders: E2E checklist → tracking v0.2.5 (merge order) → benchmark campaigns (pack / compare-packs / compare) → campaign walkthrough → reporting pipeline (alwm report / matrices) → verification (just ci, validate-artifacts) → longitudinal → v0.2.4 publication audit → examples index (docs/examples/README.md → repo examples/). Roadmap theme for v0.2.5 lives under Roadmap & milestones only (not duplicated here). tracking/v0.2.5-campaign.md appears only under Publication & reports (not again under Tracking, to avoid two sidebar hits for the same URL).
Adding or updating pages¶
- Add or edit Markdown under
docs/(e.g.docs/workflows/my-topic.md). - Add an entry under
nav:inmkdocs.ymlso the page appears in the sidebar (and is discoverable). - Run
just docs-build(strict) and fix any issues. - Prefer relative links between pages under
docs/(e.g.[Verification](verification.md)fromdocs/workflows/).
Do not duplicate long procedural content — link to Campaign result pack publication and Benchmark campaigns.
CI (GitHub Actions)¶
.github/workflows/docs.yml runs when docs/**, mkdocs.yml, or the workflow file changes (and can be run manually via Actions → Documentation → Run workflow on main):
uv sync --frozen --extra docsuv run mkdocs build --strict- Uploads
site/as a workflow artifact (mkdocs-site) for debugging and PRs. - On
pushtomain(orworkflow_dispatchonmain), uploads the Pages artifact and runsactions/deploy-pagesto publish the site.
GitHub Pages settings (required once per repo): Settings → Pages → Build and deployment → Source: choose GitHub Actions (not “Deploy from a branch”). The older gh-pages branch flow is a different mechanism and does not apply to this workflow.
Public URL: https://sempervent.github.io/agent-llm-wiki-matrix/ — mkdocs.yml sets site_url to this base so links and theme assets resolve under the project path.
just ci does not run MkDocs; the GitHub workflow is the shared gate for site builds.
Implementation and verification findings¶
This section records what was learned when implementing and running MkDocs in this repository (not chat-only — update it when behavior changes).
What succeeded¶
mkdocs build --strictcompletes reliably (order-of-magnitude ~1–3s locally for the current page set, depending on cache).- Material for MkDocs theme provides search, tabs, and readable defaults for technical docs.
- Navigation groups Publication & reports (v0.2.5) at the top with explicit labels for E2E checklist, merge-order tracking, CLI/compare, verification, longitudinal, examples index; Home (
docs/index.md) ties the tip block to sidebar naming and adds an examples row to the glance table. just docs/just docs-buildwrapuv run --extra docsso an activated venv is optional.- Repository on GitHub nav entries avoid duplicating
README.md/CHANGELOG.md/AGENTS.mdinside the static site. - CI (
.github/workflows/docs.yml) matches local build commands:uv sync --frozen --extra docs,uv run mkdocs build --strict, path filtersdocs/**,mkdocs.yml, workflow file; artifact namemkdocs-site(historical label; containssite/).
v0.2.5 docs-site pass (navigation polish)¶
| Finding | Change |
|---|---|
| Top nav name Publication (v0.2.5) did not spell out “reports” or CLI compare verbs | Renamed block to Publication & reports (v0.2.5); lengthened child labels (compare-packs, compare, validate-artifacts). |
| Examples index sat alone at the bottom of the nav, far from publication flow | Moved docs/examples/README.md under Publication & reports as Examples index (repo examples/); removed duplicate top-level entry. |
| Roadmap v0.2.5 could be confused with merge-order tracking | Kept roadmap only under Roadmap & milestones; home page tip clarifies theme vs merge-order doc. |
| Documentation site handbook label was generic | Renamed nav label to Documentation site (MkDocs nav & CI). |
Deferred: duplicate tracking/v0.2.5 under Tracking (would double sidebar links to the same URL); readers use Publication & reports or Home tip instead.
What was awkward¶
- Links outside
docs/: Many existing pages use paths like../../README.md,../../examples/,../../tests/so the same files render correctly on GitHub. Those targets are not in the MkDocs doc tree.mkdocs.ymlsetsvalidation.links.not_found: ignoreso--strictbuilds do not fail on those links. Trade-off: the static site does not “fix” those links; readers use GitHub or the nav’s external links. - Uv extras: A docs-only install is enough to build the site but not to run
just ci. Contributors editing Python and docs should use.[dev,docs](or equivalentuv syncflags). - Material noise: Material may print a MkDocs 2.0 informational banner on serve / build. The project pins
mkdocs>=1.6,<2; the banner is upstream messaging, not a build failure. - Nav vs. duplicate files: The same
.mdfile should not appear twice undernav:(duplicate sidebar/search hits). Policy:tracking/v0.2.5-campaign.mdis listed only under Publication & reports;roadmap/v0.2.5.mdonly under Roadmap & milestones;docs/examples/README.mdonly under Publication & reports (removed standalone Examples index top-level entry to reduce clutter).workflows/reporting.mdappears only under Publication & reports (not duplicated under generic Workflows). validation.links.not_found: ignore(inmkdocs.yml) keeps--strictfrom failing on../../README.md-style links that only resolve on GitHub.
Intentionally deferred¶
- Running
mkdocs buildinside defaultjust ci(keeps local CI fast; GitHub Actions covers docs). - Tightening
validation.linksfor internaldocs/links only (would need a custom plugin or disciplined link hygiene). - Inlining repository-root Markdown into the site (would duplicate source of truth).
site_url is set in mkdocs.yml to https://sempervent.github.io/agent-llm-wiki-matrix/ for published Pages builds; update it if the repo is renamed or Pages uses a custom domain.
Docs that are still hard to surface cleanly¶
| Content | Why |
|---|---|
Root README / AGENTS / CHANGELOG |
Not under docs_dir; kept as Repository on GitHub links. |
Repo examples/ trees |
Only docs/examples/README.md explains the pointer; deep files stay GitHub-only unless mirrored. |
docs/implementation-log.md |
Large, chronological; listed under Project for agents, not duplicated in Publication. |
Conventions for agents (avoid MkDocs drift)¶
- Nav: Any new user-facing doc under
docs/that should appear in the sidebar must be added tomkdocs.ymlnav:. - Links: Prefer relative links between
docs/pages; keep GitHub-style../../links only when the paragraph is meant to read equally on github.com. - Publication story: If you add a new primary step to the E2E publication flow, update campaign-result-pack-publication.md and consider a one-line pointer on
docs/index.mdand/or the Publication & reports (v0.2.5) nav block. - CI: If
mkdocs.ymlordocs/structure changes, confirm.github/workflows/docs.ymlpath filters still match. - Handbook: Update this file (
docs-site.md) when verification steps or known limitations change.
Relation to publication workflows¶
- Operator checklist: Campaign result pack publication
- CLI / artifacts: Benchmark campaigns
- Matrix /
alwm report(non-campaign): Reporting - CI vs drift vs one-off validation: Verification — layers A (
alwm validate), B (validate-artifacts), C (just ci) - Regression views: Longitudinal reporting
The site indexes these; it does not replace them.
Filename¶
Canonical handbook path: docs/workflows/docs-site.md. Older references to mkdocs-site.md should be updated to this path.