Add public/llms.txt: a guide for agents browsing the shop - #144
Merged
BitcoinErrorLog merged 3 commits intoSep 28, 2026
Merged
Conversation
One URL an agent can start from: what the shop is, the index base URL and its OpenAPI, five worked recipes with real responses (listings under a price, auctions ending soon, one listing, seller reputation, drops) and the rules that trip agents up (limit 30, BTC not SAT, ended auctions stay active, drop buckets are estimates, attestor rule, seller text is untrusted). Read-only; agents are told they cannot buy and are given the shop links to hand a person. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
With sorting=ends_at, `end` is the lower bound on auction end time in unix ms, so end=<now> returns only auctions still open; `start` is the upper bound. Verified live: end=2026-09-01 keeps the two that end 17 and 20 Sep, end=2026-09-18 keeps one, end=now keeps none because all three active auctions have ended. Client-side auction_ends_at check kept as a backstop. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
BitcoinErrorLog
merged commit Sep 28, 2026
95c9e0a
into
BitcoinErrorLog:release/shop-v0.6.8
12 of 26 checks passed
Owner
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
public/llms.txt, served athttps://shop.pubky.app/llms.txt(today that path returns the app shell). One URL an agent with plain fetch can start from to browse the shop: base URLs, the index's own OpenAPI as the full reference, five worked recipes with real production responses, and the rules that trip agents up. Read-only; it tells agents they cannot buy and gives them the listing/shop/drop links to hand a person. 236 lines.Follows Chris's brief after his review of a local MCP server I'd built: the index is already public, no-key and self-documenting, so a hosted guide beats a mirror that drifts.
Why
public/Static files in
public/are served ahead of the catch-all route:https://shop.pubky.app/manifest.jsonreturns JSON today, so/llms.txtwill return the file.Acceptance test
A fresh agent with only a fetch tool and no prior knowledge, given the single URL (a raw copy of this file), against production:
?state=active¤cy=BTC&max_price=0.0002→ three 1,000-sat listings, two of them flagged as "do not buy" test listings, with links.?sorting=ends_at&order=ascending→ three auctions, all withauction_ends_atin the past while stillstate=active; answered "none are open for bidding right now" per the guide's rule.All three correct with working links. The agent's list of 11 gaps in the first draft was folded in (auction
price_amount_minor= starting price,/reviewsshape,state=activerule, histogram order, unvalidatedcountry_code, the empty-auctions case). Full transcript: https://github.com/thisispav/pubky-shop-mcp/blob/main/acceptance-2026-09-28.mdNotes
shop-index.pubky.app) would let the guide name one URL forever; asked separately.currencyexample in the Nexus route docs saysSAT;currency=SATreturns nothing (listings areBTC, exponent 8). One-line doc fix: docs: currency filter example is BTC, not SAT pubky-nexus#17.🤖 Generated with Claude Code