Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# llms-full.txt is generated from the pages by scripts/build-llms.mjs and mirrors
# every content change, so GitHub collapses it in diffs. llms.txt stays visible.
llms-full.txt linguist-generated=true
3 changes: 3 additions & 0 deletions .mintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Build output. A stale export must not be picked up as pages or copied into the next export.
dist/
export.zip
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ to document one that doesn't work the way you've said.

```bash
npm run check
npm run llms
```

This validates that every page in `docs.json` exists and every page on disk is
Expand All @@ -40,7 +41,7 @@ reachable from the navigation. CI additionally runs a link check.

1. Create the `.mdx` file with `title` and `description` frontmatter.
2. Add it to the right group in `docs.json`.
3. Run `npm run check`.
3. Run `npm run llms`, then `npm run check`.

## Security

Expand Down
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Production is a Cloudflare Worker serving the static export as assets
```bash
npm run dev # mint dev, on http://localhost:3000
npm run check # validate docs.json navigation against the files on disk
npm run llms # regenerate llms.txt and llms-full.txt after editing a page
```

`npm run check` is the fast gate — it catches a page listed in `docs.json` with
Expand All @@ -25,9 +26,25 @@ docs.json navigation, theme, SEO
introduction.mdx … the Guide tab, one file per page
develop/ the Develop tab
images/ logo/ assets
scripts/ check-docs.mjs
scripts/ check-docs.mjs, build-llms.mjs
llms.txt AI-readable index of every page (generated, committed)
llms-full.txt the whole site as one Markdown file (generated, committed)
```

## AI-readable copies

The site follows the [llms.txt](https://llmstxt.org) convention. `llms.txt` at the
repository root indexes every page with its one-line description, and
`llms-full.txt` is the whole site as one Markdown file. Both are committed, so
they read fine straight from GitHub, and both are served from the site root. The
build also writes every page as plain Markdown beside its HTML, so appending
`.md` to any page URL returns the Markdown.

`scripts/build-llms.mjs` generates all of it from `docs.json` and each page's
frontmatter, using only Node built-ins. Run `npm run llms` after editing a page
and commit the result; `npm run check` fails when the committed copies are out
of date.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md). Docs for the app itself live in the
Expand Down
14 changes: 14 additions & 0 deletions about-these-docs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,20 @@ outbound calls, what the helper can do, what the kill switch touches — that's
not a docs typo, it's a security issue. Please follow
[Security](/security) and don't open a public issue.

## Reading these docs with an AI assistant

This site follows the [llms.txt](https://llmstxt.org) convention, so you can hand
it to whichever assistant you use and ask it to walk you through an install or a
report:

- `/llms.txt` is an index of every page with a one-line summary.
- `/llms-full.txt` is the whole site in one Markdown file — the thing to paste in
when you want the assistant to have everything.
- Appending `.md` to any page's URL returns that page as plain Markdown.

Both files are generated from these pages, so they carry exactly the same
caveats as the pages themselves.

## Conventions

- **privacycommand** is one word, all lowercase, including at the start of a
Expand Down
Loading
Loading