Skip to content

Generate an LLM-friendly version of the handbook (llms.txt) #85

Description

@sn0wm1ku

Why

The handbook is public and increasingly consumed by AI assistants (Claude Code,
Cursor, MCP servers) via the llms.txt standard. Publish
an LLM-friendly version so those tools can read it directly (adopted by 2026 by
Stripe, Cloudflare, ~800k sites).

What

llms.txt (curated index + per-page links) and llms-full.txt (all content in
one file), served at the site root — generated from doc/*.md (single source,
no hand-maintained copy).

Plan

1. Now — VitePress + GitHub Pages

Generate at build/deploy time with
vitepress-plugin-llms
(zero-config, follows the standard). Add it as a devDependency, wire it into
doc/.vitepress/config.mts; pnpm docs:build then emits llms.txt /
llms-full.txt into the Pages output.

2. Transition — Wiki.js + Cloudflare D1

Pick one when the migration lands (see #71, #72):

  • (a) Native: figure out how to generate/serve llms.txt in the Wiki.js + D1
    setup (from the same doc/*.md source), or
  • (b) Carry over: keep generating with VitePress and copy the built
    llms.txt / llms-full.txt into the Cloudflare Worker's public/
    so the
    worker serves them. Cheapest — reuses the working generator, no Wiki.js-side
    work.

Source stays doc/*.md in every case, so there is no duplicated content to
drift.

Acceptance

  • Now: pnpm docs:build emits llms.txt + llms-full.txt;
    https://handbook.osbrjp.com/llms.txt resolves and lists the pages.
  • Transition path (a or b) chosen and noted when the platform moves.

Relates to

Metadata

Metadata

Assignees

Labels

additionA mirror label for the "Addition" issue type.📝 DocumentationAdding another markdown file or writing more comments.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions