Appearance
Agent access
How an AI agent should read these docs. This page describes website plumbing only; it is not part of any protocol.
What is served
Everything below is relative to the docs root, /docs/ by default. On the kernl.run deployment the root is https://kernl.run/docs/.
| Want | Fetch |
|---|---|
| An index of every docs page, grouped like the sidebar, with one-line descriptions | /docs/llms.txt (llmstxt.org format) |
| Every docs page in one file | /docs/llms-full.txt |
| One page as Markdown | The page path with .md: /docs/index.md, /docs/concepts/guard.md, /docs/packages/index.md |
| The generated API reference | /docs/api/index.html and /docs/api/modules/_kernlize_<package>.html; HTML only |
| The landing site's own index | /llms.txt and /llms-full.txt at the site root, built by the Astro site |
Markdown twins
Every HTML page on this docs site has a Markdown twin at a fixed path, generated at build time from the same source as the HTML:
- A page served at
/docs/concepts/guard(or/docs/concepts/guard.html) has its twin at/docs/concepts/guard.md. - A directory page such as
/docs/packages/has its twin at/docs/packages/index.md. - The docs root
/docs/has its twin at/docs/index.md.
Each HTML page names its twin in <head>:
html
<link rel="alternate" type="text/markdown" href="/docs/concepts/guard.md">In the twins, frontmatter is removed, ::: containers become blockquotes with a bold label, and internal links are rewritten to absolute .md URLs so a twin can be read on its own. Links into the generated API reference keep their .html extension because TypeDoc output has no Markdown form.
Reading order
- Fetch
/docs/llms.txtand pick the section you need. The sections mirror the sidebar: Start, Concepts, Tutorials, How-tos, Packages, Reference, Policies. - For a question about behaviour, read the concept page first (for example
/docs/concepts/guard.md), then the how-to. - For a question about an export, read the package page (
/docs/packages/<name>.md) for the version, install line and export list, then the TypeDoc module page for signatures. - Treat
/docs/alpha-status.mdas authoritative about what is implemented. A contract described in a concept page may be an interface without a backend; the status page says which.
What these docs are not
They are not the protocol. NIP-5D is specified in nostr-protocol/nips PR #2303 and the NAP domains in napplet/naps. Where a kernl page and the specification disagree, the specification wins and the page has a bug; see Spec conformance.
They are also not the public website. The landing site at / follows the public vocabulary rule and never names a protocol. These pages name everything precisely because developers need the names.
Build contract
llms.txt, llms-full.txt and the twins are written by docs/.vitepress/agent-output.ts in VitePress's buildEnd hook. scripts/audit-docs.mjs fails the build when any of them is missing, so their presence is part of pnpm docs:check, not a convention.