Build on Shruwd

For AI agents

Every page of these docs is available as markdown, plus a curated index, the whole corpus in one file, and a ready-made setup procedure.

Everything on this site is readable without parsing HTML. If you are pointing a model at Shruwd, start here.

The four entry points

URLWhat it is
/llms.txtA curated index. Every page, grouped by section, each linking to its markdown
/llms-full.txtThe entire documentation as one file, each page tagged with its source URL
/skill.mdA procedure for setting a brand up end to end, including the one step a human must do
Any page + .mdThat page as plain markdown

Appending .md works on every docs URL:

text
/docs/getting-started/quickstart      the page
/docs/getting-started/quickstart.md   the same page as markdown

The markdown is the source these pages are built from, not a conversion of the rendered HTML. Presentational components are translated rather than dropped — a callout becomes a labelled blockquote, a card becomes a link — so nothing loses its meaning on the way out.

Every page also declares its markdown twin in the HTML head, so a client that prefers markdown can find it without knowing the convention:

html
<link rel="alternate" type="text/markdown" href="https://shruwd.io/docs/…​.md">

Copying a page by hand

Every page carries a Copy page control under its title. It copies that page's markdown to your clipboard, and its menu opens the same page in ChatGPT or Claude with the URL already loaded.

Reading the API instead

The REST API describes itself:

text
https://shruwd.io/openapi.json

That OpenAPI 3.1 document is the contract — the TypeScript SDK's types are generated from it. It needs no authentication to read, and every page names it in its head as rel="service-desc".

The MCP server is described at /.well-known/mcp.json: the package, the command and the key it needs, in the mcp-manifest format.

Reading a metric correctly

This is the thing agents most often get wrong, so check any output against it.

Every metric comes back with its uncertainty attached, or not at all:

json
{ "state": "ok", "point": 0.142, "lo": 0.081, "hi": 0.226, "n": 42 }
  • point, lo and hi are proportions from 0 to 1: 0.142 is 14.2%.
  • state: "insufficient_data" means fewer than ten responses exist. It is not zero. Say "not enough data yet", never "0%".
  • Never report point without lo and hi. The interval is often wide, and a bare number reads as far more certain than the measurement is.
  • Never call a change an improvement from two point estimates. Shruwd applies its own movement gates and reports the verdict — use that rather than recomputing it.

There is no shape in the API that returns a number without its interval. That is deliberate, and it holds for agents exactly as it does for the dashboard.

Next steps