agui-dotnet-sdk-docs
GitHub用于在 Mintlify 站点中创建、更新和验证 .NET SDK 文档页面。包括编写 MDX 内容、配置 docs.json 导航及锚点,并通过 mintlify dev 进行本地预览与校验。
Trigger Scenarios
Install
npx skills add ag-ui-protocol/ag-ui --skill agui-dotnet-sdk-docs -g -y
SKILL.md
Frontmatter
{
"name": "agui-dotnet-sdk-docs",
"description": "Author, update, and validate the AG-UI .NET SDK documentation pages on the docs.ag-ui.com Mintlify site (under docs\/). USE FOR: adding or editing a \".NET SDK\" docs page (sdk\/dotnet\/**\/*.mdx), wiring it into the docs.json \".NET\" nav group and global anchor, running the docs site locally with mintlify dev, previewing\/validating rendered .NET pages, checking the .NET sidebar anchor\/icon. DO NOT USE FOR: in-repo dotnet markdown such as sdks\/dotnet\/AGENTS.md or docs\/architecture.md (use agui-dotnet-agents-sync); TypeScript\/Python docs pages; product code, tests, or wire types."
}
AG-UI .NET SDK — Docs Site Authoring
The published docs at docs.ag-ui.com are a Mintlify project rooted at
docs/. The .NET SDK section is a sibling of the TypeScript and Python
sections. Pages live as .mdx files and are wired into navigation through
docs/docs.json. Get the location or the nav wrong and the page renders nowhere
or breaks the build.
Where .NET docs live
docs/
docs.json # nav + global anchors (single source of truth)
sdk/dotnet/
abstractions/{overview,types,events,multimodal-inputs}.mdx # AGUI.Abstractions
client/{overview,chat-client,transport}.mdx # AGUI.Client
hosting/{overview,endpoints,extensibility}.mdx # AGUI.Hosting.AspNetCore
sdk/js/**, sdk/python/** # sibling sections — the style reference
The .NET nav group in docs.json mirrors the js and python
groups: subgroups named after the packages
(AGUI.Abstractions, AGUI.Client, AGUI.Hosting.AspNetCore) each listing
page paths without the .mdx extension. A global anchor .NET SDK
points at sdk/dotnet/abstractions/overview. (The anchor icon and its CSS
treatment are already set up; this skill is about adding and editing pages, not
the anchor.)
Page conventions (mirror the JS pages)
Study the JS sibling for any page you add — docs/sdk/js/core/overview.mdx,
docs/sdk/js/client/*.mdx — and keep the .NET page parallel in shape.
- Frontmatter:
title(Title Case, e.g."Overview","AGUIChatClient") anddescription(one line). Seedocs/sdk/dotnet/abstractions/overview.mdx. - H1 names the package or type (
# AGUI.Abstractions,# AGUIChatClient), matching the JS H1 convention (# @ag-ui/core). - Install fence uses
dotnet add package AGUI.*(JS usesnpm install @ag-ui/*). - Cross-links are root-absolute:
/sdk/dotnet/abstractions/types#runagentinput. - Mintlify components are in scope (
<Note>,<Card>,<Tip>, etc.) — use the same ones the surrounding .NET/JS pages use; don't introduce new patterns.
Adding or editing a page
- Create/edit
docs/sdk/dotnet/<group>/<page>.mdxwith the frontmatter + H1 conventions above, modeled on the JS sibling page. - Register it in
docs/docs.jsonunder the correct.NETsubgroup, in the intended order, as"sdk/dotnet/<group>/<page>"(no extension). - If it is a new top-level entry point, update the
.NET SDKglobal anchor href indocs.jsontoo. - Restart
mintlify dev—docs.jsonchanges are read at startup only.
Local preview
cd docs
npm install # first run only; installs Mintlify locally
node_modules/.bin/mintlify dev --port=4000 # or: npm run dev (defaults to 4000)
Known, harmless quirks — do not chase these:
docs.jsonchanges need a server restart;.mdxedits hot-reload.- The CLI prints React "invalid hook call" warnings on startup — noise.
- Some pre-existing non-.NET pages have MDX parse errors. If the page you touched isn't one of them, the error isn't yours — confirm by URL.
Validation loop (Playwright MCP)
Use the generic Playwright-MCP technique from the agui-playwright-validate
skill; the checks below are the docs-specific assertions. Run them against the
running dev server (e.g. http://localhost:4000).
For every .NET page you added or changed:
- Navigate to its localhost URL (
/sdk/dotnet/<group>/<page>). - Assert HTTP 200 (not a 404 / "page not found" body).
- Assert the rendered H1/heading matches the page's intended title.
- Assert zero console errors for that page load.
For the nav (do once):
5. Confirm the new page appears in the left sidebar under the right .NET
subgroup, in the expected order, and that the page renders (screenshot if a
human needs to eyeball a visual detail).
Cleanup
- Remove any Playwright artifacts (screenshots, traces) the validation produced.
- Stop the
mintlify devprocess to free the port when finished.
❌ Critical anti-patterns
- Never add an
.mdxwithout registering it indocs.json— unregistered pages don't appear in the nav (and the.NETgroup is the only correct home for .NET pages, as a sibling ofjs/python). - Never expect a
docs.jsonedit to hot-reload — restartmintlify devor you'll validate stale nav. - Never invent page structure — mirror the JS sibling's frontmatter, H1, and component usage instead.
- Don't "fix" the React hook warnings or pre-existing non-.NET MDX errors — they're out of scope; only the .NET page you touched must render clean.
Files to mine
docs/docs.json (the .NET nav group + the .NET SDK global anchor),
docs/sdk/dotnet/**/*.mdx, the JS reference docs/sdk/js/**/*.mdx,
docs/package.json.
Version History
- 1a78c27 Current 2026-07-24 20:27


