{
  "markdown": "# nyuchi-docs\n\nNyuchi engineering documentation — how things are done at Nyuchi, and how to\nuse the Mzizi tools from a Nyuchi project. Published at\n[docs.nyuchi.com](https://docs.nyuchi.com).\n\nThis repo is a **pnpm workspace** with these packages:\n\n| Package                | Path                  | What it does                                                                              |\n| ---------------------- | --------------------- | ----------------------------------------------------------------------------------------- |\n| `site`                 | `site/`               | The Astro + [Starlight](https://starlight.astro.build) docs site itself. Ships as a Cloudflare Worker with Static Assets. |\n| `@nyuchi/nyuchi-docs-search`   | `nyuchi-docs-search/` | Publishable npm package: cmdk-style search modal + Ask-AI tab for Starlight sites.        |\n| `shamwari-docs-ai`     | `shamwari-docs-ai/`   | Cloudflare Worker — the Ask-AI chat proxy (SSE).                                          |\n| `nyuchi-docs-mcp-worker` | `nyuchi-docs-mcp-worker/` | Cloudflare Worker `nyuchi-docs-mcp` — the docs MCP server at docs.nyuchi.com/mcp.   |\n\n## Companion site\n\n[`bundu-labs/bundu-docs`](https://github.com/bundu-labs/bundu-docs) covers the\nBundu Foundation's outward-facing projects — the Mzizi product, the Ubuntu\ndoctrine, and the Bundu brand system. It installs `@nyuchi/nyuchi-docs-search`\nfrom npm and points at the `nyuchi-docs-mcp` worker.\n\n## Sections (`site/src/content/docs/`)\n\n- **`platform/`** — the product guide for the Nyuchi platform.\n- **`api/`** — API Docs: the `/v1` gateway, WorkOS authentication,\n  console-managed API keys, security, and the product namespaces.\n- **`analytics/`** — dashboards, reports, and connecting data sources.\n- **`kweli/`** — Mukoko Kweli product guides: verification, cross-app\n  how-to, open data, data quality, design system.\n- **`mukoko-weather/`** — Mukoko Weather user guide and stations.\n- **`integrations/`** — connectors, webhooks, the docs MCP server, and\n  the Mukoko Events MCP server.\n- **`identity/`** — WorkOS, `accounts.mukoko.com` (the AuthKit issuer), SSO,\n  JWTs.\n- **`console/`** — the Nyuchi Console at `platform.nyuchi.com`.\n- **`tools/`** — the cross-repo tools directory: every skill, CLI, and MCP\n  server across the Nyuchi and Bundu repos.\n- **`mzizi-tools/`** — `mzizi-mcp`, `mzizi-cli`, `mzizi-skills`, the DNA\n  double-helix architecture, registry health, and the A2A design.\n- **`deployment/`** — Cloudflare, Vercel, and Supabase deployment patterns.\n- **`conventions/`** — PR doctrine, commit doctrine, repo-naming rules.\n\n## Develop\n\n```sh\npnpm install\npnpm dev            # site only\npnpm -r build       # all packages\npnpm -r test        # all packages\n```\n\nSite dev server: <http://localhost:4321>. Content lives in\n`site/src/content/docs/`; the sidebar is configured in `site/astro.config.mjs`.\n\n## Search + Ask AI\n\nThe search modal opens with `⌘K` / `Ctrl+K`. The **Ask AI** tab streams\nanswers from `shamwari-docs-ai` (Cloudflare Worker) with retrieval-grounded\ncitations. To enable it locally, copy `site/.env.example` to `site/.env`:\n\n```sh\ncp site/.env.example site/.env\n# .env:\n# PUBLIC_SHAMWARI_AI_URL=https://shamwari-docs-ai.nyuchi.workers.dev\n```\n\n## Deploy\n\nBoth workers in this repo deploy via **Cloudflare Workers Builds** — the\n[Cloudflare GitHub App](https://developers.cloudflare.com/workers/ci-cd/builds/git-integration/github-integration/)\nis connected to `nyuchi/nyuchi-docs` with one trigger per worker (root\ndirectory points at the worker package). No GitHub Actions deploy workflow,\nno `CLOUDFLARE_API_TOKEN` repo secret.\n\n- **`nyuchi-docs` (site)** — root `site/`, ships as a Cloudflare Worker with\n  [Workers Static Assets](https://developers.cloudflare.com/workers/static-assets/).\n  Live at `https://nyuchi-docs.nyuchi.workers.dev`. Custom domain\n  `docs.nyuchi.com` is attached via the Workers custom-domain API in a\n  separate cutover step (apex still points at the legacy Mintlify-on-Vercel\n  deployment until then).\n- **`shamwari-docs-ai`** — root `shamwari-docs-ai/`, thin proxy in front of\n  Cloudflare **AI Search**. Live at\n  `https://shamwari-docs-ai.nyuchi.workers.dev`. See\n  [`shamwari-docs-ai/README.md`](./shamwari-docs-ai/README.md) for the\n  per-corpus AI Search instance setup (managed via REST API).\n- **`nyuchi-docs-mcp`** — root `nyuchi-docs-mcp-worker/`, the docs MCP\n  server. Live at `https://nyuchi-docs-mcp.nyuchi.workers.dev` and routed\n  from `docs.nyuchi.com/mcp*`. Needs its own Workers Builds trigger (root\n  directory `nyuchi-docs-mcp-worker/`).\n\n## Well-known and machine-readable endpoints\n\n`docs.nyuchi.com` serves these outside the docs tree. Most are static files in\n`site/public/`; `security.txt` is generated per request by the site worker.\n\n| Path                                | Served from                      | What it is                                                                 |\n| ----------------------------------- | -------------------------------- | -------------------------------------------------------------------------- |\n| `/robots.txt`                       | `site/public/robots.txt`         | Crawl policy + sitemap pointer. Everything here is meant to be indexed.    |\n| `/llms.txt`                         | `site/public/llms.txt`           | Machine-readable site index for LLMs.                                      |\n| `/AUTH.md`                          | `site/public/AUTH.md`            | Agent-facing WorkOS auth reference, synced from `nyuchi/api-gateway`.       |\n| `/.well-known/mcp/server-card.json` | `site/public/.well-known/mcp/`   | MCP server card for the `nyuchi-docs-mcp` worker at `/mcp`.                |\n| `/.well-known/security.txt`         | `site/src/worker/security-txt.ts` | RFC 9116 disclosure contact — **generated per request**, not a static file. |\n\n`security.txt` is dynamic because RFC 9116 makes `Expires` mandatory and caps\nit under one year, so a checked-in file silently becomes non-compliant as it\nages. `site/wrangler.toml` sets `run_worker_first = true`, so every request\nalready passes through `site/src/worker/gate.ts`; it answers this path before\nthe gate check and before the asset router, deriving `Expires` from the\nrequest time (180 days out). Same approach as `nyuchi/nhimbe` and\n`nyuchi/kweli`.\n\n## Why pnpm workspace\n\nThe search package (`nyuchi-docs-search`) is consumed by **both**\n`nyuchi-docs` (this repo, via `workspace:*`) and `bundu-docs` (separate repo,\nvia the npm registry). Keeping it in the same workspace as the docs site\nmeans local changes to the search UI are picked up instantly during `pnpm dev`,\nwhile the published package is a single `pnpm publish` away.\n",
  "bytes": 6707,
  "sha": "4bab1324293922abe83c559b5f4effc74ff4dd998ed76773010c089313d3ad99",
  "repo_slug": "nyuchi/nyuchi-docs",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_nyuchi_nyuchi_docs_77b5e5c1/readme"
}