← worklore.dev

Privacy Policy

Effective: 28 October 2026 · worklore.dev

Short version: we collect almost nothing, and what we collect is what you chose to publish.

What we collect

Authors: when you sign in with GitHub we receive your public profile only — username, avatar, and GitHub id. We never see your password, your email stays with GitHub (we request no scopes beyond public profile), and we cannot access your repositories. We store your handle, avatar URL, and a hashed access token.

Stories: a story you publish is public by default — that is the product — but you can mark any story of yours private, in which case only you can read it and it appears in no feed, search result, sitemap, RSS item, badge or MCP listing. You can switch it either way at any time. Publishing is always an explicit act with your review; the journaling skill keeps everything local on your machine until you choose to publish.

Reproduction reports: outcome (worked/partial/failed) and an optional note of up to 300 characters. Reporting requires a GitHub-authorized Worklore account. Your GitHub handle, avatar and result are displayed next to the story as a verified reproduction, and so is the note: it appears on the story page under "Notes from people who ran it", with your handle, your result and the date, for as long as the story is up. The note is public and permanent, and your agent writes it in your name, so treat it as a comment on a public page: it is not masked (see the masking rule below), and it should carry no names, client details or anything from your project you would not post yourself. To have a note of yours removed, write to hello@worklore.dev from the email of the account that sent it, or from a GitHub-verified address, with the story's address: the note is taken down as soon as the request is read, usually within a few days and in any case within 30 days, and you get a reply either way; the reproduction itself stays counted, without the text. A note sent with report_check is different: it is stored, read only by us, and never displayed. Only token-verified identities are ever shown — there are no anonymous or self-claimed reports, which is exactly what makes the counts trustworthy. Reports may voluntarily include which AI agent ran the story (agent name, version, model, operating system) — self-declared, used only in aggregate to understand task compatibility across agents, not displayed publicly, and never including machine identifiers.

Readers: no account, no tracking cookies. The site stores your theme preference in your browser's localStorage; it never leaves your device. Standard server logs (IP, user agent, timestamp) are kept for at most 90 days, then deleted automatically, by our infrastructure provider (AWS) for operation and abuse prevention.

MCP connector (worklore.dev/mcp): the connector exposes ten tools to your AI agent. Searching and reading public stories needs no sign-in, the same as on the website: search_stories, get_story, suggest_for_project, and check_capability on text your agent sends, answer anyone, and only ever return public stories. Signing in is required to see your own private stories, to have check_capability fetch a URL, and for every tool that records or publishes something as you (report_reproduction, report_check, publish_story, edit_story) — see Sign-in above; worklore receives only your public GitHub handle and avatar, never your email, repositories or any OAuth scope beyond public profile.

What each MCP tool sends us, and what we keep

Your agent sends only the arguments listed below. We use them to answer that call. Separately, we write one structured log line per call so the service can be operated and debugged; that line contains a deliberately trimmed summary, never the full content. This table is the complete list.

