diff --git a/.agents/skills/template-authoring/SKILL.md b/.agents/skills/template-authoring/SKILL.md
index 4236e7b..9ff7ec8 100644
--- a/.agents/skills/template-authoring/SKILL.md
+++ b/.agents/skills/template-authoring/SKILL.md
@@ -43,7 +43,7 @@ The repository itself stays all on. The Presentation project and the presentatio
A toggle's inputs, such as `authority` and `audience`, are separate symbols, enabled with `isEnabled` and made required with `isRequired` only when the toggle is on. Only `dotnet new` honours those two. Visual Studio and Rider show every input whatever the toggle says ([dotnet/templating#7860](https://github.com/dotnet/templating/issues/7860)), and Rider lists checkboxes first, then text fields in alphabetical order by label. So an input's label starts with its feature, such as "Authentication authority", to sit right under its checkbox, and its IDE description says it's only used when that box is ticked. A toggle that needs another one says so in its conditions, such as `(includeTests && includeArchitectureTests)`. Verify Template checks the defaults, everything on, everything off, and each toggle flipped on its own.
-The package includes `src/`, `tests/`, `docs/RUN.md`, the root build files, `AGENTS.md`, `CLAUDE.md`, the persona and the engineering skills. It also packs `template/ci.yml` as the generated solution's `.github/workflows/ci.yml`, a small pipeline with no template name in it. It leaves out the rest of `.github/`, the community files and the repository and maintainer skills, which only make sense in the template repository. Those skills are listed in `RepositorySkills` in `template/template.csproj`; a new one is added there. The pipeline fails a package over 1 MB.
+The package includes `src/`, `tests/`, `docs/RUN.md`, the root build files, `AGENTS.md`, `CLAUDE.md`, the persona and the engineering skills. It also packs `template/README.md` as the generated solution's `README.md` and `template/ci.yml` as `.github/workflows/ci.yml`, while leaving the template repository's own `README.md`, the rest of `.github/`, the community files and the repository and maintainer skills out. Those skills are listed in `RepositorySkills` in `template/template.csproj`; a new one is added there. The pipeline fails a package over 1 MB.
## Getting found
@@ -94,4 +94,4 @@ The README and `NUGET.md` name the aliases under the install commands, and the d
## Check
-The Test job's Verify Template step installs the packed template, generates a solution and checks that nothing of the template leaked into it (no `includeAuth` markers, no trace of the template's own name, no `icon.png`) and that it has `.github/workflows/ci.yml`, then checks its format and runs its tests. Where the template has `--include-auth` it does it again with the toggle on, and checks that `--include-auth` without `--authority` is refused with exit code 102.
+The Test job's Verify Template step installs the packed template, generates a solution and checks that nothing of the template leaked into it (no `includeAuth` markers, no trace of the template's own name, no `icon.png`) and that it has `README.md` and `.github/workflows/ci.yml`, then checks its format and runs its tests. Where the template has `--include-auth` it does it again with the toggle on, and checks that `--include-auth` without `--authority` is refused with exit code 102.
diff --git a/.github/workflows/build-pipeline.yml b/.github/workflows/build-pipeline.yml
index 2cfa455..0f5d9fe 100644
--- a/.github/workflows/build-pipeline.yml
+++ b/.github/workflows/build-pipeline.yml
@@ -237,6 +237,7 @@ jobs:
clean "$1" includeAuth
clean "$1" "$SOURCE_NAME"
test ! -e "$1/icon.png"
+ test -f "$1/README.md"
test -f "$1/.github/workflows/ci.yml"
dotnet format "$1" --verify-no-changes
dotnet test "$1" --configuration Release
diff --git a/CleanModelContextProtocol.slnx b/CleanModelContextProtocol.slnx
index f13157f..1cae821 100644
--- a/CleanModelContextProtocol.slnx
+++ b/CleanModelContextProtocol.slnx
@@ -14,6 +14,7 @@
+
diff --git a/template/README.md b/template/README.md
new file mode 100644
index 0000000..35eb1e0
--- /dev/null
+++ b/template/README.md
@@ -0,0 +1,23 @@
+# CleanModelContextProtocol
+
+Built on .NET 10 with Clean Architecture: `Application` owns the domain rules and use cases, `Infrastructure` owns Entity Framework Core and data access, and `Presentation` is the entry point.
+
+## Build and test
+
+```bash
+dotnet build
+dotnet test
+```
+
+## Run locally
+
+```bash
+docker compose up -d --build
+```
+
+See [docs/RUN.md](docs/RUN.md) for the ports, the database and its migrations, the Aspire dashboard and the tests.
+
+## Docs and coding agents
+
+- [AGENTS.md](AGENTS.md): architecture rules, project map and the skills in `.agents/skills/` for coding agents.
+- [Template documentation](https://leanmeancleanapps.github.io/mcp/): guides, reference pages and design decisions.
diff --git a/template/template.csproj b/template/template.csproj
index 6115447..decc9a0 100644
--- a/template/template.csproj
+++ b/template/template.csproj
@@ -41,7 +41,8 @@
-
+
+