Conversation
Add a Diátaxis-based MkDocs Material documentation site with local docs commands, Nix devshell tooling, and GitHub Pages deployment. Add docs quality checks in CI using markdownlint-cli2, cspell, and lychee. Update AGENTS guidance to require docs updates for user-facing behavior changes. --- _Generated with [`mux`](https://github.com/coder/mux) • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.55`_ <!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.55 -->
Member
Author
|
@codex review Please review this docs + docs-CI change. |
Use explicit markdown path patterns plus mkdocs.yml in the lychee step and exclude the private repository URL to prevent false 404 failures while still checking external links. --- _Generated with [`mux`](https://github.com/coder/mux) • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.55`_ <!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.55 -->
Member
Author
|
@codex review Applied a follow-up fix for docs-quality lychee inputs. Please re-review. |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a Diátaxis-based MkDocs documentation site and automate GitHub Pages deployment.
Also add docs quality gates in CI for markdown linting, spelling, and dead links.
Background
The repository did not yet have a dedicated docs site or CI checks focused on docs quality.
This change adds a structured docs experience and keeps docs quality/regression checks
consistent whenever docs are updated.
Implementation
docs/with Diátaxis sections.mkdocs.ymland local docs tooling viaflake.nixand Make targets.markdownlint-cli2cspelllychee(external dead-link check).cspell.jsonand.markdownlint-cli2.yamlconfig files.AGENTS.mdandREADME.mdto reflect docs workflow expectations.Validation
make verify-vendormake testmake buildmake lintgo run github.com/rhysd/actionlint/cmd/actionlint@v1.7.10make docs-checknpx --yes markdownlint-cli2@0.18.1 "docs/**/*.md"npx --yes cspell@8.19.4 --no-progress --config .cspell.json "docs/**/*.md" "mkdocs.yml"docker run --rm -v "$PWD":/repo lycheeverse/lychee:latest --verbose --no-progress --accept 200,429 --max-retries 2 --retry-wait-time 2 /repo/docs/**/*.mdRisks
which may intermittently fail due to remote endpoint behavior/rate limits.
📋 Implementation Plan
Plan: Deploy Diátaxis docs to GitHub Pages (MkDocs Material)
Context / Why
You want to add a documentation site for
coder-k8sthat:The repo currently has developer onboarding in
README.mdand deeper architecture notes inAGENTS.md, but no docs site scaffolding.Why I’m planning around MkDocs Material (not Docusaurus)
mkdocsCLI.(If you decide you must have React/MDX, versioned docs, or heavy UI customization, Docusaurus becomes more compelling—but it adds a Node toolchain to a Go repo.)
Evidence (what I verified)
docs/directory.mkdocs.yml/ Docusaurus config.flake.nix) is present and minimal (Go + common CLIs only). (Seeflake.nix+flake.lock.)Makefilehas no docs targets; it already uses “install via nix develop” checks for tools likegolangci-lint/govulncheck. (SeeMakefile.).github/workflows/ci.yaml.)Implementation plan
1) Add a Diátaxis docs skeleton
Create a new
docs/tree organized by Diátaxis quadrants:docs/index.md– landing page with “Start here” + links to each quadrant.docs/tutorials/– learning-oriented, end-to-end walkthroughs.docs/how-to/– task-oriented guides (deploy, upgrade, troubleshoot).docs/reference/– factual reference (CRDs/APIs, flags, config).docs/explanation/– concepts, architecture, design decisions.Seed initial pages by moving/rewriting existing content:
README.mdquickstart intodocs/tutorials/getting-started.md.AGENTS.md(architecture, app modes) intodocs/explanation/architecture.md(avoid agent/PR workflow parts).deploy/andconfig/*:docs/how-to/deploy-controller.mddocs/how-to/deploy-aggregated-apiserver.mddocs/reference/api/codercontrolplane.mddocs/reference/api/coderworkspace.mddocs/reference/api/codertemplate.md2) Configure MkDocs Material (
mkdocs.yml)Add
mkdocs.ymlat repo root.Key requirements:
Minimal config shape (tweak as needed):
Optional MkDocs enhancements (keep out of v1 if you want minimal scope)
git-revision-date-localizedplugin to show “Last updated”.mkdocs-minify-pluginfor smaller assets.mkdocs-redirectsif you expect lots of restructuring.Each optional plugin should also be added to the Nix python environment and CI install step.
3) Update Nix devshell (
flake.nix) to provide the docs toolchainGoal: inside
nix develop, contributors can runmkdocsdirectly.Update
flake.nixdevShells.default.packagesto include a Python environment with:mkdocsmkdocs-materialpymdown-extensionsPrefer a single
python3.withPackagesenvironment somkdocscan import the theme/plugins:Notes:
ps."mkdocs-material").mkdocs.yml.4) Add Makefile targets that use the CLI (no Docker)
Add docs targets that match the repo’s “tool missing → use nix develop” pattern:
Also update
README.md“Essential commands” to includemake docs-serve/make docs-check.5) Ignore build output
Update
.gitignoreto ignore MkDocs output and caches:site/.cache/(if it shows up in practice)6) GitHub Pages deployment workflow
Add a dedicated workflow:
.github/workflows/docs.yaml.Requirements:
actionlint+zizmor.pages:write+id-token:write.Recommended approach (modern Pages deployment, no
gh-pagesbranch):Notes:
mkdocs-material, either:pip install ...line, ordocs/requirements.txtandpip install -r docs/requirements.txt.Manual repo setting (one-time): set GitHub Pages source to GitHub Actions.
7) Validation checklist (what to run locally)
nix developthen:mkdocs --version(sanity)make docs-check(ensures--strictbuild passes)make docs-serveand open the local sitego run github.com/rhysd/actionlint/cmd/actionlint@v1.7.10zizmor --help/zizmorequivalent (or rely on CI)Deliverables (files that will change)
docs/**(new)mkdocs.yml(new)flake.nix(update devshell packages)Makefile(add docs targets).gitignore(ignore MkDocs output).github/workflows/docs.yaml(new)README.md(link to docs + new make targets)Generated with
mux• Model:openai:gpt-5.3-codex• Thinking:xhigh• Cost:$0.55