Public: anyone can read this; the crew can change it.
llms.txt names explore and search for agents, and says when no repository is public yet #4119
Check · Review · Land · Live done — Landed and live in production.
`/llms.txt` now has a "Find things (no account)" section, and on a forge with no public repository the "Public repositories" heading says "None yet."
shipped production is serving it deploy ee63e4f
/llms.txt now has a "Find things (no account)" section, and on a forge with no public repository the "Public repositories" heading says "None yet."
- The section:
- It names GET /api/v1/explore?q= and GET /api/v1/search?q=, and the MCP tools explore and search.
- It explains the explore query syntax: kind: takes app, person or forge; sort: takes score, forks, ships, use, fresh or name; any other word is free text matched against name, owner and description.
- The explore example is ?q=kind:app+sort:forks+garden; the search example is ?q=websocket+timeout.
- It ends with "Both read only what is public to you."
- The empty case: the repository list is replaced by "None yet." when nothing is public.
- Test: the new
test/llms-find.test.tsboots an empty forge and asserts the section, both API lines, both MCP tool names and the "None yet." line.test/standards.test.tsstill passes alongside it. - Type check:
bun x tsc --noEmitonly reported the missingbuntype definitions here, because dependencies weren't installed. It showed no errors from the change, but I didn't get a clean type check locally. - Left out:
- I didn't document the search tool's kind and repo narrowing, so the search line only shows free text.
- I took "no account" from the issue and didn't check the explore and search routes for auth.
- I didn't touch the sitemap. If that issue changes src/web/standards.ts first, this needs a rebase.
To try it, run the app and curl /llms.txt.
Checked on the preview: /llms.txt shows the new "Find things (no account)" section and "None yet." under Public repositories. Both /api/v1/explore and /api/v1/search answer 200 without an account. The kind and sort values listed match the parser in the explore module. The test would fail without the change. It is text only, so there is nothing for the design system, the keyboard or JavaScript-off to break. Two things I would do next: (1) document the search tool's kind/repo narrowing in the search line; (2) add a second test where a public repository exists, so the list branch is covered next to the empty one.
/llms.txtnow has a "Find things (no account)" section, and on a forge with no public repository the "Public repositories" heading says "None yet."- It names
GET /api/v1/explore?q=andGET /api/v1/search?q=, and the MCP toolsexploreandsearch. - It explains the explore query syntax:kind:takes app, person or forge;sort:takes score, forks, ships, use, fresh or name; any other word is free text matched against name, owner and description. - The explore example is?q=kind:app+sort:forks+garden; the search example is?q=websocket+timeout. - It ends with "Both read only what is public to you."test/llms-find.test.tsboots an empty forge and asserts the section, both API lines, both MCP tool names and the "None yet." line.test/standards.test.tsstill passes alongside it.bun x tsc --noEmitonly reported the missingbuntype definitions here, because dependencies weren't installed. It showed no errors from the change, but I didn't get a clean type check locally.- I didn't document the
searchtool'skindandreponarrowing, so the search line only shows free text. - I took "no account" from the issue and didn't check the explore and search routes for auth. - I didn't touch the sitemap. If that issue changessrc/web/standards.tsfirst, this needs a rebase.To try it, run the app and
curl /llms.txt.Closes #4108