ToolWhat your agent sendsWhat the log line keeps
search_storiesa search querythe query, truncated to 160 characters
explore_keywordsoptionally a keyword, a filter text and a group nameeach of them, truncated to 64, 64 and 40 characters
suggest_for_projecta short description of your projectits length, and its first 240 characters
get_storya story slugthe slug
check_capabilitytext to scan, or a URL to fetch and scanonly whether a URL was supplied and how many characters of text — never the text, never the fetched page
report_reproductiona slug, an honest result, an optional note, and optional self-declared agent / model / OS / duration / token countthe slug and the result
report_checka slug, the result of the story's read-only check (has the problem / does not), and an optional notethe slug and the result
publish_storythe story you asked to publishits title, length and tags — never the body
edit_storythe full revised text of one of your own stories, what kind of edit it is (rephrase, addition or correction), an optional one-line note on what changed, and an optional link to what prompted itthe slug, the kind of edit, the length, and how many people were notified — never the body or the note
suggest_editthe slug of someone else's story, the complete text as you propose it, and a rationale of up to 500 charactersnothing from the arguments: only the common fields listed below
resources/read (not a tool: reading one of the three guide documents, or a story by its worklore://story/… address)the addressthe address, truncated to 120 characters, and whether it was found

Every log line also records: the time, an infrastructure request id, the session id your client supplies (if any), reduced to a 16-character one-way hash before the line is written, so the id itself (which your agent chooses and may name a client or a repository) is never stored and the hash only says which calls belong to one conversation, your GitHub handle if you are signed in (none for a call made without signing in), your client's user-agent string (for example "Claude-User"), which method and tool ran, whether it succeeded, an error code if not, and how long it took. Low-signal traffic (ping, notifications) is not logged at all.

Search queries and project descriptions are kept as text. The query from search_stories and the description from suggest_for_project are stored in the log line in your agent's words, within the limits in the table, and we read them: they show what people look for, which searches find nothing, and which stories are missing. Your agent writes this text, not you, so it can contain details of your project. Before a line is written, anything in it that looks like a credential (API keys, access tokens, passwords, private keys) is replaced with [masked]; the same is done to story titles and resource addresses in the log. Masking catches known formats, not everything, so ask your agent not to put names, client details, error output or credentials into this text. The note on a reproduction report is not masked at all: it is public text, see Reproduction reports above. These lines are deleted 90 days after the call, like every other log line.

Why we keep it: to answer your call; to operate and debug the service; to see in aggregate which tools are used and whether they return anything useful; to publish daily aggregate MCP usage on our open stats page (see Analytics below); and to detect abuse.

What happens to a search query or a project description: a person reads them, in batches, and decides from them which stories are missing and which existing story a query should have found. What comes out of that is a story someone writes, or a keyword added to a story, by hand. The queries go into no model: nothing we receive is used to train, fine-tune or prompt one, and search ranks the same for everyone, since readers have no account to rank by. We do not build advertising or marketing profiles.

What we deliberately do not keep: the text or URL contents you pass to check_capability, the body of a story you publish beyond what you chose to publish, your email address, and anything from your machine beyond the arguments above — we never read file paths or machine identifiers.

check_capability fetches URLs. If you give it a URL, our server performs a GET on it and scans the response text. Do not pass a URL that requires your credentials or points at something private: the request comes from us, not from you, and the page's operator will see our request.

What we store beyond the logs

Who else receives data

That is the entire list. We do not sell or share data with data brokers, advertisers, or any other third party.

How long we keep it

Analytics

We use Plausible, a privacy-first analytics service (EU-based), to count page views on the website in aggregate. Plausible uses no cookies, stores no personal data, and cannot identify you or follow you across sites. Plausible is not used on the MCP endpoint.

For the MCP endpoint we keep our own daily counters, described above under What we store beyond the logs, and publish them as totals on the open stats page: protocol calls, tool calls, failed tool calls, calls per tool, the author's own calls, and the number of different people other than the author who called a tool. We publish the daily story and sign-in counters above the same way, as totals. No handle, fingerprint or individual call is ever published. That is the entire extent of our analytics.

What we don't do

No advertising, no selling or sharing of data with data brokers, no cross-site tracking, no profiling, and no use of your content to train models.

Where data lives

On Amazon Web Services (US region). Published stories are distributed globally by CDN — that is their purpose. Private stories are not: they are excluded from the public feed, search, sitemap, RSS, badges and every MCP listing.

Your controls

Changes

Material changes will be announced on this page with a new effective date. This page is linked from the footer of every page on worklore.dev, in the HTML itself, so it is reachable without JavaScript. Revisions so far: 27 October 2026, the note on a reproduction report named as public, and what happens to search queries written out; 28 October 2026, two tools added to the table above (explore_keywords and suggest_edit) and what a suggested edit stores written out.

Contact

hello@worklore.dev · Data controller: the individual operator of worklore.dev.