diff --git a/docs/06-concepts/01-server-fundamentals/02-running-your-server.md b/docs/06-concepts/01-server-fundamentals/02-running-your-server.md
index 9def8f03..6af6121d 100644
--- a/docs/06-concepts/01-server-fundamentals/02-running-your-server.md
+++ b/docs/06-concepts/01-server-fundamentals/02-running-your-server.md
@@ -32,6 +32,8 @@ By default, `serverpod start` watches your project. What happens when you save d
The **R** key adapts to the situation. In watch mode, where saves already hot reload, **R** performs a hot restart: use it when a change cannot be hot reloaded, such as code that only runs at startup. If the project has errors instead, the session stays open and tells you what failed; the server boots automatically once a save fixes the errors, or press **R** to retry the build and start.
+If the session keeps reporting compilation errors you already fixed, stop it, run [`serverpod clean`](../cli/commands/clean) to delete the cached server build, and start it again.
+
To start without watching, pass `--no-watch`. Nothing reloads on save; there, **R** hot reloads on demand, and **Shift+R** restarts the server.
## Manage migrations from the terminal
diff --git a/docs/06-concepts/cli/_generated/clean.md b/docs/06-concepts/cli/_generated/clean.md
new file mode 100644
index 00000000..e7fa96ec
--- /dev/null
+++ b/docs/06-concepts/cli/_generated/clean.md
@@ -0,0 +1,16 @@
+## Usage
+
+```console
+Delete the cached server build and generation staleness stamp.
+
+The next `serverpod start` recompiles from scratch, and the next `serverpod generate` regenerates code.
+
+Only needed when `serverpod start` keeps reporting compilation errors that have already been fixed, or `serverpod generate` leaves bad output.
+
+Usage: serverpod clean [arguments]
+-h, --help Print this usage information.
+-d, --directory The server directory (defaults to auto-detect from current directory).
+
+Run "serverpod help" to see global options.
+```
+
diff --git a/docs/06-concepts/cli/_generated/doctor.md b/docs/06-concepts/cli/_generated/doctor.md
new file mode 100644
index 00000000..bd52616d
--- /dev/null
+++ b/docs/06-concepts/cli/_generated/doctor.md
@@ -0,0 +1,14 @@
+## Usage
+
+```console
+Check that Flutter, Dart, Git, and the Serverpod CLI are installed, compatible, and selected by PATH.
+
+Exits with an error when any check does not pass.
+
+Usage: serverpod doctor [arguments]
+-h, --help Print this usage information.
+ --json Print the results as JSON instead of text.
+
+Run "serverpod help" to see global options.
+```
+
diff --git a/docs/06-concepts/cli/_generated/global_options.md b/docs/06-concepts/cli/_generated/global_options.md
index 5b3a8b7a..5a2d1c36 100644
--- a/docs/06-concepts/cli/_generated/global_options.md
+++ b/docs/06-concepts/cli/_generated/global_options.md
@@ -16,12 +16,14 @@ Global options:
--experimental-features Enable experimental features. Experimental features might be removed at any time.
Available commands:
+ clean Delete the cached server build and generation staleness stamp.
cloud Manage Serverpod Cloud projects through the Serverpod Cloud.
completion Command line completion commands
create Creates a new Serverpod project, specify project name (must be lowercase with no special characters).
create-migration Creates a migration from the last migration to the current state of the database.
create-repair-migration Repairs the database by comparing the target state to what is in the live database instead of comparing to the latest migration.
database Manage the embedded PostgreSQL database used by a Serverpod project.
+ doctor Check that Flutter, Dart, Git, and the Serverpod CLI are installed, compatible, and selected by PATH.
generate Generate code from yaml files for server and clients.
language-server Launches a serverpod language server communicating with JSON-RPC-2 intended to be used with a client integrated in an IDE.
mcp-server Start an MCP bridge to the `serverpod start` runner of one server project.
diff --git a/docs/06-concepts/cli/commands/clean/_category_.json b/docs/06-concepts/cli/commands/clean/_category_.json
new file mode 100644
index 00000000..d3242d90
--- /dev/null
+++ b/docs/06-concepts/cli/commands/clean/_category_.json
@@ -0,0 +1 @@
+{"label": "clean"}
\ No newline at end of file
diff --git a/docs/06-concepts/cli/commands/clean/_clean.md b/docs/06-concepts/cli/commands/clean/_clean.md
new file mode 100644
index 00000000..0befbd93
--- /dev/null
+++ b/docs/06-concepts/cli/commands/clean/_clean.md
@@ -0,0 +1,5 @@
+# serverpod clean
+
+The `serverpod clean` command deletes the cached server build of a server project, so the next `serverpod start` compiles the server from scratch and the next `serverpod generate` regenerates all code. Run it when `serverpod start` keeps reporting compilation errors you already fixed, or when `serverpod generate` leaves bad output.
+
+Stop `serverpod start` before you run the command, then start it again to rebuild.
diff --git a/docs/06-concepts/cli/commands/clean/clean.mdx b/docs/06-concepts/cli/commands/clean/clean.mdx
new file mode 100644
index 00000000..e56572ee
--- /dev/null
+++ b/docs/06-concepts/cli/commands/clean/clean.mdx
@@ -0,0 +1,9 @@
+---
+title: ""
+---
+import MaintainedCommandIntro from './_clean.md';
+import Clean from '../../_generated/clean.md';
+
+
+
+
diff --git a/docs/06-concepts/cli/commands/doctor/_category_.json b/docs/06-concepts/cli/commands/doctor/_category_.json
new file mode 100644
index 00000000..84b94128
--- /dev/null
+++ b/docs/06-concepts/cli/commands/doctor/_category_.json
@@ -0,0 +1 @@
+{"label": "doctor"}
\ No newline at end of file
diff --git a/docs/06-concepts/cli/commands/doctor/_doctor.md b/docs/06-concepts/cli/commands/doctor/_doctor.md
new file mode 100644
index 00000000..7f46d749
--- /dev/null
+++ b/docs/06-concepts/cli/commands/doctor/_doctor.md
@@ -0,0 +1,5 @@
+# serverpod doctor
+
+The `serverpod doctor` command checks that Flutter, Dart, Git, and the Serverpod CLI are installed in compatible versions and selected by your `PATH`, and that pub.dev is reachable. For each check that fails, it prints what to do about it.
+
+The command exits with an error when any check fails. Pass `--json` to get the results as JSON, for example in a script.
diff --git a/docs/06-concepts/cli/commands/doctor/doctor.mdx b/docs/06-concepts/cli/commands/doctor/doctor.mdx
new file mode 100644
index 00000000..a83f7122
--- /dev/null
+++ b/docs/06-concepts/cli/commands/doctor/doctor.mdx
@@ -0,0 +1,9 @@
+---
+title: ""
+---
+import MaintainedCommandIntro from './_doctor.md';
+import Doctor from '../../_generated/doctor.md';
+
+
+
+