What phpbotscout does with your messages¶
phpbotscout is a bot. It answers questions about the phpboyscout toolkit. Later it will also flag content for human moderators, which is not active yet. This page says plainly what it reads, what it keeps, and what you can do about it.
If anything here is unclear or you think it is wrong, say so. The appeal route at the bottom is for moderation decisions, but the contact is the same for everything else.
What it reads¶
Every channel everyone here can read, except any the server has excluded. The rule and the excluded channels are written in the server's channel topic. If a channel is visible only to some members, the bot does not read it.
That covers text channels, forums and the public threads under them. It does not read direct messages, private channels or private threads. It does not read announcement channels or the text chat of voice channels, and it does not listen to voice.
Visibility is checked on every message. If a channel is made private, the bot stops reading it from the next message. If the bot cannot tell whether a channel is public, it does not read it.
Within the channels it reads, it reads every message. It has to, in order to answer questions and flag content. That includes messages not addressed to it.
What it does with them¶
Answering. When you ask something (by mentioning it, replying to it, or writing in a thread it opened), your question is sent to an AI model to produce an answer, along with relevant extracts from the public phpboyscout documentation.
Provider: Anthropic, model Claude Haiku 4.5. The text reaches Anthropic through Claude Code, Anthropic's command-line client, signed in to the maintainer's account. That account is a personal plan, so Anthropic's consumer terms govern your question text, and its handling is set out in Anthropic's privacy policy. The account's setting that lets Anthropic train its models on chats and coding sessions is off. The model runs on Anthropic's infrastructure, not ours.
The bot can use a different provider or model in each server it serves. The copy of this policy pinned in each server names the provider and model that server uses.
What is sent, exactly. The text of your question, and extracts from the public phpboyscout documentation that might answer it. The request also carries details of the machine the bot runs on: its working directory, operating system and shell, the model name, and the date. Those describe the server the bot runs on, never the person asking. That is all.
Your Discord name, your user ID, the channel, and the server are not sent. The provider receives a question with no idea who asked it or where. This is a property of how the request is built rather than a promise about intent: there is no field for it to travel in.
If the model changes, this page changes with it. It is named here because you cannot make a judgement about a third party you have not been told about.
Moderation. Not active yet. When it is, messages will be checked against a ruleset, most of it running locally on the server, and an ambiguous message may be sent to the same provider named above for a second opinion. This paragraph describes what will happen, not what happens today. It is here so the change is announced before it is made rather than after. This page will drop the caveat when moderation goes live.
Nothing else. It does not build profiles, does not track you across channels, and does not use anything you write to train a model.
What it keeps, and for how long¶
| What | How long |
|---|---|
| Message content it has read (thread context, cached extracts, model requests) | 30 days |
| Moderation records: what was flagged, what a moderator decided | 12 months, with the message content replaced by a one-way hash after 30 days |
| Questions you ask it, and how often each subject comes up | 180 days, reducing to 30; see below |
| The answers it composes, and the pages they cite | 120 days; see below |
| Your 👍 / 👎 on an answer | Kept, with a one-way hash of who gave it. If you ask to be forgotten, the vote stays and the hash is replaced so it no longer leads to you |
| The search index over public documentation | For as long as the source is public. It contains no member data |
The reason moderation records outlive message content: if you contest a decision months later, somebody needs to be able to reconstruct what happened. After 30 days that record says what was decided and why, but no longer holds what you wrote.
Why questions are kept longer, and what is kept¶
Your question is kept; who asked it is not. The text is stored so the project can see which subjects keep coming up and write documentation for them, and that count is the most useful thing this bot produces. Your identity is stored only as a one-way hash. The secret behind that hash belongs to the deployment: it survives restarts and upgrades, and is replaced only when the bot starts again from an empty database.
Anything that looks like a secret is removed before the question is stored. If you paste a token into a question, the token does not reach the database.
180 days rather than 30, for now. Traffic is low enough that a 30-day window would expire most questions before a pattern could be seen, which would defeat the reason for keeping them at all. This reduces to 30 days once the bot is busy enough for the shorter window to show the same thing. It is a starting position, not the settled answer.
If you ask to be forgotten, your questions are detached from you rather than destroyed: what remains is an anonymous line of text that was already public in the channel, counted towards a documentation gap. Nothing links it back to you. The bot's answers to you are detached the same way: the answer stays, and the record of who it was for, and which thread it was in, is removed.
What is kept of its answers¶
The answer, exactly as it was posted or would have been, and the pages it cited. While the bot is on trial in a server it posts nothing there: it composes each answer and keeps it, so that a person can read what it would have said and judge whether it was right before it is ever allowed to say it in public. It posts only in a server that has been turned on for it, and during the trial that is only the project's own test server. The pages it cited are kept with the version of the page it read, so a citation is judged against what the page said at the time.
Anything that looks like a secret is removed from the answer before it is stored, as it is from the question.
120 days. Long enough to review. After that the text, the citations and the thread's title are deleted, and only the fact that an answer was given, and how confident it was, remains.
What leaves the server¶
Two things, and only two. Only the first exists yet.
Your question, to an AI provider. Covered above. Today this happens only when you ask the bot something in a channel it reads. It will also cover ambiguous moderation checks once moderation is active.
An issue on GitLab, but only if you say so. Not built yet. This describes how it will work. When the bot cannot answer, it will offer to raise an issue so a maintainer sees it. If you accept, it will show you exactly what it will post (title and body, both editable) before anything is created.
That issue will be public, and it will credit you by your Discord name. This will be stated on the screen where you approve it, because it is the point at which something you wrote in a chat becomes part of a public record. If you would rather not be named, edit it or decline; the bot will not file it either way without you pressing the button.
Once an issue exists it is on GitLab under GitLab's terms, and outside anything this page controls. Deleting your data here does not remove it from there. That needs the issue itself edited or deleted, which a maintainer does by hand.
Moderation¶
Not active yet. This section describes how moderation will work once it is switched on, so that nobody meets it without warning. Until then the bot flags nothing and sends nobody a moderation notice.
The bot does not decide anything. It flags. A human moderator reviews the flag, sees the message in context, and makes the decision. If they act, the bot carries out what they chose, but the choice was theirs.
It cannot ban, delete or time anyone out on its own initiative.
If a moderator acts on your message, you will get a direct message saying what happened, why, and how to contest it. If your privacy settings block messages from server members, that notice will not reach you. The moderators are told when delivery fails, but you may want to check your settings if you would rather hear directly.
If you think a decision was wrong¶
Contact the moderators directly, or email [email protected]. A different moderator reviews it, with the original record in front of them.
If an appeal succeeds it is recorded as a mistake by the detection system, not just reversed quietly. That number is tracked, because a moderation system nobody measures is a moderation system nobody can trust.
Messages about self-harm¶
These are handled differently from rule violations, because they are not one.
They are not treated as something to enforce against, are not deleted, and do not go through the appeals process. They are routed to a human, quickly, along with support resources. Nobody is sanctioned for being in difficulty.
Your data¶
To see what is held about you, or to be forgotten, contact the moderators or email [email protected]. You will be sent what is held, if you asked to see it.
Being forgotten disconnects you from everything the bot holds: your questions, its answers to you, and your votes. What you said in a public channel stays, as an anonymous line counted towards a documentation gap, and nothing in the bot's records leads back to you any more. The server's logs and backups are kept for at most 30 days, so anything from before your request is gone from those within 30 days of it.
Some honest limits. Anything already published to a GitLab issue is outside this system, as above. Your messages in Discord, and the bot's replies to them, are in Discord rather than in the bot's records; you can delete your own, and a moderator can delete the bot's. And a moderation record may be retained where deleting it would make an active dispute impossible to resolve. If that applies, you will be told.
Things worth knowing¶
The bot is often wrong. It answers from documentation and cites where it got each claim. Follow the links. If it cannot find something it will say so rather than guess, but "confident and wrong" is a failure mode of every system like this, including this one.
Reactions are feedback. The 👍 and 👎 on an answer are recorded, without your name attached, and used to work out which answers are useful. One vote per person: changing your reaction changes your vote, and taking it off withdraws it. A reaction added while the bot is offline is never seen.
It is not a person. It has no memory of you between conversations and no opinions about you.
Questions about this page, or anything on it: [email protected].