GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — docs: promote the AI sections and Templates to the top level of the sidebar by coder[bot] · Pull Request #31645 · coder/coder

Conversation

@coder

@coder coder Bot commented Nov 2, 2026 •
edited by nickvigilante
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Note

Generated by Coder Agents. The branch and this description were written by an AI agent and need human review.

Summary

First of three stacked PRs for the docs IA overhaul (Proposal 1, section 3). This PR dissolves docs/ai-coder/ into four top-level sidebar sections, in this order, where "Run AI coding agents in Coder" used to be: Coder Agents, AI Governance (with Agent Firewall and AI Gateway nested under it), Agent Relay, and MCP server.

  • Files move with git mv, so git log --follow keeps their history. The move includes every file in the moved folders, including pages that are not in the sidebar, such as agent-firewall/example-policy.md, and pages added to main after the first version of this PR, such as agents/projects.md (docs(docs): add Coder Agents projects page #30684) and agents/acp-subagents.md (docs: document ACP subagents #31430).
  • docs/ai-coder/index.md, best-practices.md, and ide-agents.md are deleted. Each has a redirect (see below).
  • docs/manifest/ mirrors the new folders: coder-agents.yml (+ coder-agents/), ai-governance.yml (+ ai-governance/), agent-relay.yml, and mcp-server.yml. ai-coder.yml is deleted. The Projects and ACP subagents entries from main move with Coder Agents.
  • Every relative link and image path is fixed, both in the moved pages (their base directory changed) and in pages that link to them. This was done in one scripted pass from a clean main checkout. Every link was then checked to resolve on disk.
  • Commit 2, chore: point in-product docs links at the new docs paths, updates docs URLs outside docs/: site/ docs() links, Go error strings and comments, README.md, server.json, templatebuilder modules, and the doc-check skill. Commit 4 reverts the unversioned https://coder.com/docs/... URLs among them (see below), so after this PR only these differ from main outside docs/: the site/ docs() links, the versioned cli/cliui troubleshooting links, and repo file paths in comments and the doc-check skill's examples (docs/coder-agents/..., docs/templates/...). You can drop commit 2; the redirects cover the old URLs.
  • docs: promote Templates to a top-level sidebar section #31646 (Templates) was squash-merged into this branch as 98377a3a3b. This PR now also carries the Templates move (docs/admin/templates/** → docs/templates/**, plus template-from-scratch.md and testing-templates.md) and its chore changes. Refer to docs: promote Templates to a top-level sidebar section #31646 for that part's move map, redirects, and review.
  • Commit 4, fix: keep docs links healthy before the release, keeps links working on the live site until a release that includes this stack becomes the default docs version:
    • Hand-written pages that linked to moved pages with absolute https://coder.com/docs/... URLs now use relative links, anchors kept. The new paths 404 on the live site today, but relative links resolve for every version and are checked locally.
    • Hardcoded, unversioned https://coder.com/docs/<new path> URLs outside docs/ that the chore commits introduced (Go strings including the prebuilds metric help, CLI help, the agentFallbackTroubleshootingURL default, README.md, server.json, examples, templatebuilder files, and one site/ constant) go back to their current paths. Then make gen regenerated the generated table in docs/admin/integrations/prometheus.md, scripts/metricsdocgen/generated_metrics, the CLI golden files, and docs/reference/cli/templates/{create,edit}.md. See "Post-release follow-up".
    • The site/ docs() changes and the cli/cliui links stay, because those URLs are versioned (/docs/@vX.Y.Z/...) and resolve once the release ships.
  • Commit 5, docs: prefix relative links in the moved pages with ./, adds ./ to 13 relative links that the move script wrote without it, in docs/mcp-server.md and three Templates pages.
    They resolved, but every other relative link in the docs starts with ./ or ../.
  • Commit 6, docs: keep the coding agent module guidance in the templates docs, adds an AI agent modules section to docs/templates/extending-templates/modules.md.
    Deleting docs/ai-coder/index.md removed the only instructions for adding a terminal coding agent to a template with a registry module.
    The example (registry.coder.com/coder/claude-code/coder, version = "~> 5.2") passes terraform validate, and the Template Builder labels it cites match site/src/pages/TemplateBuilder/ModuleSelectStep.tsx.

Stack: this PR (with #31646 squash-merged in) → docs/ia-tutorials-nav (#31647, Tutorials + nav renames) → docs/ia-workspaces-folder (#31650, folder rename).

Refs: Linear DOCS-1154, DOCS-1179, and DOCS-1479 for the coder.com and router redirect fix.

Move map

Old New
docs/ai-coder/agents/** (25 files) docs/coder-agents/**
docs/ai-coder/ai-governance.md docs/ai-governance/index.md
docs/ai-coder/agent-firewall/** (9 files) docs/ai-governance/agent-firewall/**
docs/ai-coder/ai-gateway/** (26 files) docs/ai-governance/ai-gateway/**
docs/ai-coder/agent-relay/** (3 files) docs/agent-relay/**
docs/ai-coder/mcp-server.md docs/mcp-server.md
docs/ai-coder/index.md deleted
docs/ai-coder/best-practices.md deleted
docs/ai-coder/ide-agents.md deleted

Redirects added

Appended to docs/redirects.json, using the absolute /docs/... format that main validates today. Wildcards cover every page under each moved folder, including pages that are not in the sidebar and the pages added to main since the first version of this PR.

Source Destination
/docs/ai-coder /docs/coder-agents (deleted hub, please confirm)
/docs/ai-coder/best-practices /docs/coder-agents (deleted, please confirm)
/docs/ai-coder/ide-agents /docs/user-guides/workspace-access (deleted, please confirm)
/docs/ai-coder/ai-governance /docs/ai-governance
/docs/ai-coder/mcp-server /docs/mcp-server
/docs/ai-coder/agents/:path* /docs/coder-agents/:path*
/docs/ai-coder/agent-firewall/:path* /docs/ai-governance/agent-firewall/:path*
/docs/ai-coder/ai-gateway/:path* /docs/ai-governance/ai-gateway/:path*
/docs/ai-coder/agent-relay/:path* /docs/agent-relay/:path*

None of the 3 existing rules in docs/redirects.json points into ai-coder/, so no destinations needed updating.

coder.com and router static redirects.
coder.com applies its own redirects.json and the rules it generates from this file before it hands /docs to the docs-engine router, which applies its own static redirects.json before the page.
Three older static rules in both repos send /docs/templates, /docs/templates/open-in-coder, and /docs/templates/troubleshooting to /docs/admin/templates/..., and the /docs/admin/templates/:path* rule here sends them back, so each loops once a release with this layout is the docs mainline.
A static /docs/workspaces rule would also hide the new docs/workspaces/index.md page from #31650.
coder/coder.com#1201 and coder/docs-engine#304 (draft, DOCS-1479) remove those rules; they must merge when that release becomes the mainline, not before, because the old-layout mainline still needs them.
A chain simulation of every page and static source on each branch of this stack finds no other loops or hidden pages.
The /docs/ai-coder/... and other legacy rules there still work; some now take two redirects.

Deviations from the proposal

  • Glossary "IDE agent" entry. The proposal says to remove this link and leave plain text. I pointed it at Access your workspace (docs/user-guides/workspace-access/index.md) instead, the same page the ide-agents redirect uses, because "Refer to IDE agents." with no link reads as a dead end. The "Coding agent" entry now links to Coder Agents, as the proposal says.
  • Top-level icons. The new sections need icons. I chose wand.svg (Coder Agents, the old ai-coder icon), ai_intelligence.svg (AI Governance), link.svg (Agent Relay), and plug.svg (MCP server).
  • Coding agent module guidance. Kept on the Reuse template code page (commit 6) instead of deleted with docs/ai-coder/index.md. The best-practices and IDE-agent pages are deleted as proposed.
  • Order relative to Administration. In this PR the four sections sit where ai-coder was, after Administration. PR C moves Administration after MCP server to reach the final order.
  • docs/mcp-server.md repo link. A relative link to codersdk/toolsdk/toolsdk.go, outside docs/, was re-based for the new depth.
  • Left unchanged on purpose:
    • Database migrations and the notification .golden files rendered from them still contain coder.com/docs/ai-coder/... URLs. Existing migrations can't be edited, so those links rely on the redirects.
    • aibridge/client/client.go links to a commit-pinned GitHub permalink, which still resolves.
    • Test fixtures in scripts/docsredirectscheck and .github/workflows/test-docs-preview-mapper.sh use ai-coder as sample data.
    • site/src/pages/AgentsPage/components/ChatElements/tools/Tool.stories.tsx uses https://coder.com/docs/ai-coder/ai-gateway as a sample web search result. Changing it would only change a visual snapshot.

Open questions for Nick

  1. Do you agree with the three redirect targets for the deleted pages above?
  2. Should the "IDE agent" glossary entry link to Access your workspace (current) or be plain text (proposal)?
  3. Are the icons for the new top-level sections OK?
  4. Open PRs that touch the moved files, checked with git merge-tree against this branch. I didn't change them.
    • docs(docs/ai-coder): configure Claude API key helpers for AI Gateway #31169 merges cleanly: Git's rename detection carries its edit to docs/ai-governance/ai-gateway/clients/claude-code.md, and its new relative link still resolves at the new path.
    • docs(docs/ai-coder/ai-gateway): document Responses WebSocket mode #30262 now targets tk/ai-gateway-responses-ws-endpoint and conflicts with main in 21 files. Against this branch it conflicts in the same 21 files, with codex.md at its new path, so this PR doesn't add new conflicts. Its new relative links still resolve after the move.
    • ci: make docs redirects relative and block removed routes #30805 conflicts in docs/redirects.json. It already conflicts with main there, because main added the /docs/about/screenshots and /docs/install/cli rules.

Release

No backport to release/2.39 for now; Nick may apply it by hand later.
A cherry-pick of this branch onto release/2.39 conflicts in 25 files, and #31647 and #31650 would need the same treatment to keep the stack together.
coder/coder.com#1201 and coder/docs-engine#304 merge when the first release line that carries this layout becomes the docs mainline (2.38 today).

Known limitations

  • CLI newer than its server. The cli/cliui troubleshooting links append /templates/troubleshooting#... to the server's versioned docs URL.
    A CLI from this release against an older server prints /docs/@v2.38.x/templates/troubleshooting#....
    The router's static /docs/templates/:page(open-in-coder|troubleshooting) rule redirects that to the old page today, but coder/docs-engine#304 removes that rule to fix the loop, so after the cutover that case gets the version's not-found page.

Post-release follow-up

After a release that includes this stack becomes the default docs version on coder.com, point these hardcoded URLs at the new paths. They work today and redirect after the release, so nothing breaks in the meantime. Anchors are unchanged. Rerun make gen afterward to update docs/admin/integrations/prometheus.md, scripts/metricsdocgen/generated_metrics, the CLI golden files, and docs/reference/cli/templates/{create,edit}.md.

Current (old) URL Post-release URL Files
https://coder.com/docs/ai-coder/agents https://coder.com/docs/coder-agents .claude/skills/doc-check/output.md, README.md
https://coder.com/docs/ai-coder/agents/architecture https://coder.com/docs/coder-agents/architecture coderd/x/chatd/chattool/execute_test.go, codersdk/toolsdk/workspacetools/execute.go
https://coder.com/docs/ai-coder/ai-gateway https://coder.com/docs/ai-governance/ai-gateway README.md, coderd/templatebuilder/modules/claude-code/module.json, coderd/templatebuilder/modules/codex/module.json
https://coder.com/docs/ai-coder/mcp-server https://coder.com/docs/mcp-server server.json
https://coder.com/docs/admin/templates https://coder.com/docs/templates README.md
https://coder.com/docs/admin/templates/extending-templates/docker-in-workspaces https://coder.com/docs/templates/extending-templates/docker-in-workspaces examples/templates/docker-devcontainer/main.tf
https://coder.com/docs/admin/templates/extending-templates/parameters https://coder.com/docs/templates/extending-templates/parameters examples/parameters-dynamic-options/README.md, examples/parameters/README.md, examples/parameters/main.tf, examples/templates/kubernetes-envbox/README.md, examples/workspace-tags/README.md
https://coder.com/docs/admin/templates/extending-templates/prebuilt-workspaces https://coder.com/docs/templates/extending-templates/prebuilt-workspaces coderd/prebuilds/api.go, enterprise/coderd/prebuilds/metricscollector.go (metric help text)
https://coder.com/docs/admin/templates/extending-templates/workspace-tags https://coder.com/docs/templates/extending-templates/workspace-tags examples/workspace-tags/README.md
https://coder.com/docs/admin/templates/managing-templates https://coder.com/docs/templates/managing-templates cli/templatecreate.go, cli/templateedit.go (CLI help)
https://coder.com/docs/admin/templates/managing-templates/image-management https://coder.com/docs/templates/managing-templates/image-management coderd/templatebuilder/bases/docker/README.md, coderd/templatebuilder/bases/kubernetes/README.md
https://coder.com/docs/admin/templates/troubleshooting https://coder.com/docs/templates/troubleshooting agent/agentscripts/agentscripts.go, coderd/render/escape_internal_test.go, codersdk/deployment.go (agentFallbackTroubleshootingURL default)
https://coder.com/docs/tutorials/template-from-scratch https://coder.com/docs/templates/template-from-scratch site/src/pages/TemplateBuilder/TemplateAlternatives.tsx

Validation run

  • make gen/docs-manifest: clean diff afterward.
  • make lint/docs-manifest, lint/docs-redirects (go run ./scripts/docsredirectscheck -base origin/main: 15 rules OK, no removed-route warning), lint/docs-html, lint/emdash: pass.
  • pnpm check-docs (markdownlint + table formatter): pass.
  • Vale (vale --no-exit docs/): the same 12 warnings and 1 error as main, all pre-existing. Suggestions drop from 646 to 645; the one removed was in the deleted ide-agents.md.
  • Local relative-link check over docs/**/*.md: 0 unresolved links or images (also 0 on main).
  • Pre-commit hook: make pre-commit-light on the docs commit, and the full make pre-commit (gen, fmt, lint/go, lint/ts, build, and others) on the chore commit. Both passed.
  • Targeted tests:
    • Go: go test ./coderd/x/chatd/chattool/... ./codersdk/toolsdk/... ./coderd/templatebuilder/....
    • Site: Vitest for the touched directories (107 files, 1879 tests), and the story tests for CoderAgentsProductCard, GroupSettingsPageView, GatewayKeysPageView, and ModelForm (4 files, 63 tests).
  • Every docs() path and anchor in the site/ and Go diff resolves to a page and heading in this branch.
  • Frontend deep review (all 8 roles) on the site/ diff of PRs A and B: no blocking or should-fix findings. Nits on existing code that this PR only touched, not changed here: a single-use docsLink constant in ChatAccessDeniedAlert.tsx, and assertion-only play functions in the GatewayKeysPageView, ModelForm, CoderAgentsProductCard, and GroupSettingsPageView stories.
  • Page counts: docs/**/*.md (excluding .style) 490 → 487; manifest.json routes 495 → 492. With docs: promote Templates to a top-level sidebar section #31646 squash-merged in, the counts don't change, because the Templates move only moves files.
  • Link health (commit 4):
    • linkspector 0.5.6 with .github/.linkspector.yml over all of docs/, like the weekly docs job (umbrelladocs/action-linkspector, reporter: local, filter_mode: nofilter). I ran it locally with Chrome in --no-sandbox mode.
    • origin/main: 0 errors. Before the fix (17e54ad555): 6 errors, all https://coder.com/docs/<new path> 404s (shared-workspaces.md:19, esr-2.24-2.29-upgrade.md:80-82, tasks-to-chats-migration.md:73, prometheus.md:298). After the fix (def074caab): 0 errors. A first run after the fix also flagged a Red Hat URL in install/server/openshift.md. That URL is unchanged from main, and it passed on a rerun, so the failure was transient.
    • After the fix: make gen/docs-manifest (clean), lint/docs-manifest, lint/docs-redirects (15 rules OK against origin/main), lint/docs-html, lint/emdash, pnpm check-docs, and the relative-link check (0 unresolved in 3416 links) pass. The full make pre-commit, including make gen, passed on the commit.
    • Tests after the fix:
      • Go: go test ./cli -run 'TestCommandHelp|TestServerYAMLConfig', ./enterprise/cli -run TestEnterpriseCommandHelp, ./coderd/render, ./agent/agentscripts, ./coderd/prebuilds, ./enterprise/coderd/prebuilds, ./coderd/x/chatd/chattool/..., ./codersdk/toolsdk/..., ./coderd/templatebuilder/....
      • Site: Vitest for src/pages/TemplateBuilder (7 files, 67 tests).
  • After the rebase onto ccf5ec74ae (commits 5 and 6 included): make gen/docs-manifest (clean), lint/docs-manifest, lint/docs-redirects (15 rules OK), lint/docs-html, lint/emdash, pnpm check-docs, and a relative-link and anchor check over the changed pages pass.
    The only unresolved anchor, docs/ai-governance/ai-gateway/cost-controls.md → enterprise.md#list-organization-ai-spend-by-user, is also broken on main.
    The pre-commit hook (make pre-commit-light, because both new commits touch only docs/) passed on commits 5 and 6. The rebased code commits rely on CI for Go and TypeScript checks.
  • Redirect chains: a Node simulation of coder.com's static rules, its generated rules from this branch's docs/redirects.json, the router's static rules, the page, then this branch's rules on a miss, over every page and exact static source, reports the 3 loops above and nothing else new; with coder/coder.com#1201 and coder/docs-engine#304 applied, 0.
  • Skipped: the docs-engine sync check, which was not available in this environment.
Implementation notes
  • Rebuilt on main at ccf5ec74ae (2026-11-03) to clear conflicts with main, after an earlier rebase the same day onto 1a963c628d. The previous rebuild was on 9839406ff7 (2026-11-02), and the first version on 9b8d880d63 (2026-10-23).
  • Rebase conflicts with fix(site/src): open docs links in a new tab #31603, which added target="_blank" rel="noreferrer" to docs links: 4 site/ files in the chore commit and 5 in the Templates commit. Each kept main's version of the link with only the docs path changed. Vitest for the 7 affected page directories (233 tests) and the story tests for the 8 changed or affected stories (102 tests) pass, and every docs() path in site/src resolves except the same 13 that are unresolved on main.
  • Rebase conflict: docs/manifest/coder-agents.yml. main added docs/ai-coder/agents/bring-your-own-mcp-servers.md; it moves to docs/coder-agents/ with its sidebar entry, and its ../../user-guides/ links become ../user-guides/.
  • Folded into the Templates commit: a link that main added to docs/user-guides/workspace-dotfiles.md (feat: expose the workspace template to agent commands #31606) now points at ../templates/extending-templates/environment-variables.md.
  • git range-diff against def074caab, the head before both rebases, shows only those changes.
  • The move script reads every page from the clean main checkout and resolves each relative link (inline, reference-style, and HTML src/href) against the page's old directory. It maps the target through the move map and recomputes the link from the page's new directory. It runs once and refuses to run on a dirty docs/ tree, so it can't apply the path math twice. It also rewrites absolute coder.com/docs/... and github.com/coder/coder/(blob|edit|tree)/main/docs/... URLs, and skips fenced code blocks and inline code.
  • Before reusing the script, I ran it on the old base and diffed the result against the old commit. The only differences were the two hand-edited glossary entries and table padding from the formatter, so the rebuild applies the same changes to the current main.
  • Afterward, grep -r ai-coder docs/ finds matches only in docs/redirects.json.
  • Changes from the earlier version of this branch: 2 more pages move (agents/projects.md, agents/acp-subagents.md) and their sidebar entries move with them. The chore commit also updates SessionSummaryTable.tsx (new on main) and the doc-check skill's output.md (its examples moved there from SKILL.md). The AICostControl.tsx anchor question is gone, because main fixed it.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@coder
coder Bot requested a review from a team as a code owner November 2, 2026 21:17
@coder coder Bot assigned nickvigilante Nov 2, 2026
@github-actions github-actions Bot added the community Pull Requests and issues created by the community. label Nov 2, 2026
@coder
coder Bot requested a review from nickvigilante November 2, 2026 21:17
@nickvigilante nickvigilante added the cherry-pick/v2.39 Cherry-pick PR targeting release/2.39 label Nov 2, 2026
@coder coder Bot mentioned this pull request Nov 2, 2026
docs: rename the user-guides folder to workspaces #31650
Merged
nickvigilante
nickvigilante approved these changes Nov 2, 2026
View reviewed changes
@coder coder Bot mentioned this pull request Nov 2, 2026
docs: redistribute tutorials and rename top-level sidebar sections #31647
Merged
@nickvigilante
nickvigilante force-pushed the docs/ia-ai-sections branch from def074c to 8f1e7ee Compare November 3, 2026 18:48
@linear-code

linear-code Bot commented Nov 3, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

DOCS-1154

DOCS-1179

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nickvigilante nickvigilante changed the title docs: promote the AI sections to the top level of the sidebar docs: promote the AI sections and Templates to the top level of the sidebar Nov 3, 2026
@nickvigilante

nickvigilante commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

CI on 8f1e7ee216: three jobs failed for reasons outside this PR's changes, and all three passed when I reran the failed jobs.

  • test-js: AgentCreatePage.test.tsx > debug deep link > prefills the prompt and the build logs, and sends them on Send timed out while waiting for the URL to drop debug_workspace_build. This PR doesn't touch AgentCreatePage, and the test passed in all 4 local runs.
  • test-go-pg (windows-2022): go vet hit a Windows file lock in the Go cache (The process cannot access the file because it is being used by another process). No test failed.
  • Storybook: GitHub canceled the step on the Depot runner.

Posted by Coder Agents on behalf of @nickvigilante.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nickvigilante nickvigilante removed the cherry-pick/v2.39 Cherry-pick PR targeting release/2.39 label Nov 3, 2026
coder Bot and others added 6 commits November 3, 2026 22:07
@coder @nickvigilante
docs: promote the AI sections to the top level of the sidebar
9f51d52
Dissolve docs/ai-coder into four top-level sections: Coder Agents,
AI Governance (with Agent Firewall and AI Gateway), Agent Relay, and
MCP server. Delete the ai-coder hub, best practices, and IDE agents
pages, and redirect every moved or removed URL.
@coder @nickvigilante
chore: point in-product docs links at the new docs paths
f87658d
@coder @nickvigilante
docs: promote Templates to a top-level sidebar section (#31646)
98377a3
> [!NOTE]
> Generated by Coder Agents. The branch and this description were
written by an AI agent and need human review.

Second of three stacked PRs for the docs IA overhaul (Proposal 1,
section 2). This PR promotes **Templates** out of Administration to a
top-level sidebar section between Install and User guides.

- `docs/admin/templates/**` moves to `docs/templates/**` with `git mv`:
46 files, including pages that are not in the sidebar, such as
`extending-templates/external-auth.md`, and
`extending-templates/script-ordering.md`, which was added to `main`
after the first version of this PR.
- Two of the three tutorials the proposal names still exist on `main`,
and both move into the new section. `template-from-scratch.md` goes
after "Creating templates" and `testing-templates.md` goes before
"Troubleshoot templates". Their Tutorials sidebar entries are removed.
- `docs/manifest/admin/templates.yml` and
`docs/manifest/admin/templates/` move to `docs/manifest/templates.yml`
and `docs/manifest/templates/`. `admin.yml` no longer includes them, and
`index.yml` lists `templates.yml` after `install.yml`. The Script
ordering entry from `main` moves with them.
- Every relative link and image path is fixed, in moved pages and in
pages that link to them. This includes repo-relative links out of
`docs/`, such as `../../../examples/templates`, whose depth changed.
`docs/images/` stays where it is.
- Commit 2, `chore: point in-product docs links at the new docs paths`,
updates docs URLs outside `docs/`, then regenerates the files built from
them with `make gen`. You can drop that commit; the redirects cover the
old URLs.
- Updated sources: `site/` `docs()` links, `cli/cliui` troubleshooting
links, CLI flag help, the `agentFallbackTroubleshootingURL` default, the
prebuilds metric help text, `examples/`, and templatebuilder READMEs.
- Regenerated files: CLI golden files,
`docs/reference/cli/templates/{create,edit}.md`,
`scripts/metricsdocgen/generated_metrics`, and the generated table in
`docs/admin/integrations/prometheus.md`.

Stack: `docs/ia-ai-sections` → **this PR** → `docs/ia-tutorials-nav`.

Refs: Linear DOCS-1154, DOCS-1179.

| Old | New |
| --- | --- |
| `docs/admin/templates/**` (46 files) | `docs/templates/**` |
| `docs/tutorials/template-from-scratch.md` |
`docs/templates/template-from-scratch.md` |
| `docs/tutorials/testing-templates.md` |
`docs/templates/testing-templates.md` |

| Source | Destination |
| --- | --- |
| `/docs/tutorials/template-from-scratch` |
`/docs/templates/template-from-scratch` |
| `/docs/tutorials/testing-templates` |
`/docs/templates/testing-templates` |
| `/docs/admin/templates/:path*` | `/docs/templates/:path*` |

The wildcard also covers `script-ordering`, which is new on `main`.

Updated an existing rule to avoid a chain:
`/docs/admin/templates/extending-templates/dynamic-parameters` now
points to `/docs/templates/extending-templates/parameters`. It stays
above the new wildcard so it still applies first.

**coder.com `redirects.json`:** I could not check it, because the file
is not readable anonymously and the provided credentials cover only
`coder/coder`. Someone with access should look for `/docs` destinations
under `/docs/admin/templates/...` or
`/docs/tutorials/{template-from-scratch,testing-templates}`.

- **`tutorials/external-database.md` is not in this PR.** The proposal
puts it under Templates, but the page is about pointing the Coder
control plane at an external PostgreSQL database, not about templates.
PR C moves it to `install/server/external-database.md`, next to
`postgres-ssl.md`. If you want it under Templates, it's a one-line
change.
- **Manifest position of the two tutorials.** The proposal doesn't say
where they go, so I placed them as described in the Summary.
- **Generated files belong to commit 2.** Commit 1 doesn't edit
generated docs. Those files change only through their sources and `make
gen`, so `lint/docs-gen-filter` stays clean.
- **Left unchanged on purpose:**
- Database migrations, the notification `.golden` files rendered from
them, and the matching `site/src/testHelpers/entities.ts` fixtures still
contain `coder.com/docs/admin/templates/...` URLs. Existing migrations
can't be edited, so those links rely on the wildcard redirect.
- Test fixtures in `scripts/docsredirectscheck`,
`site/scripts/audit-docs-paths.test.mjs`, and
`.github/workflows/test-docs-preview-mapper.sh` are synthetic.
`Tool.stories.tsx` uses `https://coder.com/docs/admin/templates` as a
sample web search result.
- The style guide's "What's next?" example in
`docs/.style/style-guide/word-choice.md` shows a link to
`admin/templates/...` inside a fenced code block. It is sample Markdown,
not a live link.

1. Should `external-database.md` go under Install (as in PR C) or
Templates (as in the proposal)?
2. Templates keeps its `picture.svg` icon. Is that OK at the top level?
3. Frontend review nits on existing code that this PR only touched; I
didn't change them:
- `TemplatesFilter.tsx` has a commented-out `learnMoreLink` to the
`#template-filtering` anchor, which doesn't exist.
- `TemplateAlternatives.tsx` hardcodes a `https://coder.com/docs/...`
URL instead of using `docs()`.
- The `CreateWorkspacePageView` story's `play` function only asserts
link attributes.

- `make gen/docs-manifest`: clean diff afterward.
- `make lint/docs-manifest`, `lint/docs-redirects` (`-base
docs/ia-ai-sections`: 15 rules OK), `lint/docs-html`, `lint/emdash`:
pass.
- `pnpm check-docs` (markdownlint + table formatter): pass.
- Vale over `docs/`: the same 12 warnings and 1 error as `main`, all
pre-existing (suggestions: 645, the same as PR A).
- Local relative-link check over `docs/**/*.md`: 0 unresolved.
- Pre-commit hook: `make pre-commit-light` on the docs commit, and the
full `make pre-commit` on the chore commit. `make gen` left a clean
tree. Targeted tests passed:
- Go: `go test ./cli -run 'TestCommandHelp|TestServerYAMLConfig'`,
`./enterprise/cli -run TestEnterpriseCommandHelp`, `./coderd/render`,
`./cli/cliui`, `./agent/agentscripts`, `./coderd/prebuilds`,
`./enterprise/coderd/prebuilds`.
- Site: Vitest for the touched directories (17 files, 188 tests), and
the `CreateWorkspacePageView` story tests (14 tests).
- Frontend deep review (all 8 roles) on the `site/` diff: no blocking or
should-fix findings, and every new `docs()` path and anchor resolves,
except the pre-existing commented-out anchor in question 3.
- Page counts: `docs/**/*.md` 486 → 486 (moves only); `manifest.json`
routes 491 → 491.
- **Skipped:** the docs-engine sync check, which was not available in
this environment.

<details>
<summary>Implementation notes</summary>

- Rebuilt on the new `docs/ia-ai-sections`, which is based on `main` at
`9839406ff7` (2026-11-02).
- The same one-shot move script as PR A did the move and link pass from
a clean tree. Run on the old base, it reproduced the old commit exactly
(apart from the generated files, which belong to commit 2), so no hand
edits were needed in this PR's docs commit.
- The chore commit uses the same rewrite over the files outside `docs/`
that link to moved pages. Its diff for `site/`, `cli/cliui`, and the
other sources matches the earlier version of this branch line for line.
- Changes from the earlier version of this branch: 1 more page moves
(`extending-templates/script-ordering.md`), with its sidebar entry.
`docs/install/cli.md` no longer exists on `main` (#31513), so its link
fix is gone.

</details>

---------

Co-authored-by: coder[bot] <137810501+coder[bot]@users.noreply.github.com>
@coder @nickvigilante
fix: keep docs links healthy before the release
7b77b38
Turn absolute coder.com/docs URLs to moved pages in hand-written docs
into relative links, and point unversioned coder.com/docs URLs outside
docs/ back at the paths that are live today. The redirects carry them
to the new pages after the release. Regenerate the files built from
them.
@nickvigilante
docs: prefix relative links in the moved pages with ./
5ea4b90
The move script wrote links to targets in or below the page's own folder without a ./ prefix. They resolved, but every other relative link in the docs starts with ./ or ../.
@nickvigilante
docs: keep the coding agent module guidance in the templates docs
4c356c6
Deleting docs/ai-coder/index.md removed the only instructions for installing a terminal-based coding agent in a template with a registry module. Move that guidance to the Reuse template code page, next to the other Coder modules.
@nickvigilante
nickvigilante force-pushed the docs/ia-ai-sections branch from 8f1e7ee to 4c356c6 Compare November 3, 2026 22:10
@coder coder Bot mentioned this pull request Nov 4, 2026
docs: link to Premium trial from Agent Relay beta notes #31755
Merged
dluman pushed a commit that referenced this pull request Nov 4, 2026
@coder
docs: link to Premium trial from Agent Relay beta notes (#31755)
f98fe33
Adds a direct link to the Premium trial page (https://coder.com/trial)
to the beta note on every Agent Relay page that has one:

- `index.md`, `setup.md`
- `claude-code.md`, `cursor.md`, `slack.md`, `troubleshooting.md`
- `monitoring/index.md`, `monitoring/siem.md`

The six pages whose note only said "is in beta" now also say it requires
a Premium license, matching `index.md` and `setup.md`, so the trial link
has context. Each note now reads:

```md
> [!NOTE]
> Agent Relay is in [beta](../../reference/feature-stages.md#beta) and requires a Premium license.
> To try it, [request a Premium trial](https://coder.com/trial).
```

`configuration.md` has no beta note, so it's unchanged. The trial URL
matches the one used in `docs/install/prepare/licensing.md` and the FAQ.

Note: #31645 moves `docs/ai-coder/agent-relay/` to `docs/agent-relay/`,
so whichever PR merges second needs a rebase.

Requested by @dluman.

Co-authored-by: coder[bot] <137810501+coder[bot]@users.noreply.github.com>
@nickvigilante
Merge branch 'main' into docs/ia-ai-sections
d1c4ff0
nickvigilante
nickvigilante approved these changes Nov 4, 2026
View reviewed changes

@nickvigilante nickvigilante left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after review. Disclosure: this review was generated by Coder Agents on behalf of @nickvigilante.

Findings: the branch had fallen 17 commits behind main and conflicted, because changes on main rewrote the Agent Relay docs under the old docs/ai-coder/agent-relay/. I merged main into this branch (d1c4ff0c6c), and the merge:

  • moved the new Agent Relay pages (setup, slack, configuration, troubleshooting, monitoring/*) to docs/agent-relay/, with relative links and images rewritten for the new depth
  • moved the new monitoring.yml sidebar source to docs/manifest/agent-relay/ and kept the beta/premium state and icon
  • dropped the docs/ai-coder/index.md edit from main, since that page is deleted here
  • fixed two links that main added in docker-in-workspaces.md and moved with Templates
  • regenerated docs/manifest.json

Checked locally: lint/docs-manifest, lint/docs-redirects, lint/docs-html, lint/emdash, markdownlint, a relative-link and image resolve pass over docs/ with no new misses, and the full pre-commit hook. The existing /docs/ai-coder/agent-relay/:path* wildcard redirect already covers the new pages.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@nickvigilante
nickvigilante merged commit a7f3e3b into main Nov 4, 2026
30 of 31 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@nickvigilante
nickvigilante deleted the docs/ia-ai-sections branch November 4, 2026 22:15
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Reviewers

@nickvigilante nickvigilante nickvigilante approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@nickvigilante nickvigilante

Labels

community Pull Requests and issues created by the community.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@nickvigilante
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.