Problem
base-cli has extensive documentation in docs/:
api-stability.md — compatibility contract and deprecation policy
adopter-readiness.md — production adoption checklist
json-contracts.md — versioned JSON output contract
output-contracts.md — output rendering rules
typer-adapter.md — Typer migration guide
security-threat-model.md and security-review.md
migrations.md — breaking change migration notes
platform-support.md — OS and Python version matrix
integrations.md — Rich and OpenTelemetry opt-in
cache-ownership-and-layout.md — runtime layout
consumer-profiles.md — profile authoring guide
extensions.md — extension and plugin system
performance.md, local-config.md, releasing.md
All of this exists only as Markdown files navigable through GitHub. For a PyPI package, potential adopters expect a rendered documentation site reachable from the PyPI page (project.urls → Documentation).
Without a rendered site:
- The PyPI page has no Documentation link (or it points to the GitHub repo, which isn't the same).
- Search engines don't index the content as a coherent documentation site.
- Users reading the README are linked to
.md files via relative paths — these work on GitHub but not when the README is rendered on PyPI.
- The
docs/api-stability.md URL pattern doesn't resolve to anything for users who install via pip.
Proposed fix
Set up a documentation site using MkDocs or Sphinx with ReadTheDocs (or GitHub Pages):
- Add
mkdocs.yml (or docs/conf.py for Sphinx) configuring the navigation from the existing docs/ files.
- Add a
docs URL to pyproject.toml:
[project.urls]
Documentation = "https://base-cli.readthedocs.io"
- Add a
.readthedocs.yaml configuration file.
- Register the project on ReadTheDocs (or configure GitHub Pages in the repository settings).
The docs/releasing.md file already documents the release process — it should be included in the rendered site so it's discoverable without knowing the repo structure.
Acceptance criteria
pip show base-cli includes a Documentation URL that resolves to a rendered site.
- The rendered site includes the API stability policy, adopter readiness guide, migration notes, and JSON contract documentation.
- README relative links (e.g.,
[docs/api-stability.md](docs/api-stability.md)) either resolve correctly in both GitHub and the docs site, or are updated to use absolute URLs.
Problem
base-clihas extensive documentation indocs/:api-stability.md— compatibility contract and deprecation policyadopter-readiness.md— production adoption checklistjson-contracts.md— versioned JSON output contractoutput-contracts.md— output rendering rulestyper-adapter.md— Typer migration guidesecurity-threat-model.mdandsecurity-review.mdmigrations.md— breaking change migration notesplatform-support.md— OS and Python version matrixintegrations.md— Rich and OpenTelemetry opt-incache-ownership-and-layout.md— runtime layoutconsumer-profiles.md— profile authoring guideextensions.md— extension and plugin systemperformance.md,local-config.md,releasing.mdAll of this exists only as Markdown files navigable through GitHub. For a PyPI package, potential adopters expect a rendered documentation site reachable from the PyPI page (
project.urls→Documentation).Without a rendered site:
.mdfiles via relative paths — these work on GitHub but not when the README is rendered on PyPI.docs/api-stability.mdURL pattern doesn't resolve to anything for users who install via pip.Proposed fix
Set up a documentation site using MkDocs or Sphinx with ReadTheDocs (or GitHub Pages):
mkdocs.yml(ordocs/conf.pyfor Sphinx) configuring the navigation from the existingdocs/files.docsURL topyproject.toml:.readthedocs.yamlconfiguration file.The
docs/releasing.mdfile already documents the release process — it should be included in the rendered site so it's discoverable without knowing the repo structure.Acceptance criteria
pip show base-cliincludes a Documentation URL that resolves to a rendered site.[docs/api-stability.md](docs/api-stability.md)) either resolve correctly in both GitHub and the docs site, or are updated to use absolute URLs.